知っておくと便利・ちょっと自慢できる UNIX系OS で利用可能な小技集です。
通常の日本語キーボードは「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 ENDxmodmapはXにおいてキーボードマッピングを修正するために用いるソフトウェアです。
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 --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 | 文字の名前で表示する | -h | 16進shortとして表示する |
-b | 8進でバイトを表示する(デフォルト) | -i | 10進shortとして表示する |
-c | ASCII文字またはバックスラッシュ付きの エスケープ文字として表示する | -l | 10進longとして表示する |
-d | 符号なし10進short として表示する | -o | 8進shortとして表示する |
-f | floatとして表示する | -x | 16進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
一般ユーザーで、ルートディレクトリや「/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
また、「\(」とコマンド、コマンドと「\)」の間にはスペースを空ける必要があります。
インストール済みのdebパッケージ「package」に含まれているファイルを一覧表示する。
$ dpkg --listfiles <package>
ファイルやディレクトリを素早く探す。
$ slocate libgen.h
slocateは非常に高速に検索できるが、データベース更新以降に新規作成されたファイルは検索できない。
また、午前4時にLinuxを起動していないと、データベースは更新されない。
カレントディレクトリ以下の全内容をフロッピーディスクにバックアップする。
$ tar cf /dev/fd0
テキスト・ファイル「file1」に存在する大文字アルファベットをすべて小文字アルファベットに変更。
$ tr [A-Z] [a-z] < file1
コマンドのフルパスとマニュアルの保存場所などを表示する。
$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
画面をキャプチャー(ダンプ)するには、xwdというプログラムを使用します。マウスカーソルが十字になったら、キャプチャーしたい画面を左クリックします。
$ xwd -frame -out ファイル名.xwd
xwdファイルを画面に表示して確認するには、displayというコマンドを使用。
$ display ファイル名.xwd
xwdファイルをgifファイルに変換します。
$ convert ファイル名.xwd ファイル名.gif