50の手習い: LINUXコマンドの勉強

JCRB細胞バンク
室長:水沢 博

コマンドの習得・お勉強
コマンドを入力するには、プロンプトに引き続いて指定された単語を書き込んでリターンキーを叩く。パス、パス名、パスが通っている、ディレクトリなどの基本用語の知識をあらかじめ仕入れておくこと。
一般的なコマンドと記述法内 容
コマンド場所意味・疑問等
# ./commandプログラム実行、当該ディレクトリ内
# command組み込みコマンド実行(bash?)
lsどんなファイルがあるのか見たい。
/home /usr /lost+found /bin /var ・・・しかし複雑なディレクトリ構造ですね。頭がおかしくなってしまいます。が、あっちへいってみたりこっちへいってみたり。ここでめげるわけにはいかないのでひとしきりディレクトリナビゲーション。
which, whereisファイルのありかを調べたい。Pass.
find /* | grep {filename}ファイルのありかを調べたい。その2、No Pass
kon日本語が読めない。
exit日本語から英語に戻りたい。他の戻りも大体このコマンドらしい。
ls -lファイルの属性も見たい
LINUXでは、ファイル、ディレクトリ、プログラムなどなど全てがハードディスク上に記録されていますが、全てのファイルには所有者と所属グループが定義されています。ファイルやディレクトリの作成を誰が行ったかで決まるようです。要注意。所有者が違うと書き込めません(経験)。これに習熟するコツは慣れの一言。ファイルを共有したい場合は同一グループに入るという手があり。
ls -aひょっとして隠しファイルなんていうのがあるんじゃないの?
ls -hls コマンドにはたくさんのオプションあり。全部覚えることは不可能を悟る!リファレンスに頼りましょ・・。
d, rwx, rwx, rwxUNIXの属性というのはこんなにたくさんあるのにびっくり。
というようなわけで、LINUXに触り始めたころは、DOSとの比較しかできませんから、何だか大変だぞと思ううちに、だんだん、そんなものかと慣れてきました。というところで徐々にLINUXに慣れながら下のコマンドを一つ一つ使って徐々に加速となりたいものです。失速はしないように・・・。
chmod/bin/chmod属性の変更。4つのセクションを個別に設定。r=4, w=2, x=1. 足した数字がrwxの組み合わせを作るのだということ。ちょっと考えるとわかる。4+2+1=7 -> rwx, 4+2=6 -> rw, 2+1=3 -> wx, というわけ。てなわけで chmod 775 は、rwx rwx r-x。つまり、SCSI機器のID設定と同じというわけです。
su/bin/suスーパーユーザーになるには?
ls | more/bin/ls /bin/more画面を越えてしまうファイルを止めたい
ls | less/bin/ls /usr/bin/less画面をいったり来たり出来ないの?
mount /mnt/cdrom//bin/mountCD-ROMをマウントするにはどうする?
unmount /mnt/cdrom//bin/unmountアンマウントするのはどうする?
mount, unmount/bin/mount, bin/umountFDDなど他の外部記憶装置にも応用可能
vi (i :q :w :wq)/bin/viテキストファイルを読みたい。vi はコマンドで操作し、:に続けてコマンドを入れる。
df/bin/dfディレクトリのサイズを知りたい
exit, quit, ^c, ^x, ^z??こうしたものが実行停止、終了などに対応していることを悟る。MS-DOSの経験が有効。
chown -h/R [newown] "file/dir.name"/bin/chownディレクトリ、ファイルの所有権変更:Samba 経由の参照.読.書
chgrp -h/R [newown] "file/dir.name"/bin/chgrpディレクトリ、ファイルの所属グループの変更:Samba経由の参照.読.書
mkdir {dir_name}/bin/mkdirディレクトリ作成
rmdir {dir_name}/bin/rmdirディレクトリの消去
rm (rm -i) -r/Rf dir_name/bin/rmディレクトリごと消去
ps -a, -u, -x/bin/ps実行中のプロセスの確認(ビルトイン)、プロセスの強制停止には kill コマンド
setterm -blank 0/usr/bin/setterm通常画面省電力時間設定(分)。0は省電力設定無し。
xset s off/usr/X11R6/bin/xsetXwindowsでの画面省電力時間設定(分)。
mouseconfig/usr/sbin/mouseconfig起動後のマウスの設定
kbdconfig/usr/sbin/kbdconfig起動後のキーボードの設定
netconfig/usr/sbin/netconfig起動後のネットワークIPの設定, host, mask, GTW, DNS
free/usr/bin/freeメモリ容量チェック
less /proc/meminfo/usr/bin/lessメモリの使用状況チェック
linuxconf/sbin/linuxconfユーザー登録(テキストグラフィック画面)パスワード設定も。
adduser/usr/sbin/adduserユーザー登録/パスワード設定も。lonuxconf からも可。
passwd/usr/bin/passwdログイン中のユーザーのパスワード変更
man file_name/usr/bin/manマニュアルファイルを参照。あれば・・。
他のLINUXサーバの利用
Linuxはマルチユーザー、ネットワーク対応のコンピュータ。従って、1台のマシンに複数のユーザが次々にログインして利用できるシステム。個人的に設定をしているとなかなか実感できない点だが、細胞バンクでは現在4台のLINUXマシンが稼動を開始し、そろそろこのシステムを実感できるようになりつつある。つまり、一つのマシンを複数の人間が使いながら各種設定、サーバ機能を利用するようになってきた。
telnet conputer_name/usr/bin/telnet他のLINUXコンピュータへログイン。事前にアカウントが無ければならない。ログイン時にユーザネームとパスワードを入力。ROOTでの入力は不可だが、一度ログインした後に su コマンドで super user となる。root パスワード要求。パスワードが暗号化されていないために、telnet では無く ssh の使用が推奨される。
ssh conputer_name/usr/bin/ssh他のLINUXコンピュータへログインに使用。telnet と同じ機能だが、パスワードが暗号化されるためにセキュリティー上sshの使用が望ましい。
ssh -l user_name host_name/usr/bin/sshuser_name で host_name にログイン。
WWWサーバー (Apache) の構築
http://japache.infoscience.co.jp/index.html にアクセスして「ダウンロード」を探す。ダウンロードファイルはディレクトリに旧ファイルを含めてリストになっているので、必要なファイルを探す。2001.5.11現在は、 apache_1.3.19.tar.gz 28-Feb-2001 23:11 1.8M 1.3.19 gzipped sourceが最新のバージョン。
ダウンロードしたファイルは /usr/local/src ディレクトリに置くのが一般的、特に決められてはいないようですが・・。その後 make install を実行すると、/usr/local/apache が自動的に作られてその下に必要なファイルが書き込まれていました。このディレクトリ構造は自分勝手に変えないほうが良いでしょう。
tar xvfz apache_1.3.19.tar.gz/bin/tarApache の圧縮 File の解凍、x,v,f,zはそれぞれオプション。展開中のリストを表示せよなど・・。
./configure解凍されたファイル群に含まれているのが普通file のコンフィグレーションを行うのに必須、フォーマットは個別に確認。解凍後に現れるマニュアルやヘルプなどを参照。
make/usr/bin/makeコンパイル、コンパイラか。
install/usr/bin/installmake と組み合わせてコンパイル後のインストール、インストール先ディレクトリは、個別に確認
vi httpd.conf
/etc/httpd/conf/httpd.conf
httpd.confWWW の設定 file、編集
要するに・・apache を起動したときに、自分のマシンのどのディレクトリのコンテンツを公開するかなど様々な仕様を決める必要があるわけで、それが httpd.conf に記録されています。これはテキストファイルなので、vi などのエディタを使って編集しなくてはなりません。それには、やはり参考書が必要になります。本屋さんへ直行。
.aliases ファイル(/etc)の変更、 newaliases の実行には ./ は不要。apache の ServerAdmin ディレクティブの書換え。管理用アドレス追加。システムの aliases ファイルの修正と、newaliases の実行が必須。
.# ./httpd {start/stop/status/restart}
in "/etc/rc.d/init.d"
httpd の実行、停止、状態表示、再起動
.UNIXでは、.tar.gz で終わるファイル名が圧縮ファイルとして使用されている。これを tar コマンドで解凍するそうです。解凍したファイルを、自分のマシンに合わせてコンパイルした後でインストールするのが普通のようです。コンパイルには make コマンドを使用し、インストールには make install コマンドをさらに使用するのが一般的のようです。しかし、プログラムによって異なるので、ここは readme とか help などのファイルを探して、実行方法を調べるべきですね。
/etc/local/samba
SAMBA サーバーの構築
.vi smb.confSAMBAの設定ファイルの変更
.smbd -Dサンバの開始、その1
.nmbd -Dサンバの開始、その2
.kill nnnプロセス番号 nnn の停止
.ps ax実行中のプロセスの検査 プロセス番号 nnn 情報を知る。
.smbpasswd -asamba へのユーザー登録。パスワード設定。
Linuxへのユーザ登録を事前にしておくこと。
.xinetd restartswat の起動
Compaq, Proliant 2500 の Linux 化におけるヒント
トラブル:Xwindowが遅い!原因判明:128Mb の Proliant 2500 で14MBしかメモリが使えていない!free コマンドで確認。
Compaq 社は頼れず。この問題の解決については、コンパックの技術サポートは頼りにならなかった。Proliant 2500 は Linux Ready model では無いというのがその理由(笑)。しかし、担当者は知っている様子だった・・。
解決法:ネットで検索した結果2つのサイトを発見。ZDnetに詳細な解決法が公開されていた。感謝!。 LILO, BOOT:linux mem=128MCtrl-X でマニュアル起動に切り替えて boot: が表示されたところで、linux mem=128M と入力して enter。
lilo.conf を書換え、#/sbin/lilo を実行
参考資料(ZDnet Japan)
lilo.conf(これはファイル名)
    image=/vmlinuz
    root=/dev/sda1
    label=linux
    append="mem=127M"...この行を追加
定時自動実行システム
LINUXは定時実行システムを持っている。バックグラウンドで決まった時間に特定の仕事を自動的に実行するシステム、未熟ながら・・。指定時間に自動実行するプログラム名などを記述した一覧表=Tableに基づいて事項実行するようだ。"cron"と呼ぶ。関連ファイルの場所は ./etc/
cron.hourly/etc/cron.hourlyディレクトリ名、毎時間の自動実行に必要なことがら。
cron.daily/etc/cron.dailyディレクトリ名、毎日の自動実行に必要なことがら。
cron.weekly/etc/cron.weeklyディレクトリ名、毎週の自動実行に必要なことがら。
crontbl/etc/crontbl自動実行表:一覧表
user_batch_file/etc/crontab
/location/user_batch_file
ユーザ作成の自動実行バッチファイル
実行、認識。
crontab ./crontab
/etc作成した crontab(バイナリプログラム)を crontab(テキストバッチファイル)に認識させる。
確認。
crontab -l
パスcrontab(バイナリプログラム)が認識している自動実行スケジュールの確認。
自動実行設定作成例細胞バンクサーバの定時バックアップ設定の方法例
掲示板ソフト Alex のインストール
Alexのインストール
他のマシンのファイル(ディレクトリ)を共有する:NFSの利用
mount servername:/directoryName /mnt/destinationservername の /directoryName が自分のマシンの/mnt/destination にマウントされる。
あらかじめサーバ側でNFSを起動して諸設定を作成しておく。クライアント側のマシンに必要なディレクトリ(/destination)を作成しておく。その後 mount command でサーバのディレクトリをクライアントのディレクトリに接続する。接続終了は umount こまんどを使い、クライアント側のディレクトリを解除する。servername はホスト名。
テープバックアップ
バックアップ用テープデバイスは、ヒューレットパッカード SureStore DAT24。LINUXインストール時に自動認識され、ドライバはインストールされている模様。

デバイスとしては /dev/st0 に登録。

mt status/bin/mtテープデバイスの状況確認。
mt -f /dev/nst0 status/bin/mtテープデバイスの状況確認。デバイス指定(-f デバイス名)。
ln -s /dev/nst0 /dev/tape/bin/lnシンボリックリンク /dev/st0 を /dev/tape にリンク。
ls -l /dev | grep tape/bin/lsln 確認、/dev 内、tape を含むもの一覧表示。
tar cvf /dev/tape /backup
tar command はインクレメンタルバックアップ不可。
/bin/tar/backup ディレクトリ内全体を /dev/tape (/dev/st0)に一括コピー
mt rewind/bin/mtテープ巻き戻し
sleep($remaining_sec)/bin/sleep括弧内の時間(秒)実行待て。
/sbin/dump -0uB 12000000 -f /dev/tape /backup/sbin/dumpフルバックアップ:/backup 内の全データを/dev/tape にバックアップ(ダンプ)
/sbin/dump -1uB 12000000 -f /dev/tape /backup/sbin/dumpインクレメンタルバックアップ:/backup 内の全データを/dev/tape にインクレメンタル(-1 スイッチ)バックアップ(ダンプ)
mt offline/bin/mtテープ停止・排出
NFS 経由でHDDへのバックアップ
mount cellbank:/webserver /nfs_cellbank/webserver/bin/mountNFS で、cellbankサーバの/webserverを自己のディレクトリにマウント(接続)
umount /nfs_cellbank/webserver/bin/umount接続解除
cp -R /nfs_cellbank/webserver/* /backup/webserver//bin/cp再帰的(-R)コピー