簡易版コマンドマニュアルharuki/seminar/2001/unix... · web...

Click here to load reader

Upload: others

Post on 19-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

簡易版コマンドマニュアル

簡易版コマンドマニュアル

< 戻る > < トップページに戻る >

8hz-mp3 MP3のエンコーダ

wave形式からmp3形式にコンバートする。結構なスピードで動いてくれる。

% 8hz-mp3 sample.wav sample.mp3

一般的に、toshaでCDから吸い出し、soxでWAVE形式に変換して、8hz-mp3でMP3形式に変換し、それをmpg123、splay、xaudioなどで再生す

る。

(コマンドtosha,mpg123,sox,splay)

a2p awkスクリプトをperlスクリプトに変換する

% a2p sample.awk > sample.pl

sample.awk(awkスクリプト)をsample.pl(perlスクリプト)に変換する。

FreeBSDでは /usr/bin/a2pがperl4用、packageのperl5に含まれる/usr/local/bin/a2pがperl5用。

(コマンドawk,perl)

ac ログイン時間の記録を表示

ユーザ別のログイン時間の記録を表示する。

% ac

total 42.99

これは、acを実行したユーザは42.99時間ログインしていた、ということ。ただし、/var/log/wtmpの内容を元に時間を計算するので、

/var/log/wtmpをクリアしてしまうとログイン時間が0に戻ってしまう。-pオプションを使うと、毎日の使用時間を表示できる。

% ac -p

Dec 17 total 2.15

Dec 18 total 6.47

Dec 19 total 2.54

Dec 20 total 3.36

Dec 21 total 10.26

Dec 22 total 4.20

コマンド名が似ているが、acctonとは直接は関係ない。

(コマンドaccton,lastcomm,sa)

accton コマンドログ作成の許可/禁止

普通のUNIXは、デフォルトではコマンドログは取っていないので、ログを取りたい場合は明示的に指定しなければならない。

一般的にログファイルは /var/account/acctである。/var/account/acctが存在しなかったら、まず

# touch /var/account/acct

でファイルを作成し、その後

# accton /var/account/acct

とすると、それ以降に実行されたコマンド名がログに記録される。この記録はsaコマンドで見ることができる。ログ作成を停止したい場合

は、引数を与えず

# acctonとする。FreeBSDでは /etc/rc.confでログ作成のオン/オフを指定できる。(コマンドac,lastcomm,sa)

adduser 新規ユーザを追加する。FreeBSDのみ。

testというユーザを新しく登録する場合、

% adduser

Enter username [A-Za-z0-9_]: test (ログインネームを入力)

Enter full name []: test (リアルネーム。適当でよい)

Enter shell bash csh date no sh tcsh [tcsh]: tcsh (ログインシェルを指定)

Uid [1000]: 1000 (uidを指定)

Login group test [test]: test (グループ名を指定)などとする(実際にはもう少しメッセージが表示されるが省略した)。(コマンドrmuser)

afterstep NEXTSTEP風のウィンドウマネージャ

かっちょいい外見と柔軟なカスタマイズ機能が人気がある。確かに見栄えはよいが色数をかなり喰うので、Xが8bpp(最大256色)だとかなり

苦しい。この場合、減色したアイコンを使うとよい。

システム付属の設定を使うには、

% cp /usr/X11R6/lib/X11/afterstep/system.steprc ~/.steprcとして、~/.xsession(あるいは.xinitrc)の最後にexec afterstepと書けばよい。afterstep-1.0の設定方法はfvwm系とほぼ共通だったが、afterstep-1.4以降はかなり変わってしまった(らしい)。

(コマンドtwm,fvwm)

(設定ファイル ~/.steprc)

alias コマンドの別名を設定する。シェルの内部コマンド。

あるコマンドを別のコマンド名で登録することで、長いコマンド名を短縮できる。例えば

% alias ls ls -lFA

% alias du du -k

% alias memo mule ~/lib/memo

% alias f “find / -name ‘\!*’ -print”

など(これはcsh・tcshの場合)。csh・tcshでは、コマンドの前に‘\’を付けることで、エイリアスを解除できる。

% alias ls ls -lFA

% ls (ls -lFAと同じ)

% \ls (ただのlsと同じ)

エイリアスを解除するにはunaliasを使う。aliasを引数なしで実行すると、現在設定されているaliasの一覧を表示する。

sh・bash系の場合は

% alias ls=”ls -lFA”と「=」で結ばなくてはならない。

普通aliasは、~/.cshrcや~/.profileなどに記述しておく。こうすることで、ログインすると自動的にaliasが有効になる。

(コマンドunalias)

amp MPEG AUDIO Layer3 (MP3) プレイヤー

qメッセージを表示しない

(コマンドmpg123,sox,splay,xaudio,8hz-mp3)

apache 高機能WWWサーバ

シェア、信頼性、知名度など、総合的に見て一番よいと思われるWWWサーバ。CGI、SSIはもちろん、モジュールを組み込むことで色々な機能

を使うことができる。

(コマンドhttpd)

appres Xのリソースの設定を表示

例えばktermに関するリソースの一覧を表示するには

% appres KTermとする。

(コマンドlistres)

apropos キーワードにマッチしたコマンド名を表示

例えばファイルについて記述してあるマニュアルの一覧が欲しい場合は

% aprops file

とする。これは

% man -k fileと同じ。

(コマンドman)

ar アーカイバ

ファイルをまとめて保管しておくためのユーティリティ。目的としてはtarと同じだが、一般ユーザが使うことはあまりない。例えば、

/usr/lib/lib**.aなどのライブラリはarでアーカイブされている。

tアーカイブされているファイルの一覧を表示

(コマンドld,cc)

archie コマンドラインでFTPサイトから検索する。

archieについての詳しい説明はxarchieへ。

(コマンドxarchie)

arithmetic 簡単な算数の問題を出題する

o +-x/ 足し算、引き算、かけ算、割り算を出題する。引き算とかけ算のみをやりたかったら -o -xとする。

as アセンブラ

Cをコンパイルする場合は、ccが自動的にasを呼んでくれる。

(コマンドgas)

astrolog 占星術のプログラムらしい

at 実行時間を指定してコマンドを実行

% at 10am -f file

午前10時にシェルスクリプトfileを実行

% echo ls|at 4pm + 2 days

2日後の午後4時にlsを実行(コマンドcrontab,atq)

atq atで指定されたコマンドのリストを表示

(コマンドat)

attraction ボールがはねるデモ

(コマンドxscreensaver)

awk テキスト整形ツール(パイプ)

一昔前は、perlのようにテキスト処理ツールとして広く使われてきた。

例えば

% ls -l | awk ‘{print $5,$9}’とすることで、ファイルサイズとファイル名の一覧が得られる。

awkは一冊の本が書けるほど高機能なので、ここではこれ以上は解説しない。

(コマンドgawk,perl,sed,tr)

banner 大きい文字を出力

basename パス名+ファイル名からパス名を削除する

% basename /usr/local/bin/vi

vi

また、

% basenmae foo.dat .dat

とすると、foo.datから.datを削除したものを表示する。これを使って、

% foreach i ( *.c.orig )

foreach? cp $i ‘basename $i .orig‘

foreach? end

とすると、DOSでいう

COPY *.c.orig *.cが実現できる。

(コマンドdirname)

bash 高機能版sh

shのユーザインタフェース機能を強化したもの。

(コマンドsh,csh,tcsh)

(設定ファイル ~/.profile,~/.bash_profile)

bc 計算機

% bc

2+4 (入力)

6

a=34/2 (入力)

a-2 (入力)

15

quit (終了)

また、ファイルに計算式を記述して、ファイル名を指定してもよい。

% cat sample

5*8

quit

% bc sample

40

さらに標準入力から計算式を指定することもできる。

% echo ‘9*9’|bc

81

また、小数点以下の有効桁数はscaleという変数で設定できる(デフォルトは0)。

% bc

2/3

0 (デフォルトではscale=0なので小数点以下は表示されない) scale=4 (小数点以下4桁を表示)

2/3

.6666

(コマンドcalc,dc,hexcalc,xcalc)

bdes ファイルを暗号化・復号化する(パイプ)

ファイルを暗号化する。cryptと同じ機能を持つ。

sample.datというファイルを暗号化したい場合は

% bdes < sample.dat > sample.dat.encryped Enter key: (暗号化のキーを入力)

とする。復号化は、

% bdes -d < sample.dat.encryped > sample.dat.decryped Enter key: (暗号化時に入力したキーを入力)

FreeBSDの場合、DESをインストールすると/usr/bin/bdesにバイナリが置かれる。

(コマンドcrypt)

beav バイナリエディタ・ビュアー

muleライクな操作方法を持つ(が、結構違うところも多い)。日本語は表示できない(エディットはできる)。主なキーバインドは以下の通

り。

C-f 1文字進む

C-b 1文字戻る

C-n 1行進む

C-p 1行戻る

C-x C-sセーブ

C-x C-c終了

ESC s検索

ESC t次検索

C-x i 1バイト挿入

ESC d 1バイト削除

C-g現在入力中のコマンドを抜ける

ESC ? ヘルプを表示

C-x n次ウィンドウに移動

ESC a ASCII表示モードに切り替え

ESC < バッファの先頭に移動

ESC > バッファの終端に移動

詳しい説明が/usr/local/share/doc/beav/beav.txtに書いてある(英文)。

(コマンドhexdump,hd,od)

bg 指定したジョブをバックグラウンドで実行する。

ジョブ番号を指定しないとカレントジョブが操作対象になる。bgを使うということは、command & で起動するのと同じこと。(コマンドfg,jobs)

biff メールの到着を知らせるかどうかを設定する。

yメールの着信を知らせる

nメールの着信を知らせない

(コマンドxbiff,xpbiff)

bindkey tcshの機能をキーに割り付ける。tcshの内部コマンド。

引数なしで実行すると、現在のキーバインドを表示する。例えば、

% bindkey

Standard key bindings

“^@” -> set-mark-command

“^A” -> beginning-of-line

“^B” -> backward-char

...(略)...

だと、C-@はset-mark-command、C-aは行頭に移動、C-bは一文字戻る、という意味。-lオプションを付けると、全ての機能とその解説の

一覧が表示される。例えば、C-rはデフォルトではredisplayという機能が割り振られている。これを後方インクリメンタルサーチである

i-search-backに変えるには

% bindkey ^R i-search-backとすればよい。

(コマンドtcsh)

bison 構文解析パーサ生成プログラム

yaccの上位互換プログラム。GNUが作成・配布している。

(コマンドlex,flex,yacc)

builtins tcshの内部コマンドを表示

(コマンドtcsh)

cal カレンダーを表示する

y(数字) y年のカレンダーを表示する

% cal 1998 1998年のカレンダーを表示

m y(数字) y年m月のカレンダーを表示する

% cal jan今年の1月のカレンダーを表示

% cal sep 1998 1998年9月のカレンダーを表示

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

j 1月1日からの日数を表示する

(コマンドxcalender)

calc 簡易計算機

(コマンドbc,dc,hexcalc,xcalc)

cat ファイルの内容を表示する(パイプ)。複数のファイルを連結する

n行番号を表示

b行番号を表示。空行をカウントしない

s連続する空行を1行の空行として表示

vコントロールコードを文字列(^XやM-xなど)として表示する

t -vに加えて、ダブを^Iで表示する

u出力をバッファリングしない

splitで分割したファイルを結合するのにも使われる

% split sample

% ls x??

xaa xab xac

% cat xaa xab xac > sample2

(コマンドsplit)

catman manページの整形を行う

manで表示されるマニュアルは、nroff形式のファイルをnroffやgroffなどで整形して作られるので、作成に少し時間がかかる。一方、一度

参照されたマニュアルはプレインテキストとして保存されるので、二度目からはmanの実行が速くなる。catmanは事前に整形作業を行ってプ

レインテキストを作成しておくコマンドである。catmanを使わなくても、未整形のマニュアルはmanが整形してくれるので、manの速度に不

満がない場合はcatmanを使う必要はない。

% catman /usr/share/man/man1

/usr/share/man/man1以下のマニュアルを整形する。

(コマンドman,jcatman)

cc Cコンパイラ

FreeBSDでは標準のCコンパイラがgccになっている。またそれ以外のUNIXで、基本的なオプションは ほぼgccと共通なので、詳しい説明は

gccの項で行う。

(コマンドgcc,lint)

cd カレントディレクトリを変更する。

移動したいディレクトリを引数で指定する。引数なしで起動するとホームディレクトリに移動する。

% pwd

/home/hogehoge

% cd lib

% pwd

/home/hogehoge/lib

% cd /usr/local

% pwd

/usr/local

% cd

% pwd

/home/hogehoge

% cd ..

/home

(コマンドchdir,pwd)

cda CDプレイヤー

(コマンドcdcontrol,xmcd,cdplay)

cdcontrol CDプレイヤー

f dev CDのデバイス名を指定する。デバイス名はwcd0、cd0、mcd0など。デバイス名がwcd0の場合、-f /dev/wcd0でも-f wcd0でもよい。

% chmod 666 /dev/wcd0

が必要かも。環境変数DISCにCDのデバイス名を指定しておくと、-fでいちいちデバイス名を指定する必要がなくなる。

命令

playトラック (トラックを省略するとトラック1から演奏する)

pause演奏を中断する

stop演奏を停止する

resume演奏を再開する

info CDの演奏時間などの情報を表示

volume [0-255] [0-255] 左右のボリュームを設定。ボリュームは0-255で指定

volume muteボリュームを0にする

volume monoモノラルで出力

volume stereoステレオで出力

volume left左チャンネルだけ出力

volume right右チャンネルだけ出力

eject CDをイジェクトする

引数で命令を書いてもいいし(cdcontrol play 4など)、引数なしで起動すると対話モードに入るので、そこで命令を書いてもいい。

(コマンドcda,cdplayer,workman,xmcd,cdplay,tosha)

cdplay CDプレイヤー

% cdplayデバイス名

で起動する。

(コマンドcda,cdplayer,workman,xmcd,cdcontrol)

cdplayer CDプレイヤー

(コマンドcda,cdplay,cdcontrol,xmcd,workman)

cflow Cのソースを解析して、どの関数内からどの関数を読んでいるか表示する。

chdir カレントディレクトリを変更する。cdと同じ

(コマンドcd)

chflags ファイルのフラグを変更する

BSD系にはパーミッションとは別にファイルフラグという仕組みがあり、変更禁止、追加禁止などの設定をすることができる。

archアーカイブフラグ

dumpダンプフラグ

sappndシステムの追加専用フラグ

schgシステムの変更禁止フラグ

uappndユーザの追加専用フラグ

uchgユーザの変更禁止フラグ

また、これらの先頭にnoをつけるとフラグを消す意味がある

ファイルを変更禁止にするには

% chflags uchg file

元に戻すには

% chflags nouchg file

とする。例えばFreeBSDでは /kernelはchflags schg /kernelとされているので、mvやrmする際は

% chflags noschg /kernel

% rm /kernel

などと、一旦フラグをOFFにしなければならない

なお、ファイルフラグは4.4BSDから追加された。おそらくファイルフラグを実装しているのはFreeBSD、NetBSD、OpenBSD、BSDIのみだろう

と思われる。

(コマンドls)

chgrp ファイルの属するグループを変更する

% chgrp group file

ファイルfileのグループをgroupに変更する詳しい説明はchownで。

(コマンドchown)

chmod ファイルの属性を変更する。

全てのファイルにはパーミッションという属性があり、現在のパーミッションはls -lで調べることができる。

% ls -l sample.dat

rwxr-xr-- 1 user group 402 May 26 1997 sample.datの「rwxr-xr--」がパーミッション(その前の「-」はファイルタイプ)。

読み方は、まずパーミッションの表示を3文字ごとに区切って、「rwx」「r-x」「r--」とする。

1番目のセクション(rwx)はファイル所有者(この場合はuser)にとってのパーミッション

2番目のセクション(r-x)はファイル所有グループ(この場合はgropu)にとってのパーミッション

3番目のセクション(r--)はそれ以外のユーザにとってのパーミッション

となる。「r」は読み込み可能、「w」は書き込み可能属性、「x」は実行可能属性を意味する。

つまり

rwxr-xr-- 1 user group 402 May 26 1997 sample.datは、ユーザuserは、sample.datを読めるし、書き込めるし、実行できる

グループgroupに属するユーザは、sample.datを読めるし、実行できるが書き込みはできない

その他のユーザは、sample.datを読めるが、書き込き、実行はできない

ということを意味する。

chmodはこのパーミッションを変更するコマンドだが、そのファイルの所有者しかパーミッションを変更できない。

パーミッションの指定方法には絶対方式と相対方式がある。絶対方式は8進数の数字によって指定する。そのファイル・ディレクトリに持た

せたい属性を足し合わせればよい。

4000 user s-bitを立てる

2000 group s-bitを立てる

1000 sticky bitを立てる(現在はそれほど有効ではないらしい)

0400所有者が読み込める

0200所有者が書き込める

0100所有者が実行できる

0040 groupに属するユーザが読み込める

0020 groupに属するユーザが書き込める

0010 groupに属するユーザが実行できる

0004その他のユーザが読み込める

0002その他のユーザが書き込める

0001その他のユーザが実行できる

ファイルsample.datを所有者だけが読み込み・書き込みできるようにするには0400+0200+01000=0700で、

% chmod 0700 sample.dat

ファイルsampleを所有者が読み込み・書き込み・実行できて、groupに属するユーザとその他のユーザは読み込み・実行のみできるようにす

るには、0400+0200+0100+0040+0010+0004+0001=0755で

% chmod 0755 sampleとすればよい。

一方、相対方式は、

u,g,o,a所有者・グループに属するユーザ・その他のユーザ、全員

r,w,x読み込み属性・書き込み属性・実行属性

+/- 属性をONにする/OFFにする

を使う。これは現在のパーミッションの一部だけを変更する際に便利。

% chmod +x file

fileの実行属性をONにする

% chmod go-w file

fileのグループとその他のユーザの書き込み属性をOFFにする

% chmod a-x file

fileの全員の実行属性をOFFにする(chmod ugo-x fileと同じ)

RHシンボリックリンクのリンク先のファイルの属性を変更する(コマンドls,chown,chgrp,umask)

chown ファイルの所有者、所有グループを変更する

所有者を変更できるのはrootのみだが、グループは誰でも変更できる。

% chown user file

ファイルfileの所有者をユーザuserに変更する

% chown user:group file

ファイルfileの所有者/グループをuser/groupに変更する

% chown :group file

ファイルfileのグループをgroupに変更する

自分がどのグループに属しているかは、idコマンドでわかる。

% id uid=1001(hoge) gid=1001(hoge) groups=1001(hoge), 0(wheel), 5(operator)

のとき、

% touch sample

とすると、

% ls -l sample

rw-r—r-- 1 hoge hoge 0 Feb 1 13:47 sampleとなる。このとき、

% chown :グループ名sample

でsampleの所有グループを変更できるが、このときグループ名として指定できるのはhoge、wheel、operatorである。

(コマンドchgrp,chmod,id)

chpass ユーザの個人情報(シェル、リアルネームなど)を変更する。

環境変数EDITORに設定されているエディタで/etc/master.passwdを元にしたファイルを編集する

chsh ログインシェルを変更する

chshを起動すると、環境変数EDITORに指定されているエディタが起動されるので、

Shell: ...

という項目を書き換えてエディタを終了すればよい。tcshにしたいなら

Shell: /usr/local/bin/tcsh

とする。ログインシェルとして指定できるのは /etc/shellsの中に書かれているものだけである。

(コマンドpasswd,vipw)

(環境変数EDITOR)

(設定ファイル /etc/shells)

cjpeg 画像ファイルをjpeg形式に変換する

(コマンドxv)

cksum ファイルのチェックサムを表示する

oデフォルトのアルゴリズムではなく、古いアルゴリズムを使う

% cksum sample

123456789 10000 sample

チェックサムは123456789、ファイルサイズは10000、ファイル名はsample

現在はmd5を使う方がいいかもしれない。

(コマンドmd5)

clear 画面の消去

clearはシェルスクリプトで、内容は

#!/bin/sh -

exec tput clear

となっている。

clock 時計。Xアプリケーション

(コマンドdclocl,oclock)

cmp 2つのファイルの比較。最初に違いが見つかった行番号と文字数を表示する。

cmpはあまり多機能ではないので、2つのファイルが違うものかどうかを知りたいときだけ使うといいだろう。

(コマンドcomm,diff)

coco コード変換、コード判定を行う(パイプ)。muleのパッケージに含まれている

l対応しているコードの一覧を表示

q指定ファイルの中で使われているコードの種類を判定する

% cat sample.euc | coco -q

In (*euc-japan*unix): 4923 bytes

(コマンドnkf,qkc)

col フィルタ

オンラインマニュアルをテキストに整形できる。

% man ls | col -bfx > file

lsのオンラインマニュアルをプレインテキストに変換してfileに書き込む。

(コマンドman)

comm 2つのファイルの違いの表示。ファイル名に-を指定すると標準入力から読み込む。

(コマンドcmp,diff)

complete tcsh内部コマンド。コマンドの引数の補完の設定をする。

キータイプを減らすためには非常に有効な設定。書式はcomplete ‘補完の種類/補完する回数/補完の内容/’

補完する場所

n指定された引数がタイプされた場合、その次の引数を補完するp現在カーソルがある場所を補完する。

補完する回数

1 1回

無制限

補完の内容

aエイリアス

cコマンド

dディレクトリ

e環境変数

fファイル名

gグループ名

jジョブ

lリミット

sシェル変数

uユーザ名

: より詳しく指定する

% complete alias ‘p/1/a/’

エイリアスのみ補完候補に上げる

% complete set ‘p/1/s/’

シェル変数のみ

% complete setenv ‘p/1/e/’

環境変数のみ

% complete man ‘p/*/c/’

コマンドのみ(無制限)

% complete xdvi ‘p/1/f:*.dvi/’

拡張子がdviであるファイルのみ(コマンドuncomplete)

compress ファイルを圧縮する。

圧縮ファイル名は元ファイル名の最後に.Zを付けたもの。圧縮率はgzipの方が高い。

c圧縮結果を標準出力に書き出す。ファイル操作は行なわれない。

f圧縮ファイルが元ファイルより大きくなっても強制的に圧縮ファイルを作る

v圧縮率を表示

(コマンドuncompress,gzip)

convert 画像ファイルを変換する(ImageMagick)

どのフォーマットに変換するかは、拡張子から自動的に判別する

% convert sample.gif test.jpg

GIF形式のsample.gifからJPEG形式のtest.jpgに変換する(コマンドdisplay,identify,ImageMagick,xv)

cp ファイルをコピーする

% cp sample1.dat sample2.dat

sample1.datをsample2.datにコピー

% cp sample1.dat sample2.dat sample3.dat dir/

sample1.dat、sample2.dat、sample3.datをディレクトリdirにコピー

iコピー先のファイルが存在する場合、上書きしてよいか確認を求める

f上書き確認を行わない。これはデフォルトだが、alias cp cp -iとしている場合に便利

pタイムスタンプもそのままコピーする

Rディレクトリを再帰的にコピーする

ディレクトリdir1以下に、ファイルfoo、barがあった場合、

% cp -R dir1 dir2

は、ディレクトリdir2の下にディレクトリdir1をコピーする。つまり

dir2/dir1/foo、dir2/dir1/foo

というファイルが新たに作成される。一方、

% cp -R dir1/ dir2

とすると(‘/’を付けると)、dir2の下にdir1以下のファイル/ディレクトリをコピーする。つまり

dir2/foo、dir2/fooというファイルができる。

(コマンドmv)

cpp Cプリプロセッサ

Cのソースを解析し、#define、#include、#ifdefなどの処理を行う。通常Cコンパイラから自動的に呼ばれる。

(コマンドgcc)

cron スケジューラデーモン

crontabで設定したものを実行するデーモン。起動時に自動的に起動される。

(コマンドcrontab)

crontab スケジューラ。決められた時刻にプログラムを実行する。

定期的に実行するコマンドを管理する。日時を指定して、自動的にコマンドを実行することができる。設定方法はFreeBSDなら

% crontab設定ファイル名

とし、Solarisなら

% echo ‘分 時間 日 月 曜日 コマンド名’|crontab

% crontab < 設定ファイル名

のどちらでもいい。設定ファイルの中身は

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

とする。例えば、

* * * * * command

1分おきにcommandを実行する。

10 3 1 * * command

毎月1日の3時10分にcommandを実行する。

0 12 * * 0 command

毎週日曜日の12時にcommandを実行する。

実行結果はメールで自分自身に知らされる。メールを送ってほしくない場合は、

* * * * * command 1> /dev/null

と標準出力を出力しないようにすればよい。この場合はエラーが起こった時だけ(標準エラー出力に出力があった時だけ)メールが送られて

くるので便利である。エラーが起ころうと絶対にメールを送ってほしくない場合は

* * * * * command >/dev/null 2>&1

とすればよい。なお、crontabで実行されるときには、ほとんどの環境変数が指定されていないので注意が必要。基本的にcommandの部分に

指定するのはシェルスクリプトにしておいて、シェルスクリプトの先頭で環境変数の設定を行い、その後いろいろなコマンドを実行するよ

うにしておくのがベター。

l現在設定されているcrontabデータを表示する

r現在設定されているcrontabデータを解除する。

(コマンドat)

(設定ファイル /etc/crontab)

crypt 暗号化・復号化ツール

暗号化キーを与えることで、ファイルを暗号化することができる。もちろん暗号化するときに使ったキーを知らないと復号化できない。

FreeBSDの場合、米国の暗号輸出規制の影響か(どうかはわからないが)、cryptがない。代わりにbdesというツールがある。

(コマンドbdes)

csh Cシェル

C言語のような文法を持つシェル。とはいえC言語ができるからといってすぐ使えるというわけではない。ユーザインターフェイスが弱いの

で、ログインシェルとしてはtcshがよく使われる。また、スクリプトを書く際は、csh・tcshの機能が貧弱なことからsh、bashが使われることが多い。

f ~/.cshrcを読まず高速に起動する。シェルスクリプトの1行目で #!/bin/csh -fというのをよく見るが、その場合エイリアスやシ

ェル変数は使用できない

n文法のチェックだけを行なう。シェルスクリプトのチェックに使われる

s標準入力からコマンドを読み込む

v実行文を表示

x実行文を表示

(コマンドbash,sh,tcsh)

ctags 

cu cu -l cuaa0

cut テキストを切り出す(パイプ)

c[num1]-[num2] num1文字目からnum2文字目までを切り出す

% cut -c30 30文字目を切り出す

% cut -c20-30 20文字目から30文字目までを切り出す

% cut -c-30行頭から30文字目までを切り出す

% cut -c20- 20文字目以降を切り出す

d strフィールドを区切る文字として文字列strを使用する。

fフィールド番号 指定したフィールドを出力する。

(コマンドhead,tail)

date 現在の時刻を表示、設定する

u国際時間(おそらくグリニッジ標準時間)を表示

コマンドは +のあとに指定する

%y年

%m月

%d日

%h月(英語表示Jan,Feb...)

%H時

%M分

%S秒

%n改行

% date “+%y/%m/%d%n %H:%M:%S”

1997/2/25

06:04:41日付を設定できるのはrootのみ。

% date 9803301445

現在時刻を1998年3月31日14時45分に設定する。

% date 0632

現在時刻を6時32分に設定する。日付は変更しない。ネットワークを利用して正確な時刻に設定するにはntpdateを使う。(コマンドntpdate)

dc 逆ポーランド記法の計算機

計算式を逆ポーランドに変換すると、括弧の優先順位などを気にせず、先頭から順番に処理していくことがでる。逆ポーランドはコンピュ

―タ向けの書き方で、人間が使う場合は、bcなどを使うとよい。

% dc

2 3 + (2+3の結果をスタックにpush)

p (スタックの先頭を表示)

5 (結果は5)

1 2 + 5 3 - * ( (1+2)*(5-3)の結果をスタックをpush) p (スタックの先頭を表示)

6 (結果は6)

(コマンドbc,calc,xcalc,hexcalc)

dclock デジタル時計。Xアプリケーション

c 12時間表示

m 24時間表示

(コマンドclock,oclock,xclock)

decayscreen 画面が溶けていくデモ。スクリーンセーバか?

root画面全体を溶かす。

delay usec画面を溶かす処理の間にusecのウェイトをいれる。

(単位はマイクロセカンド)

df ディスクの使用状況を表示

ディスクのパーティションごとに、デバイス名、全容量、使用容量、残り容量、使用割合、マウント先を表示する。

k 512バイト単位ではなく、キロバイトで表示

i iノードの消費量も表示

dfで表示される使用割合(capacity)は110%が最高となっている。つまり、100%となっていても本当にディスクが一杯になっているわけでは

ない。一般ユーザは100%までしか使えないが、rootだけは110%まで使用することができる。

dga XFree86-DGAのテストプログラム

dialog 画面にダイアログボックスを表示してユーザの入力を待つ

yesnoコメント 縦 横yes/noを入力させる

msgboxコメント 縦 横 メッセージを表示する

prgboxコマンド 縦 横 コマンドの出力を表示

textboファイル名 縦 横 ファイルの内容を表示する

diff ファイルの違いを表示

ファイルの違いを表示する。

% diff file1 file2

とすると、file1とfile2の違いを表示する。ファイル名として - を指定すると標準入力と比較する。例えば

% command | diff - file

はcommandの出力とfileの内容を比較する。また、foo/bar.datとhoge/bar.datを比較したい場合のように、ファイル名が同一の場合は、

% diff foo/bar.dat hogeのように、一方のファイル名は省略できる。

aテキストファイルとして比較する

bスペース数の違いを無視する

B空行のある・なしの違いを無視する

briefファイルが同じかどうかだけを表示する(コマンドcmp,comm,diff3)

diff3 3つのファイルの違いを表示

(コマンドdiff)

dirname パス名+ファイル名からファイル名を削除する

(コマンドbasename)

display 画像を表示・編集する(ImageMagick)

(コマンドconvert,identify,ImageMagick,xv)

dmesg システムのメッセージを表示

ブート時のメッセージは一時停止できないので、あとからブート時のメッセージを表示するときにはdmesgを使う。

また、ディスクが一杯でファイルを書き込めなかった、などのエラーメッセージも表示される。しかしrc.localなどで表示されるメッセー

ジは表示されない。

du 指定ディレクトリ以下のディスク使用量を再帰的に表示する

Lシンボリックリンクも計算する

a各ファイルごとに使用量を表示する

d深さ 指定したディレクトリの深さだけしか表示しない。

k単位をKBで表示する

duはデフォルトでは、ブロック単位で値を表示する。一般的なUNIXは1ブロック=512バイトとなっているので、普通にduを実行す

ると、値は512KB単位になってしまう。1Kバイト単位で表示したい場合は、-kオプションを付ける。また、環境変数BLOCKSIZEに単

位を指定してもよい。

% du … 512バイト単位

% du -k … 1キロバイト単位

% setenv BLOCKSIZE 1024

% du … 1キロバイト単位

% setenv BLOCKSIZE 1048576

% du … 1メガバイト単位

% setenv BLOCKSIZE 1073741824

% du … 1ギガバイト単位

(環境変数BLOCKSIZE)

xファイルのマウントを越えない範囲で計算する

s指定ディレクトリのサブディレクトリの使用量を表示しない。

du / だと/usr /bin /etc、さらに/usr/bin /usr/local/binなどの使用量も表示するが、-sを指定すると

% du -s /

/ 6563241

などと1行しか表示されない

% du -s /*

とすると、サブディレクトリを表示せずに / 以下の各ディレクトリのサイズを表示する。

c全てのファイル・ディレクトリの容量の合計を表示 (FreeBSD2.2.7以降のみ)

(コマンドxdu)

dvi2tty DVIファイルをコンソールでプレビューする

普通はDVIファイルはxdviでプレビューするが、X環境が必要になる。dvi2ttyは、テキストの出力をするので、コンソール上からでもプレ

ビューできる。ただしその分、文字の大きさや数式などの表示能力は低い。

(コマンドxdvi)

echo 文字列を表示

シェルの内部コマンドのechoと、/bin/echoがある。

n改行をしない(コマンドprintf) (Cシェル変数echo_style)

elvis 日本語を表示できるvi

(コマンドvi)

emiclock 女の子の着せ替えができる時計

(コマンドdclock,oclock,xclock)

enlightenment グラフィカルなウィンドウマネージャ

あきれるほど高機能。あきれるほどのカスタマイズが可能。その分、あきれるほど重い。ごてごてしたウィンドウマネージャがお好みな

ら、試してみる価値は十分にある。

(コマンドtwm,fvwm,fvwm2,fvwm95-2,afterstep)

env 環境変数をセットしてコマンドを実行

特定のコマンドだけに環境変数を認識させたいときに使う。「-」を付けると、指定したもの以外の環境変数をクリアする。

% env - TEST=sample printenv

TEST=sample

% env LANG=ja_JP.EUC netscape &

(コマンドprintenv,setenv)

Eterm 背景に画像を貼れるターミナルソフト

背景に画像を貼ることができる。Enlightenmentと密接に関係しているが、他のウィンドウマネージャからも利用可能。

% Eterm—background-pixmap file

で、fileを背景に貼ることができる。fileは、pixmap、GIF、JPEGなど、ほとんどの画像形式をカバーしている。

その他のほとんどのオプションは、xterm、ktermなどと共通(ktermの項を参照)。

kterm、xtermのように歴史が古いわけではないので、結構不安定。ウィンドウサイズを変更すると簡単に落ちてくれる。日本語の表示、

kinput2からの入力もできるらしいが、こちらの環境では成功していない。

(コマンドenlightenment,kterm,xterm)

exit シェルを終了する

expand ファイル中のTABをスペースに変換する(パイプ)

(コマンドunexpand)

f77 Fortranコンパイラ

factor 数字が素数かどうか調べる

/usr/games/にインストールされるので注意。

(コマンドprimes)

fd ファイル・ディレクトリ管理ツール

fdformat フロッピーをフォーマットする

fetch ダウンローダー

(コマンドftp,ncftp,httpdown)

fg 指定したジョブをフォアグラウンドで実行する。ジョブ番号を指定しないとカレントジョブが操作対象になる

muleを実行中に一時的に他の事をしたいとき、いちいち終了するのは面倒なので(muleの起動が遅いから)、ctrl-Zで中断して別の事をや

り、その後fgでmuleの処理を行う、というふうにすると便利。

(コマンドbg,jobs)

file 指定されたファイルを解析して、ファイルの種類を表示する。

z指定ファイルが圧縮ファイルの場合、解凍して解析する。

Lシンボリックリンクの先のファイルを解析する認識できるファイルの一例をあげると、スクリプト

awk sed B-shell C-shell perl

ソース

アセンブラC LISP Pl/1

実行ファイル

DOS FreeBSD/i386 NetBSD/i386 PDP-11

ファイルシステム

ソケット ディレクトリ シンボリックリンク ブロックデバイス

その他

アスキーテキスト 英文 ポストスクリプトTeXDVI音声 画像 圧縮ファイルnews mail make nroff troffアーカイブSGML METAFONT

PGMファイルTIFF emacsバイトコンパイル ハッシュテーブル

ファイルの一部を解析するため、間違えることも多く、xpmはCのソース、HTMLは英文やCのソースと認識してしまう

また、コアダンプしたもののプログラム名も知ることができる

% file core (/bin/catをコアダンプしたもの)

core: i386 a.out core file from “cat”

file2c 標準入力から読み込んで、文字列をASCIIコードに変換する。

% echo abc|file2c

97,98,99,10

% echo abc|file2c ‘char buf[]={’ ‘};’

char buf[]={

97,98,99,10

};

find ファイルを検索する。

基本的には「find検索開始ディレクトリ 検索条件 コマンド」という書式で使う。

検索条件

name file検索するファイルを指定

atime [+-]date date日にアクセスされたファイル

atime 4 4日前にアクセスされたファイル

atime +4 5日以前にアクセスされたファイル

ctime [+-]date date日に修正されたファイル

ctime -4 3日以内に修正されたファイル

groupグループ名 指定のグループに属するファイル

type * ファイルの種類

bブロックデバイス

cキャラクタデバイス

dディレクトリ

fファイル

lシンボリックファイル

p名前付きパイプ

sソケット

and検索条件をANDで結ぶ。

% find .-name abc -and -type d

abcというディレクトリを検索

or検索条件をORで結ぶ

% find .-name abc -and -type d

abcというファイル・ディレクトリか、あるいはディレクトリを検索

コマンド

print検索ファイルを表示

ls検索ファイルを詳しく(ls -lと同じように)表示

exec検索ファイルを引数としてコマンドを実行

ok -execと同じだが、実行する際に確認を求める

% find / -name .cshrc -print

ルートディレクトリ以下の.cshrcを検索してフルパスを表示する

% find /usr/local -name ‘mule*’ -ls

/usr/local以下のmule*を検索して詳細な情報を表示する% find . -name ‘*~’ -exec rm {} \;

カレントディレクトリ以下の *~ をリストアップして「rm検索したファイル名」を実行する。{}の場所には検索したファイル名が入

る。;はコマンドの終了を表すが、シェルに;を解釈させず、findへ;を渡すためにエスケープしてある。また、{} と \ の間にはスペ

―スを空けなくてはならない。

% find . -name ‘*~’ -print -exec rm {} \;

コマンドは複数個指定できる。

% find . -name ‘*~’ -exec ls {} \; -exec rm {} \;

(この例はあまり意味はないが)-execを複数個指定してもよい。

他ユーザのディレクトリから検索する場合、読み込み権限のないディレクトリはpermission deniedと表示され、出力が見にくくなる。

csh・tcsh系なら

% (find / -name ‘fvwm*’ -print >/dev/tty ) >& /dev/null

とすることで、標準エラー出力のみを捨てることができる。sh・bash系なら

% find / -name ‘fvwm*’ -print 2>/dev/nullとすればよい。

(コマンドlocate)

finger 現在ログインしているユーザ名を表示。ユーザの個人情報を表示

引数なしで起動すると現在ログインしているユーザ名を表示する。ユーザ名を指定すると、そのユーザの個人情報を表示する。

% finger username

ローカルホストのユーザusernameについての情報を表示

% finger -l username

ローカルホストのユーザusernameについての詳細な情報を表示

% finger username@anotherhost

anotherhostのユーザusernameについての情報を表示。この場合、anotherhostにfingerデーモンが

動いている必要がある。

GNU fingerdを使っている場合、ホームディレクトリに.nofingerというファイルを作っておくと、そのユーザは存在しないように扱われ

る。

(設定ファイル ~/.nofinger,~/.plan,~/.project,users,who)

flame フラクタル画像を描く

(コマンドxscreensaver)

flex 字句解析パーサ生成プログラム

lexの上位互換プログラム。GNUが作成・配布している。

(コマンドlex,yacc,bison)

fold テキストを一定幅に整形する(パイプ)

foldはTABを認識しないので、TABを含むテキストはexpandで前処理する必要がある。また、FreeBSDの/usr/bin/foldは日本語をうまく扱え

なかった(FreeBSD2.2.6で確認)。

% ls -l | fold -w 40

1行を40文字に整形(コマンドcut,expand)

from 到着したメールと、送り主を表示

fメールボックスを指定する。デフォルトは/var/mail/* (コマンドmail,xbiff,xpbiff)

fsck ファイルシステムの矛盾の検出・修復

ファイルシステムをアンマウントせずにshutdownした場合、次回起動時に自動的に実行される。たまに自動修復に失敗するが、手動でfsck

を実行すれば大抵の場合はうまくいく。

fsckの実行の際には多くの質問をしてくるが、UNIXに精通していないと質問の意味が理解にしくいので、その場合fsck -yで実行すると、

全ての質問にyesと答えたことになる。

ftp ファイル転送ユーティリティ

anonymous FTPサイトからファイルをダウンロードする場合は、ユーザ名に「anonymous」か「ftp」、パスワードに自分のメールアドレスを

指定する。たまに「ftp」ではダメで、「anonymous」と入力しなければならないFTPサーバもある。

ftp://ftp.hoge.com/pub/sample/test.tgzをダウンロードする場合

% ftp ftp> open ftp.hoge.com(FTPサイトを指定)

Connected to ftp.hoge.com

220 ftp.hoge.com FTP server (UNIX® System V Release 4.0) ready User (ftp.hoge.com:(none)) : ftp(あるいはanonymous)

331 Password required for ftp

Password: 自分のメールアドレス(適当に入力しても問題ないが、マナーとしてメールアドレスを入力する)

230 User ftp logged in

ftp> cd pub/sample

ftp> get test.tgz

ftp> bye(FTP終了)

主要コマンド一覧

asciiテキストモードで転送。改行コードをUNIX風に変換する

binaryバイナリモードで転送。扱うファイルがテキスト以外ならこれが必要

openリモートホストに接続

lsファイル/ディレクトリ一覧を表示

cdリモートホストのカレントディレクトリを変更

lcdローカルホストのカレントディレクトリを変更

pwdリモートホストのカレントディレクトリを表示

bye ftpを終了

getファイルをリモートホストからローカルホストに転送する

putファイルをローカルホストからリモートホストに転送する

mget複数ファイルをget(メタキャラクタ使用可)

mput複数ファイルをput(メタキャラクタ使用可)

glob mget,mput使用時にメタキャラクタを展開する/展開しない(トグル)

hashファイルの転送状況を表示/非表示(トグル)。1024byteごとに#を表示

prompt mget,mput使用時に各ファイルを転送するかどうかについて、ユーザの許可を求める/求めない(トグル)

status現在の設定を表示(promptなど)

!commandローカルホストでコマンドを実行

主要オプション一覧

nコマンドを標準入力から読む。例えばftpcommand.datというファイルに

open hogehoge.ac.jp

user username passwd

binary

cd lib

lcd lib

get sample

put test

bye

などと書いておき、

% ftp -n < ftpcommand.dat

とすると、自動的にファイルのやりとりが行われる。もちろんプレインテキストにパスワードを書いておくことになるので、chmod

600としておくとよい。ほかにも自動でftpするには ~/.netrcに記述しておく方法があるらしいが、よく知らない。

(コマンドfetch,httpdown,ncftp,rcp,xarchie,xftp)

fvwm 複数の仮想画面を持つウィンドウマネージャ

ウィンドウマネージャの役割は各ウィンドウを管理することである。ウィンドウには枠やタイトルがあり、マウスをクリックすることでそ

のウィンドウがアクティブになったり、ウィンドウの移動ができる。ルートウィンドウ(背景)でマウスをクリックするとメニューが表示さ

れる。これらの機能はすべてウィンドウマネージャのおかげで実現されている。

ためしに、~/.xsessionのfvwm(あるいはtwm)という行をコメントアウトして、最後の行にktermとだけ書いてみると、ウィンドウの枠やタイ

トルがなくなり、移動やリサイズができなくなる。メニューもでなくなる。終了するには最後に起動したktermでexitとしなければならな

い。設定ファイルは~/.fvwmrc。

(コマンドafterstep,twm,fvwm2,fvwm95-2,enlightenment)

fvwm2 fvwmのバージョン2。

設定ファイルは~/.fvwm2rc。.fvwmrcとの互換性はないので注意。fvwmに比べてメモリを食うが、実装の仕方がきれいになった(らしい)。

システム付属の設定を使うには、

% cp /usr/X11R6/lib/X11/fvwm/system.fvwmrc ~/.fvwmrcとして、~/.xsession(あるいは.xinitrc)の最後にexec fvwmと書けばよい(コマンドafterstep,twm,fvwm,fvwm95-2,enlightenment)

fvwm95-2 Window95風のウィンドウマネージャ。

システム付属の設定を使うには、

% cp /usr/X11R6/lib/X11/fvwm95-2/system.fvwmrc ~/.fvwm2rc95として、~/.xsession(あるいは.xinitrc)の最後にexec fvwm95-2と書けばよい。(コマンドafterstep,twm,fvwm,fvwm2,enlightenment)

gas GNUアセンブラ

FreeBSDの場合は、システム標準のアセンブラasがgasになっている。

(コマンドas)

gawk GNU awk。日本語も扱える。

(コマンドawk)

gcc GNU Cコンパイラ

FreeBSD、Linuxなどは標準のCコンパイラがgccになっている。

Eプリプロセス後終了。コンパイルをしない

gバイナリにシンボルテーブルを付属させる。デバッガを使う場合はシンボルテーブルが必要になるので、-gオプションを付ける。バイナ

リからシンボルテーブルを削除するにはstripを使う。

(コマンドnm,strip)

Sコンパイル後終了。アセンブルをしない

cリンクを実行しない。*.oというオブジェクトファイルを生成した時点でストップする。

o生成する実行ファイル名を指定。-oを指定しないとa.outが生成される。

% cc -o bar foo.cとすると生成されるバイナリはbarとなる。

% cc foo.c

とするとa.outが生成される。

vバーボーズモード。

マクロ、インクルードパス、プリプロセッサ、アセンブラ、リンカに渡すオプションを全て表示する。

pipeテンポラリファイルを作らず、パイプで処理する。コンパイルにかかる時間が短縮されるが、より多量のメモリが必要。

ansi ANSI Cに準拠する。

よってGNU C独自の拡張機能、asm、inline、typeofが使えなくなる。

trigraphs ANSI Cのトライグラフを認識する

traditional伝統的なCの文法を認識する

wワーニングを表示しない

W... 各種のワーニングを表示するかどうか設定する

Wall -Wスイッチで指定できる全てのワーニングを表示する

O最適化したコードを生成する。

実行速度が速くなったり、バイナリのサイズを減らすことができる。-O2 -O3などと最適化の段階を指定することができる。数字が大

きいほど賢い最適化を行う。最適化を行うとコンパイルに時間がかかるので、デバッグ終了後に行うとよい。

Iインクルードファイルのパスを指定

インクルードファイルを取り込む場合は、ソースの中に

#include

#include

#include

など書く。インクルードファイルが /usr/include/ 以下にあるなら、-Iオプションを指定しなくても

/usr/include/stdio.h、/usr/include/sys/stat.h

がインクルードされる。しかし、X11/Xutil.hは、/usr/X11R6/include/X11/Xutil.hなので、

I/usr/X11R6/include

としなければならない。

lライブラリを指定

例・-lm -lnsl -lX11

例えば、ソース中でsin() を使った場合、sin() のライブラリを指定しないとリンク時にエラーとなる。sin() のライブラリは

/usr/lib/libm.aなので、「libm.a」から「lib」と「.a」を取り除いて「-lm」と指定する。/usr/lib/libtermcap.aをリンクした

い場合は -ltermcapとすればよい。

printf、strlenなどの基本的な関数は、全て /usr/lib/libc.aというライブラリに含まれているが、libc.aは標準でリンクされる

ので -lcと指定する必要はない。

Lライブラリのパスを指定

例・-L/usr/X11R6/lib

上で説明したライブラリのあるディレクトリにパスが通っていなかった場合、そのディレクトリを-Lオプションで指定する。例えば

X11関係の関数を使用した場合、/usr/X11R6/lib/libX11.aをリンクする必要があるので-lX11とする、しかし標準設定では

/usr/X11R6/libがライブラリの検索対象となっていないので、-L/usr/X11R6/libとする必要がある。

(コマンドcc,cpp)

gcore 実行中のプロセスのコアを得る

getopt 

gimp GNUが作成したグラフィックツール

(コマンドxpaint)

gmake GNU make。

makeの発展版。Makefile中での条件分岐などが記述できるようになっている。makeに失敗した場合は、gmakeを使うとうまくいく場合が多

い。

(コマンドmake)

gnuplot グラフ描画プログラム

2次元・3次元に対応したグラフ描画プログラム。

grdc コンソールに時計を表示

n(数字) n秒間だけ時計を表示する

grep 指定のパターンにマッチする行を表示(パイプ)

あるファイルの中に、指定の文字列を含む行を表示する。例えば、sample.datの中の「hoge」という文字列を含む行を表示したい場合、

% grep hoge sample.dat

とする。また、

% grep hoge file1 file2 file3

% grep hoge dir/*

などとすると、複数のファイルについて調べることができる。

検索したい文字列は正規表現として扱われる。例えば

% grep ‘[a-z]’ sample.dat

とすると、a〜zを含む行を全て表示する。ただし、grepはデフォルトでは限定正規表現しか扱えないことに注意(-Eオプションを参照)。

FreeBSDやLinuxは高機能版のgrepを標準採用しているが、Solarisなどはデフォルトのgrepは低機能版で、-eオプションや -Eオプ

ションを使うことができない。Solarisの場合、/usr/xpg4/bin/grepが高機能版のgrepとなっている。

numマッチした文字列の前後num行を表示する。デフォルトは-0

A numマッチした文字列の後に続くnum行を表示する

B numマッチした文字列の前のnum行を表示する

bマッチした文字列のオフセットを表示

C -2と同じ

cテキスト中に文字列が出現した回数を表示。

e明示的にパターンを指定する。複数個のパターンを指定するときに使う「rwx」と「r-x」を含む行を索しようとして、

% ls | grep ‘rwx’ ‘r-x’

とするとr-xというファイルから検索しようとしてエラーになってしまう。こういう場合は

% ls | grep -e ‘rwx’ -e ‘r-x’とすればよい。

E拡張正規表現を使う。

デフォルトでは 「?+|{}()」などは普通の文字として扱われてしまうので、「foo」と「bar」を含む行を表示しようとして、

% grep ‘foo|bar’ sample.txtとしても、’foo\|bar’ と認識されてしまう。

% grep -E ‘foo|bar’ sample.txtだと拡張正規表現として扱われるので、うまくいく。

f file file中の文字列を検索パターンとして使う。

i大文字小文字を区別しない。

l指定文字列を含むファイル名を表示。

L指定文字列を含まないファイル名を表示。

nマッチした文字列の行番号を表示する。

sエラーメッセージを抑制する(ファイルに対してのpermission deniedなど)

wファイル中の指定文字列が独立している場合だけマッチしたものとみなす。

% cat test

sample // 独立した文字列ではないのでマッチしない

samp // 記号や空白でかこまれた文字列はマッチする

samp2 // 数字は記号とみなされない

,samp-

(samp&

samp/

% grep -w samp test

samp

,samp-

(samp&

samp/

x指定文字列がそのまま1行にあるものだけマッチしたものとみなす(コマンドfgrep,egrep)

greynetic 長方形をランダムに描く

(コマンドxscreensaaver)

gs ポストスクリプト形式のファイルを表示する

g数字x数字 ウィンドウのサイズ。例・-g30x30

gunzip 圧縮されたファイルを展開する。

gzip -dと同じ。

(コマンドgzip,zcat)

gzcat 圧縮されたファイルの内容を解凍せずに表示。実行ファイルはgzipと同じ。

gzip -dcと同じ。また実行ファイルはzcatとも同じである。

(コマンドgzip,zcat,gunzip)

gzexe 実行ファイルを圧縮して、自己解凍型の実行ファイルを作る。

d自己解凍型の実行ファイルを解凍する

gzip 高機能なファイル圧縮・展開ツール。

compressより圧縮率が高く、ファイルの末尾が.gz、.z、.tgz、.taz、.tar.gz、.tar.Zのファイルを扱える。オプションなしで起動される

と圧縮(.gzをつける)する。

c圧縮・解凍の結果を標準出力に書き出す。ファイルへの書き込みは行なわない

d解凍する

l圧縮ファイルの内容を表示

nファイル名とタイムスタンプを保存する

rディレクトリを再帰的に扱う

vバーボーズモード

1圧縮にかかる時間を短くする

9圧縮率の高い圧縮方法を使う

gunzip、gzip、zcatとも内容は同じだが、どの名前で起動されたかによって解凍、圧縮、表示と動作を変える。どの名前で起動してもオプ

ションを明示的に指定することで、全ての機能を実行できる。

(コマンドcompress,gunzip,zcat)

halo 画面にサークルを描く

(コマンドxscreensaver)

halt シャットダウン

(コマンドshutdown,reboot)

hd ダンプ

ファイルの内容をダンプする。バイナリはhexdumpと同じ。DOSのdumpと似たような表示をする。

(コマンドhexdump,od,beav)

head ファイルの先頭部分を表示(パイプ)

n countファイルの先頭のcount行を表示(デフォルトは10)

% cat sample

aaa

bbb

ccc

% cat sample | head -n 2

aaa

bbb

(コマンドcut,tail)

helix らせん模様を描く

(コマンドxscreensaver)

hexcalc 2進、8進、10進、16進数の計算ができる電卓

(コマンドbc,calc,dc,xcalc)

hexdump ダンプ

b 1バイトごとに8進数で表示

c 1バイトことにキャラクタで表示

d 2バイトごとに10進数で表示

o 2バイトごとに8進数で表示

s nダンプを開始するオフセットを指定する

(コマンドbeav,hd,od)

history 過去にタイプしたコマンドを表示する。csh・tcsh内部コマンド。

数字を指定すると、現在からさかのぼってその数だけのヒストリを表示する。

hopalong フラクタル画像を描く

(コマンドxscreensaver)

host 

hostname ホスト名を表示

一般ユーザはホスト名を表示することしかできないが、rootだけは

# hostnameホスト名

とすることで、ホスト名を変更することができる。FreeBSDでは /etc/rc.confの中の

hostname = “ホスト名”の部分を変更することで、ホスト名を設定できる。(設定ファイル /etc/rc.conf)

httpd WWWサーバ

慣例として、多くのWWWサーバの実行ファイル名はhttpdとなっている。

(コマンドapache)

httpdown 自動的にHTTPサーバ、FTPサーバからファイルをダウンロードする。

指定のURLから再帰的にファイルをダウンロードできる。正規表現によってダウンロードするファイル名を指定できる。また、何段階リンク

をたどるかも指定できる。ただしリンク名の自動張り変えは(少なくとも現在は)できない。

入手先はhttp://www.mechatronics.mech.tohoku.ac.jp/~kumagai/bins/kuma/httpdown30.htmlで、日本語のマニュアルがある。

まず設定ファイルを書く必要がある。

% cat httpdown.cnf

level 5

start http://www.foo.com/bar/baz.html

allow http://www.foo.com/bar/

allow !*.gif

httpproxy http://proxy.hoge.ac.jp:8080/

この例は

http://www.foo.com/bar/baz.htmlを始点にリンクを5段階たどって、http://www.foo.com/bar/ 以下のコンテンツをダウンロードす

るが、拡張子が .gifであるものはダウンロードしない。また、Proxyとしてhttp://proxy.hoge.ac.jp:8080/ を使用する。

という意味。

% httpdown httpdown.cnfとすることで実行できる。

hypercube 4次元物体を2次元で表示

id ユーザのUID、GID、グループ名を表示

ユーザのUID、GID、所属しているグループ名を表示する。

% id uid=1001(foo) gid=1001(foo) groups=1001(foo), 0(wheel), 5(operator)

この場合、ユーザfooのUIDは1001、GIDは1001であり、foo、wheel、opratorの3つのグループに属している。

(コマンドchgrp,vipw,whoami,/etc/group)

identify 指定した画像ファイルのフォーマット・サイズなど調べる(ImageMagick)

(コマンドconvert,display,ImageMagick,xv)

ifconfig ネットワークの設定を行う

ImageMagick グラフィックユーティリティ

ImageMagickというのはパッケージ名で、display、convert、identify、importなどの各プログラムから構成されている。画像表示、フォー

マット変換、各種画像操作などが行える。

(コマンドdisplay,convert,identify,import,xv,netpbm)

import ウィンドウの画像をダンプする

importを実行した後、マウスでダンプしたいウィンドウを選択すると、magick.psというファイルにPostScript形式で画像が保存される。

windowウィンドウID

ダンプするウィンドウIDを指定する。rootを指定するとルートウィンドウ(画面全体)をダンプする。

(コマンドxwininfo)

frameウィンドウマネージャがつけるウィンドウ枠も保存する。

monochrome白黒画像で保存

% import -window 0x10000d window.jpg

ウィンドウIDが0x10000dのウィンドウを(JPEG形式で)window.jpgに保存する。

(コマンドxwd,display,ImageMagick)

imsmap フラクタル画像を描く

(コマンドxscrennsaver)

indent Cのソースを整形する(パイプ)

% indent foo.cでfoo.cを直接書き換える。foo.cはfoo.c.BAKというファイル名に置き換えられる。

% indent foo.c bar.cでfoo.cを整形したものをbar.cに書き込む。foo.cは変化しない。

br if (...){

...

} という形にする

i数字 インデントあたりのスペースの数。デフォルトは4。

pcs関数の‘(‘前にスペースを入れる。 int foo (); などとする

scコメントを

/*

* ......

*/

とする。

nsc /*

......

*/

とする。

inetd portを見張り、クライアントからのリクエストがあるとサーバソフトを起動する。

一口でサーバといっても、ftpサーバ、rshサーバ、rloginサーバ、rcpサーバ、WWWサーバ、telnetサーバ、SMTPサーバ、fingerサーバ、

pop3サーバなどいろいろある。これらのサーバプログラムをホストに常時実行させておくと、メモリは喰うし負荷はかかるしであまりいい

ことはない。そこでinetdはクライアントからの要求を見張り、そのクライアントに対応する要求があった時点で初めてサーバプログラムを

起動する。普通、inetdはブート時に自動的に起動される。(設定ファイル /etc/inetd.conf)

jcatman 日本語マニュアル対応のcatman

日本語マニュアルをcatmanで整形すると日本語部分が化けてしまう。この場合はjcatmanを使えばよい。

% jcatman /usr/local/man/ja_JP.EUC/man1

/usr/local/man/ja_JP.EUC/man1以下のマニュアルを整形する。

(コマンドcatman)

jlatex TeXコンパイラ

TeXのソースをエディタで作成し

% jlatex sample.texとするとsample.dviができる。

% xdvi sample.dviとすることで印刷時の仕上りを見ることができる。(コマンドxdvi)

jless 日本語を表示できるless

setenv LANG japanese、setenv LANG ja_JP.EUC、setenv LANG ja_JP.JIS、setenv LANG ja_JP.SJIS、setenv LESSCHARSET japanese、

setenv LESSCHARSET ja_JP.EUCなどとすれば日本語が表示できる。

(コマンドless)

jnethack ローグ風のゲーム(日本語版)

テキスト表示のダンジョン探検ゲーム

jobs 実行中のジョブを表示

% more sample.dat

^Z(ctrl-z・moreを中断)

% jobs

[1] + Suspended more sample.dat

% mule test.c

^Z(muleを中断)

% jobs

[1] -Suspended more sample.dat

[2] + Suspended mule test.c

% kill %2

[2] Terminated mule test.c % fg %1 (moreの処理に戻る)

(コマンドfg,bg,kill)

jot 連続・ランダムデータを生成

% jot 200

1〜200までの連続した数字列を生成する

rランダムな1〜100の数字列を生成する

% jot -r 500

1〜100のランダムな数字を500個生成する

kakasi 漢字をひらがな・カタカナ・ローマ字に変換

% echo ‘漢字を平仮名に’ | kakasi -JH

かんじをひらがなに

% echo ‘漢字をカタカナに’ | kakasi -JK

カンジをヒラガナに

% echo ‘全てをローマ字に’ | kakasi -Ha -Ka -Ja -Ea -ka

subetewohiraganani

kbdcontrol キーボードタイプを決める

コンソールでのキーボードのタイプを決める。X上ではこの設定は関係ない。普通は /etc/rc.confに書いた定義を元に、ブート時に

/etc/rc.localでキーボードタイプがセットされる。手動で設定したい場合は

% kbdcontrol -l /usr/share/sysconf/keymaps/jp.106xなどとする。

(設定ファイル /etc/rc.conf,/usr/share/sysconf/keymaps/*)

kcon キーボードのコントロールとマッピング

kon コンソールで日本語を表示する

普通はX window system上でないと日本語を表示することはできないが、konを使うとX window systemなしで日本語を表示することができ

る。

kill プロセス・ジョブを殺す

プログラムを実行していて、入力を受け付けなくなり、C-cでも終了しなくなった場合、killでシグナルを送って停止させる。まず、psコマ

ンドで殺したいプロセスのプロセス番号を確認し、

% killプロセス番号

とする。もういちどpsコマンドで確認して、まだプロセスが生きていたら、

% kill -9プロセス番号とすると確実に終了させることができる。

lシグナルの一覧を表示

% kill -l

HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM

URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH

INFO USR1 USR2

主要シグナルの説明

INT中断(インタラプト)。コマンドラインでC-cすると送られるシグナル。

TERMプロセスを終了させる。

STOPプロセスを中断させる。CONTで再開できる。C-zのサスペンドと同じ。

CONT STOPで中断したプロセスを再開させる。

KILLプロセスを強制終了させる

シグナルはシグナル名で指定してもよいし、シグナルの番号でもよい。例えばHUPシグナルは1番(kill -lで一番目に表示される)なので、

% kill -HUPプロセス番号

% kill -1プロセス番号は同じである。また、kill -KILLとkill -9も同じである。プロセスはシグナルを受けてもそれを無視することができる。例えばHUPシグナルをブロックしていれば、C-cで終了しないようにできる。

しかしブロックできないシグナルが一つだけある。それはKILLシグナル(-9)で、このシグナルを受けると、あらゆるプロセスはOSによって

強制的に終了させられる。

(コマンドfg,bg,killall,ps,suspend,xkill)

killall コマンド名を指定してkill

lシグナル一覧を表示

mコマンド名を正規表現で指定する

sシグナルを送るプロセスを表示する。実際にはシグナルは送らない。

% kterm & (ktermをバックグラウンドで実行)

[1] 4985

% killall -s kterm (実際にはkillしない)

kill -TERM 4985

% killall kterm (ktermをkill)

% killall -HUP inetd (inetdを再起動)

もし指定のコマンドに該当するものが複数個ある場合は、全てkillする。だから上の例をX上のktermから実行すると、\

全てのktermが終了してしまう。

killallのオプションを複数指定するときは

% killall -ms

などとせずに

% killall -m -sとしなくてはならない。

(コマンドkill)

kinput2 日本語を入力するためのツール。

kterm ターミナルエミュレータ。xtermの日本語対応版

Ctrlを押しながら、マウスの各ボタンを押すことでメニューが出てくる。知らないと困るのが、Ctrl+真ん中ボタンで表示される「VT

Options」の中の「Do Full Reset」。バイナリファイルを表示して場合、例えば誤ってcat /bin/lsを実行した場合、画面が化けたままにな

ってしまうことがある。こういうときに「Do Full Reset」を行うことで、回復することができる。

T strウィンドウのタイトルを指定する。省略すると「kterm」となる。

fn fontnameフォント名

fb fontname太字(bold)のフォント名

fk fontname漢字フォント名

fkb fontname太字(bold)の漢字フォント名

指定可能はフォントはxlsfontsなどで調べることができる(コマンドxlsfonts)

km kanjimode

漢字コードを指定する。-km euc、-km jis、-km sjisなど。

Cコンソールのメッセージを表示する(/dev/console宛に出力された文字も出力されるようになる)

(コマンドxconsole)

cr colornameカーソル部分の色を指定する。

hc colornameマウスでドラッグした部分の色を指定する。このオプションはxtermのみ使用可で、ktermでは使えないらしい。色の名前はshowrgb、xcolorsなどで調べることができる。(コマンドshowrgb,xcolors)

b数字kterm内部の端から、ウィンドウ自体の端までのドット数。

eコマンド

ktermを実行すると、そのウィンドウの中でプログラムを実行する。

% kterm -e top

などと指定する。そのプログラムが終了すると自動的にktermも閉じてしまうので、

% kterm -e ls

は、lsの実行が終ると一瞬でktermも閉じてしまう。また、-eオプションは最後に指定すること。

% kterm -e top -cr redはうまくいかない。

% kterm -cr red -e topとすること。

mc数字 マウスクリックの際に、ダブル/トリプルクリックと認識される最大時間を指定する。

% kterm -mc 300とすると、300ミリ秒(0.3秒)越えると、ダブルクリックとは認識されない。

sbスクロールバーを表示する

sl数字 スクロールバーで戻ることができる行数を指定する。デフォルトは64。

r文字色と背景色を逆にする

% kterm -T kterm1 -fn 8x16 -fk kanji16 -km euc -cr redなどと指定する。

(コマンドxterm,Eterm)

last 過去のブート、シャットダウン、ログインの記録を表示

% last user

ユーザ名userのログイン情報を表示

lastcomm これまで実行されたコマンドの一覧を表示

過去に実行されたコマンドを表示する。lastcommを実行するためには、acctonでシステムのログを作成しておく必要がある。(コマンドac,accton,sa)

ld リンクエディタ

(コマンドldd)

ldconfig 共有クライブラリを検索するパスを設定

lddで説明したダイナミックリンクは、ライブラリがどのディレクトリに置いてあるかという情報が必要になる。一般的には /usr/lib、

/usr/X11R6/lib、/usr/local/libなどに共有ライブラリが置かれている。

(コマンドldd)

ldd ダイナミックリンクの関係を表示

プログラムを作成する場合、既に用意してあるライブラリを利用することが多い。例えばほとんどのプログラムではprintf(3) を使うが、

だからといってほとんどのバイナリにprintf(3) のコードを埋め込むのはディスクスペースの無駄である。そこでコンパイル時にライブラ

リをリンクするのではなく、実行時に動的にリンクを行うこともできる。lddはコマンドがどのランタイムライブラリを参照しているか表示

する。

% ldd /usr/X11R6/bin/kterm

/usr/X11R6/bin/kterm:

lXt.6 => /usr/X11R6/lib/libXt.so.6.0 (0x806f000)

lX11.6 => /usr/X11R6/lib/libX11.so.6.1 (0x80bd000)

lXmu.6 => /usr/X11R6/lib/libXmu.so.6.0 (0x805f000)

lSM.6 => /usr/X11R6/lib/libSM.so.6.0 (0x8153000)

lICE.6 => /usr/X11R6/lib/libICE.so.6.0 (0x815b000)

lgnumalloc.2 => /usr/lib/libgnumalloc.so.2.0 (0x816d000)

ltermcap.2 => /usr/lib/libtermcap.so.2.1 (0x8171000)

lc.2 => /usr/lib/libc.so.2.2 (0x8175000)

ダイナミックリンクは、バイナリのサイズが少なくなることとひきかえに、そのバイナリ単独での実行が不可能になるという欠点がある。

この例ではktermは8つのランタイムライブラリを実行時に必要とし、1つでも欠けると実行することはできない。もしOSの起動時に何か不具

合があってシングルユーザモードで起動したとき、/bin/lsや/bin/mountが/usr/lib/libc.*を必要としたとしても、/usrがマウントされて

いないと復旧作業はできなくなってしまう。そのため、/bin、/sbinなどのコマンドはランタイムライブラリを必要としないように作られて

いる。

ktermのようなリンク方式を、ダイナミックリンク・動的リンクと言い、lsのリンク方式をスタティックリンク・静的リンクという。静的に

リンクされたバイナリをlddで見ると

% ldd /bin/ls

ldd: /bin/ls: not a dynamic executable

となる。

(コマンドar,ld,ldconifg)

(環境変数LD_LIBRARY_PATH)

leave ログアウトする予定の時間を知らせる

% leave 1630

午後4時30分にログアウトする予定。5分前にアラームとメッセージが表示され、4時30分にもアラームとメッセージで時間になったこ

とを知らせる。その後1分おきにアラームとメッセージを表示する。

% leave +30

今から30分後にログアウトする予定

less ファイルのビュアー(パイプ)

moreではできなかったバックスクロールに対応、他にもgzipで圧縮されたファイルをそのまま見られるなど、いろいろな機能が付け加えら

れた。日本語を表示させるにはjlessを使う。

キーバインド

数字 指定行に移動

f SPACE ^V ^F 1画面前進

b ^B ESC-v 1画面後退

RETURN e j ^N ^E ^J 1行前進

y k ^Y ^P ^K 1行後退

d ^D 1/2画面前進

u ^U 1/2画面後退

r ^R ^L画面を再表示

Rファイルを読み直して再表示

g < ESC-< 先頭行に移動

G > ESC-> 最終行に移動

/[!*@]文字列 文字列を前方検索(正規表現も可能)

/!文字列 文字列を含まない行を検索

/*文字列 コマンドラインで指定した全てのファイルを検索

/@文字列 ファイルの先頭から検索

?[!*@]文字列 文字列を後方検索。/と同じ機能を持つ

n次検索

N nとは逆方向に次検索

ESC-u検索にマッチした部分の反転表示を解除

vエディタを起動して現在表示しているファイル編集

(環境変数EDITOR)

= ^G :f現在位置の行数、バイト数、パーセンテージを表示

h簡易ヘルプを表示

Vバージョンを表示

q :q :Q ZZ lessを終了

!(リターン) シェルを起動(環境変数SHELL)

!コマンド コマンドを実行

!! 直前の!コマンドを再実行

オプションは以下の通り。環境変数LESSにオプションを設定することで、デフォルトオプションとして扱われる。

eファイル終端に2度到達すると終了する

Eファイル終端に1度到達すると終了する

fディレクトリや実行ファイルも表示する

gサーチにマッチした文字列のうち最後にマッチしたものだけを反転表示する

Gサーチにマッチした文字列を反転表示しない

jn(数字) ターゲットラインの位置を指定する。ターゲットラインとは、サーチにマッチした文字列が表示される行のこと。-j10と

すると、サーチにマッチした文字列は上から10行目に表示される。-j-10とすると、下から10行目に表示される。

kファイル名lesskeyで作られたキーバインド設定ファイルを読み込む

mプロンプトに常に現在行のパーセンテージを表示する

Mプロンプトに常に現在行のパーセンテージと行数を表示する

n行数計算をしない。非常にサイズの大きいファイルの場合動作が高速化される

N各行の先頭に行番号を表示する

oファイル名 入力をファイルにコピーする。パイプから入力した場合に有用

Oファイル名 -oと同じだが、同名のファイルがすでに存在したら上書きする

pパターン 起動後、指定されたパターンをサーチする

qエラーの際にあまりビープ音を鳴らさない(状況による)

Qエラーの際にビープ音を鳴らさない

rコントロールコードをそのまま表示する。デフォルトではcontrol-Aは^Aと表示されるが、-rを指定するとそのまま(?)表示する。

これによって、catで日本語が表示できる環境なら、less -rで日本語が表示できるかも。

S 1行の文字数が画面の横幅を超えた場合、折り返さず、はみでた部分は表示しない

Vバージョンを表示

w空行を表す記号に~を表示しない

xn(数字) TAB幅をnに設定する。デフォルトは8

zn(数字) fキー、bキーを押した時にスクロールする行数を指定する。nがマイナスなら(スクリーンの縦幅-n)行スクロールする

(コマンドjless,more,xless)

lesskey lessのキーバインドを変更

lex 字句解析パーサ生成プログラム

yaccと組み合わせて使うことが多いが、lex単独でも動作する。ひとことで言うと、perlの

while (){

if ( m/^[0-9]+\s*[^a-z]$/ )

...

}

)

などのような正規表現を扱うプログラムをCで比較的簡単に書くことができる。

(コマンドflex,yacc,bison)

lha LHA、LZHファイルの管理ツール

lアーカイブされているファイルの一覧を表示

xアーカイブされているファイルを展開

(コマンドtar)

limit プロセスへの各種の制限を設定する。csh、tcshの内部コマンド。

limitで設定できる制限値には、一般ユーザが変更できる(普通の)リミットと、rootしか変更できないハードリミットがある。引数なしで

limitを実行すると

% limit

cputime unlimited

filesize unlimited

datasize 16384 kbytes

stacksize 8192 kbytes

coredumpsize unlimited

memoryuse 30720 kbytes

descriptors 64

memorylocked 10240 kbytes

maxproc 64

現在のリミット値が表示される。一方、-hオプションをつけると

% limit -h

cputime unlimited

filesize unlimited

datasize 131072 kbytes

stacksize 65536 kbytes

coredumpsize unlimited

memoryuse unlimited

descriptors 360

memorylocked 124084 kbytes

maxproc 179

ハードリミットが表示される。この状態では、最大プロセス数は64(maxproc=64だから)だが、

% limit maxproc 179

とすることで、最大プロセス数を179にすることができる。しかし一般ユーザは

% limit maxproc 180

などとハードリミットを越える値をセットすることはできない。ハードリミット緩めることができるのはrootのみである。

limitの各項目の意味以下の通り。

cputime

各プロセスがCPUを使うことのできる時間の上限

filesize

1つのファイルの長さの上限

datasize

sbrk(2) を用いてプログラムのテキスト領域の末尾を超えて増加させることのできるdata+stack領域のサイズの上限

stacksize

自動的に拡張されるスタックのサイズの上限

coredumpsize

コアダンプした際に作られるコアファイルのサイズの上限

% limit coredumpsize 0

で、coreファイルのサイズを0にすることができる。

memoryuse

各プロセスが使用できるメモリ使用量

descriptors

1ユーザが同時にオープン可能なファイル数の上限

memorylocked

???

maxproc

1ユーザが同時に実行可能なプロセス数の上限

値の単位、cputimeのみ

% limit cputime 1 1秒

% limit cputime 1m 1分

% limit cputime 1h 1時間

% limit cputime 1:1 1分1秒

で、maxproc、descriptorsはプロセス、デスクリプタの個数、その他は

% limit filesize 1 1キロバイト

% limit filesize 1m 1メガバイト

などと指定する。

(prfprg unlimit)

lint Cプログラムの文法チェッカ

(コマンドgcc)

listres ウィジェットリソースのリストを表示

はっきり言って、何のコマンドなのかよーわかりまへん。

(コマンドappres)

ln ハードリンク・シンボリックリンクを張る。

「リンクを張る」とはファイルの別名を作るようなもので、

% ln file-a file-b

とすることで、file-aをfile-bという別名で参照することができる。当然file-aは既に存在している必要があり、filebは存在していてはい

けない。

% ln file-a file-b

とするのをハードリンクといい、

% ln -s file-a file-b

をシンボリックリンクという。ハードリンクではファイルシステム(dfで表示されるもの)をまたぐことができないが、シンボリックリンク

なら別のファイルシステムへもリンクを張ることができる。普通はシンボリックリンクを使う方が管理がしやすい(ls -lでリンク先が表示

されるから)。また、

% cd /tmp; ln -s /home/foo/bar/sample

% ln -s /home/foo/bar/sample /tmp/sampleと同じ。

fすでにリンクが張られていたら、リンクを付け替える。

% ln -s file link

% ln -s file2 link

ln: link: File