Vine Mac   - Vine Linux PPC on iBook で始めるリナックス -


■ 基本的なコマンドU ■


基本的なコマンドUということで、ちょっとだけ癖のあるコマンドを紹介してみます。
どれも Linux の操作に欠かせない重要なコマンドです。


● 管理者権限(root)を得る

コマンド su [オプション] [ユーザー名]
オプション   - そのユーザーでログインしたときと完全に同じ環境にする

コマンド "su" を打って root のパスワードを入力することで、一時的に管理者権限を得ます。
管理者権限中は、入力待ちの文字 "$" が "#" へと変化します。
su を抜けるには、コマンド "exit" を打ちます。

システムに深く介入する操作などは、しばしば管理者権限が求められるので、
そう言った操作を行うときは、事前にこの su を使って管理者権限になっておく必要があります。

また、[ユーザー名] に特定のユーザーを指定すると、そのユーザーの権限になります。
オプションに "-" を加えると、ログイン時に読み込まれる設定まで全く同じになります。

(例) 一時的に管理者権限を得るになる

$ su
Password:
(パスワードを入力)
#

"$" が "#" へと変わりました。
元のユーザーへ戻るには "exit" と打って抜けます。



● システムを終了する

コマンド shutdow [オプション] [時間]
オプション   -h シャットダウン後、マシンの電源を切る
-r シャットダウン後、システムを再起動する

Linux では、Windows と違ってログアウトした後もOSのシステム自体は動き続けます。
OSを完全に停止させて、マシンの電源を切れる状態にするには、"shutdown" を使います。
"shutdown" を打つには管理者権限が必要です。

[オプション] でシャットダウン後の操作を指定して、
[時間] にはシャットダウンするまでの時間を設定します。
今すぐシャットダウンしたい場合は "now" と指定しましょう。

(例) 今すぐシステムを終了してマシンの電源を落とす

# shutdown -h now
Broadcast message from root (pts/0) (Sat Feb 4 18:30:25 2006):
The system is going down for system halt NOW!
#

この後は、各サービスの停止やその他システムを停止させるのに必要な操作の経過が、
ずらずらと画面に表示されていきます。



● ファイルの内容を表示する

コマンド cat [オプション] [ファイル名]
オプション   -t 制御コードも表示する
-n 各行の先頭に行番号を付加して表示する

[ファイル名] で指定したファイルの内容をテキスト表示します。
cat コマンドは、単独で使うより、他のコマンドと組み合わせる事が多いです。

(例) /etc/passwd ファイルの内容を表示する

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
   ・
   ・
   ・

ちょっと怪しげな使用例で申し訳ないですが(笑)。

(応用) cat を用いて hoge.txt ファイルに文章を追記・上書きする

$ ls
hoge.txt

$
cat hoge.txt
hoge hoge hoge hoge

$
cat >>hoge.txt
this line is added by cat cmd.
(Ctrl+C で編集を抜ける)


$
cat hoge.txt
hoge hoge hoge hoge
this line is added by cat cmd.

$
cat >hoge.txt
this file was overwrited
(Ctrl+C)


$
cat hoge.txt
this file was overwrited

$

ちょっとわかりにくいですが、cat コマンドを簡易エディタとして使うことも出来ます。

"cat >>[ファイル名]" とすることで、指定したファイルに文章を追記します。
また、"cat >[ファイル名]" とすると、指定したファイル内容に上書きできます。
cat の編集モードを抜けるときは、[Ctrl] + [C] キーを押してください。



● ファイル内容を画面単位で表示する

コマンド less [オプション] [ファイル名]
オプション   -c 画面をクリアして表示する
-e ファイルの終端に1度到達すると終了する

cat 等でファイル内容を見るとき、文章量の多いファイルだと、
一気に最下部までスクロールしてしまって、すべてを見ることが出来ません。
less を使うことで、ファイルをスクロールしながら観覧することが出来ます。

(例) /var/log/messages ファイルを表示する

# less /var/log/messages
Jan 29 10:00:13 localhost syslogd 1.4.1: restart.
Jan 29 10:41:08 localhost smbd[1468]: [2006/01/29 10:41:08, 0] lib/util_sock.c:get_peer_addr(1000)
Jan 29 10:41:08 localhost smbd[1468]: getpeername failed. Error was Transport endpoint is not connected
Jan 29 10:41:08 localhost smbd[1468]: [2006/01/29 10:41:08, 0] lib/util_sock.c:read_socket_data(384)
Jan 29 10:41:08 localhost smbd[1468]: read_socket_data: recv failure for 4. Error = Connection res
   ・
   ・
   ・
:■

messages の内容が、最初の行から画面単位で表示されました。
ちなみに、messages ファイルは、OS全体のログを保存しているファイルです。
観覧には管理者権限が必要となります。

less コマンドでは、[speace] で1画面分下へ、[k] と [j] で1行分上下にスクロール出来ます。
その他、"vi" コマンドの移動・検索コマンドがここでも使えます。
詳しくは 「vi 操作 覚え書き」 をご覧ください。

less を終了するときは、[q] を叩きます。

(応用) /bin 以下のファイル一覧を画面単位で表示する

$ ls -lAF /bin | less
-rwxr-xr-x 1 root root 3708 Dec 23 2003 arch*
-rwxr-xr-x 1 root root 11456 Jun 11 2001 aumix-minimal*
lrwxrwxrwx 1 root root 4 Jan 14 16:27 awk -> gawk*
-rwxr-xr-x 1 root root 11124 Apr 10 2004 basename*
-rwxr-xr-x 1 root root 793729 Jun 29 2004 bash*
lrwxrwxrwx 1 root root 4 Jan 14 16:26 bash2 -> bash*
   ・
   ・
   ・
:■

ls に -l オプションを付けて1ファイル1行表示で実行すると、
ファイル数が多い場合は、やはり最後まで一気にスクロールしてしまいます。
そんな場合は、 「パイプ "|" 」という、コマンド同士を繋ぐ特殊文字を使って、
"ls -lAF | less" として、ls の結果を less に渡してやります。
こうすることで、ls の出力結果を less によって画面分割して閲覧することが出来ます。



● 特定の文字列を含む行を抜き出す

コマンド grep [オプション] [文字列] [ファイル名]
オプション   -i 文字列の大文字小文字を区別しない
-n 文字列が何行目にあるかを表示する
-v 指定した文字列を含まない行を表示する
-[n] マッチした行の上下 [n] 行分も一緒に表示する

[ファイル名] で指定したファイルの中で、[文字列] を含む行のみを表示します。
数百というファイル群から目的のものを見つけたり、
数メガバイトものログファイルから、「ERROR」 を含む行のみを抜き出したりと、用途は様々です。

(例) /var/log/messages 中で 「error」 を含む行のみを表示する

# grep -in error/var/log/messages
4119:Feb 4 15:44:23 localhost smbd[7397]: getpeername failed. Error was Transport endpoint is not connected
4121:Feb 4 15:44:23 localhost smbd[7397]: read_socket_data: recv failure for 4. Error = Connection reset by peer
4123:Feb 4 15:44:44 localhost smbd[7399]: getpeername failed. Error was Transport endpoint is notconnected
4125:Feb 4 15:44:44 localhost smbd[7399]: read_socket_data: recv failure for 4. Error = Connection reset by peer
4127:Feb 4 15:45:04 localhost smbd[7401]: getpeername failed. Error was Transport endpoint is not connected
   ・
   ・
   ・
#

-in オプションを付けているので、大文字小文字の区別はされず、行番号も表示されます。

(応用) /etc/ 以下から、ファイル名称に「passwd」 を含むファイルをピックアップする

$ ls -lAF /etc/ | grep passwd
-rw-r--r-- 1 root root 1150 Jan 14 18:52 passwd
-rw------- 1 root root 1111 Jan 14 17:34 passwd-
-rw-r--r-- 1 root root 1150 Jan 14 17:59 passwd.OLD

$

less と同じように、パイプ "|" を使って ls の結果を grep に渡すことが出来ます。
こうすることで、前コマンドの出力結果をふるいにかけられます。

また、ls の出力結果を grep でふるいにかけて、さらにその結果を画面分割して閲覧したい場合は、
$ ls -lAF /etc/ | grep passwd | less
というふうにします。



以上、少しややこしいコマンドを簡単にですが紹介してみました。
いきなり全部覚えるのは無理ですが、徐々に慣れていってください。