UNIX/Linux コマンド・小技集

知っておくと便利・ちょっと自慢できる UNIX系OS で利用可能な小技集です。


Caps_Lock キーと Ctrl キーの入れ替え

通常の日本語キーボードは「Ctrl」キーが左下で「Caps Lock」キーが「A」キーの左側にあります。

UNIXを日本語キーボードで使っている人は、ほとんどは「Ctrl」キーと「Caps Lock」キーの位置を入れ替えて使っていることでしょう。

キーの入れ替えには、~/.Xmodmap を作成します。以下に記述形式を示します。

!!! !マークはコメントになります!!!

! delete keyをBackspaceにする
keycode 59 = BackSpace
! Caps_Lockキーを無効にする
remove Lock = Caps_Lock
! Caps_LockキーにEscapeキーを割り当てる
keysym Caps_Lock = Escape
! Caps_Lockキーを有効にする
add Lock = Caps_Lock

さまざまな、キーボードを利用しなければならない環境の方は、 ~/.initrc に ~/.Xmodmap の実行を記述しておくと不都合が生じます。

この場合、環境に合わせて以下のコマンドを入力する必要があります。

xmodmap ~/.Xmodmap

これが面倒な方は、~/.Xmodmap を以下のように書き換えると、 ファイル名で設定可能です(ただし実行ファイルにしておく必要があります)。

xmodmap - << END
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
END

因みに、入れ替えではなくてCaps LockにControlキーを割り当てたい場合は次のように記載します。

xmodmap - << END
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L
END
xmodmapはXにおいてキーボードマッピングを修正するために用いるソフトウェアです。

ls コマンドで表示されるファイルの色を変更

lsコマンドを実行すると、ファイルの種類によって色分け表示されます。 色分けの仕方は、/etc/DIR_COLORSというファイルで定義されています(Linux の種類による)。

lsコマンドで表示されるファイルの色を変更するには、 /etc/DIR_COLORSを~/.dir_colorsとしてコピーするか、 -pオプション付きでdircolorsコマンドを実行して~/.dir_colorsを作成します。

cp /etc/DIR_COLORS ~/.dir_colors 
dircolors -p > ~/.dir_colors 

~/.dir_colorsでは、以下のように拡張子ごとに属性や色を設定しています。

.ext 01;32 # executables (bright green)
.tar 01;31 # archives or compressed (bright red)
.jpg 01;35 # image formats (bright purple)

また、~/.dir_colorsではエスケープシーケンスも設定できます。

番号文字の色番号背景の色属性内容
30ブラック(黒) 40ブラック(黒) 00なし
31レッド(赤)41レッド(赤)01ボールド(明るくする)
32グリーン(緑)42グリーン(緑)02取消線を付ける
33イエロー(黄)43イエロー(黄)04アンダースコア(下線を付ける)
34ブルー(青)44ブルー(青)05ブリンク(点滅する)
35マゼンタ(紫) 45マゼンタ(紫) 07リバース(反転表示する)
36シアン(水色) 46シアン(水色) 08非表示
37ホワイト(白)47ホワイト(白)

~/.dir_colorsの設定が終わったら、evalコマンドでその変更を反映させることが できます。

eval `dircolors ~/.dir_colors -b` 

ここで、「`」は[Shift]+[@]キーで入力できます。

ls コマンドで日本語が表示されない。

ls は、出力先が端末の場合、端末の表示が乱れないように、出力する文字コードを 抑制する機能をもっています。

日本語は表示を乱してしまうものが含まれるため、出力が抑制されますが、端末が日本語表示に対応している場合は、次の方法で日本語が表示できます。

$ ls --show-control-chars

上の方法で無理の場合は、以下の方法を試してみてください。

$ ls | nkf -f
$ ls | less
$ ls | cat

日本語表示できる場合は"alias"として追加しておきましょう。

バイナリファイルを表示して画面

ktermなどでバイナリファイルをcatコマンドで表示すると、 意味のない文字が表示されて、以降は正しい表示ができなくなってしまいます。

この場合、以下のコマンドを入力することで元に戻すことができます。

$ echo ^[c

「^[」というのはエスケープ文字と呼ばれるもので、通常の方法では入力できません。以下の手順で入力しましょう。

「echo」と入力して[Space]キーを押す
[Ctrl]+[V]キーを押し、続けて[Esc]キー、[C]キーを順に入力
最後に[Enter]キーを入力

ktermの場合は、[Ctrl]キーを押しながらマウスの中ボタンをクリックして表示されるメニューから[リセットと画面クリア]を選択すれば正しい状態に戻ります。

Linuxでバイナリファイルを表示するときは、odコマンドを使うと良いでしょう。 ただし、odは標準出力に結果を出力するので、moreやlessで画面が止まるようにしなければ、一気に最後まで表示してしまいます。

番号文字の色番号背景の色
-a文字の名前で表示する -h16進shortとして表示する
-b8進でバイトを表示する(デフォルト)-i10進shortとして表示する
-cASCII文字またはバックスラッシュ付きの
エスケープ文字として表示する
-l10進longとして表示する
-d符号なし10進short として表示する-o8進shortとして表示する
-ffloatとして表示する-x16進shortとして表示する

ビープ音を鳴らなくさせたい

コンソールやkterm、xtermなどを使用していると、タイプミスなどでビープ音が鳴ります。

これは以下の方法で消すことができます。

bash を利用している方は、 ~/.bashrc に以下の一行を追加しましょう。

set bell-style none

readline を使っている bash、 および readline ベースのすべてのアプリケーションでは ~/.inputrc に以下の設定を追加しましょう。

set prefer-visible-bell

tcsh(6.04 以降) や csh なら ~/.cshrc に次の一行を加えてください。

set nobeep

また、シグナル(画面フラッシュ)を残す場合は次のように記述しましょう。

set visiblebell

ktermおよびxtermのビープ音を消すには、~/.Xresources に以下の設定を追加します。

kterm*visualBell: true
xterm*visualBell: true

X サーバでは、以下の設定でビープ音を無効にできます。Solarisで利用できます。

xset -b

find コマンド

find コマンドの「許可がありません」を表示しない

一般ユーザーで、ルートディレクトリや「/etc」 ディレクトリなどを対象に検索すると「許可がありません」という警告メッセージが表示されます。

これは以下の方法で表示されなくなります。

sh や bash なら、最後に「2>/dev/null」を指定して、警告メッセージをヌルデバイスと呼ばれる仮想デバイスへ出力するとよいでしょう。

$ find / -name "xmms" 2>/dev/null

tcsh や csh なら、grep で警告メッセージを除外することで可能です。

$ find / -name "xmms" |& grep -v "find:"

これらを alias しておけば便利だと思います。

ファイル・ディレクトリを検索して削除する

find コマンドを用いると、フォルダ内の「CVSディレクトリ」「coreファイル」や「~ファイル」を一括削除することもできます。

$ find . -name '*~' -exec rm {} \; -print

{}の場所には検索したファイル名が入ります。「;」はコマンドの終了を表し、find 「;」を渡すためにエスケープします。また、「{}」と「\」の間には必ずスペースを空ける必要があります。

消去の確認をとる時は次のコマンドを入力します。

find . -name '*~' -ok rm {} \; -print

core、#*、*~を一括削除するには次のようなコマンドを入力します。

$ find . \( -name core -o -name '#*' -o -name '*~' \) -exec rm {} \; -print

また、「\(」とコマンド、コマンドと「\)」の間にはスペースを空ける必要があります。

役立ちコマンド

dpkg

インストール済みのdebパッケージ「package」に含まれているファイルを一覧表示する。

$ dpkg --listfiles <package>

slocate

ファイルやディレクトリを素早く探す。

$ slocate libgen.h

slocateは非常に高速に検索できるが、データベース更新以降に新規作成されたファイルは検索できない。

また、午前4時にLinuxを起動していないと、データベースは更新されない。

tar

カレントディレクトリ以下の全内容をフロッピーディスクにバックアップする。

$ tar cf /dev/fd0

tr

テキスト・ファイル「file1」に存在する大文字アルファベットをすべて小文字アルファベットに変更。

$ tr [A-Z] [a-z] < file1

whereis

コマンドのフルパスとマニュアルの保存場所などを表示する。

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

xwd

画面をキャプチャー(ダンプ)するには、xwdというプログラムを使用します。マウスカーソルが十字になったら、キャプチャーしたい画面を左クリックします。

$ xwd -frame -out ファイル名.xwd

xwdファイルを画面に表示して確認するには、displayというコマンドを使用。

$ display ファイル名.xwd

xwdファイルをgifファイルに変換します。

$ convert ファイル名.xwd  ファイル名.gif

Valid XHTML 1.1! Valid CSS! 初版更新日 2003/04/30   最新更新日 2005/06/25