S-JIS[2003-05-19/2016-12-10] 変更履歴

UNIXコマンド一覧

xtermやktermといった端末上のシェルから入力して実行するコマンド。
UNIX…BSD系もSystemV系もLinuxもSolarisも一緒くたに書いてます。

当ページでは 全てのコマンドに<a name="コマンド名">で名前を付けてあるので、URLに「#コマンド名」を付けると目的のコマンドまですぐ飛べます(爆)


終了関連

sync

バッファの内容をディスクに書き出させる。
きっかけを与えるだけなので、実際に書き込まれるのはワンテンポ遅れる。

logout

ログアウトする。Windowsのlogoffに相当。[2006-11-06]

shutdown 〔オプション〕...

シャットダウン(shutdown)する。Windowsのshutdown -sに相当。
オプションに-rを指定すると、リブートする。

オプションにnowを指定すると即時に、t3と書くと3秒後に実行される。
Ctrl+Alt+DELには、「shutdown -r t3」が割り当てられているらしい)

halt

shutdown -nwの動作に相当。

reboot

リブート(reboot)する。
shutdown -nfの動作に相当。Windowsのshutdown -rに相当。

init ランレベル

プロセス制御を初期化する。[2007-02-09]
ランレベルの数値によっては、マシンの電源を切ったり再起動したりするらしい。
が、普通はshutdownを使うのだそうだ(苦笑)
ちなみに、全てのプロセスの親となるのがinitプロセスらしい。


端末関連

clear

画面を消去(clear)する。MS-DOSのclsに相当。[2006-04-16]

reset

端末をリセット(reset)する。バイナリファイルを表示して文字化けを起こしたときにこれを実行すると、元に戻る(かもしれない。たいてい戻らない(爆)
Teratermを使っていて文字化けした場合は、メニューバーの「setup」→「Terminal」で端末設定のダイアログを出し、そのままOKボタンを押せば元に戻る。[2007-05-24]

tty

自分の端末名を表示する。[/2007-01-26]
who am I」で、自分のもっと詳細な情報が表示できる。

sttyオプション

特殊なキー入力をした場合の動作を設定・表示する。[2006-04-16]

例)stty erase ^?	…削除をDELETEキーにする
例)stty erase ^H	…削除をBSキーにする
例)stty -a	…現在の設定を表示する

プロンプト

MS-DOSのpromptに相当。[2006-04-16]

(kshの場合)環境変数PS1にプロンプトの内容を書いておくことで、プロンプトを変更できる。

% export PS1='$PWD>'	…環境変数$PWD(カレントディレクトリー)の内容に「>」を付けたものをプロンプトとする
/home/hishidama>

bashの場合、kshと同じく環境変数PS1にプロンプトの内容を書けばいいが、特別な値を出力する為のエスケープ文字も割り当てられている。[2009-05-10]

$ export PS1='$PWD$ '
$ export PS1='\w$ '	…\wはカレントディレクトリーを表示するが、ホームディレクトリーは「~」になる

(tcshの場合)環境変数promptにプロンプトの内容を書いておくことで、プロンプトを変更できる。[2006-05-13]
ただしディレクトリを移動しても自動的には変わってくれないので、cdのエイリアスを定義して毎回変更してやる必要がある。

% set prompt="`pwd`> "; alias cd 'cd \!*; set prompt="`pwd`> "'
/home/hishidama> 

これだけだとcdで移動したときしか変わってくれないので、厳密には完全でない。pushd,popd,chdirにも同様の設定が必要。[2006-06-30]
他にもあるかもしれない…アプリケーションでカレントディレクトリを変えるものがあったら、対処しきれない(苦笑)


ファイル操作関連

ls 〔オプション〕 〔ファイル名〕

ファイルの一覧(list)を表示する。MS-DOSのdirに相当。
ファイル名を指定しないと、カレントディレクトリの全ファイルを表示する。

オプション 説明
-l 詳細情報を表示
-ltr 詳細情報をタイムスタンプの逆順で表示
-a 全てのファイルを表示(ファイル名の先頭に「.」が付いたものも)

ファイル名の指定にはワイルドカードが使えるが、その対象にディレクトリが含まれた場合、ディレクトリの中のファイル一覧まで表示されてしまう。[2006-05-11]
これはUNIXのワイルドカードの仕様のせいだが、逆手にとって別のコマンドを使えばワイルドカードの対象だけ表示できる。

> echo p*		←「p」で始まるファイルの一覧を表示。
> ls -d p*	←でも ちゃんとその為のオプションがある。[2006-05-15]

lsof

オープンされているファイルの一覧を表示(list open file)する。[2012-06-06]
(/usr/sbinの下にあるので、rootユーザーでないと使えない)
fuser

tree 〔ディレクトリ名〕

木(tree)構造の形式でディレクトリを階層的に表示する。MS-DOSのtreeに相当。 [2003-06-09]

cp 〔オプション〕 転送元ファイル名 転送先

ファイルをコピー(copy)する。MS-DOSのcopyに相当。
(→dd

転送先にはファイル名やディレクトリ名を指定する。(MS-DOSの場合は転送先を省略するとカレントディレクトリになったが、UNIXでは省略不能)

オプション 説明
-i コピー時に、確認の問い合わせをするようになる
-p ファイル属性や更新時刻などの情報もコピーする
-r ディレクトリもコピーする。MS-DOSのxcopyに相当

mv 転送元ファイル名 転送先

ファイルを移動(move)する。MS-DOSのmoveに相当。
ファイル名の変更にも使う。その場合はMS-DOSのrenに相当。

転送先にはファイル名やディレクトリ名を指定する。

rm 〔オプション〕 ファイル名

ファイルを削除(remove)する。MS-DOSのdelに相当。

オプション 説明
-i 削除時に、確認の問い合わせをするようになる。
-f 削除時に、確認の問い合わせを行わないようにする。
-r ディレクトリ(中身が入っていても)も削除する。MS-DOSのrmdir/s/qに相当

ln 〔-s〕 実体ファイル名 リンク名

リンク(link)を作成する。[/2007-12-12]
-sオプションを付けると、シンボリックリンクを作成する。Windowsのショートカットに相当。
何もつけないとハードリンクを作成する。MS-DOSのfsutil hardlink createに相当。
シンボリックリンクの指し先(実体のパス)はreadlinkで取得できる。[2013-09-11]

dd if=入力ファイル of=出力ファイル

ファイルをコピーする。[2012-03-19]
cpがファイルを単純にコピーするだけなのに対し、ddはオフセットやサイズを指定できる。

例)dd if=/dev/zero of=file10.dat bs=1G count=10	…10GBのファイルを作成する

find ディレクトリ名 〔オプション

ファイルを検索(find)する。[/2007-03-05]
単純なファイル名検索は、MS-DOSのdir /sやHuman68kのwhereに相当。[2007-01-16]

例)find /etc -name "*.conf"
例) find . -name "*.bak" -exec rm {} \;

locate ファイル名

ファイルの位置(locate)を表示する。同名ファイルが複数ディレクトリに存在する場合、それら全てを表示する。
findと似たようなものだが、ある時点で検索をした結果をDBに保存してそれを表示している為、findより遥かに速い。
反面、「ある時点」のものなので、現時点(最新状態)とは異なる可能性がある。

grepオプション〕 文字列 ファイル名…

文字列(パターン)がファイル内に含まれているファイルを検索する。MS-DOSのfind,findstrに相当。[/2014-09-27]

拡張子を指定して、そのファイルに対してだけ検索をかけたいときは以下の様にする。[2003-07-19]

$ find . -name "*.conf" | xargs grep 検索文字列
$ grep 検索文字列 `find . -name "*.conf"`

egrep 正規表現 〔ファイル名…〕

grepと同様だが、単なる文字列の比較ではなく、正規表現でマッチングする。[2007-09-21]


dirname ファイル名

フルパス(絶対パス)で指定されたファイル名のうち、ディレクトリ名部分(directory name)だけを表示する。 [2003-06-09]

basename ファイル名 〔接尾辞〕

フルパス(絶対パス)で指定されたファイル名のうち、ファイル名部分(base name)だけを表示する。
接尾辞を指定すると、ファイル名部分の末尾接尾辞に一致する部分が削除されて表示される。 (拡張子の削除に使うものだが、マッチすれば拡張子に限らず削除できる。まあ、そもそもUNIXに拡張子の概念は有って無きが如しだし[2003-06-09]

readlink 〔-f〕 パス

シンボリックリンクの含まれるパスから実体のパスを表示する。[2013-09-11]
シンボリックリンクでない場合は何も表示されない。(-eオプションを付けると表示される)
-fオプションを付けるとフルパス(絶対パス)で表示される。
-fオプションの場合は、シンボリックリンクが含まれないパスでもフルパスで表示される。

※ちなみに、Cygwinの場合は「cygpath -a パス」でフルパスを取得することが出来る。


ディレクトリー関連

pwd

現在作業中のディレクトリ名(カレントディレクトリ)を表示(print work directory?)する。 MS-DOSのcd(ディレクトリ名の指定無し)に相当。

cd 〔ディレクトリ名〕

カレントディレクトリを移動(change directory)する。MS-DOSのcd,chdirに相当。
csh系の場合、ずばりchdirでも同じ事が出来る。

ディレクトリ名を「/」から始めると、ルートディレクトリ(全ディレクトリのトップ)から指定したことになる。

.」(ピリオド1つ)のみのディレクトリは、カレントディレクトリを表す。(MS-DOSと同じ)

..」(ピリオド2つ)のディレクトリは、1つ上のディレクトリを表す。(MS-DOSと同じ)

「~」(ティルダ)のみのディレクトリは、現在のユーザーのホームディレクトリユーザーのデフォルトの場所)を表す。

「~名前」という、ティルダが先頭についたディレクトリは、その名前が表すユーザーのホームディレクトリを表す。[2003-09-23]
ただし、ティルダを先頭につけたディレクトリを作る事は出来る。その場合、「cd ~名前」ではホームディレクトリに移動してしまう。「cd ./~名前」とする必要がある。

ディレクトリ名を省略すると、ホームディレクトリに移動する。すなわち、「cd ~」と同じになる。
(MS-DOSの場合は、ディレクトリ名を省略すると カレントディレクトリを表示する)


pushd ディレクトリ名

(bash・csh系の場合)カレントディレクトリを記憶(push directory)し、指定されたディレクトリへ移動する。MS-DOSのpushdに相当。[2006-06-30]
popdによって戻ることが出来るので、一時的に作業場所を変えたいときに便利。

popd

(bash・csh系の場合)pushdによって記憶されていたディレクトリへ移動(pop directory)する。MS-DOSのpopdに相当。[2006-06-30]
pushとpopの名の通り、記憶はスタックの構造をしている。

bashの場合、~数で記憶されているディレクトリーを取得することが出来る。[2008-11-29]

dirs

(bash・csh系の場合)pushdによって記憶されているディレクトリの一覧(directory stack)を表示する。MS-DOSのpushd(引数なし)に相当。[2006-06-30]


mkdir ディレクトリ名

ディレクトリを作成(make directory)する。MS-DOSのmd,mkdirに相当。

rmdir ディレクトリ名

ディレクトリを削除(remove directory)する。MS-DOSのrd,rmdirに相当。
ただし、中身が空でないとエラーになる。中身ごと消したい場合は、「rm -r ディレクトリ名」とする。


ファイル属性関連

chmod 〔-R〕 属性 ファイル名

ファイルやディレクトリの属性(権限・パーミッション)を変更(change mode)する。MS-DOSのattribに相当。
-Rオプションを付けると、ディレクトリ・ファイルを再帰的に全て変更する。
(プログラム内からchmod()関数を実行した場合、そのプログラムでそのファイルをオープンしていても変更される。[2006-05-27]

chown 〔-R〕 〔所有者〕〔:グループ名〕 ファイル名…

ファイルやディレクトリの所有者を変更(change owner)する。
-Rオプションを付けると、ディレクトリ・ファイルを再帰的に全て変更する。
UNIXの種類によっては、rootユーザーでないと実行できないかも。

chgrp グループ名 ファイル名…

ファイルやディレクトリの所属グループを変更(change gorup)する。[/2006-05-11]
chownでグループ名だけ指定した場合と同じ。
UNIXの種類によっては、rootユーザーでないと実行できないかも。

umask マスク

現在のユーザーがファイルやディレクトリを作った際の初期パーミッション用マスクを指定する。[/2006-05-27]

touchオプション〕 ファイル名…

ファイルの更新日時やアクセス日時を変更する。[2006-06-27/2007-03-05]
特にオプションを指定しない限り 現在日時に更新されるので、日付だけ新しくしたい場合によく使われる。
また、ファイルが存在しない時には空のファイルが作られるので、「とりあえずファイルを作る」場合によく使われる。

file ファイル名

ファイル(file)の種類(テキスト・バイナリ/どのプログラムのものか)を表示する。[/2003-09-23]

kcc -c ファイル名

漢字コードのチェックを行う(ASCIIとかShift_JISとか判断してくれる)。[2003-06-09]


ファイル内容表示関連

cat ファイル名…

ファイルの内容を標準出力に表示する。MS-DOSのtypeに相当。
複数ファイルがあるときは、内容を連続して出力する。結果として、複数ファイルの結合(concat)となる。
(→strings

tac ファイル名…

ファイルの内容を標準出力に逆順で表示する。[2012-06-05]
(ファイルの末尾が最初に表示され、先頭が最後に表示される)

tee 〔-a〕 ファイル名

標準入力の内容を、標準出力指定されたファイルに出力する。 [2003-06-09]
-aを付けると、指定されたファイルへの追加(append)となる。[2006-06-27]

head 〔-行数〕 〔ファイル名〕

ファイルの先頭(head)を標準出力に表示する。[2006-05-27]

tail 〔-f〕 〔-行数〕 〔ファイル名〕

ファイルの末尾(tail)を標準出力に表示する。[2006-05-27]
-fオプションを付けるとファイルを常に監視し、ファイルの内容に追加があった場合に(ほぼ)リアルタイムで追加分が表示される。
行数を指定すると、その行数だけ表示する。-fと組み合わせて例えば「-50f」とすると、最初に末尾50行を表示し、続いてファイル監視を行う。

awk 'NR==開始行番号,NR==終了行番号' 〔ファイル名〕

ファイルの指定範囲の行を出力する。[2007-05-14]
開始行番号が1なら、headと同じ動作となる。

more 〔ファイル名〕

ファイルの内容を標準出力に表示する。MS-DOSのmoreに相当。[2003-09-20]
catとの違いは、表示されるものが大量に有る場合はページ毎にスクロールが止まること。

less 〔ファイル名〕

ファイルの内容を表示する。上や下にスクロールさせたり検索したり出来る。[2003-09-20]
manもlessを使っていると聞いたことがあるような気がする。

view ファイル名

viの読み込み専用(view)版。[2003-09-20]
と言っても強制保存すれば変更も保存できるが。[2006-05-11]

strings ファイル名

ファイル内の表示可能な文字列だけ表示する。[2012-03-19]
catは表示可能かどうか関係なく全て出力する)

wc 〔オプション〕 〔ファイル名〕

ファイルの単語数等を表示(word count? water closet!)する。[2006-06-27]

-c バイト数を表示する。(全角文字は2バイト)
-C 文字数を表示する。(全角文字も1文字)
-l 行数を表示する。
-w 単語数を表示する。

オプションを省略した場合のデフォルトは「-lwc」(行数・単語数・バイト数を表示する)。

odオプション〕 ファイル名

ファイルの内容をバイナリーとして表示する(octal dump?…デフォルトは八進数なので)。[/2005-11-29]
MS-DOSではdebugで頑張る。[2007-04-17]

hexdump ファイル名

ファイルの内容をバイナリーとして表示する(デフォルトは十六進数)。[2012-03-19]

diff 旧ファイル 新ファイル

ファイルの内容を比較する(difference?)。MS-DOSのfc,compに相当。[2006-04-16]


ファイル内容編集関連

vi ファイル名…

テキストエディタ。操作体系が独特[/2005-03-24]だが、慣れればそこそこ(かなり)使える。

emacs ファイル名

テキストエディタ。昔はこっちを使ってたんだけど「Ctrl+X→Ctrl+Sで保存」「Ctrl+X→Ctrl+Cで終了」ということしか覚えてない…。

awk "プログラム" 〔ファイル…〕
awk -f プログラムファイル 〔ファイル…〕

C言語に似たスクリプト(プログラム)に従ってファイルの内容を加工して出力する。[/2007-05-12]

sort 〔オプション〕 〔ファイル名〕

ファイルの内容をソート(sort)する。MS-DOSのsortに相当。[2006-02-14]

-n 数値としてソートする
-r 逆順ソート

uniq 〔ファイル名〕

重複行を排除して単一データ(unique)にする。[2007-10-25]

cutオプション} 〔ファイル名〕

ファイルの各行から一部を取り出す(cut)。[2006-05-27]

paste 〔ファイル…〕

各ファイルの行を結合(paste)する。[2006-05-27]

tr {オプション} < ファイル名

文字を変換(transform?)する。[2007-10-25]
-dオプションは、文字を削除する。

% tr -d \\r < windows.crlf.txt > unix.lf.txt
(perl -pe 's/\n/\r\n/g' unix.txt > windows.txt )

nkf < ファイル名

ファイルの内容を、SJISからEUCに変換して標準出力に表示する。

kcc ファイル名

自動判別機能つき漢字コード変換。-cオプションを付けるとコードのチェックのみ行う。 [2006-05-11]

iconv -f SJIS -t eucJP ファイル名

ファイルの内容を、SJISからEUCに変換して標準出力に表示する。[2006-05-01]
man iconv_ja」で、変換できるコードセットが調べられる。
新しい変換は、geniconvtblで作成する。[2007-02-22]


外付メディア関連

mount デバイス

外付メディア(CD-ROMやフロッピーディスク)等を使えるように(mount)する。[/2009-05-10]
「mount -a」で/etc/fstabの内容を反映させる。[2014-05-01]
mountの例1 例2

umount デバイス

マウントされたメディアの使用を終了(マウントを解除)(unmount)する。[2003-06-18]

eject 〔デバイス〕

(フロッピーディスクやCD-ROMといった)メディアを取り出す(eject)。[2003-06-18]


コマンド関連

コマンドの実行に関する技(?)については、UNIXの基礎知識(?)参照。

man 〔オプション〕 キーワード

キーワード(コマンドやコンフィグファイル・ライブラリなど)のヘルプ(manual)を表示する(マニュアルが整備されていないコマンドもある)。MS-DOSのhelpに相当。
たいていのコマンドは「コマンド --help」を実行することでヘルプが表示される。

オプション 説明 更新日
-s セクション番号 特定セクションの説明を表示する。
同じキーワードに対して複数のセクションがある場合に使用する。
「kill(2)」を参照したい場合は「man -s 2 kill
「kill(3F)」を参照したい場合は「man -s 3f kill
2006-01-12
-l キーワードに一致するセクション一覧を表示する。 man -l kill 2006-05-13

. ファイル名

現在のシェルでシェルスクリプトを実行する。(「ピリオド+ブランク+ファイル名」であることに注意)
シェルスクリプトの中で環境変数umaskを変えた場合、スクリプト実行後も変えた内容が残る。[2006-05-27]

現在の実行中のシェルの種類は、環境変数shellで分かる。[2006-06-27]

sh 〔-x〕 ファイル名

sh(ボーンシェル)のシェルスクリプトを実行する。この場合、ファイルに実行権限は必要ない。[2006-01-12]
-xオプションを付けると 実行状況(実行する行)を表示しながら実行するので、デバッグに便利。[2006-04-16]
(→setコマンドで-xを指定する方法

他の種類のシェル(ksh(コーンシェル)やらcshやらtcshやらbashやら)コマンドでも同様に、そのシェルでシェルスクリプトを実行する。

% ksh -x script.ksh

-nオプションを付けると、実行せずにシェルスクリプトファイル内の構文解析を行う。[2008-11-29]

whereis コマンド名

コマンドのファイルがどのディレクトリに存在するか(where is)を表示する。
パスが通っている場合だけ使える。(複数パスに存在するなら、存在する全てのパスが表示される)

which コマンド名

コマンドがどこに在るか(which)を表示する。同名コマンドが複数ある場合に、どこから起動しているか確認するのに使う。MS-DOSのwhereに相当。[/2016-12-10]
エイリアスで作られている場合、それも表示される。

alias 新コマンド名 定義
alias 新コマンド名=定義

コマンドの別名(alias)を定義する。MS-DOSのdoskeyに相当。[2006-06-30]
「=」有りがksh系、csh系は「=」は無い。

% alias dir 'ls -lA'	…csh系
> alias dir='ls -lA'	…ksh系

csh系の場合、「!!:n」を使ってコマンドの引数を取得することが出来るが、alias定義時にそれを使う場合は「\」でエスケープしておかないと、aliasの実行/解釈時に「!〜」が展開されてしまう。

% alias hoge='echo \!*; echo end'	←「!*」は、hogeに渡される全引数に展開される
% hoge a b c
a b c

alias 〔別名〕

コマンドの別名(alias)の一覧を表示する。MS-DOSのdoskey /macrosに相当。[2006-07-01]
別名を指定すると、そのコマンドのものを表示する。MS-DOSではdoskeyとfindstrで頑張る

unalias 別名

コマンドの別名(alias)を削除する。MS-DOSのdoskeyに相当。[2006-07-01]

history 〔個数〕

今まで入力したコマンドの履歴(history)を一覧表示する。
個数を指定すると、指定された個数分だけ表示される。[2006-07-01]

!ヒストリー

(csh系)過去に実行したコマンドを再実行する。[/2006-06-30]

!!」で、直前に実行したコマンドを再実行する。
!番号」で、historyで表示されたヒストリー番号のコマンドを再実行する。
!接頭辞」で、コマンドの先頭がその接頭辞に一致する、一番最近のコマンドを再実行する。

「!ヒストリー」という指定は(「$」で始まった文字列が環境変数として展開されるのと同様に)、コマンドの実行前にシェルによって展開されるものなので、コマンドの引数としても使える。
ただし環境変数と異なり、シングルクォーテーションでくくっていても展開される。

% ls aa bb cc
〜
% echo !*		→直前の「ls aa bb cc」の全引数に展開され、「echo aa bb cc」となって実行される。
echo a b c
aa bb cc
% echo '!!:2'	→直前の「echo aa bb cc」の2番目の引数に展開され、「echo 'bb'」となって実行される。
echo 'bb'
bb

!ヒストリー:n」で、対象コマンドのn番目の引数になる。(0番はコマンド名)
!ヒストリー:*」で、対象コマンドの全引数になる。
直近のコマンドの場合は省略した書き方ができ、「!!:n」→「!:n」、「!!:*」→「!:*」→「!*」と略せる。

fc -l 〔番号〕

今まで入力したコマンドの履歴を一覧表示する。[2006-05-27]
番号を指定すると、その番号以降のコマンドを表示する。[2006-06-30]

fc -e コマンド名

最も最近の、指定されたコマンド名のコマンドを再実行する。[2006-07-01]

fc -e - 〔ヒストリー〕

ヒストリーを指定しないと、直前に実行したコマンドを再実行する。[2006-06-30]
ヒストリーに番号を指定すると、fc -lで表示されたヒストリー番号のコマンドを再実行する。
ヒストリーに接頭辞を指定すると、コマンドの先頭がその接頭辞に一致する、一番最近のコマンドを再実行する。

: 〔引数〕

何もしないコマンド(シェルのビルトイン(組み込み)命令)。戻り値は常に0。[2014-09-27]
(ただし引数の展開やリダイレクトの実行は行う)

true

常に0(成功を意味する)を返す。[2014-09-27]
「常に0を返す」という意味では、:の方が(シェルの組み込み命令なので)高速らしい。

false

常に1(失敗を意味する)を返す。[2014-09-27]

yes 〔文字列〕

文字列(と改行)を出力し続ける。[2014-09-27]
文字列が指定されなかった場合は「y」を出力する。
インストール用のコマンド等でyes/noを聞いてくるものがあるが、その際に自動的にyesを入力するのに使う。

env 環境変数定義 コマンドコマンドのオプション〕

環境変数を定義して、その環境でコマンドを実行する。[2014-09-27]

$ env aaa=123 bash -c 'echo $aaa'

引数が全く無い場合、定義されている環境変数の一覧を表示する。→envによる環境変数一覧表示

time コマンドコマンドのオプション〕
timex コマンド

コマンドを実行し、実行完了までにかかった時間(とCPU使用時間)(time)を表示する。[2007-10-26]

> time wc test.txt
44924 321180 8251637 test.txt	←wcの実行結果
1.19u 0.07s 0:01.31 96.1%		←ユーザーCPU時間[秒]、システムCPU時間[秒]、実行時間[分:秒]、CPU使用率

/usr/bin/time -v コマンド」で、メモリーの最大使用量等も表示される。[2016-12-10]
参考: kuenishiさんのあなたの知らないtime(1)の世界

nohup コマンドコマンドのオプション〕 &

コマンドを実行する。[2012-03-04]
(カレントディレクトリーのプログラムを実行する場合は「./プログラム」と書く必要がある)
標準出力・標準エラーに書き出された内容は、nohup.outというファイルに出力される。

端末(termやtelnet等)が閉じられてもバックグラウンドでコマンドの実行を続ける。
(端末が閉じられると、その端末で実行していた各コマンドにはSIGHUPシグナルが送られてくるが、nohupはそれを無視する)
disown

ltrace 〔オプション〕 コマンドコマンドのオプション〕

(Linux)コマンドを実行し、ライブラリー(サブルーチン)呼び出しをトレース表示(library call tracer)する。[2009-05-05]
オプションで-rや-tを付けると、トレース一覧に開始時刻が付いて表示される。
(-rは実行開始時点からの相対時間、-tは秒単位の時刻、-ttはミリ秒単位)

xargs コマンドコマンドのオプション〕

標準入力から受け取った文字列群を“指定したコマンドの引数”にして、コマンドを実行する。[2003-10-14]
何かの実行結果をパイプでつないでxargsに渡したら バッククォートを使うのと同じ動作になるけど、それよりは分かり易いかな。
MS-DOSではxargsもどきを使用。[2007-10-26]

$ find . -name "*.conf" | xargs ls -l
$ ls -l `find . -name "*.conf"`

find ディレクトリ 検索条件 -exec コマンド {} \;

検索によって見つかった各ファイルに対してコマンドを実行する。[2006-04-16]
xargsとの違いは、xargsは全結果が引数として渡されて1回だけコマンドが実行されるのに対し、
find-execは見つかったファイル毎にexecが1回ずつ実行される(つまり、見つかったファイル数の回数分、コマンドが実行される)こと。

su - ユーザー名 -c "コマンドコマンドのオプション〕"

指定したユーザーになってコマンドを実行する。[2007-09-11]

sudo コマンドコマンドのオプション〕

rootユーザーでしか実行できないコマンドを実行する。[2011-09-25]
visudoでsudoの設定ファイル(sudoを実行できるユーザーを管理しているファイル)を編集できる。[/2014-01-25]

sleep 時間

一定時間、処理を停止(sleep)する。[2006-04-16]
単位はs,m,h,dを指定可能。指定しない場合は秒単位。例:「sleep 60」「sleep 60s」「sleep 1m[2012-03-04]

シェルスクリプトの中から使用することがほとんどでしょう。
MS-DOSには該当のコマンドが無いので、フリーソフトのsleepを使うといいかも。Windows2003ではtimeoutに相当。

watch -n 間隔(秒) コマンド

定期的にコマンドを実行して、画面に表示する。[2007-01-17]

crontab オプション

cron(クーロン)(スケジューリングして定期的にコマンドを実行するアプリケーション)(cron table)への登録をする為のコマンド。[/2007-09-11]
Windowsのタスクスケジューラー(あるいはatコマンド)に相当。


ジョブ・プロセス関連

コマンドを実行すると、フォアグラウンドで実行される(実行が終わるまで他のことが出来ない)。
コマンドの最後尾に「&」をつけて実行すると、バックグラウンドで実行される。

jobs

現在実行されているジョブ(job)を表示する。(停止中のジョブも分かる)

bg 〔%ジョブ番号〕

バックグラウンドジョブ(background)に変更する。

フォアグラウンドで実行しているときにCtrl+Zで実行を停止して bgを実行すると、停止したジョブがバックグラウンドに替わる。

fg 〔%ジョブ番号〕

フォアグラウンドジョブ(foreground)に変更する。

Ctrl+Zで実行を停止して fgを実行すると、停止したジョブがフォアグラウンドで継続できる。

disown 〔-h〕 〔%ジョブ番号〕

ジョブをアクティブジョブテーブル(jobsで表示される一覧)から削除する。[2012-03-04]
一覧から削除されるのでジョブ番号では指定できなくなるが、ジョブはバックグラウンドで動き続ける。
また、端末(termやtelnet等)が閉じられたときに送られてくるSIGHUPシグナルを無視するようになる。(端末を閉じてもジョブは動き続ける)
-hを付けると、ジョブテーブルから削除されずにSIGHUPだけ無視するようになる。
nohup

stop %ジョブ番号

ジョブを一時停止(stop)する。

kill %ジョブ番号

ジョブを終了(kill)させる。

kill -9 プロセスID

プロセス強制的に終了させる。Windowsのtaskkillに相当。[2003-09-20]
-9というのは、「シグナル番号9(SIGKILL)」を表す。「-KILL」というオプションでも同様の効果が得られる。[2006-01-06]
シグナル番号とシグナル名の一覧(Solaris)

> kill -9 プロセスID
> kill -KILL プロセスID

killは名前に似合わず、結局のところシグナルをプロセスに対して送るコマンドなので、SIGKILL以外のシグナルもkillコマンドを使って送ることが出来る。

kill -l

システムがサポートしているシグナルの一覧を表示する。[2006-01-12]

ps aux

稼動中のプロセス(process)を一覧表示する。MS-DOSのtasklistに相当。

ps auxww

稼動中のプロセスを一覧表示(実行時に入力されたコマンド)する。

ps -ef

稼動中のプロセスを一覧表示(全て)する。[2003-09-20]

pstree

プロセスのツリーを表示する。[2011-10-26]

pargs プロセスID(又はcoreファイル)

そのプロセスの実行時引数(C言語で言うところのargvの内容)を表示する。[2006-01-12]

pfiles プロセスID

そのプロセスが使用しているファイルディスクリプターの一覧を表示する。[2006-01-12]

pwdx プロセスID

そのプロセスのカレントディレクトリを表示する。[2006-01-12]

psig プロセスID

そのプロセスのシグナルに対する動作(マスクの状態やシグナルハンドラー)を表示する。[2006-01-12]

ptree プロセスID(又はユーザー名)

そのプロセスの親プロセス・子プロセス(さらにその親と子も全て)をツリー状に表示する。[2006-01-12]

pstack プロセスID(又はcoreファイル)

そのプロセスの関数呼び出しの状態を表示する。[2006-01-12]
(複数スレッドある場合は、それぞれについて表示される)

truss -p プロセスID

そのプロセスに発生するシステムコール・シグナル・マシン障害を リアルタイムに表示する。[2006-01-12]

fuser ファイル

ファイル(やソケット)を使用(オープン)しているプロセス(file user)のIDを表示する。[2012-06-06]
(/sbinの下にあるので、rootユーザーでないと使えない)
lsof


ユーザー関連

passwd 〔ユーザー名〕

ログインパスワード(password)を変更する。

finger 〔ユーザー名〕

ユーザーの情報を表示する。
ユーザー名を指定しないと、ログイン中の全ユーザーの情報を表示する。Windowsのnet sessionに相当?

who

システムにログインしているユーザー(who)の一覧を表示する。[2006-05-27]
ユーザー名や端末名、ログイン開始時刻と接続元IPアドレス等が表示される。
users

who am i

自分のユーザー情報(who am I)を表示する。[2006-05-27]

whoami

自分のユーザー名を表示(who am I)する。

groups 〔ユーザー名〕

ユーザーが所属するグループ(group)を表示する。

id 〔ユーザー名〕 〔オプション

ユーザーのユーザーIDやグループIDを表示する。[2004-01-11]

su - 〔ユーザー名〕

指定されたユーザーになる(switch user)。
ユーザー名が指定されないと、rootユーザー(スーパーユーザー(super user)と呼んでいる人もいたが)になる。 rootから他のユーザーになるときは、パスワードを入れる必要が無い。

オプションとして「-」(ハイフン)を付けておくと、ログインスクリプトも実行される(パス等が設定される)。

「-c」オプションsudoコマンド

groupadd グループ名

グループを作成(add group)する。

groupmod グループ名

グループを変更(modify group)する。[2008-02-04]

groupdel グループ名

グループを削除(delete group)する。[2008-02-04]

useradd 〔オプション〕 ユーザー名
adduser 〔オプション〕 ユーザー名

ユーザーを作成(add user)する。[2003-06-18]

オプション 説明 備考
-g グループ名 主グループの指定 グループ名は既存でなければならない(事前にgroupaddで作っておく)
-G グループ名〔,グループ名…〕 副グループの指定

usermod オプション ユーザー名

ユーザー情報を変更(modify user)する。

userdel ユーザー名

ユーザーを削除(delete user)する。[2008-02-04]

users

現在ログインしているユーザーの一覧を表示する。[2009-05-10]
who

last

最近ログインしたユーザーのリストを表示する。

lastlog

最終ログインを記録しているファイルの内容を整形して表示する。[2008-04-26]


アーカイブ関連

compress ファイル名
uncompress アーカイブファイル名
zcat アーカイブファイル名
compressdir ディレクトリ名
uncompressdir アーカイブファイル名

拡張子Zの圧縮・解凍を行う。[2007-08-25]
compressでは、指定されたファイルを圧縮して、末尾に「.Z」を付けたファイルが作られる。
uncompressでは末尾の「.Z」が削除されたファイルが作られる。zcatはファイルの内容を標準出力に出力する。

zip アーカイブファイル名 ファイル名…
unzip アーカイブファイル名

zip形式(拡張子zip)の圧縮・解凍を行う。Windowsの(Oracleの)zip/unzipに相当。[2007-08-25]
javaでzipファイルを読み込む方法

Linuxだと「zip -P パスワード -e アーカイブファイル名 ファイル名…」でパスワードを付けられるらしい(-eのみだとプロンプトでパスワード入力)が、Solaris(10以前)では出来ない。[2007-11-21]

zipcloak

zipファイルの暗号化・復号化(パスワード付きzipファイルの生成・解除)を行う。[2007-12-14]

bzip2 アーカイブファイル名
bunzip2 アーカイブファイル名

拡張子bz2の圧縮・解凍を行う。[2003-09-20]
使い方はgzipと同様。圧縮効率は いい方らしい。

gzip アーカイブファイル名
gunzip アーカイブファイル名

gzip形式(拡張子gz,tgz)の圧縮・解凍を行う。

tarオプション〕 アーカイブファイル名 ファイル名…

tar形式(tape archive)のアーカイブファイルの作成・展開を行う。[/2007-09-20]

rpm -Uvh アーカイブファイル名

RedHatパッケージ(拡張子rpm)のインストールを行う。[/2011-12-25]


システム資源・情報関連

date
date '+書式'

現在日時(date)を表示する。MS-DOSのdate,timeに相当。[2006-06-14/2011-10-26]
書式を指定すると、表示の仕方をカスタマイズできる。(→デフォルトのタイムゾーンの設定
rootユーザーなら日時の設定もできる。

前日や翌日を算出するオプションがあるバージョンもある。[2007-09-21]
Linuxだと「--date」、BSDやGNUだと「-v」だそうだ。他のだと、タイムゾーンの環境変数TZを書き換えて補正する方法がよく使われるらしい。

df 〔-h ディレクトリ名〕

ファイルシステムのディスクの容量・使用率を表示する(disk free)。
ディレクトリ名が指定された場合、そのディレクトリが存在するデバイスの容量を表示する。

bdf

(HP-UX)バークレー版df[2007-09-15]

du 〔ディレクトリ名〕

ディスクの使用量を表示する(disk usage)。
サブディレクトリの使用量も再帰的に表示される。

> du -ko | sort -n		…ディレクトリを使用量順に表示[2006-02-14]

cat /proc/cpuinfo

CPU(MPU)の情報を表示する。[2004-06-27]

psrinfo

(Soralis)プロセッサー(CPU)情報を表示する。[2007-01-17]

uname -a

システム情報(OSのバージョン等)を表示する。MS-DOSのverに相当。[2005-10-12]

sysdef

(Soralis)システム定義を表示する。[2007-01-17]

/sbin/swapon -s

システムのスワップ量を表示する。

free

システムの物理メモリ・スワップメモリの使用量・空き容量(free)を表示する。

eeprom

BIOSのROMの設定情報を表示する。[2007-01-22]
設定方法の例

prtconf

(Soralis)システム構成(メモリサイズ等)を出力する。[2007-01-17]

mpstat

CPUの統計情報を表示する。[2007-01-17]
複数CPU(multi processor)のときに有益。

vmstat

仮想メモリの統計(virtual memory statistics)を表示する。

iostat

ディスクI/O(ついでにCPUも)の状況(input/output statistics)を表示する。[/2007-01-17]

ipcs

プロセス間通信オブジェクトの状態(IPC(inter-process communication)リソース情報)を表示する。[2005-03-09]
(共有メモリ(シェアードメモリ)セグメント・セマフォ配列・メッセージキュー)

sar

CPUの稼動状況を時系列で表示する。

top

CPUをたくさん使っている(すなわち、稼働率が高い(top))プロセスを表示し続ける。
topはLinux用? Solarisのprstatに相当。

prstat

CPUをたくさん使っているプロセスの情報(process status?)を表示し続ける。[2006-07-28]
prstatはSolaris用? topに相当。

glance

(HP-UX)CPUをたくさん使っているプロセスの情報を表示し続ける。[2007-09-12]

uptime

システムがどのくらいの期間稼働し続けているかを表示する。
システムが稼動している時間や現在のログインユーザー数を表示する。

nice コマンド
priocntl オプション コマンド

プロセスの優先順位を下げてコマンドを実行する。[2006-02-09]
(スーパーユーザーなら優先順位を上げることも可)


ディスクドライブ関連

mke2fs -c デバイス名

指定されたデバイス(例:/dev/hda1←ハードディスク)のファイルシステム(ext2形式)を作成(フォーマット?)する。 [2005-02-11]

e2fsck -c -f -y デバイス名

指定されたデバイス(例:/dev/hda1)のファイルシステムのチェックを行う。

fdisk デバイス名

指定されたデバイス(例:/dev/hda)のパーティション情報の表示・設定を行う。 [2005-02-11]


ネットワーク関連

ネットワークの設定については、設定ファイルを参照。
以下、「ターゲット」というのは「IPアドレス」又は「ホスト名」。

ping ターゲット

ターゲットが生きているかどうか(返事を返すのにどれくらい時間がかかるか)を調べる。MS-DOSのpingに相当。
ほっとくと永久に調べ続けるので、CTRL+Cで止める。
なお、pingに応答しない(ように設定されている)サーバーもあるので、その場合は意味が無い。

traceroute ターゲット

ターゲットまでに経由(trace route)しているサーバーの情報を表示する。MS-DOSのtracertに相当。

ifconfig

インターフェースの設定(interface config)を行う。rootユーザーでないと使えないかも。MS-DOSのipconfigとはちょっと違うかなぁ?

route

IP経路テーブル(route)の内容を表示する。MS-DOSのrouteに相当。[2006-01-28]

netstat

TCP・UDPソケットの状態(net status)を一覧表示する。MS-DOSのnetstatに相当。[2006-01-28]

hostname

現在ログインしているホストの名前(hostname)を表示する。MS-DOSのhostnameに相当。[2003-09-20]
「hostname --ip-address」で、ホスト名の代わりにIPアドレスを表示する。[2012-07-14]
関連:/etc/hosts

domainname

自分のシステムのNISドメイン名を表示する。[2007-01-22]

dnsdomainname

自分のシステムのDNSドメイン名を表示する。[2007-01-22]

nslookup ホスト名

指定されたホストのIPアドレスを表示(name server look up)する。MS-DOSのnslookupに相当。

dig IPアドレス

DNSを照会してドメイン名(マシン名)を取得する。[2007-01-17]

whois ドメイン名

IPアドレスを取得する。[2007-01-17]

nmblookup NetBIOS名
nmblookup -A IPアドレス

samba)NetBIOS名からIPアドレス、もしくは逆にIPアドレスからNetBIOS名を表示する。MS-DOSのnbtstatに相当。[2008-04-02]

nmap ターゲット

ターゲットマシンのポート(の状態(ポートが開いているかどうか))とサービス名の一覧を表示する。[2008-05-17]
MS-DOSのnetsh diag connect iphostに近い。

/etc/init.d/network restart

ネットワークの設定を(マシンの再起動をせずに)実際に反映する。


snoopオプション

パケットをキャプチャーする。[/2006-05-27]
rootユーザーでないと使えない。

# snoop -x 0 port 65500	…ポート65500を通るパケットの内容を十六進ダンプする

リモート接続

ネットワークの設定については、設定ファイルを参照。

telnet 〔ターゲット〕

ネットワーク経由で接続する。MS-DOSのtelnetに相当。
設定については、RedHatLinuxの場合はRedHatのtelnetの設定を参照。
また、接続先のファイルディスクリプタ―が足りなくなると接続できなくなる。
telnetで接続した時になかなかプロンプトが出てこない場合は、接続先のマシンのDNSの設定が間違っているかも。[2005-04-07]

ftpオプション〕 〔ターゲット〕

ファイル転送(file transfer protocol? program?)を行う。MS-DOSのftpに相当。
設定については、RedHatLinuxの場合はRedHatのftpの設定を参照。

バッチ処理で使いたい場合は、ncftpが便利かも。
が、ncftpが使えない場合はftpをシェルスクリプトで使う技も。[/2006-05-27]

ftp転送ツール
Antのftpタスク

ncftp < ファイル

高機能なftp。ファイルに書いたftpコマンドを実行したり出来る。[2003-09-20]

wget URL

指定されたウェブページを取得する(WWW(World Wide Web) get)。[2011-07-17]
設定ファイルは「/etc/wgetrc」や「~/.wgetrc」。

curl URL > ファイル

指定されたウェブページを取得する(cURL)。[2011-07-17]
設定ファイルは「~/.curlrc」。
HadoopのWebHDFSでの使用例

yum 命令 アプリケーション名

アプリケーションをダウンロードしてきてインストールする。[/2012-03-19]

# yum install hadoop-0.20

yumdownloader アプリケーション名

yumでインストールする代わりに)rpmファイルをダウンロードする。[2012-06-12]


rlogin

リモートログイン(remote login)。

rsync オプション 転送元 転送先

(主にリモートとローカルのサーバー間で)ファイルの同期(remote synchronize?)をとる。[2005-03-09]
転送効率のよいcpのような感じ?


ssh

telnetみたいなものだが、セキュリティーが強化されている(secure shell?)。
$HOME/.ssh/known_hostsにキー情報が入っている。sshで繋ぐ先の設定が変わって認証が通らなくなった場合、known_hostsの該当IPアドレスのキー情報を「#」でコメントアウトしてから繋ぎ直すといい場合があるかも?

scp

ftpみたいなものだが、セキュリティーが強化されている(secure copy?)。(sshの機能が使われている)[/2008-12-02]

$ scp t.txt user@host:dir	…t.txtを接続先のdirというディレクトリーに転送
user@host's password:	←パスワードを入力
$ scp user@host:dir/test.txt .	…接続先のdir/test.txtというファイルをローカルのカレントディレクトリーに転送
user@host's password:		←パスワードを入力

scp転送ツール
Antのscpタスク


環境変数関連

環境変数への値のセット方法は、シェルの種類によって違うので やっかい…。[2003-09-20/2008-04-26]
環境変数を使うときは、環境変数名の先頭に「$」を付ける。(環境変数の使用例
UNIXではシェル変数と環境変数という2種類があり、実行中のシェル内でのみ使えるのがシェル変数、そのシェルが終わった後も他の環境から使えるのが環境変数、かな。
(シェル変数がローカル、環境変数がグローバル、というイメージ)

Windowsの環境変数

set シェル変数=値

シェル変数に値をセットする。[/2015-04-04]
「シェル変数=」と書くと、シェル変数が削除されるわけではなく、シェル変数に空文字がセットされる。

パラメータを書かずにsetだけを実行すると、シェル変数の一覧が表示される。
また、echoを使ってシェル変数の中身が確認できる。

unset シェル変数

シェル変数を削除する。

@ シェル変数=式

(csh系の場合)setの代わりに@を使うと、演算を行うことが出来る(kshの「$((式))」と似たようなもの) 。MS-DOSのset /aに相当。[2006-06-30]
exprと同様、式の各項はスペースで区切る必要がある。ただしexprと異なり、乗算演算子「*」には「\」でのエスケープは不要。
(「@」と変数名の間にはスペースが必要。「=」の前後のスペースは有っても無くてもよい)

% @ test=1+2
@: Badly formed number.
% @ test=1 +2
@: Variable name must begin with a letter.
↓正
% @ test=1 + 2
% echo $test
3

export 変数〔=値〕

(bashの場合)setされた変数をエクスポートして環境変数に値をセットする。 エクスポートすると、その後で実行するシェルからもその環境変数の値が読み込める。
(kshの場合)環境変数に値を設定する。

export後にunsetすると、エクスポートされた環境変数も削除されるっぽい。

「-f」オプションを付けると、関数をエクスポートする。[2014-09-27]
関数をエクスポートしておくと、その後で実行するシェルからもその関数が使えるようになる。

$ myFunc() { echo my-func; }
$ export -f myFunc
$ bash -c myFunc		←エクスポートしていないとmyFuncは使えない

env

定義されている環境変数の一覧を表示する。MS-DOSのsetに相当。[2014-09-27]
引数を指定すると、コマンドの実行になる。→envによるコマンド実行


setenv 環境変数 値

(cshの場合)環境変数に値をセット(set environment)する。[2005-12-11]

source ファイル名

環境変数の定義を書いたファイルを指定し、そのファイルの環境変数を読み込む。[2006-01-12]
ログインし直さなくてもこのコマンドを使えば環境変数を更新できる。


read 変数…

標準入力から1行読み込み(read)、単語毎に分けて変数にセットする。MS-DOSのset /pが近い。[2006-06-27]
残った文章は、最後の変数にセットされる。
変数より単語が少なかった場合は、セットされなかった変数は空になる。

行が読み込めた場合は0を返し、終了(EOF)やエラーの場合は0以外を返すので、シェルスクリプトのwhileで複数行を処理するのに適している。
(キーボードから入力する場合(ほとんどはそうだが)、CTRL+Dで終了(EOF)になる)

シェルの種類によってオプションが色々あるが、bashの場合は「-s」を指定すると、入力した文字が画面に出なくなるらしい。(パスワードの入力に適している。他のシェルでもぜひ欲しい機能)

read aa bb
echo $aa $bb

コンパイル関連

ccオプション〕 ソースファイル…

Cコンパイラー(C言語のコンパイラー)。[/2006-05-13]
大抵のUNIXなら、標準で付いていると思う。

gcc 〔オプション〕 ソースファイル…

GNU(グニュー)-Cコンパイラー(C言語のコンパイラー)。[2006-04-14]
便利な拡張が多い。C言語標準の先を行き、標準に採用された文法もある。

lintオプション〕 ソースファイル…

C言語のソースチェックを行う。[2006-05-13]

pkg-config オプション

C言語のヘッダーファイルやライブラリー等の情報をコンパイルオプション形式で返す。[2012-11-18]
Cutterでの使用例

make

ファイルの時刻を比較して、必要なコンパイル等を行う(make)コマンド。[2003-10-12]

dbx 〔実行ファイル 〔コアファイル〕〕

デバッガー。MS-DOSのdebugに相当。[/2006-05-28]
実行ファイルのコンパイルのされ方によっては、coreファイルの中も簡単に調べられる。


その他

echoオプション〕 文字列

文字列を画面(標準出力)に表示(echo)する。MS-DOSのechoに相当。[/2003-10-06]

seq 終了値
seq 開始値 終了値
seq 開始値 増分 終了値

指定された範囲の数値を順番に表示する。[2011-10-26/2015-04-04]

$ seq 10 4 20
10
14
18

expr 値…

演算結果(expression?)を表示する。[/2006-01-28]

% expr 1 + 2
3

*」「<」「>」「|」「&」「(」「)」といった演算子を使うときは、その文字の直前に「\」を付ける。(付けないと、ワイルドカードリダイレクト扱いになってしまう)
もしくは、演算子をクォーテーション(「"」や「'」)で囲む。(式全体を囲むと 文字列扱いになってしまって計算されないので注意)
$(( 1 + 2 ))

test 値…

式を評価(test?)する。[2006-06-27]

% test "$VAR" = "ABC"
% echo $?
0

評価した結果が真のとき0、偽のとき0以外の値を返す。
主にシェルスクリプトで(それも大抵は代替表現「[〜]」で)使われる。

ntsysv

どのデーモンを起動させるかの設定を行う。


技術メモへ戻る / DOSコマンドへ行く
メールの送信先:ひしだま