Linux

Linux コマンド集 (随時更新)

UnixやLinuxでは、ルートディレクトリを最上位として様々なディテクトリが置かれてています

コマンドの書式

[]は省略可能

…は複数の引数を指定可能

目次

コマンドラインでコマンドを調べるコマンド

 

man [オプション] [セクション]

オンラインマニュアル



ファイルに関するコマンド

 

pwd

カレントディレクトリの表示

cd  ディレクトリ

カレントディレクトリの変更

ls [オプション] [ファイル名…]

ディレクトリの内容一覧表示

-1 垂直方向に1列で表示
-a ドットで始まる隠しファイルも表示
-c 最後にファイルのステータスを変更した時間でソート。詳細表示のときには、時刻の欄が最後にファイルのステータスを変更した時間になる。
-C 垂直方向に並べて表示
-d ディレクトリ自身を一覧表示
-F 名前の後ろにファイル型を表示

通常のファイル なし
実行可能ファイル *
ディレクトリ /
シンボリックリンク @
FIFO |
ソケット =
-g 無視(詳細表示時はグループ情報を表示)
-G 詳細表示時にグループ情報を表示しない
-h ファイルサイズをわかりやすい単位で表示
-i ファイルのinode番号を表示
-l 詳細形式で表示
-L シンボリックリンクをリンクされているファイルの情報で表示
-n 所有者とグループを名前ではなく番号で表示
-r ソート順を逆にする
-R ディレクトリの内容を再帰的に表示
-s ブロック単位でのファイルサイズを表示
-S ファイルサイズでソートする。大きなファイルが先頭
-t 修正時刻順でソート。新しいファイルが先頭
-u 最後にファイルにアクセスした時刻でソート。詳細表示時には時刻欄が最後にファイルにアクセスした時間になる
-x 水平方向に並べて表示
-X 拡張子順でソート

mkdir [オプションディレクトリ

ディレクトリの作成

-m <mode> ディレクトリのアクセス権を<mode>で作成
-p 引数に指定した各ディレクトリで、存在しないディレクトリも含めて作成

rm [オプション] ファイル名

ファイルの削除

-d ディレクトリを削除。スーパーユーザーのみで使用可能。
-f 強制的に削除。存在しないファイルがあっても通知しない。
-i 削除時に確認
-f ディレクトリの内容を再帰的に削除
-v 削除する前にファイル名を表示

rmdir [オプション] ディレクトリ

ディレクトリの削除

-p 引数に指定したディレクトリに存在しているディレクトリも含めて削除

cp [オプション] コピー元 コピー先

ファイルのコピー

-a 元ファイルの構成と属性を保ったままコピー。-dpRと同じ
-d シンボリックリンクをコピーするときリンクされているファイルではなく自身をコピーする。ハードリンクされているものをコピーした場合はコピー先でもハードリンクの状態を保つ
-f 強制的にコピー
-i 上書き時に確認
-p コピー元のファイルの所有者、グループ、パーミッション、タイムスタンプを保持する
-r ディレクトリを再帰的にコピーする。ディレクトリ以外のファイルはすべてファイルとしてコピーされる。
-R ディレクトリの内容を再帰的にコピーする。
-u コピー先ファイルのタイムスタンプが同じか新しい場合はコピーしない。
-v コピーする前にそのファイル名を表示する。
-x 異なるファイルシステム上のサブディレクトリはコピーしない。

mv [オプション] 移動元 移動先

ファイルの移動、ファイル名の変更

-f 強制的に移動。ファイルが既に存在していても通知しない。
-i ファイル移動時に確認
-v 移動する前にファイル名を表示

cat [オプション] [ファイル名…]

ファイルの内容を標準出力へ出力する

-A -vETと同じ
-b 空白でない行に番号を付ける
-e -vEと同じ
-E 各行の最後に’$’をつける
-n すべての行に番号を付ける
-s 連続した空行を1つの空行にまとめる
-t -vTと同じ
-T タブ文字を’^|’と表示する
-v 改行とタブ文字を除く非表示文字を’^’と表示する

head [オプション] [ファイル名…]

ファイルの先頭部分を表示(デフォルトは最初の10行)

– <行数> 先頭から<行数>分表示する
-c <数値> 先頭の<数値>バイト分を表示する。b(512バイト)、k(1kバイト)、m(1Mバイト)を追加して単位を変更可能
-n <行数> 先頭から<行数>分表示する
-q ファイル名を表示しない
-v ファイル名を表示する

tail [オプション] [ファイル名…]

ファイルの末尾部分を表示(デフォルトは最後の10行)

– <行数> 末尾の<行数>分を表示する
– <行数> 先頭から<行数>分以降を表示する
-c <数値> 末尾の<数値>バイト分を表示する。b(512バイト)、k(1Kバイト)、m(1Mバイト)を追加して単位を変更可能
-f ファイルの末尾まで読み込んでも終了しないで読みつづける
-n <行数> 末尾から<行数>分を表示する
-q ファイル名を表示しない
-v ファイル名を表示する

more ファイル名

ファイルを上から見る(先にすすんだらもとに戻れない)

-s 連続した空行を表示しない

less

ファイルを上から見る(先に進んで戻ることができる)

-X 終了後に表示内容を消去しない
-xn たぶをn個の空白で置き換えて表示する(デフォルトは8)
-S 長い行を折り返さずに表示する
-s 連続した空行を表示する

wc

標準入力対しての行数、単語数、文字数を数える

-l 行数を表示する
-w 単語数を表示する
-c 文字数を表示する。マルチバイト文字を含むときは、バイト数となる
-m 文字数を表示する。マルチバイト文字を含むときでも文字数となる。

split -数字 ファイル名 文字列

ファイルを数字分行数で区分して、標準出力する。 文字列を省略すると接頭辞はXになる。

diff [オプション] ファイル名1 ファイル名2

2つのテキストファイルの違いを出力する

-b 空白文字の違いを無視する
-B 空行の違いを無視する
-C <行数> 一致しない行の前後<行数>分も出力する
-e edのスクリプト形式で出力する
-i 大文字と小文字の違いを無視する
-P ディレクトリ単位で比較するとき、1番目のディレクトリにないファイルは空のファイルとして扱う
-q 違いの詳細を表示しないで違っていることだけを表示する
-r ディレクトリ単位で比較するとき、再帰的に比較する
-s 内容が同じことも表示する
-w 空白を無視して比較する

sort [オプション] [ファイル名…]

テキストファイルの行のソート

-b 先頭の空白を無視
-d 英文字、数字、空白以外の文字を無視する
-f 小文字を大文字として扱う
-n 先頭の文字列を数値として扱う
-r 比較の結果を逆順にする
-t <文字> フィールドの区切り文字を<文字>にする
-u 等しいとされた行の最初の1行だけ表示(uniq)
+ <位置1> [-<位置2>] ソートするのに用いるフィールドを指定する。<位置1>から<位置2>の直前までがソートキーになる。<位置2>を省略した場合は行末までがソートキーになる
-k <位置1> [, <位置2>] ソートキーを指定する別の書き方

uniq [オプション] [ファイル名]

ファイルから内容の同じ行を削除する

-u 重複していない行だけを出力する
-d 重複している行だけを出力する
-c 出現回数も表示する
-i アルファベットの大文字と小文字を同一視する
-N 行頭からN個のフィールドを無視する
+N 行またはフィールドの最初のN文字を比較しない
-w N 行またはフィールドのN文字以上を比較しない

touch [オプション]  [ファイル[ディレクトリ]…]

ファイルの日付を変更する

-c 引数で指定したファイルが存在しない場合、新規に作成しない
-r file 最終更新日時をfileの日時に合わせる
-t time 最終更新日時をtimeに変更する

ln オプション リンクの参照先 リンク名

ファイルに別名をつける(リンクを張る)

-s シンボリックリンクで別名をつける
-f 同名のファイルがある時は、上書きする
-i 同名のファイルがある時は、上書きするかどうかをユーザーに確認する
シンボリックリンク

リンク先を呼び出すだけなので、それ自体を削除しれも本来には影      響がないが、本体を削除してしまうとリンクが切れてしまう

ハードリンク

両方とも同じものとみなされ、どちらか片方を削除しても実体は残る

nkf [オプション] [ファイル名…]

漢字コードの変換をする

-e EUCコートを出力する
-E 入力コードをEUCコードとする
-j EUCコートを出力する
-g ファイルの文字コードを変更する
 -w  UTF-8に変更する
-J 入力コードをJISコードとする
-s シフトJISコードを出力する
-S 入力コードをシフトJISとする

tr [-cst] <文字列1> <文字列2>, tr -s <文字列>, tr -d <文字列>

文字列の変換と削除

-c <文字列1>に指定された文字以外の文字列を置換の対象とする
-s 複数個の<文字列>を1つにまとめる
-t System V版trのような動作をする
-d 指定された<文字列>を削除する

grep/tgrep/egrep [オプション] [ファイル名…]

パターンに一致する行を表示

– <行数> 一致した行の前後の<行数>も出力
-c 行の内容を表示しないで一致した行数だけを表示する
-e <パターン> <パターン>を指定する
-f <ファイル名> パターンを<ファイル名>(スクリプトファイル)から読み取る
-i パターンの大文字と小文字を区別しない
-n 行数を表示する
-v パターンに一致しなかった行を対象にする

chmod [オプション] アクセス権 ファイル名

ファイルのパーミッション変更

-R ディレクトリを再帰的にたどってアクセス権を変更する。
アクセス権は記号か数値のどちらかで指定する。

記号モード
所有者(u)、グループ(g)、その他のユーザー(o)、すべてのユーザー(a)
操作 追加(+)、削除(-)、設定(=)
権利 読み込み(r)、書き込み(w)、実行(x)、実行時にユーザーIDまたはグループIDを追加(s)、スティッキビット(t)
数値モード
read(読み込み)は4、write(書き込み)は2、execute(実行)は1、その足し算によりパーミションを決定する

例)chmod 705 ファイル名

ファイルのパーミッションは、7=4+2+1、0=0+0+0、5=4+0+1となるので、userはrwx可能,groupは権限なし,otherはrx可能になる

chgrp [オプション] グループ名 ファイル名

ファイルのグループを変更

-f グループを変更できなかったときのエラーを表示しない
-h シンボリックされているファイルでなく、自身を変更する。
-R ディレクトリを再帰的にたどってグループを変更する
-v 実行状況を詳細表示する

chown [オプション] 所有者名 [:グループ名] ファイル名

ファイルの所有者を変更する

-f 所有者を変更できなかったときのエラーを表示しない
-h シンボリックされているファイルでなく、自身を変更する。
-R ディレクトリを再帰的にたどって所有者を変更する
-v 実行状況を詳細表示

find [パス] [オプション] [判別式] [アクション]、

ディレクトリツリーの中からファイルを探し出す(ドットファイルも検索できる)

オプション
-name name ファイル名をnameで検索する
-mtime n 更新時刻n日前で検索する
-user user ファイルのオーナー名userで検索する
-regex regexp パス名の全体が正規表現regexpにマッチするファイルを検索する
-path ptn パス名の全体が文字列ptnにマッチするファイルを検索する
主な処理方法
-print 検索結果を表示する
-print0 検索結果をnull文字で区切って出力する
-ls 検索結果のファイル情報を表示する
-exec command [arg] \; 検索結果に対してコマンドcommandを実行する
-execdir command [args] \; -execオプションと同様だが、コマンドcommand実行時のディレクトリを処理対象のファイルが存在するディレクトリにする
-ok command [args] \; -execオプションと同様だが、コマンドcommandを実行する前に実行するかどうか確認する
オプション

-daystart -amin, -atime, -cmin, -ctime, -mmin, -mtimeの時間の基準を24時間前でなくコマンドを実行した日の0時にする
-follow シンボリックリンクの参照先を検索する
-mount 他のファイルシステムにあるディレクトリを検索しない
判別式
+nはnより大きい、-nはnより小さい、nはちょうどnとする

演算子
(expr) カッコ内部が優先される
! expr exprが偽の場合、真となる
-not expr ! exprと同じ
expr1 -a expr2 expr1が偽の場合はexpr2は評価されない
expr1 -o expr2 expr1が真の場合はexpr2は評価されない
-amin n 最後にアクセスされたのがn分前であれば真
-anewer <ファイル名> 最後にアクセスされたのが<ファイル名>が修正された時刻以降ならば真
-atime n 最後にアクセスされたのが24*n時間前ならば真
-cmin n 最後にステータスが変更されたのがn分前であれば真
-cnewer <ファイル名> 最後にステータスが変更されたのが<ファイル名>が修正された時刻以降ならば真
-ctime n 最後にステータスが変更されたのがn*24時間前であれば真
-empty ファイルが空で通常のファイルである場合か、ディレクトリならば真
-fstype <種類> ファイルの置かれているファイルシステムが <種類> ならば真
-gid n ファイルのグループIDがnならば真
-group <グループ名> ファイルのグループIDが<グループ名>であれば真
-mmin n 最後にファイルが変更されたのがn分前であれば真
-mtime n 最後にファイルが変更されたのがn*24時間前であれば真
-name <パターン> ディレクトリ部分を取り去ったファイル名がシェルのパターン <パターン> にマッチすれば真
-newer <ファイル名> 最後にファイルが変更されたのが<ファイル名>が修正された時刻以降であれば真
-nouser ファイルのユーザーIDに対応するユーザーがいなければ真
-nogroup ファイルのグループIDに対応するグループがなければ真
-size n ファイルの容量がnであれば真
-type c ファイルタイプがcならば真

b ブロック型スペシャルファイル
c キャラクタ型スペシャルファイル
d ディレクトリ
p 名前付きパイプ
f 通常のファイル
l シンボリックリンク
s ソケット
-uid n ファイルの所有者IDがnであれば真
-user <ユーザー名> ファイルの所有者が<ユーザー名>であれば真
-exec <コマンド>; <コマンド>を実行する
-ls ファイル名を”ls -dils”形式で表示する
-print ファイル名をフルパスで表示する
例:

ホームディレクトリ以下にある *.bak ファイルを削除
find ~ -name ‘*.bak’ -exec rm -f {} \;
/tmp 以下で過去 30 分以内に更新されたファイルを検索(ディレクトリは対象外)
find /tmp -mmin -30 -type f
今いるディレクトリの下にある .c と .h 以外のファイルを削除
find . \( ! -name ‘*.c’ -a ! -name ‘*.h’ \) -type f -exec rm {} \;

file [オプション] [ファイル名]

ファイルの種類を調べる

-L シンボリックファイルの場合、リンクされているファイルについて調べる
-z compressで圧縮されたファイルの中身についてファイルタイプを調べる

which コマンド名

指定されたコマンドの本体を検索し、その絶対パスを表示する

-a 名前が同じプログラムが検索対象のパス上に複数ある時、全てを表示する

whereis

指定されたコマンドのパスだけでなく、マニュアルやソースコードファイルなどのパスも同時に調べて表示する

-b プログラム(バイナリ)や設定ファイルが存在するパスのみを表示する
-m オンラインマニュアルの存在するパスのみを表示する
-s ソースファイルディレクトリが存在するパスのみを表示する
-B path プログラム(バイナリ)検索に使うパスをpathにする
-M path オンラインマニュアル検索に使うパスをpathにする
-S path ソースファイルディレクトリ検索に使うパスをpathにする
-f -B, -M, -Sの各オプションによりパスを指定した場合に、そのパス指定の終わりを表すために必要になる。

tar [オプション] [ファイル名]

tar形式のアーカイブファイルの作成・展開

-c 新しいアーカイブを作成する
-C <ディレクトリ名> <ディレクトリ名>に移動してから動作する
-t アーカイブの内容一覧を表示
-x アーカイブからファイルを抽出する
-f <出力先> アーカイブファイルを<出力先>で示されるファイルやデバイスにする
-p 許可情報をすべて抽出する
-P ファイル名の先頭の/を取り除かない
-s 抽出するファイル名をソートする
-T <ファイル名> 抽出または作成するファイルの名前を<ファイル名>から読み込む
-v 処理したファイルの一覧を詳しく表示する
-Z アーカイブをcompressにフィルタする
-z アーカイブをgzipにフィルタする

gzip [オプション] [ファイル名]

gzip形式での圧縮と解凍

-c 結果を標準出力に出力する
-d ファイルを解凍する
-f 強制的に動作をする
-l 圧縮ファイルの内容を表示する
-n 元のファイルの名前とタイムスタンプの保存・復元をしない
-N 元のファイルの名前とタイムスタンプの保存・復元をする
-v 作業状態の詳細を出力する
-r 再帰的に処理を行う



ユーザー・システム情報の表示・変更

 

date [時刻]

日付・時刻を表示する

-u 協定世界時(UTC)を表示する。日本時間(JST)はこれに9時間たしたものになる。

cal  [オプション] [ [月] 西暦 ]

カレンダーを表示する

-y 今年のカレンダーを表示する

whoami

自分のユーザー情報を表示する

groups [ユーザー名]

ユーザーの所属するグループを表示する

id [オプション] [ユーザー名]

ユーザー情報を細かく表示する

-G 所属グループIDのみを表示する
-g グループIDのみを表示する
-u ユーザーIDのみを表示する
-n 他のオプションと併用すると、ID表示ではなく、名前による表示になる

w [オプション] [ユーザー名]

ログインしているユーザーと、そのユーザーが実行中のコマンドを表示する

-f uptimeコマンドの実行結果と項目名を非表示にする
-h ヘッダを表示しない(デフォルトの逆)
-s ログイン時刻、JCPU(そのttyで実行した全プロセスが使ったCPU時間の合計)、PCPU(カレントプロセスが使ったCPU時間)を表示しない

nslookup host名

指定されたホスト名(DNS名もしくはIPアドレス)に関する情報をDNSから取得する

passwd  ユーザー名

パスワードを変更する

df

空きディスク領域の報告

-a 全てのファイルシステムに関する情報を表示します。
-H 表示内容に単位をつけて表示する
-t fstype ファイルシステムの種類がfstypeのファイルシステムのみを表示する
-i ブロック単位ではなく、inodeの使用状況で表示する
-k 1Kブロック単位で表示する
-h わかりやすい単位にして表示する

du

ディスクの使用量の報告

-a ディレクトリだけでなくすべてのファイルについて表示する
-b バイト単位で表示する
-c すべての引数について集計したあと合計を出力する
-k Kバイト単位で表示する
-h わかりやすい単位にして表示する
-s 引数で指定したファイルの総計だけを表示する
-x 別のファイルシステムにある分を集計しない

vmstat [-n] [間隔[回数]]

仮想メモリの使用状況を報告する

-n 最初の1回だけヘッダを表示する
間隔 更新するまでの秒数
回数 表示する回数

last

ログインしたユーザーの記憶を一覧表示する

-n <数値> 表示させる行数
-x ランレベルの変更を表示する
-f <ファイル> /var/log/wtmpでなく、<ファイル名>から記録を読み取る

uptime

システムの稼働時間を表示する

uname [オプション]

-n ホスト名を表示する
-r OSのリリース番号を表示する
-v カーネルのコンパイル情報を表示する
-m マシンタイプを表示する
-p プロセッサタイプを表示する
-a 全ての情報を表示する



コマンドの便利な使い方

 

<,>,<<,>>,>&

標準入出力の切り替えをプログラムの外で行う機能

Linuxに限らず対外のOSには「標準入力」、「標準出力」、「標準エラー出力」の3つが備えつけられているのがほとんどである。

OSが入出力を識別するための「割り振り番号」識別子が付いていて、Linuxでは、

標準入力には0

標準出力には1

標準エラー出力には2

がわり振られている。3万以降はプログラマが指定してディスクリピタをオープンできるようになっている。

コマンド>ファイル コマンドの結果をファイルに書き込む
コマンド<ファイル ファイルの中身をコマンドの標準入力へ出力する
コマンド>>ファイル コマンドの出力結果をファイルへ追記する
コマンド 2>ファイル エラー出力をファイルへ書き込む
コマンド 2>>ファイル エラー出力をファイルに追記する
コマンド>ファイル 2>&1 ファイルに標準出力と標準エラー出力を書き込む
コマンド>>ファイル 2>& ファイルに標準出力と標準エラー出力を追記する
コマンド<<終了文字 修理文字が現れるまで標準入力へ送る
コマンド&>ファイル 標準出力と標準エラー出力を同じファイルに書き込む
コマンド>/dev/null 2 表示をしない(表示をゴミ箱へ)
コマンド<入力ファイル>出力ファイル 見た通り

|

二つのコマンドを組み合わせる。(左のコマンドの標準出力を右のコマンドの標準入力しする)複数組み合わせ可能

|&

&を|(パイプ)の後ろにつけることで、?????

tee [オプション] [ファイル名…]

標準入力を読み込み標準出力とファイルに出力する

-a ファイルを上書きせず追加する
-i 割り込みシグナルを無視する

xargs [オプション] [実行コマンド]

引数を標準入力から与えて実行する

-0 区切り文字をnull文字にする。ファイル名のように引数自体に空白文字が含まれる場合に使用する。多くの場合findコマンドの-print0処理と合わせて使うことが多い
-d d 区切り文字をdにする“\”などシェルが解釈する文字は“”で囲むかエスケープする必要する
-n n 最大n個の引数を読み込むごとにコマンドを実行する
-L l 最大l行読み込むごとにコマンドを実行する
-S s コマンド名を含めてコマンドラインが最大sバイトになるように実行する

;

コマンドをつづけて実行する



ファイルシステムを使いこなす

 

mount [オプション] デバイス名

ファイルシステムをディレクトリツリーにマウントする

-a /etc/fstabに記述されているすべてのデバイスをマウントする
-n マウントするとき/etc/mtabファイルに書き込まない
-t ファイルシステムのタイプを指定する
-r リードオンリーでマウントする(-o roと同じ)
-w 書き込み可能なモードでマウントする(-o rwと同じ)
-o <オプション> マウントオプションを<オプションで指定する>

unmount [オプション] デバイス名

ファイルシステムをディレクトリツリーから取り外す

-a /etc/mtabに記述されているすべてのファイルシステムをアンマウントする
-n 取り外すときに/etc/mtabファイルに書き込まない
-r リードオンリーで再マウントする
-t <タイプ> -aオプションで指定したとき、アンマウントするタイプを限定する

fdisk

ファイルシステムを変更する

mkfs

ファイルシステムを初期化する

parted

パーティションを作成する

fsck

ファイルシステムを検査する

lsusb

USBデバイスの情報を調べる



ユーザーとシステムの管理

 

su

スーパーユーザーに変換する

sudo

別のユーザー権限でコマンドを実行する

useradd [オプション] ユーザー名

ユーザーを追加する

-u <数値> ユーザー番号を<数値>で作成する
-g <数値> グループ番号を<数値>で作成する
-G <グループ> 指定された<グループ>に登録する。カンマ( , )で区切って複数のグループを指定できる
-d <ディレクトリ> ホームディレクトリを<ディレクトリ>で作成する
-s <シェル> ユーザーが使うシェルを<シェル>で作成する
-c <コメント> コメントフィールドを<コメント>で作成する

userdel [オプション] ユーザー名

ユーザーを削除する

-r ユーザーのホームディレクトリも削除する

usermod [オプション] ユーザー名

ユーザー情報を変更する

-u <数値> ユーザー番号を<数値>にする
-g <数値> グループ番号を<数値>にする
-G <グループ> 指定された<グループ>に登録する。カンマ( , )で区切って複数のグループを指定できる
-d <ディレクトリ> ホームディレクトリを<ディレクトリ>にする
-s <シェル> ユーザーが使うシェルを<シェル>にする
-c <コメント> コメントフィールドを<コメント>にする
-l <名前> ユーザー名を<名前>に変更する

groupadd [オプション] ユーザー名

グループを追加する

-g <数値> グループ番号を<数値>で作成する
-o gオプションで指定した<数値>の重複を許可する

groupdel グループ名

グループを削除する

groupmod [オプション] ユーザー名

グループ情報を変更する

-g <数値> グループ番号を<数値>にする
-o gオプションで指定した<数値>の重複を許可する
-n <名前> グループ名を<名前>に変更する

getent [データベースとキー]

ユーザーやグループの一覧を表示する

dmesg

システム起動時のログを表示する。システムメッセージを表示する

servise

サービスの設定や状態表示を行う

systemctl

サービスの設定や状態表示を行う

shutdown

システムのシャットダウン

-h システムを停止する。カーネルがAPM機能をサポートしている場合は電源も切る
-r システムを再起動する
-f 再起動するときにファイルシステムをチェックしないようにする
-q デフォルトのメッセージをユーザーに送る
-s シングルユーザーモードで再起動する
「時間」には停止するまでの時間を指定する。省略した場合は2分に設定される。

now すぐに実行
hh:mm hh時mm分後に実行
+n n分後に実行
「メッセージ」は現在ログインしているユーザーに出力するメッセージを入れる

reboot

再起動する

poweroff

電源オフ



ネットワークに関するコマンド

 

ping [オプション] 相手ホスト

あるホストとの接続性を確認する

tracepath [オプション] ホスト [ポート]

リモートホストへのパケットの経路を表示する

traceroute [オプション] ホスト [パケット長]

リモートホストへのパケットの経路を表示する

w [オプション] [ユーザー名]

ログインしているユーザーと、そのユーザーが実行中のコマンドを表示する

-f uptimeコマンドの実行結果と項目名を非表示にする
-h ヘッダを表示しない(デフォルトの逆)
-s ログイン時刻、JCPU(そのttyで実行した全プロセスが使ったCPU時間の合計)、PCPU(カレントプロセスが使ったCPU時間)を表示しない

host [オプション] ホスト名{IPアドレス}

ホストのIPアドレスやドメイン名を調べる

dig [@サーバ] [ドメイン名[-x]] [IPアドレス] [クエリータイプ]

DNS情報を検索する

whois [オプション] ドメイン名

現在のユーザー名を表示する

ssh [ログイン先ユーザー名@]ログイン先ホスト名[コマンド]、ssh [-lログイン先ユーザー名]ログイン先ホスト名[コマンド]

より安全にリモートホストへログインする

wget [オプション] URL

指定したURLをダウンロードする

curl [オプション] URL

指定したURLをダウンロードする

ftp [接続先ホスト名]

ファイルを転送する

ncftp [接続先ホスト名]

ファイルを転送する

scp [オプション] [コピー元] [コピー先]

より安全にファイルを転送する

sftp [接続先ホスト名]

より安全にファイルを転送する

nelookup ホスト名

指定されたホスト名(DNS名もしくはIPアドレス)に関する情報をDNSサーバーから取得する

ip [オプション] addr [内部コマンド]

ネットワークインターフェースを確認・設定する

ifconfig [オプション] [インターフェース] [inet] [IPアドレス]、ifconfig [netmask] [ネットマスク]

ネットワークインターフェースを確認・設定する

ip route [内部コマンド]

インターネットの経路を設定する

route [オプション][内部コマンド]

インターネットの経路を設定する

ss [オプション]

ネットワークのソケット情報を表示する

ip link [オプション] link [内部コマンド]

ネットワークのソケット情報を表示する

netstat [オプション]

ネットワークインターフェースの接続状況を確認する

tcpdump [オプション] [条件]

ネットワークインターフェース上のトラフィックデータを表示する

telnet 接続ホスト名 [ポート番号[サービス名]]

ネットワークサービスを確認する

パッケージのインストール

 

apt-get

アプリケーションを追加・管理する「Ubuntu, Debian」

apt-cache

アプリケーションを追加・管理する「Ubuntu, Debian」

dpkg

アプリケーションを追加・管理する「Ubuntu, Debian」

yum

アプリケーションを追加・確認する「Fedora, CentOS」

rpm

アプリケーションを追加・確認する「Fedora, CentOS」



シェルとシェルスクリプトを使いこなす

 

!! 1回目のコマンドを実行する
!n ヒストリ番号からn回目のコマンドを実行する
! -n 現在のヒストリ番号からn回前のコマンドを実行する
!str strに指定された文字列で始まる1番近いコマンドを実行する
^str1^str2 最後に実行したコマンド中の文字列str1をstr2に置換して実行する
!$ 最後に実行したコマンドの最後の引数を表す

history

コマンドヒストリーを一覧表示する

-c ヒストリをクリアする

clear

ターミナルの画面をクリアする

alias [別名=’コマンド列’]

コマンドに別名をつける

-a 設定されている全てのエイリアスを解除する

unalias [オプション] 別名…

エイリアスを解除する

type [オプション] コマンド名

コマンドのタイプを調べる

-a 指定したコマンド名に関する全てのタイプを表示する
-t 指定したコマンド名のタイプのみを表示する
-p 指定したコマンド名のパスを表示す

echo [オプション] 文字列 [$変数名] [”文字列$変数名…”]

変数の値を表示する、文字列を出力する

-n 行末の改行を出力しない
-e エスケープシーケンスを有効にする

printenv [環境変数名]

環境変数を表示する

=

シェル変数に値を設定する

変数名=設定する値

export 変数名 [=設定する値]

環境変数として変数を設定する

env [オプション] 変数名=設定する値… コマンド名

環境変数として変数を設定する

-i すでに設定する全ての環境変数を無効にする
-u string 環境変数Stringがすでに設定されている場合、無効にする

source 設定ファイル

シェルの設定ファイルを読み込む

.bashhrc           bashの起動のたびに毎回読み込まれる

.profile               ログイン時に一度だけ読み込まれる

.bash_logout     ログアウト時に読み込まれる

$

シェルスクリプトで変数を使う

if,case,[,test

シェルで条件判定する

for,seq

シェルで繰り返し処理をする、繰り返しのための数字も列を作成する

while,expr

シェルでループ処理をする。様々な演算をする

getopts

シェルスクリプトでオプション指定を処理する

sed

テキストデータを処理する

awk

テキストデータからデータを抜き出す

※sed,awkに関しては、文量がawk書ききれないので別記事で書き込みたいと思います。



プログラムの管理に関するコマンド

タスク管理(プロセス管理)プログラミングをするエディタの機動の時やプログラムを実行する時、それぞれの操作を細かい仕事単位であるタスク(プロセス)に分解して処理して...

&

バックグランドで実行する

Ctrl-z

実行中のプログラムを一時停止する

Ctrl-c

実行中のプログラムを終了する

jobs [オプション] [ジョブ番号…]

実行中のプログラムを表示する

-l プロセスIDを表示する
-p ジョブのグループリーダー(ジョブを構成する複数のプロセスのうち、最初に打ち込まれたコマンドにより実行されたプロセス)のプロセスIDだけを表示する
ジョブ番号の指定
カレントジョブ %%, %+
以前のジョブ %-
n番のジョブ %n
コマンド名がStringで始まるジョブ %String
コマンド名にStringが含まれるジョブ %?String

fg

フォアグランドで実行する

bg [ジョブ番号]

中断中のプログラムをバックグランドで再開する

ジョブ番号を入力しない場合カレントジョブをバックグランドで実行する

ps

プロセスの状態を表示する

a 自分以外のユーザー名についても表示する
u ユーザー名と開始時刻を表示する
x 制御端末のないプロセスについても表示する
w 出力1行あたりの幅を広げる
h ヘッダを出力しない
r 実行中のプロセスだけを表示する
l 詳細を表示する
f プロセスの親子関係をツリー形式にして表示
端末番号 txxで指定をする。xxに端末番号を指定する
プロセスID 表示するプロセスID
主な表示項目
USER ユーザー名
UID ユーザーID
PID プロセスID
PPID 親プロセス
TT, TTY 制御端末
STAT
プロセスの状態 補足情報
R 実行可能状態
S スリープ状態
D ディスク内
T 停止状態
Z ゾンビ状態
< 優先度の高いプロセス
N 優先度の低いプロセス
L メモリ中にロックされているページがある
s セッションリーダー
l マルチスレッド
+ フォアグランドのプロセス
TIME CPU時間
COMMAND, CMD コマンド
%CPU CPU利用率
%MEM メモリ利用率
SIZE 仮想イメージの大きさ(text+data+stack)
RSS 常駐セットの大きさ
START 開始時間
FLAGS フラグ
NI プロセスの優先度(nice値)
WCHAN プロセスが休眠状態のときのカーネルの関数名
PAGEIN ページフォルトの回数
TSIZ テキストサイズ
DSIZ データサイズ
LIM メモリの制限

kill [オプション]  [プロセスID[ジョブ番号]…]

プログラムを終了させる

-signal

-S signal

指定したシグナルsignalをプロセスに送る
-l シグナルのリストを表示する
主なシグナル
TERM プロセスに終了を通知する
QUIT プロセスに終了を通知する(coreを作成)
KILL プロセスに強制終了を通知する
HUP プロセスに再起動を通知する
STOP プロセスに中断を通知する
CONT プロセスに再開を通知する
INT プロセスに割り込みを通知する

killall [オプション] [プロセス名…]

プログラムを終了させる

-signal

-S signal

指定したシグナルsignalをプロセスに送る
-l シグナルのリストを表示する
主なシグナル
TERM プロセスに終了を通知する
QUIT プロセスに終了を通知する(coreを作成)
KILL プロセスに強制終了を通知する
HUP プロセスに再起動を通知する
STOP プロセスに中断を通知する
CONT プロセスに再開を通知する
INT プロセスに割り込みを通知する

nice [オプション]  コマンド [コマンドの引数…]

優先度を変更してプログラムを実行する

-number

-n number

コマンドのnice値に、numberを加えて実行する

sleep 時間 [単位]…

特定の時間だけスリープする

時間の単位
s
m
h
d

crontab [-u ユーザー名] ファイル、crontab [-u ユーザー名] [その他オプション]

指定した時刻に定期的にコマンドを実行する

ファイルの中身は、

分 時間 日 月 曜日 コマンド1

分 時間 日 月 曜日 コマンド2

のようになる。

例えば5月5日10時48分(土曜)にcommandを実行する場合は、

48 10 5 5 sat command のように書く

-l 登録されている時刻とコマンドを表示する
-r 登録をキャンセルする
-e ファイルを作成せずに、直接時刻とコマンドを入力する。(環境変数EDITORに指定されたエディタが起動する。指定がない場合はvi)
-u user ユーザーuserを対象とする。スーパーユーザー権限が必要

その他のコマンド

 

bc

簡単な計算する

leave hhmm

hh時mm分で時刻を指定してメッセージを表示する