はじめに
最近の Linux はデスクトップ環境が充実しているので、Windows のように GUI (Graphical User Interface) でいろいろ操作することができますが、基本は端末 (Terminal) でキーボードからコマンドを入力する CUI (Character User Interface) でしょう。本ページでは基本的なコマンドについて簡単に紹介します。
CONTENTS
●コマンドの形式
コマンドはアプリケーションプログラムのことと考えてください。Windows の場合、アプリケーションを実行するにはアイコンをダブルクリックすればいいですね。ところが CUI の場合、ユーザはコンピュータに対する命令(コマンド)をキーボードから入力します。アプリケーションを実行する場合は、そのファイル名をキーボードから入力します。そして、ユーザーが入力した命令を処理するプログラムがシェル (shell) になります。
コマンドは次のような形式で入力します。
コマンド名 引数1 引数2 ...
最初はコマンド名で、その後ろに引数が必要になる場合もあります。引数にはコマンドのオプションを指定するフラグがあります。Windows では「 / 」の後ろの 1 文字で表しますが、Unix 系の OS では「 - 」の後ろの 1 文字で表すか、「 -- 」の後ろの文字列で表す場合が多いようです。このほかにも引数でファイル名やディレクトリ名、あるいは特別なオプションを指定する場合もあります。これはコマンドによって異なります。
コマンド名や引数の間は空白で区切ります。そして最後にリターンキーを入力すると、シェルがこのコマンドを実行します。
●マニュアルの参照
コマンドの多くは、オプション --help を付けて実行すると簡単な使い方が表示されます。詳しい説明はコマンド man で参照することができます。
マニュアルが英語の場合、Ubuntu では次のコマンドで日本語のマニュアルをインストールすることができます。
sudo apt install manpages-ja
●ディレクトリ操作
「ディレクトリ (directory)」は Windows でいう「フォルダ」のことです。Unix 系 OS の場合、パスの区切り記号にはスラッシュ ( / ) を使います。また、Windows のようなドライブ番号(A:. B:, C:, D:, ...) はなく、すべてのサブディレクトリは一つの親ディレクトリからたどることができます。これを「ルートディレクトリ」といって / で表します。. と .. は Windows と同じく、カレントディレクトリと一つ上の親ディレクトリを表します。
Unix の利用者 (ユーザ) は、登録されたときに自分専用のディレクトリが割り当てられます。これを「ホームディレクトリ」といいます。一般に、ホームディレクトリのパスは /home/ユーザ名 になります。たとえば、ユーザ名が mhiroi だとすると、/home/mhiroi がホームディレクトリで、チルダ ( ~ ) で表すことができます。
/ : ルートディレクトリ
~ : ホームディレクトリ
. : カレントディレクトリ
.. : 一つ上の親ディレクトリ
- pwd
カレントディレクトリを表示する。
- ls [path]
path に存在するファイルやサブディレクトリを表示する。path を省略した場合はカレントディレクトリの内容を表示する。
- ls -a : 隠しファイル (ドット ( . ) から始まるファイル) も表示する。
- ls -l : 詳細な情報をリスト形式で表示する。
- ls -F : ディレクトリには名前の後ろにスラッシュ / を付ける。
- cd path
カレントディレクトリを path に移動する。
- cd / : ルートディレクトリに移動
- cd .. : 親ディレクトリに移動
- cd : ホームディレクトリに移動
- cd ~ : ホームディレクトリに移動
- cd - : 直前にいたディレクトリに移動
- mkdir dir
ディレクトリ dir を作成する。
- mkdir foo : ディレクトリ foo を作成
- mkdir -p bar/baz : ディレクトリ bar, baz を作成
- rmdir dir
ディレクトリ dir を削除する。
- rmdir foo : ディレクトリ foo を削除
- rmdir -p bar/baz : ディレクトリ bar, baz を削除
●ファイル操作
Unix の場合、ファイル名は英大小文字を区別します。Foo と foo は異なるファイル名になります。
- cp src dst
src から dest へ、または複数の src をディレクトリ (dst) にコピーする。
- cp foo.txt bar.txt : foo.txt を bar.txt にコピー
- cp *.txt baz : 拡張子が .txt のファイルをディレクトリ baz にコピー
- cp -r work work1 : ディレクトリ work をディレクトリ work1 にコピー
- mv src dst
ファイル名 src を dst に変更する。dst がディレクトリの場合は src を dst に移動する。
- mv foo.txt bar.txt : ファイル名 foo.txt を bar.txt に変更
- mv *.txt work : *.txt ファイルをすべてディレクトリ work に移動
- rm file ...
ファイルやディレクトリの削除を行う。デフォルトではディレクトリの削除は行わない。
- rm foo.txt : foo.txt を削除
- rm *.txt : 拡張子が .txt のファイルを削除
- rm -r work : ディレクトリ work とその中身を削除 (サブディレクトリも削除される)
- rm -i : 削除の前に確認を行う
- rm -I : 3 個以上のファイルを削除する、またはディレクトリを再帰的に削除する場合は確認を行う
- touch file ...
ファイルのアクセス日時と更新日時を現在時刻に変更する。ファイルが存在しない場合は新しい空のファイルを生成する。
- touch foo.txt : foo.txt のタイムスタンプを現在時刻に変更。
- touch -d "2015/01/01 12:00:00" : ファイルのタイムスタンプを 2015 年 1 月 1 日 12 時 0 分 0 秒 に変更
- find path expression action
ディレクトリ path を基点に、式 expression の条件を満たすファイルまたはディレクトリを探す。action を指定した場合、見つけたファイルに対して action (コマンド) を実行する。
- find work -name *.c : ディレクトリ work からC言語のソースファイルを探す
- find work -name *.c -ls : 見つけたファイルの詳細をリスト形式で表示
- find work -name foo* -type f : foo* と一致するファイルだけを検索
- find work -name foo* -type d : foo* と一致するディレクトリだけを検索
- find work -executable -type f : 実行ファイルを探す
●リンク
Unix 系 OS には、ファイルやディレクトリに別名を付けて、その名前でアクセスする機能があります。これを「リンク (link)」といいます。Windows でいえば、ファイルやディレクトリへのショートカットと同じような機能になります。リンクには次に示す二種類があります。
- ハードリンク
- シンボリックリンク
伝統的な Unix 系 OS のファイルシステムでは、ファイルやディレクトリを作成するとき、固有の番号を割り当てます。これを inode といいます。ファイルシステムは inode を使ってシステム内のデータを管理しています。たとえば、touch foo のようにファイルを作成すると、ファイルシステムから inode が割り当てられ、その inode に対して foo という名前が付けれらます。inode と名前の対応付けは OS が行ってくれます。
そして、inode に名前を付けることをハードリンクといいます。つまり、新しいファイルやディレクトリを作成するときハードリンクが行われているわけです。新規作成のときだけではなく、既存のファイル (inode) に異なる名前を付けることもできます。通常、これをハードリンクといい、コマンド ln を使って行います。なお、ln でリンクを設定することを「リンクをはる」と呼ぶことがあります。
ln src_name link_name
ln は引数の src_name が示す inode に対して、引数の link_name で指定した名前を付けます。これ以降、元のファイル名でも新しいリンク名でも、同じファイル (inode) にアクセスすることができます。
簡単な例を示しましょう。
$ echo hello, world > hello.txt
$ ls hello.txt
hello.txt
$ cat hello.txt
hello, world
$ ln hello.txt world.txt
$ ls -i hello.txt world.txt
157344511981279694 hello.txt 157344511981279694 world.txt
$ cat world.txt
hello, world
echo で hell, world を格納したテキストファイル hello.txt を作成します。つぎに、コマンド ln で hello.txt に world.txt というリンクを張ります。inode はコマンド ls のオプション -i で表示することができます。hello.txt と world.txt は同じ inode であることがわかります。
ハードリンクは通常のファイルと同様にコマンド rm で削除することができます。
$ rm world.txt
$ ls world.txt
ls: 'world.txt' にアクセスできません: そのようなファイルやディレクトリはありません
$ ls hello.txt
hello.txt
$ cat hello.txt
hello, world
$ rm hello.txt
$ ls hello.txt
ls: 'hello.txt' にアクセスできません: そのようなファイルやディレクトリはありません
rm world.txt で world.txt を削除しても、ファイル名 hello.txt やデータ本体は残っています。inode はハードリンクの個数を保持していて、それが 0 にならない限りデータ本体は削除されません。また、コマンド mv でファイル名を変更したり hello.txt を他のディレクトリへ移動しても、データ本体である inode の値は変わらないので、world.txt でファイルにアクセスすることができます。なお、ln でディレクトリにハードリンクをはることはできません。ご注意くださいませ。
2 のシンボリックリンクは inode にリンクをはるのではなく、ファイル名やディレクトリ名にリンクをはる方法です。コマンド ln でオプション -s を指定します。
ln -s src_name link_name
src_name がファイル名であれば、link_name を使って src_name が示すファイルにアクセスすることができます。この場合、inode のハードリンクの個数は増加しません。src_name がディレクトリであれば、ディレクトリの操作に link_name を使うことができます。たとえば、cd link_name とすればディレクトリ src_name に移動することができます。
簡単な例を示しましょう。
$ echo hello, world > hello.txt
$ ls hello.txt
hello.txt
$ ln -s hello.txt world.txt
$ ls world.txt
world.txt
$ ls -il hello.txt world.txt
389561367767553138 -rw-r--r-- 1 mhiroi mhiroi 13 ...略... hello.txt
429812289437176961 lrwxrwxrwx 1 mhiroi mhiroi 9 ...略... world.txt -> hello.txt
$ cat world.txt
hello, world
$ cat hello.txt
hello, world
ln -s でリンクを張って world.txt の inode とパーミッションを ls -il で確認します。inode は hello.txt と異なっていて、パーミッションの先頭文字が l (リンク) になっています。ファイル名のところを見ると hello.txt へリンクが張られていることがわかります。そして、cat でファイルの内容を表示すると、どちらも hello, world と表示されます。
ハードリンクとは異なり、シンボリックリンクは元のファイル名を削除したり変更したりするとデッドリンクになります。
$ rm hello.txt
$ ls hello.txt
ls: 'hello.txt' にアクセスできません: そのようなファイルやディレクトリはありません
$ ls -l world.txt
lrwxrwxrwx 1 mhiroi mhiroi 9 ...略... world.txt -> hello.txt
$ cat world.txt
cat: world.txt: そのようなファイルやディレクトリはありません
このように、hello.txt を削除してもシンボリックリンクは残っていますが、ファイル名 hello.txt がないので world.txt でファイルにアクセスすることはできません。
シンボリックリンクを削除するにはコマンド unlink を使います。
unlink link_name
$ unlink world.txt
$ ls world.txt
ls: 'world.txt' にアクセスできません: そのようなファイルやディレクトリはありません
●テキスト処理
- echo args ...
引数 args を標準出力に出力する。
- echo -e : エスケープ記号を使用可能にする
- echo -n : 最後に改行を付加しない
- cat [file ...]
ファイルの内容を連結して標準出力に出力する。ファイルを省略する、または引数が - の場合は標準入力から読み込む。
- cat -n : 行番号を付加する。
- cat -b : 空行には行番号を付加しない。
- cat -s : 連続した空行を一つにまとめる。
- cut [file ...]
各ファイルの行から選択した部分だけを切り出し、標準出力に出力する。ファイルを省略する、または引数が - の場合は標準入力から読み込む。
- cut -b LIST : バイトで数えた LIST を選択する
- cut -c LIST : 文字で数えた LIST を選択する
- cut -f LIST : LIST で指定されたフィールドを選択する (フィールドの区切り文字はタブ)
- cut -d DELM : フィールドの区切り文字を DELM に変更する
- LIST の指定方法
- N : N 番目のバイト、文字、フィールド。1 から始まる。
- N- : N 番目のバイト、文字、フィールドから行末まで。
- N-M : N 番目から M 番目 (これも含まれる) までのバイト、文字、フィールド。
- -M : 行頭から M 番目 (これも含まれる) までのバイト、文字、フィールド。
- paste [file ...]
ファイルの各行をタブ文字で連結して標準出力に出力する。ファイルを省略する、または引数が - の場合は標準入力から読み込む。
- paste -d c : タブ文字のかわりに文字 c で各行を連結する。
- paste -s : 1 行ごとではなく、一度に 1 つのファイルを貼り付ける。
- head [file ...]
ファイルの最初の部分 (10 行) を表示する。ファイル名が省略された場合は標準入力から読み込む。
- head -n k : ファイルの先頭から k 行を表示する。
- head -q : ヘッダ (ファイル名) を表示しない。
- head -v : ヘッダ (ファイル名) を常に表示する。
- tail [file ...]
ファイルの最後の部分 (10 行) を表示する。ファイル名が省略された場合は標準入力から読み込む。
- tail -n k : ファイルの末尾 k 行を表示する。
- tail -q : ヘッダ (ファイル名) を表示しない。
- tail -v : ヘッダ (ファイル名) を常に表示する。
- tail -f file : ファイル (file) の追記を監視する。
- wc [file ...]
ファイルのバイト数、行数、単語数をカウントする。ファイル名が省略された場合は標準入力から読み込む。
- wc -c : バイト数を表示する。
- wc -l : 行数を表示する。
- wc -m : 文字数を表示する。
- wc -w : 単語数を表示する。
- less [file]
テキストを一画面ずつ表示する。ファイル名が省略された場合は標準入力から読み込む。
- grep regex file ...
ファイルから正規表現 regex とマッチする行を表示する。
- grep -n : 行番号を表示
- grep -E : 拡張正規表現を使用する (egrep と同じ)
- grep -F : regex を固定文字列として扱う (fgrep と同じ)
- sort [file]
テキストファイルの行の並び替えを行う。file が省略された場合は標準入力から読み込む。
- sort -f c : フィールドの区切り文字を c に変更する。デフォルトは空白文字 (タブを含む)。
- sort -k s [e] : ソートのキーを s 番目のフィールドから e 番目の直前に設定する。フィールド番号は 1 から始める。e が省略されると行末までがキーとなる。
- uniq [file1 [file2]]
file1 から行を読み込み、連続する同じ行を取り除いて file2 に出力する。file1 が省略された場合は標準入力、file2 が省略された場合は標準出力を使用する。
- diff file1 file2
file1 と file2 を比較して、それらの違いを出力する。
- tr string1 string2
標準入力からテキストを読み込み、string1 で指定した文字を string2 に対応する文字に置換して出力する。
- tr a-z A-Z : 英小文字を英大文字に変換
- tr -c : string1 で指定した文字以外を string2 で指定した文字に置換する
- tr -d : string1 で指定した文字を削除する
- tr -d \\r : \r を削除 (Windows の改行を Unix 形式に変換)
- tr -s : 置換した文字が連続した場合は 1 文字にまとめる
- iconv [file]
file のエンコーディングをあるエンコーディングから別のエンコーディングに変換する。
- iconv -l : 文字コードの一覧を表示
- iconv -f SJIS -t UTF8 : Shift_JIS のファイルを UTF-8 に変換
- nkf [file]
file の漢字コードを変換する。file の漢字コードは自動的に判別する。
- nkf -e : EUC コードを出力する
- nkf -j : JIS コードを出力する
- nkf -s : シフト JIS コードを出力する
- nkf -w -Lu : Windows (シフトJIS) のドキュメントを Unix 形式 (UTF-8) に変換
●ユーザとグループ
- useradd user
新しいユーザ user を追加する。管理者権限で実行すること。
- useradd -m : ホームディレクトリ /home/user を作成する
- userdel user
ユーザ user を削除する。管理者権限で実行すること。
- userdel -t : ホームディレクトリ /home/username を削除する
- passwd user
ユーザ user のパスワードの設定または変更を行う。管理者権限で実行すること。
- su user
ユーザ・アカウントを user に切り替える。user を省略すると、管理者 (root) に切り替えることができる。ただし、Ubuntu では管理者権限が必要なときは su ではなく sudo を使うことが前提 (Ubuntu で root に切り替えるには sudo su とする)。
- su - : ログイン・シェルを利用してユーザを切り替える (ログインしたときと同じ状態になる)。
- id [user]
user で指定されたユーザーとグループの情報を表示する。 username が省略された場合は現在のユーザー情報を表示する。
- who
ログインユーザを表示する。
- groupadd gr
新しいグループ gr を作成する (管理者権限で実行)。
- groupadd baz : グループ baz を作成する。
- groupdel gr
グループ gr を削除する (管理者権限で実行)。
- groupdel baz : グループ baz を削除。
- gpasswd gr
グループ gr を管理する。
- gpasswd gr : グループパスワードを設定する
- gpasswd -a user gr : ユーザー user をグループ gr に加える
- gpasswd -d user gr : ユーザー user をグループ gr から削除
●パーミッション
Linux のファイルやディレクトリには「パーミッション (permission)」というアクセス権が設定されています。簡単な例を示します。
mhiroi@mhiroi-VirtualBox:~/test$ ls -l
合計 16
-rwxrwxr-x 1 mhiroi mhiroi 7328 11月 24 14:53 a.out
-rw-rw-r-- 1 mhiroi mhiroi 77 11月 24 14:52 hello.c
drwxrwxr-x 2 mhiroi mhiroi 4096 12月 17 11:33 work
d r w x r w x r w x
--A-- --B-- --C--
A : 所有者の権限
B : グループの権限
C : その他の権限
d : ディレクトリ
l : シンボリックリンク
- : 通常ファイル
: ファイル : ディレクトリ
--+------------+--------------------------------------------
r : 読み込み可 : 一覧表示が許可される
w : 書き込み可 : ファイルの削除や名前の変更などが許可される
x : 実行可 : ディレクトリにアクセス可
- : 不許可 : 不許可
hello.c は所有者とグループの人は読み書きできますが、他人は読むことしかできません。a.out は実行ファイルで、所有者やグループだけではなく、他人も実行することができます。ディレクトリ (work) の場合、簡単に言えば r があると ls work が許可されて、x があると cd work が許可されます。
- chmod mode file_or_directory
ファイル (ディレクトリ) のパーミッションを mode に変更する。mode の指定は記号 XYZ または数値 (8 進数) で行う。
- X : ユーザーの指定 (a 全ユーザー, u ユーザー, g グループ, o その他)
- Y : オペレーション (+ 権限の追加, - 権限の削除)
- Z : 権限 (r 読み込み, w 書き込み, x 実行)
- 数値 : r = 4, w = 2, x = 1 として r + w + x を 3 桁の 8 進数で表す
- 7 : rwx, 6 : rw-, 5 : r-x, 4 : r--, 3 : -wx, 2 : -w-, 1 : --x, 0 : ---
- chmod a+x : すべてのユーザーに実行を許可する
- chmod 764 : パーミッションを rwxrw-r-- に設定する
- chmod -R : ディレクトリを再帰的にたどってパーミッションを変更
- chown user[:gr] file_or_directory
ファイル (ディレクトリ) の所有者を user に変更する。gr を指定するとグループの変更もできる。変更できるのは所有者または管理者のみ。
- chown foo file1 : file1 の所有者を foo に変更
- chown :bar file2 : file2 のグループを bar に変更
- chown foo:bar file3 : file3 の所有者を foo に、グループを bar に変更
●プロセスとジョブ
コマンドの実行は OS (カーネル) によって管理されます。この処理単位を「プロセス (process)」といいます。通常、ひとつのコマンドがひとつのプロセスに対応します。プロセスはプロセス識別子 (PID) という番号が割り当てられていて、PID でプロセスを指定することができます。シェルは一つ以上のコマンドを組み合わて実行することができます。この処理単位を「ジョブ (job)」といいます。プロセスはカーネルが管理しますが、ジョブはシェルが管理します。ジョブも「ジョブ番号」が割り当てられていて、これでジョブを指定することができます。
Windows や Unix 系の OS は、複数のアプリケーション (コマンド) を同時に実行することができます。シェルでコマンドを実行すると、そのコマンドが終了するまでシェルは待機します。いま実行しているプロセス (ジョブ) のことを「フォアグランドプロセス (ジョブ)」といいます。これに対し、コマンドの後ろに & を付けて実行すると、コマンドの終了を待たずに、シェルのプロンプトが表示されて、あたらなコマンドを入力することができます。このとき、実行しているプロセス (ジョブ) のことを「バックグランドプロセス (ジョブ)」といいます。
フォアグランドプロセスは Ctrl-Z を入力すると、一時停止してバックグランドに移り、シェルのプロンプトが表示されます。
- ps
実行しているプロセスの情報を表示する。
- ps -e : すべてのプロセスを表示
- ps -p PID : PID のプロセスを表示
- ps aux : すべてのユーザーのプロセスを表示
- jobs
シェルが管理しているジョブを表示する。
- fg ジョブ番号
バックグランドで実行しているジョブをフォアグランドに切り替える。
- bg ジョブ番号
バックグランドで停止しているジョブの実行を再開する。
- kill -[シグナル名 or シグナル番号] PID
プロセス PID に指定したシグナルを送出する。一般ユーザーは自分のプロセスにしかシグナルを送ることができない。
- kill -l : すべてのシグナル名を表示する
- kill PID : プロセス PID に SIGTERM (通常終了) を送る。
- wait [PID or ジョブ番号]
バックグランドで実行しているプロセス (またはジョブ) の終了を待つ。PID (ジョブ番号) を省略した場合はバックグランドで実行中のすべてのプロセスの終了を待つ。
●ファイルの圧縮と展開
Unix 系の OS では、複数のファイルを tar (テープアーカイバ) で一つのファイルにまとめ、それを圧縮ツール gzip で圧縮することが一般的でした。最近では、gzip のかわりに bzip2 や xz (XZ Utils) を使うことが多くなってきたようです。xz(ファイルフォーマット) - Wikipedia によると、『xz はLZMA2圧縮アルゴリズムを利用する可逆圧縮ファイルフォーマット』 とのことです。
Lubuntu の場合、File Roller というファイルアーカイバが同梱されていて、多くのファイル形式に対応しています。ファイルマネージャ (PCManFM) で書庫ファイルを指定して展開する、逆に複数のファイルを指定して書庫ファイルにまとめるなど、書庫ファイルの作成や展開を簡単に行うことができます。
もちろん、端末から操作することもできます。最近の GNU tar であれば、オプションで gzip, bzip2, xz などファイル形式を指定できるので、tar だけで書庫ファイルの作成や展開を行うことができます。
- tar [c|x]vf archive [file ...]
- -c : 引数の file を格納した書庫ファイル archive を作成する。
- -x : 書庫ファイル archive に格納されているファイルを取り出す。
- -j, --bzip2 : bzip2 による圧縮・展開を行う
- -z, --gizp : gzip による圧縮・展開を行う
- -J, --xz : xs (lzma) による圧縮・展開を行う
- gzip file
file を gzip 形式で圧縮して file.gz に置き換える。ファイル名が - の場合は標準入力から読み込み、標準出力に書き出す。
- gunzip file.gz
gzip 形式のファイル file.gz を展開して file.gz を file に置き換える (gzip -d と同じ)。
- zcat file.gz
gzip 形式のファイル file.gz を展開して標準出力に書き込む (gunzip -c と同じ)。
- bzip2 file
file を bzip2 形式で圧縮して file.bz2 に置き換える。
- bunzip2 file.bz2
bzip2 形式のファイル file.bz2 を展開して file に置き換える (bzip2 -d と同じ)。
- bzcat file.bz2
bzip2 形式のファイル file.gz を展開して標準出力に書き込む。
- xz file
file を xz 形式で圧縮して file.xz に置き換える。ファイル名が - の場合は標準入力から読み込み、標準出力に書き出す。
- unxz file.xz
xz 形式のファイル file.xz を展開して file.xz を file に置き換える (xz -d と同じ)。
- xzcat file.xz
xz 形式のファイル file.xz を展開して標準出力に書き込む (unxz -c と同じ)。
●シェル (bash), コマンド操作
- alias name="command ..."
コマンド command に別名 (name) を付ける。
- alias : 定義されているエイリアスをすべて表示する
- alias name : name のエイリアスを表示する
- unalias name
name のエイリアスを削除する。
- type command
コマンド command に関する情報を表示する。
- type cd => cd はシェル組み込み関数です
- type mkdir => mkdir は /bin/mkdir です
- type gcc => gcc は /usr/bin/gcc です
- which command
コマンド command の場所を探して絶対パスで表示する
- hash
キャッシュしている外部コマンドの絶対パスを表示する。
- history [n]
コマンド履歴を表示する。引数 n に数字が指定された場合は直近に実行したコマンドを n 個表示する。
- !! : 直前に実行したコマンドを実行する
- ! n : 履歴が n 番目のコマンドを実行する
●ネットワーク
- ping hostname
ネットワーク上のホストとの接続を確認する。終了するときは Ctrl-C を入力する。
- wget URL
URL で指定したファイルをダウンロードする。
- wget -i file : ファイル file に記述されている URL からダウンロードする
- wget -r : ダウンロードを再帰的に行う
- curl URL
URL で指定したファイルをダウンロードする。
もともと curl はファイルを転送するコマンドで、wget よりも多くのプロトコルに対応している。
ダウンロードしたファイルの出力先はデフォルトで標準出力なので、リダイレクトするかオプションで指定する。
- curl -O : 転送元と同じ名前で保存する
- curl -o name : 保存するファイル名を指定する
●その他
- cal
カレンダーを表示する。
- cal 2015 : 2015 年のカレンダーを表示する
- cal 1 2015 : 2015 年 1 月のカレンダーを表示する
- cal -m 1 : 今年の 1 月のカレンダーを表示する
- date
システムの日付や時刻の表示、設定を行う。
- date : 現在の日付を表示する
- date -u : 協定標準時 (Coordinated Universal Time) を表示する
- shutdown time [message]
システムを停止 (または再起動) する。message はユーザー全員に送られるメッセージ。実行できるのは管理者のみ。
- shutdown -h : シャットダウンする
- shutdown -r : 再起動する
- shutdown hh:mm : hh 時 mm 分に実行する
- shutdown +m : m 分後に実行する
- shutdown now : すぐに実行する
初版 2015 年 1 月 25 日
改訂 2022 年 1 月 15 日