このセクションでは自宅サーバーとしてLinuxを操作するうえでよく使うコマンドについて初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
抜粋Linuxコマンドリファレンス

ディレクトリとファイルの操作+

ディスクとパーティションの操作+

テキストの操作

文字や変数を画面に表示する
ファイルの内容を画面に表示する
出力するテキストに処理を行う

ユーザーとアカウント管理+

ネットワークの管理+

システム・プロセス管理+

その他のコマンド+


grep〜指定した文字列を含む行を表示する

ファイルの中から指定した文字列を含む行を検索し、 標準出力 する コマンド です。

コマンドの一般書式は、

grep [オプション] [パターン] [ファイル1] [ファイル2]... Enter

です。この書式では、[ファイル1]、[ファイル2]...に対して[パターン]と一致する文字列を含む行を抽出して画面に表示します。

[tanaka@web1 ~]$ cat /etc/sysconfig/networkEnter catコマンドの説明
NETWORKING=yes
HOSTNAME=web1.obenri.com
DOMAIN=obenri.com
GATEWAY=192.168.100.1
  ↑"/etc/sysconfig/network"の内容です。
[tanaka@web1 ~]$ cat /etc/hostsEnter
127.0.0.1 localhost.localdomain localhost
192.168.100.11 web1.obenri.com web1
  ↑"/etc/hosts"の内容です。
[tanaka@web1 ~]$ grep obenri /etc/sysconfig/networkEnter
HOSTNAME=web1.obenri.com
DOMAIN=obenri.com
  ↑"obenri"を含む行だけが表示されます。
[tanaka@web1 ~]$ grep obenri /etc/sysconfig/network /etc/hostsEnter
/etc/sysconfig/network:HOSTNAME=web1.obenri.com
/etc/sysconfig/network:DOMAIN=obenri.com
/etc/hosts:192.168.100.11 web1.obenri.com web1
  ↑検索対象が複数の場合はファイルの絶対パスが表示されます。
[tanaka@web1 ~]$

また、

grep [オプション] [パターン] Enter

のように、[ファイル1] [ファイル2]...を省略した場合には、grepコマンドは 標準出力 からのリダイレクト処理 リダイレクト処理の説明 やパイプ処理 パイプ処理の説明 を通じた入力を受けて処理します。

[tanaka@web1 ~]$ grep CPU < /var/log/dmesgEnter
Initializing CPU#0
CPU:  After generic, caps: 0780a17b 00000000 00000000 00000000
CPU:      Common  caps: 0780a17b 00000000 00000000 00000000
CPU: Intel(R) Celeron(R) M processor    1.30GHz stepping 08
  ↑"/var/log/dmesg"から入力のリダイレクトで"CPU"を含む行だけ表示させました。
[tanaka@web1 ~]$ cat /var/log/dmesg | grep CPUEnter
Initializing CPU#0
CPU:  After generic, caps: 0780a17b 00000000 00000000 00000000
CPU:      Common  caps: 0780a17b 00000000 00000000 00000000
CPU: Intel(R) Celeron(R) M processor    1.30GHz stepping 08
  ↑"cat /var/log/dmesg"からパイプ処理で"CPU"を含む行だけ表示させました。↑
[tanaka@web1 ~]$

grepのマスターはシェルスクリプトのため

grepは「文字列を検索して表示する」という単純な コマンド ですから、 サーバー 運用に携わっていない人にとっては、「そんなのが何の役に立つの?」という印象を受けるかもしれません。「文字列の検索なら、ワープロかエディタのほうが慣れてるし、そのほうが簡単。」と思うかもしれません。

実のところ、grepコマンドの存在意義はコマンドライン操作に対してではなく、 シェル スクリプト 内への記述にあるといえます。

LinuxOS は、 アプリケーション デーモン の起動や動作の管理、 ログ の記録の他、 ユーザー アカウント の管理など、動作に係わるほとんどの プロセス テキスト で制御し、テキストで記録します。

つまりサーバーを安全に快適に運用するためには、これらのテキストファイルを解析し、サーバーの動作を把握することが不可欠です。

しかしログファイルの多くは、不必要なデータも大量に含まれていますから、この中から必要なデータだけを抽出し、解りやすく加工する必要があります。

grepは、その多彩なオプションスイッチを駆使し、予めシェルスクリプトとして記述しておくことで、テキストファイルに対して確実に同じ処理を行うことができます。

実際、「grepを使わないサーバー管理のシェルスクリプトはあり得ない。」と思って間違いありません。シェルスクリプト上ではそれほど有用なコマンドです。

コマンドライン操作に限っていえば、grepコマンドは強いて使うべきものではないかもしれませんし、覚えておくべきオプションスイッチもないと思われます。

しかし、ある程度サーバー運用に慣れてきて、シェルスクリプトでの管理が必要になってきたときには必ずお世話になるコマンドです。

そういう訳ですから、grepの扱いに慣れておくことはとても大切なことです。できれば「わざわざgrepを使わなくてもいい」と思われるところでも積極的に活用し、日頃から感覚を身に付けておくことはとても大切なことだと思います。

sort〜テキストを一行ずつ並び替えて表示する

ファイルの中の行を並べ替えて 標準出力 する コマンド です。

コマンドの一般書式は、

sort [オプション] [ファイル1] [ファイル2]... Enter

です。この書式では、[ファイル1]、[ファイル2]...の中のすべての行を、[オプション]の指示に従って並び替えて表示します。

[tanaka@web1 ~]$ cd /etc/sysconfig/Enter cdコマンドの説明
[tanaka@web1 sysconfig]$ cat networkEnter catコマンドの説明
 ↑"network"の内容をそのまま表示します。
NETWORKING=yes
HOSTNAME=web1.obenri.com
DOMAIN=obenri.com
GATEWAY=192.168.100.1
[tanaka@web1 sysconfig]$ sort networkEnter
 ↑"network"の内容を文字コード順に並べ替えて表示します。
DOMAIN=obenri.com
GATEWAY=192.168.100.1
HOSTNAME=web1.obenri.com
NETWORKING=yes
 ↑アルファベット順に表示されました。
[tanaka@web1 sysconfig]$ cat network network-scripts/ifcfg-eth0Enter
 ↑"network"と"network-scripts/ifcfg-eth0"の内容を順にまとめて表示します。
NETWORKING=yes
HOSTNAME=web1.obenri.com
DOMAIN=obenri.com
GATEWAY=192.168.100.1
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.100.11
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
NETWORK=192.168.100.0
BROADCAST=192.168.100.255
TYPE=Ethernet
USERCTL=no
PEERDNS=no
[tanaka@web1 sysconfig]$ sort network network-scripts/ifcfg-eth0Enter
 ↑"network"と"network-scripts/ifcfg-eth0"の内容をコード順に並び替えて表示します。
BOOTPROTO=none
BROADCAST=192.168.100.255
DEVICE=eth0
DOMAIN=obenri.com
ATEWAY=192.168.100.1
GATEWAY=192.168.100.1
HOSTNAME=web1.obenri.com
IPADDR=192.168.100.11
NETMASK=255.255.255.0
NETWORK=192.168.100.0
NETWORKING=yes
ONBOOT=yes
PEERDNS=no
TYPE=Ethernet
USERCTL=no
 ↑アルファベット順に表示されました。
[tanaka@web1 syscnfig]$

また、

sort [オプション] Enter

のように、[ファイル1] [ファイル2]...を省略した場合には、sortコマンドは 標準出力 からリダイレクト処理 リダイレクト処理の説明 やパイプ処理 パイプ処理の説明 を通じた入力を受けて処理します。

[tanaka@web1 ~]$ df | grep devEnter dfコマンドについて
 ↑"df"の出力結果から"dev"を含む行を表示します。
/dev/hda3       1004052   207980   745068 22% /
/dev/hda1        101089   14127   81743 15% /boot
/dev/hda8       5178536   39132  4876344  1% /home
none           80648     0   80648  0% /dev/shm
/dev/hda9        101089    4145   91725  5% /tmp
/dev/hda5       4032092  2177832  1649436 57% /usr
/dev/hda7       1004024   20032   932988  3% /usr/local
/dev/hda6       3020140   462604  2404120 17% /var
[tanaka@web1 ~]$ df | grep dev | sortEnter
 ↑"df"の出力結果から"dev"を含む行を並び替えて表示します。
/dev/hda1        101089   14127   81743 15% /boot
/dev/hda3       1004052   207980   745068 22% /
/dev/hda5       4032092  2177832  1649436 57% /usr
/dev/hda6       3020140   462604  2404120 17% /var
/dev/hda7       1004024   20032   932988  3% /usr/local
/dev/hda8       5178536   39132  4876344  1% /home
/dev/hda9        101089    4145   91725  5% /tmp
none           80648     0   80648  0% /dev/shm
[tanaka@web1 ~]$

more〜テキストを一画面ずつ表示する

標準出力 するタイプの コマンド を実行するとき、出力内容が一画面に収まりきれないときがあります。

こういう場合、入力のリダイレクト 入力のリダイレクトの説明 や、パイプ処理 パイプ処理の説明 とmoreコマンドを組み合わせることで、テキストファイルを一画面ずつストップさせながら出力させることができます。

画面出力を中止して プロンプト に戻るには q をタイプします。

[tanaka@web1 ~]$ cat /etc/httpd/conf/httpd.conf | moreEnter catコマンドの説明


moreコマンドの使用例1

スペース を押す。

moreコマンドの使用例2

q を押す。

moreコマンドの使用例3

moreコマンドには、表示する行を指定したり、指定した文字列を含む行から表示したり、といったオプションがありますが、そういうケースではこのパートの上で説明したgrepコマンドやnanoエディタ nanoエディタの説明 を利用したほうが簡単ですので説明は割愛します。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System