UNIX入門 (IRIX)

S. Fushinobu

ここでは、シリコングラフィックス社のワークステーション(Indy, Indigo2, O2, Octane等)の標準OSである、IRIX(ver. 6.3 or 6.5.5)上で、X線結晶構造解析をするときに必要なこと、便利なことを中心に、メモ書き程度の記述を残しておきます。

今やIRIXを使っている人もほとんどいなくなりましたが、一応残しておきます。RedHat Linux 9に関する記述をちょこっとだけ緑色で付け加えてありますが、新しく作ったこっちのページを見るといいでしょう。


基本 →TOP

UNIXコマンドの基本
コマンド名、オプション(-の後につける)、ファイル名などをスペースで区切って入力、リターンで開始。
man hogehoge
hogehogeというコマンドのマニュアルを表示する。これを必死で読めば、ここに書いてあることなんか読む必要はない。でも、普通、何が書いてあるのかよく分からない。MANualの略。
passwd
パスワードの変更を行う。


ファイル/ディレクトリ関係 →TOP

ls
ファイル名の一覧を表示する。ls dirname で、dirnameというディレクトリの中のファイル一覧を表示する。いろんなオプションがある(man lsとしてみましょう)
ls -a : 普段は表示されない、"."(ピリオド)で始まるファイルも表示される。
ls -l : もっと詳しい情報(属性・パーミッション)が表示される。
drwxrwxr-x 2 fushi user 9 Jul 28 21:35 dirname/
-rw-rw-r-- 1 fushi user 0 Jul 28 21:36 open.txt
-rwxrwxr-x 1 fushi user 0 Jul 28 21:36 script.sh*
-rw--w---- 1 fushi user 0 Jul 28 21:36 secret.txt
最初の1文字は、ディレクトリか否か
次の3文字は、自分が読める/書ける/実行できるか
次の3文字は、同じグループのユーザが読める/書ける/実行できるか
次の3文字は、全てのユーザが読める/書ける/実行できるか
ls -F : ファイルネームの後に、ディレクトリなら"/"を、実行できるファイルならば、"*"を付けて表示する。ウチのマシンなら全てのユーザーに対して設定してありますが。
LiStの略だと言われている。
ls -t : 更新された時間の順に表示する。
chmod
ファイルの属性(パーミッション)を変更する。
sample.shの実行パーミッションを切るには、
chmod +x sample.sh
secret.txtが同じグループおよび全てのユーザから見れないようにするには、
chmod go-r secret.txt
つまり、
chmod [-R] [ugo]{+|-}[rwx] file ...
ってこと。-R をつけるとその下のディレクトリのファイルもイッペンに変えてくれる。
chown
ファイル/ディレクトリownerを変更する。
-R
オプション使える
chgrp
ファイル/ディレクトリgroupを変更する。
-R
オプション使える
cd dirname
dirnameというディレクトリに移動する。
cd
だけを入力すると、最初に入るディレクトリ(/usr/people/username)に戻る。
Change Directoryの略。
pwd
自分の今いるディレクトリを表示。Print Working Directoryの略。
mkdir dirname
dirnameというディレクトリを作る。MaKe DIRectoryの略。
cp source dist
sourceというファイルをコピーする。
distというディレクトリがあれば、そのディレクトリの中にコピーする。
distというファイルがあれば、そのファイルを上書きする(警告が出る場合もある)
distというファイルもディレクトリもなければ、distというファイルを新しく作る。
CoPyの略。
cp -r dirname1 dirname2
dirname1というディレクトリ全体をコピーする。
mv source dist
sourceというファイル/ディレクトリを、(1)distというディレクトリに移動する、または(2)distという名前に変更する。
distというディレクトリがあれば、そのディレクトリの中に移動する。
distというファイルもディレクトリもなければ、sourceという名前をdistに変更する。
MoVeの略。
rm hogehoge
hogehogeというファイル/ディレクトリを削除する。ReMoveの略。
rm -r dirname
dirnameというディレクトリ全体を削除する。危険。
ファイル/ディレクトリの絶対パス指定
/usr/people/username/filename
のように、最初の"/"から指定することを絶対パス指定という。
ファイル/ディレクトリの相対パス指定
".."(ピリオド2つ)は一つ上のディレクトリ
/usr/people/user1/
で、 ../user2/file と指定すると、
/usr/people/user2/file
を指定することになる。
../../xtalとすると、
/usr/xtal
のことになる。

"."(ピリオド1つ)は今いるディレクトリ

cp /usr2/people/hogehoge/file .
とやると、今いるディレクトリにコピーしてくることになる。


閲覧/編集 →TOP

jot
テキストファイルを編集する。jot hogehogeとすると、hogehogeという新しいファイルを作る。
linuxの場合にはgeditが使いやすい。
nedit
jotの発展版。検索/置換機能などが進化している。
less hogehoge
hogehogeという名前のテキストファイルの中身を見る。lessは標準コマンドではないので、ない場合には、more hogehoge とする。jot とかを用いてもよいが、書き込んではいけない時には注意すること。
すげーいろいろ機能があるが、僕は、以下のコマンドぐらいしか使ってません。
名前の由来は、moreの拡張コマンドだから。
スペース:1ページ先に送る
b: 1ページ前に戻る
リターン:1行先に送る
y : 1行前に戻る
g : ファイルの一番最初に戻る
G : ファイルの一番最後に進む
/hogehoge :  hogehogeという文字列を検索する
n : 次の検索文字列まで進む
N : 一つ前の検索文字列まで戻る
h : ヘルプを表示する
q : less を終了する
head -数 hogehoge
hogehogeというファイルの最初の「数」行だけ表示する。数を指定しないと、10行だけ表示する。
例: head hogehoge.pdb
とすると、pdbファイルの最初の10行を表示してくれるので、幸せ。
tail -数 hogehoge
同様に、hogehogeというファイルの最後の数行を表示する。
例: tail -22 hogehoge01.x
とすると、denzoの.xファイルのいろんなパラメータが書き込まれている最後の22行を表示してくれるので、幸せ。
tail -99f hogehoge.out
とすると、出力されてくる内容をfollowして、次々と表示してくれる。hogehoge.outを出力しているプロセスが終了したら、もう何も出てこなくなるので、Ctrl+cで抜けること。


ファイルサイズとディスク容量関係 →TOP

df -k
ディスクの容量が分かる。nfs(ネットワークファイルシステム:ネットワーク上のマシンのHDDを自分のマシン上の)でつながってるディスクの内容も分かる。Disk/Filesystemの略?
du -ks dirname1 dirname2 ...
ディレクトリの使用しているディスク容量が分かる。
/usr/people
で、
du -ks username1 username2 username3 ...
とやると、誰がディスク容量を一番食ってるのか分かるので、楽しい。
Disk Usageの略?
compress hogehoge
ファイルを圧縮して、hogehoge.Z というファイルにする。
uncompress hogehoge.Z
.Zファイルを解凍して、hogehogeというファイルに戻す。
gzip hogehoge
ファイルを圧縮して、hogehoge.gzというファイルにする。compressよりも圧縮率が高いが、このコマンドがない場合もある。Gnuのzipという意味。
gunzip hogehoge.gz
.gzファイルを解凍して、hogehogeというファイルに戻す。Gnuのunzipという意味。


環境設定関係 →TOP

.cshrcファイル
/usr/people/hogehoge/.cshrc
は、ログインした時に、環境変数等を設定するファイルである。
これを変更したときは、もう一度Unix Shellを開き直さないと、反映されない。
cshのRoboot Commandという意味?/usr/people/hogehoge/.cshrc
linuxの場合には標準のシェルがbashなので、その場合には.bashrcが設定ファイルとなる。
pathの付け加え方や環境変数の設定の仕方がcshやtcshと異なるので注意。
alias short 'longname -opt'
shortと入力すれば、longname -optと入力したのと同じことになる。.cshrcに、
alias ls 'ls -FC'
とか書いておきましょう。
set
システムが使用する環境変数の一覧を表示する。普段はあまり関係ないものばかりだが、pathという環境変数は重要。
set path = ($path /usr/local/bin)
pathの環境変数に指定された場所(パス、と言う)にあるコマンドのみが実行できるのだ。上記のような一行を.cshrcに書き加えておくと、/usr/local/bin の中にあるコマンドも使えるようになる。
PATH="$PATH":/usr/xtal/usf/bin (bashの場合)
setenv (環境変数その2)
アプリケーションが使う環境変数を表示する。
例:Oを使う時には、.cshrcに、以下のような一行を加えておく必要がある。
setenv ODAT /usr/xtal/o/data
export GKLIB=/usr/xtal/usf/lib (bashの場合)
which
which hogehoge
とすると、
hogehogeと入力したときに実行するファイルがどこにあるか表示してくれる。例えば、
/usr/bin/local/hogehoge
といった感じの出力が出てくる。
これが出てこない場合には、パスが通ってないか、もともとそのコマンドがないということ。管理者に聞いてみましょう。


入力補助 →TOP

tcshのファイル名補完機能(超便利)
ファイル名、ディレクトリ名等を入力している時、TABキーを押すと、そこまでの入力が正しければ、そのディレクトリ内の中で一意な所まで補完してくれる。間違っている場合にはピーッと鳴る。
tcshのヒストリー機能
↑、↓キーを押すと、これまでに入力したコマンドがさかのぼって表示される。←、→キーでカーソルを動かして、backspaceキー等を使って、それを修正することもできる。
csh, tcshの繰り返し入力機能
!! と入力すると、直前に入力したコマンドがもう一度入力される。!hogehoge と入れると、これまでに入力したコマンドのうち、hogehogeで始まるものの中で最近に入力したものが入力される。
例:!cns と入力すると、その前に cns < hogehoge.inp > hogehoge.out & 等と入力したことがあれば、それが再び入力される。 !jot とか、 !lessとかはよく使う。
bashの場合も上記の機能は全て備えています。


コマンド制御とプロセスの管理 →TOP

cns_solve < hogehoge.inp > hogehoge.out &
cns_solve, xplor等を走らせる時に、よく使う。このコマンドの説明をしましょう。
< (リダイレクト:入力)
コマンドに、"<"の後のファイルの中にある内容を送り込む。事前に書いておいて、一気に送り込むことができるのだ。
> (リダイレクト:出力)
そのままでは画面に出てくるコマンドからの出力を">"の後のファイルに送り込む。いわゆるログファイルを作成できるのだ。
&
コマンドの最後に"&"を付けると、それをバックグラウンドで走らせることになる。そのコマンドが終わるまで、次のコマンドを打ち込めなくなることもないし、そのままログアウトして、終わるまで一晩中プロセスを走らせることだって可能。
jobs
現在、走らせてるjobの一覧を表示。"&"でバックグラウンドで走らせてるものを見られる。でも、同じウィンドウ(というか同じシェル)のものしか見えないので、他のウィンドウからは、下のコマンドを使う。
top
その時点で起動しているほとんどのjobとCPUの使用率が表示される。誰がどれだけCPUを使ってるか分かる。
ps -elf | grep 'cns_solve'
cns_solveというプロセスを(他人が走らせてる分も含めて)表示する。時々、grep 'cns_solve'というプロセス自身が出てくるけど、これは御愛嬌。このコマンドの説明をしましょう。 (ProceSsの略?)
ps -elf
全てのユーザーのプロセスを、長い表記で表示する。psだけだと、自分の一部のプロセスしか出てこないし、ps -elfとすると、やたら沢山出てくるので、困るので、"| grep .."をかます。ちなみに、SunのSolarisなどでは、elfではなくaxe。覚えやすいでしょ?
"|"
"|"(パイプと呼びます)の前のコマンドからの出力(この場合はps)を、その後のコマンド(この場合はgrep)に受け渡す。Shiftキーを押しながら、キーボードの右上の方にあるキーを押すと出ることが多い。
grep 'cns_solve'
で、その中から、'cns_solve'という文字列が含まれるものだけを抜き出して表示する。Get Regular ExPressionの略?
kill 12345
要らないプロセスを消す。jobsや、psコマンドで表示される、プロセス番号(この場合は12345)を指定する。それでも消えないプロセスは、ps -9 12345 などとすれば殺せる。危険!


外部機器とのやりとり →TOP

telnet hostname
hostnameというホストにログインする。sshの方が安全。
ftp hostname
hostnameというホストとファイルのやりとりをする。File Transfer Protocolの略。
ls : ホストの中のファイル名一覧を表示する。
cd : ホストの中のディレクトリを移動する。
get hogehoge : ホストの中のhogehogeというファイルを取ってくる。
put hogehoge : ホストに、ローカルにあるhogehogeというファイルを送る。
binary : バイナリモードにする。ファイルに一切の変換を行わない。画像ファイルなどを送るときは、必ずやっておく。大抵は、このモードでオッケイ。
mget / mput : 複数のファイルを送るときに使う。"*"や"?"が使える。
prompt off : 複数のファイルを送る時に、いちいち聞いてこないようにするために、やっておくべきコマンド。
lcd : ローカル側のディレクトリを移動する。
linuxだとgftpというのがあってGUIで使いやすい。
tar
2種類使い方がある。Tape ARchiveの略。
1)DATに書き込み/読み込みを行う
tar cv dirname : dirtame の内容を、DATに書き込む
tar xv : DATの内容を読み込む
tar tv : DATの内容を確認
tar cvf /dev/rmt/tps1d6nsv : デバイス名を入力する必要がある場合は、"f"オプションを加える。 tar xvf devname, tar tvf devnameに関しても同様。
2)ディレクトリ全体を、一つのファイルにまとめる
tar cvf dirname.tar dirname : dirnameというディレクトリをdirtame.tarという一つのファイルにまとめてしまう。さらにgzipとかで圧縮してdirname.tar.gzにすれば完璧。
tar xvf dirname.tar : dirname.tar という.tarファイルを展開する。
tar tvf dirname.tar : dirname.tar という.tarファイルの内容を確認する。


検索 →TOP

fgrep 'hogehoge' *
そのディレクトリにあるファイル全部の中から、hogehogeという文字列がある行だけ抜き出して表示する。
例: fgrep 'unit cell' *.x
とすると、denzoの.xファイルの中から、格子定数だけを抜き出してくれて幸せ。
find . -name \*.img -print
いまいるディレクトリの下の、*.imgというファイルを全部探しだして表示する。*や?を使うには、"\"(英語表記だと"/"(バックスラッシュ))の後に入れないといけない。
find . -name \*.map -exec {} \;
とやると、いまいるディレクトリの下の*.mapというファイルを全部探しだして削除する。


ハードウェア/OS関係 →TOP

hinv
ハードウェアの情報(CPU、メモリ、HDD等)が得られる。
gr_osview -a
CPU、メモリなどのハードウェア資源の利用状況が分かる。一番上のバーが緑色ならば、サボっている。青色が広がっていれば、必死で働いている。
linuxの場合には、topというコマンドでcpu利用率が分かる。
uname -R
OS(IRIX)のバージョンを表示。m/fはmaintainance/feature releaseの意味。


画面を保存(スナップショット) →TOP

snapshot
snapshotと書かれた、灰色の小さなボタンが出てくるので、その上から左ボタンドラッグで、赤い枠を引きだせる。この赤い枠は、角にカーソルを近付けると、カーソルの形が変わってサイズを変えられる。適当な範囲を選んだら、snapshotの灰色の小さなボタンの上で、右ボタンをドラッグして、ポップアップしてくるメニューからsave as snap.rgbを選ぶ。ファイルは、 shapshotを起動したディレクトリに保存される。
linuxの場合には、キーボードのPrtScrnキーを押せばpng型式で画面を保存できる。


Back