Linuxコマンドとviとシェルスクリプト

Linuxコマンドとviとシェルスクリプト

Linux > Linuxコマンドとviとシェルスクリプト > 基本コマンド、セキュリティコマンド

はじめに

アドバイスすることは、特に1つだけです。

偶然に、このWebにたどりついたあなたが
初心者で、これからLinuxを学ぶ あるいは、少しだけコマンドをうったことがあるだけなので、もっともっと知識をつけたいと思っているならば、 LinuxWorld メモリアルDVDブック [2001-2007]と、コマンド本を買って、まずは最低買っておきましょう。

遅かれ、早かれ、必要になります。



くれぐれも、ウン十万円も払って、巷のスクールに通う前に、まずは自分で動かせるだけ動かしましょう。

今でも、スクールに何十万円、ひどいケースでは100万円近く払ってLinuxを習いに行く人もいるようですが、お金がもったいないだけです。

お金を払って習ったから就職・転職できるわけでは、ないということだけは、頭においておいてソンはないです。

初心者を卒業した人、中級者向け・・・Inside Linux Software オープンソースソフトウェアのからくりとしくみ

Inside Linux Software オープンソースソフトウェアのからくりとしくみ ■Inside Linux Software オープンソースソフトウェアのからくりとしくみ
 
 価格:¥2,709(税込)
 出版社:翔泳社


以前も、レビューしたことがありましたが、久しぶりに読んでたんですが、面白かったです。
すっかり、忘れていることもあり、前はこんなことよくやってた時期あったなぁーということもあり。

patchの作成・適用のP198~P213なども、初心者レベルの人でもかなり勉強になります。
diffコマンドやpatchコマンドを使用してのテキストパッチ作成は、必読内容だと思います。
というか、知っておくべき。あんまりLinuxビギナー向けの本にも載ってないし、講習でもやってないし。
※講師が、知らんから?(^^)

他にも役立つ内容いっぱいです。
冒頭の「gccによるコンパイルの裏側」とか。

初心者も中級者も使えます・・・LinuxサーバHacks―プロが使うテクニック&ツール100選

LinuxサーバHacks―プロが使うテクニック&ツール100選 ■LinuxサーバHacks―プロが使うテクニック&ツール100選
 
 価格:¥2,310(税込)
 出版社:オライリージャパン


2003年に発売された本で、今(2009年4月)に見返しているんですが、これは初級者・中級者の人など幅広く使える本ですね。

また、下記の質問に答えられなかった人にも、オススメです。

いや、改めて驚いたな。さすが、オライリー本。

もう1度初心に帰って、

私の学習書籍・・・Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編

Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編 ■Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編
 
 価格:¥3,675(税込)
 出版社:秀和システム


Amazonのレビューでも評価が高い本ですが、初心者のみならず、経験者でも活用できる箇所が多いです。

特に、bonding関連の設定が書かれている本は、これくらいだし、keepalivedによる監視、heartbeatによるサービス監視、その他、スイッチなどについても関連付けて書かれている書籍は、これくらいしかありません。

なので、設計・構築とかやっている人は、手元に1冊置いておくべきでしょう。きっと。

ここまで書いてくれていたら、相当役に立ちますよ。

実務で使っている設定・構成図などをそのまま(あるいは修正して)掲載してくれてますので、見やすくわかりやすいです。

いまだに、十分、オススメできる1冊です。



私のおすすめ書籍・・・Unixシステムパフォーマンスチューニング 第2版

Unixシステムパフォーマンスチューニング 第2版 ■Unixシステムパフォーマンスチューニング 第2版
 価格:¥3,780(税込)
 出版社:オライリージャパン


山積みになった本の中からようやく見つけることができました。


SE的な仕事をしている人は、おそらく皆持っていると思いますけど。

「パフォーマンスは?限界性能は?」

という質問を投げられた時に、この書籍にあるような内容、あるいはテスト・動作確認を行う(行える)人は意外に少ないと思います。

基本的なコマンドも多いので、まずは、1章から読んでみると良いです。

64ビットと32ビットのところの話も、エンジニアの人でも、このくらいの事は、簡潔に答えることができないといけないと思いますが、いかがでしょうか?


書店で買おうかどうか決める人は、まずP10の「1.2.5 原則4:テストは慎重に」を読んでから、買うかどうかを決めると良いと思います。


私のおすすめ書籍・・・UNIXシェルスクリプト逆引き大全333の極意―Linux,FreeBSD,Solaris,Mac OS X

UNIXシェルスクリプト逆引き大全333の極意―Linux,FreeBSD,Solaris,Mac OS X ■UNIXシェルスクリプト逆引き大全333の極意―Linux,FreeBSD,Solaris,Mac OS X
 価格:¥2,520(税込)
 出版社:秀和システム


書店で中身を見て、多少厚みのある重い本だったので、アマゾンで買いました(^^)。

中身は、結構充実していると思います。

シェルスクリプト学習本として、サンプルが欲しい方にも向いていると思いますし、ncコマンドのlistenで待ちうけさせるとか、tcpserverを使うとか、結構、知っておくと便利な知識も出てくるので、初級中級を1冊でカバーしたいという人に向いていると思います。

文字列の扱いに関しても、P91~P112あるので、一通りの知識を得たい方には、十分な内容となってます。



Linuxコマンド・・・nmap(シーズン1)

パソコンの絵 Fedora 8にnmapが インストールされています。
、 それを使って、 自社でのセキュリティ診断を 行いましょう。

本日は、2つの診断を行ってみます。

1.自社サーバーのポートの空き状況
2.自社サーバーのOS情報

1は、カンタンですね。

早速やってみます。

.# nmap 192.168.1.111

Starting Nmap 4.20 ( http://insecure.org )at 2007-12-21 17:31 JST
Interesting ports on 192.168.1.111:
Not shown: 1695 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind

Nmap finished: 1 IP address (1 host up) scanned in 0.248 seconds



2.オプション -Oを使用します。
  使用OSを知る。

※自分で、man nmap してオプションの意味を
 調べる習慣づけを行うと良いです。

# nmap 192.168.1.111 -O

Starting Nmap 4.20 ( http://insecure.org ) at 2007-12-21 17:13 JST
Interesting ports on 192.168.1.111:
Not shown: 1695 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
Device type: general purpose|WAP|load balancer|broadband router|storage-misc|specialized

Running (JUST GUESSING) : Linux 2.6.X|2.4.X (97%), Siemens linux (92%), Kemp embedded (90%), Linksys embedded (90%), Linksys Linux 2.4.X (90%), Asus Linux 2.4.X (90%), Maxtor Linux 2.4.X (90%), Atmel Linux 2.6.X (89%) Aggressive OS guesses: Linux 2.6.18 (97%), Linux 2.6.17.8 SMP (x86) (96%), Linux 2.6.17 - 2.6.18 (96%), Linux 2.6.17 (Gentoo, x86) (95%), Linux 2.6.17 (x86) (95%), Linux 2.6.14 - 2.6.17 (94%), Linux 2.6.17 - 2.6.18 (x86) (94%), Linux 2.6.17-10.33 (Ubuntu) (94%), Linux 2.6.18 - 2.6.19 (x86) (94%), Linux 2.6.18.2 (x86) (94%) No exact OS matches for host (test conditions non-ideal). Uptime: 0.028 days (since Fri Dec 21 16:33:16 2007) Network Distance: 0 hops

OS detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ . Nmap finished: 1 IP address (1 host up) scanned in 14.111 seconds

それにしても、 色々なLinuxの名称が出てきましたね。

そっちの方に関心がいってしまいますねー。

Linuxコマンド・・・nmap(シーズン2)

さて、3つ目の診断です。
引き続きnmapを使います。

昨日、サーバーのポートが開いているのが 確認できました。

その中に、当然のごとく SSHの22番ポートがありました。

さて、このSSHで使用しているであろう、 OpenSSHのバージョンは、 わかるのでしょうか?

これが、3つ目です。

3.
# nmap 192.168.1.111 -sV

Starting Nmap 4.20 ( http://insecure.org ) at 2007-12-22 19:53 JST
Interesting ports on 192.168.1.111:
Not shown: 1695 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7 (protocol 2.0)
111/tcp open rpc
Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap finished: 1 IP address (1 host up) scanned in 6.563 seconds

この-sVオプションは、 man nmapで調べることができます。

参考までに。

SERVICE/VERSION DETECTION:
-sV: Probe open ports to determine service/version info

BINDを起動させて、再度 確認してみました。

# nmap 192.168.1.111 -sV

Starting Nmap 4.20 ( http://insecure.org ) at 2007-12-22 19:57 JST
Interesting ports on 192.168.1.111:
Not shown: 1694 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7 (protocol 2.0)
53/tcp open domain
111/tcp open rpcbind 2-4 (rpc #100000)

先ほどは、表示されなかった、 2-4(rpc #100000) が、今度は 表示されていますね。

1度だけでは、確認しきれないのかもしれないので、
2・3度行う必要があるのかも しれません。

少し、nmapの実装を調べる必要が ありますね。

最後に、Apacheも起動させて 確認します。

# nmap 192.168.1.111 -sV

Starting Nmap 4.20 ( http://insecure.org ) at 2007-12-22 20:01 JST
Interesting ports on 192.168.1.111:
Not shown: 1692 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7 (protocol 2.0)
53/tcp open domain
80/tcp open http Apache httpd 2.2.6 ((Fedora))
111/tcp open rpcbind 2-4 (rpc #100000)
443/tcp open ssl/http Apache httpd 2.2.6 ((Fedora))
Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap finished: 1 IP address (1 host up) scanned in 12.403 seconds

おっとーー。

ここで、Fedoraだと、バレますね。

httpd.confの記述がデフォルトなので、
おおよそ、どこから情報がもれたか 検討はつきますけれど。

CentOSなどでも、 やってみる必要がありますね。

Linuxコマンド・・・nmap(シーズン3)

さて、前回の診断で ApacheのバージョンやOSが知られることが判明しました。

デフォルト設定で起動していたので、 見た瞬間、

「おそらくアレを修正すれば、出ないだろう」と思って 設定ファイルを修正してみました。

再度、nmap 192.168.1.111 -sV すると 下記のようになりました。

# nmap 192.168.1.111 -sV

Starting Nmap 4.20 ( http://insecure.org ) at 2007-12-30 16:41 JST
Interesting ports on 192.168.1.111:
Not shown: 1693 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7 (protocol 2.0)
80/tcp open http Apache httpd
111/tcp open rpcbind 2-4 (rpc #100000)
443/tcp open ssl/http Apache httpd
Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap finished: 1 IP address (1 host up) scanned in 12.402 seconds



Apacheであることは、バレますが、 Apacheのバージョン及び、使用OSは わからなくなりました。

2007年、これまで当たり前としていた Apacheの設定を見直す動きが、
増えました。

セキュリティ診断を行った企業では、 デフォルト設定のままにしていた 設定ファイルの中身を 修正したところも、多いです。

これを読んでいる人は、 具体的にどこを修正するべきか、 自分で調べてみてはどうでしょうか?

すぐにわかるはずです。

Linuxコマンド・・・nmap(シーズン4)

日経コミュニケーション 2008年3月1日号に 出ていたものです。

1つだけ ここで、とりあげたことが なかったオプションなので、 載せておきます。

-T5と書いていますが、
-T4など、速度を速めることができるようです。

# nmap -T5 192.168.0.111

Starting Nmap 4.52 ( http://insecure.org ) at 2008-03-01 23:48 JST
Interesting ports on 192.168.0.111:
Not shown: 1711 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
111/tcp open rpcbind

Nmap done: 1 IP address (1 host up) scanned in 0.260 seconds

man nmapすると、
下記が表示されました。
TIMING AND PERFORMANCE:
Options which take are in milliseconds, unless you append ´s´(seconds), ´m´ (minutes), or ´h´ (hours) to the value (e.g. 30m).
-T[0-5]: Set timing template (higher is faster)

私のおすすめ書籍・・・ネットワークセキュリティHacks 第2版 ―プロが使うテクニック & ツール 100+

ネットワークセキュリティHacks 第2版 ―プロが使うテクニック & ツール 100+ ■ネットワークセキュリティHacks 第2版 ―プロが使うテクニック & ツール 100+
 価格:¥3,360(税込)
 出版社:オライリー・ジャパン


改定されてますます、中身が濃くなりました。

中級者向けだと思いますが、初心者の人も購入して、できるだけ触れっておけば、かなりレベルアップすると思います。

iptablesを使用したトラフィック量計測も使えそうですね。



P213のNTPに関する内容のところですが、NTPサーバーのリストがあるURLが変わっています。 なので、ここに記しておきます。

NTP Serverのリスト等があるURL http://support.ntp.org/bin/view/Servers/WebHome#About_the_Public_NTP_Time_Server

Stratum1 http://support.ntp.org/bin/view/Servers/StratumOneTimeServers

Stratum2
http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers



Linuxコマンド・・・普段は使わないが、スクリプトの中では、時々使う tee

大:今日は、teeコマンドをとりあげます。

  これも、通常の管理・運用作業では
  使ったことはありません。

竹:というよりも、一生使うことはないと思うよ。

大:だそうです。

  でも、シェルスクリプトの中では、
  時々、見かけるので、とりあげます。

■使い方
例1)

echo "この文を画面表示、かつファイルに書き出します。" | tee -a test.txt  

画面表示(標準出力)と
引数で指定したファイルへのコピーを
同時に行います。

なので、ここでは、
画面に下記文が表示され、

「この文を画面表示、かつファイルに書き出します」

同時に、同じ文面がtest.txtに書き込まれました。



例2)
echo "この文を画面表示、かつファイルに書き出します。" | tee -a test.txt test2.txt test3.txt

teeコマンドでは、
引数に指定したファイルすべてに
コピーされます。

この場合、test.txt test2.txt test3.txtの
3つのファイルすべてに同じ内容が
記録されます。

シェルスクリプト実効時、
エラーが発生した場合に、
画面に結果を表示させながら、
ログファイルへも書き出す、という処理で
よく使われます。

-a なしで使用すると、追記ではなく、
上書きとなりますので、注意しましょう。

その他のオプションなど詳しくは、man tee しましょう。

Linuxコマンド・・・1年に1回くらいは使うコマンド tee

竹:今って、treeコマンドで
  ファイルの階層構造が見れるように
  なってるのかぁー。

  ふむふむ。

大:何してるんですか?

荒:もう、皆帰るで。

竹:これなんですけど。

荒:あー、treeコマンドかぁー。

竹:昔は、なかったですよね、確か。

荒:うん。

プロセスの親子がわかる
  pstreeは、あったけどねー。

  treeコマンドって、
  いつの間にか、あったよねー。

  Linux World総集編のDVDに、
  ディレクトリとかファイルの階層構造を
  表示させるシェルスクリプトが、
  サンプルで取り上げられてたし。

竹:やっぱり、最近ですよね。
  うーん、常に最新情報を
  チェックをしておかないと。

  どんどん、便利になってる・・。

大:ふーん、最初からあったわけでは
  ないんですねぇー。
  で、帰りましょう

竹:あ、ブログに残しておきましょう。

$ tree -a

. |-- .ICEauthority
|-- .Trash
|-- .bash_logout
|-- .bash_profile
|-- .bashrc
|-- .config
| |-- user-dirs.dirs
| `-- user-dirs.locale
(長すぎるので途中省略)|-- .xsession-errors
|-- .zshrc
|-- ダウンロード
|-- テンプレート
|-- デスクトップ
|-- ドキュメント
|-- ビデオ
|-- 公開
|-- 画像
`-- 音楽
64 directories, 72 files

追加です。(2009/2/3)

man treeすると、すぐわかることですが。

-d ディレクトリ指定、と -f は使用する機会が結構あるかもしれません。

(使用例)
$ tree -d /home/hogehoge -f | more
表示省略。指定したディレクトリ配下のディレクトリとファイルが、ツリー構造フルパスで表示されます。


vi シーズン1・・・s

コマンド本などでは、下記の表現で説明されているようです。

・1文字を別の文字列に置き換えます。

カーソルがある1文字が、sを押すと削除され、そこから入力モードになる。
上記で「別の文字列に置き換え」とは、そのことを意味します。

「1文字削除し、そのまま入力できる」という言い方の方が、わかりやすいと思います。

vi シーズン2・・・ZZ

書き込み同時終了。
「上書保存+同時終了」という言い方も可能。

「大文字Z入力」後、再び「大文字Z入力」。

私の場合は、:wq   しか使わないです。

ZZは、なんとなく私としては、使いにくいので。

あと、:x を使う人は、今まで見たことないですね。(^^)

vi シーズン3・・・Ctrl+F,Ctrl+B,Ctrl+D,Ctrl+U

Ctrl+F ・・・次の画面
Ctrl+B ・・・前の画面
Ctrl+D ・・・半画面下
Ctrl+U ・・・半画面上

便利ですが、うーーん、あまり使いません。

Ctrlキーを、vi操作中に使うことに、抵抗があるというか、違和感があるというか。
Shiftキーなら、何も気にせず使っていますが。

vi シーズン4・・・ :set all

viに、異常に精通している人なら、これは知っているでしょう。

私は、見ることはありませんね(^^)。

:set nu と :set nonu くらいです。私が使うのは。

viを使ってプログラムを書く人は、下記を使う人はいるかもしれません。

:set ts=4  のように、4に設定している人とか。
(デフォルト8です)

:set list これも、私は、使っている人を見たことないですねぇー。

:set ai  は、シェルスクリプトを書く「プログラマー職種」の人なら使うかも。

aiは、autoindentの略です。



いづれも、viを終了すると、setで指定したオプションは、無効になります。

次回以降も使用したい場合は、
自分のホームディレクトリに、.exrc ファイルを作成し、
set number autoindent

などの記述を書いておくと良いでしょう。



※.exrc ファイルに記述せずに、環境変数 EXINIT を使う方法もあります。
 export EXINIT="set number autoindent"

.bach_profile に、この1行を書いておけば、ログアウトしても大丈夫です。

vi の本

vi シーズン5・・・:r !コマンド

あまり知られていませんが、知っていると便利です。

:r ! date というような使い方です。

!以降は、コマンドを使えます。パイプも使えますね。

このr !の代わりに、リダイレクトでいいだろうとも思う場合もありますが、
こちらの方は、思いついたら、
すぐそこから使えるので便利です。

vi シーズン6・・・3yw

3yy(あるいは、3Y)なら、3行 ですよね。

3yw で、カーソルがあるところから3単語を取り出せます。

英文コピー・英文設定ファイルを使う時、うまいタイミングで使用できると便利です。

vi シーズン7・・・A と I

・A  カーソルがある行末からテキスト入力できます。

・I  カーソルがある行頭からテキスト入力できます。

vi シーズン8・・・ :1,10w ファイル名

ファイルの一部を保存したいケースは、結構あるでしょう。

行単位で、別ファイルに保存することができます。

:1,10w ファイル名

これは、1行目から10行目までを、指定したファイル名で保存することができます。

:15,30w sample.txt

こうすると、15行目から30行目までを、sample.txtというファイル名で保存できます。

サーバー設定ファイルなどを、部分的に保存したケースで活用できます。

※コピー&ペーストすることもできますが、これを使いこなせば速い、という場合は多いですよね。



これをスムーズに使っている人は、「なかなかできる人」に見えます。

vi シーズン9・・・ :8,11s/linux/L/g

全置換えを、知らない人は、あまりいないと思います。
(そうでもないですかねぇー)

長く触っていると、何行目から何行目までの「ある文字」を置き換えたいという場合は、良くあると思います。

そんな時、間違えずに、これを使えると便利です。

例1) :8,11s/linux/L/g

8行目から11行目だけ、linux という文字列があれば、L に置き換えろ。

例2) :.,$s/Linux/L/g

これも使いこなせると、便利です。

.(ピリオド)は、カレント行(今、カーソルがある行)。

$は、最後の行。

つまり、「今、カーソルがある行から、最後の行までで、Linux を L に置き換えます。



例3) :%s/Linux/L/g

これは、基礎中の基礎です。すべて置き換えですね。



例4) :.,/Solaris/s/Linux/L/g

これは、覚えなくていいですけど。

カレント行から、次にSolarisという文字が出てくるまでの間の行で、Linux を L に置き換えます。



私の学習書籍・・・viデスクトップリファレンス

viデスクトップリファレンス ■viデスクトップリファレンス
 価格:¥840(税込)
 出版社:オライリー・ジャパン


価格の安さ、そして、知っていると便利な使い方が出ている、非常に薄型の長く、売れている本です。

vi シーズン10・・・ d1j あるいは、d2j

あぶなくて、使わないだろうコマンドです。(^^)

j は、下方向へカーソルを移動させるコマンドですよね。
d数字j は、今カーソルがある行を削除する+下(数字の分)行を削除する、コマンドです。

d1jならば、今カーソルがある行とその下1行を削除。
d2jならば、今カーソルがある行とその下2行を削除。


ddコマンドを使う方が、安全です。(^^)

vi シーズン11・・・5s

うまく使える人は、使えますが・・・・。

5s は、今カーソルがある文字列を、5文字置き換えます。
5s したら、5文字分消えます。

xを使うより便利ですが、入力ミスとか、数字ミスをして設定ファイルの入力内容を間違えないことですね。

同様の感覚で使えそうなのが、

C(行の終わりまで、他の文字列に変更するため、Cすると、行末までの文字が消えます)

cc・・・・ddがあるので、不要だと思います。

R・・・実際に使うと、「置換」と表示されると思います。
    入力していき、ESCキーを押すと、終了します。「文字列上書き」というべきかも。
    使っている人はいると思いますが、慣れた人でも使ってない人・知らない人は多いです。

vi シーズン12・・・ +と-

+ ・・・次の行の先頭

- ・・・前の行の先頭

wとe・・・wは、次の単語の先頭。eは、次の単語の末尾。

H・・・画面の先頭行

L・・・画面の最終行。ファイルの末尾という意味で、最終行にとぶ G と違うので注意。

M・・・画面の中央にとびますが、使っている人、見たことないですね。(^^)



これにて、おしまい。

これだけ、使えれば、まあ、言うことないと思います。





vi シーズン13・・・使っている人は、この世にいない気がするが・・・

ここからは、使っている人を見たことがない、今後も見ることはないだろうものです。



複数ファイルを同時にviで開くこともできます。

できるからといって、実際の仕事で、する人はいないと思いますが・・・・。

vi file1.txt file2.txt file3.txt

1つ目のファイルから2つ目のファイルへの切り替えは、
1つ目のファイルを保存してから、
:n エンターキーを叩く、です。
file2.txt へ移ります。

保存せずに次のファイルに移ろうとすると、vi は警告を出しますが、
保存する必要がなければ、:n! で次のファイルへ移動できます。
その場合、再びfile1.txtへ戻ってきても、元の内容は保存されていません。
つまり、最初にfile1.txtを開いた時の状態である、という意味です。



最後のファイル、ここではfile3.txt から再びfile1.txt に戻る時は、

:n は使えません。

:rew エンター叩く、を使う必要があります。



きっと、:e 同様に、使う人はいないでしょう(^^)。

私の学習書籍・・・LinuxWorld メモリアルDVDブック [2001-2007]

LinuxWorld メモリアルDVDブック [2001-2007] ■LinuxWorld メモリアルDVDブック [2001-2007]
 出版社:アイ・ディ・ジー・ジャパン
 価格:¥2,194


かつて、「これだけは最低買うべきである」とオススメしていたLinux Worldです。

去年、残念ながら休刊となりましたが、過去の全67冊がPDFとなり読めるようになってます。

特集記事や連載など、シェルスクリプトも含めて参考になる記事は多いです。

ぜひ、買っておきましょう。

これを最初から最後まで読むだけでも、相当な力がつきます。

LPIC レベル2くらいまでなら、軽く合格できると思うんですが・・・。

私の学習書籍・・・入門UNIXシェルプログラミング ―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング
 ―シェルの基礎から学ぶUNIXの世界 ■入門UNIXシェルプログラミング
 ―シェルの基礎から学ぶUNIXの世界
価格:¥3,360(税込)
出版社:ソフトバンククリエイティブ

不動のベストセラー&ロングセラーです。

Linux Worldと合わせてセット購入すると、最もコストパフォーマンス良く、シェルスクリプトが作成できるでしょう。

今でも、私の手元に置いている本であり、時々調べものに使う時がある本です。

ポケットサイズの本や逆引きシリーズの本には、実務で使えそうなシェルスクリプトが出ていますが、基礎からシェルスクリプトを学ぶ場合のためにも、こういう基本をガッチリ教えてくれるロングセラー本は、1冊持っておくべきです。

学習書籍・・・[改訂第3版] UNIXコマンドポケットリファレンス ビギナー編

[改訂第3版] UNIXコマンドポケットリファレンス ビギナー編 ■[改訂第3版] UNIXコマンドポケットリファレンス ビギナー編
価格:¥2,079(税込)
出版社:技術評論社

長く売れているロングセラーで、発売から10年目に突入。

技術評論社から届いた、書籍案内を読むと、今回の改訂にあたり、対象OSを RedHatEnterprise Linux5,FreeBSD6,Solaris10にて、コマンド検証しているので、新入社員の人、あるいは新人への研修担当の人、コマンド本を買い換えようと思っている人は、こちらをオススメします。

コマンドの出力結果(特に日本語)の違いなども、理解できると思います。

Emacs 基礎

Ruby・PHP・Perlを使えるのも当たり前となっている2008年なので、Emacsも使いこなす必要は出てきましたね。

1.Ctrl+x u

  アンドゥ

 アンドゥをやり過ぎて、逆方向に戻る時に1回使う、Ctrl+g

2.tabキー補完

  保存する時に、似たようなファイル名をつける時など。tabキーを使う。

3.Ctrl+x Ctrl+f

  ファイルを開く。



4.Ctrl+x Ctrl+v

  ファイルの読み込み間違いをしたため、再度別のファイルを開きたい場合

5.Ctrl+a Ctrl+e

aは、行頭へ移動。eは、行末へ移動。

シェルスクリプト・・・while read 変数 do done(シーズン1)

奥:シェルスクリプトの中では、
  定番中の定番です。

  変数を読み込ませて、
  順番に繰り返し処理を行う、というのは
よくあります。

  繰り返しファイルに書き出すとか、
  繰り返し、色々な宛先にメール送信するとか。

  で、今からやろうと思ったんだけど、
  お昼だから、お昼ごはんの後にしましょう。
大:はい。

  お腹空きましたし・・・・。

つづきは、PM2時頃・・・・・。



大:では、続きです。

奥:テンプレートを作り、
  そこに色々、自分で好きなように
  スクリプトを作っていきましょう。

大:はい。

奥:「実用的」とうたってスクリプトを
  掲載している書籍も一杯あるし、
  もっと色々サンプルを見たい人は、
  そういう書籍や雑誌を買ってもらえば、
  いいでしょう。
  コストパフォーマンスを求めるなら、
  下記のLinux World DVDが1番です。

2003年12月号や2005年1月号など
過去のスクリプト特集がたくさんあります。

大:えーーっと、これがテンプレートですね。

ファイル名:while_read_do_done.sh

●内容
#!/bin/bash
cat list.txt | while read list
do
echo "$list さんは帰りました。"
done

●list.txt・・ユーザーアカウントが1行に1つあり。
takeuchi
okuda
oosaki

奥:list.txtというファイルを読み込みます。

  1行ずつ変数に読み込んだ内容を
  今度は、echo行で出力するだけの内容です。

  まず、実行してみましょうか。

大:はい。

  最初に、実行可能な権限を設定する、と。

  chmod 774 while_read_do_done.sh

  次に、実行します。

$ ./while_read_do_done.sh   

■出力結果
takeuchi
okuda
oosaki

奥:1行ずつ読み込んだ内容を
  1行ずつ出力しているだけなんですけどね。

大:はい。
奥:catでファイルを読み取って
  パイプで、while read 変数に
  「入力」として渡すというのが
  定番ですね。

大:はい。
奥:listというのは、変数名なので、
  別に何でもいいのよ。

  oosakiに変更してもいいし、
  変更したら、echo $oosakiに
  変更することも忘れないように。

大:は<い。

  変更してみます。


●変更後
#!/bin/bash
cat list.txt | while read oosaki
do
echo $oosaki
done


■出力結果・・先ほど同様
takeuchi
okuda
oosaki


大:なるほど。

  変数名なので、何でもいいと。

  でも、わかりやすい変数名をつける、かぁー。

  よく、わかりました。
奥:では、ちょっと改良しましょう。

  シーズン5くらいまで、やればいいかな。

シェルスクリプト・・・while read 変数 do done(シーズン2)



たまーに使うコマンド・・・usermod

ほとんど1年に1回あるか、ないかという使用頻度のコマンドです。

usermodに関しては、結構使うケースはあると思いますが、そのオプションである、-d や -m を使ってみましょう。

(例)
大崎さんの oosaki というアカウントで、ホームディレクトを/home/oosaki をやめて、/home/osac に変更してもらうことになりました。

その場合、/home/oosakiで使っていたファイルは、/home/osacで継続して使いたいという時に、使うコマンドです。

usermod -d /home/osac -m oosaki



ユーザー作成時にできたホームディレクトリを変更したい場合。

-dを使って新規ディレクトリが作成されますが、今まで使っていたホームディレクトリ(/home/oosaki)に、ファイルがあると、そのまま使いたいのが普通です。

新規に作成するディレクトリ(/home/osac)にも、ファイルを移動させたい場合に使います。



(その他の例)
usermod -l osac -d /home/osac -m -g osac oosaki
※アカウント osac が存在すること、/home/osac の所有グループがoosakiのままであることなど注意!

私のおすすめ書籍・・・


 価格:¥,(税込)
 出版社:


たまーに使うコマンド・・・rpm --rebuild ~.src.rpm

最近は、yum でほとんど済ましてしまいますが、たまには使う rpmコマンド。

私の学習書籍・・・情報システム部に所属しているなら、セキュリティ本として机に置いておくべき本

ペネトレーションテスト入門 情報システムセキュリティの実践的監査手法 ■ペネトレーションテスト入門
 情報システムセキュリティの実践的監査手法
 価格:¥3,675(税込)
 出版社:ソフトバンククリエイティブ


「ペネトレーションテスト」「セキュリティチェック」「脆弱性チェック」などを行っている企業は多いですが、結果を公表する企業は、ほとんどありません。

ゆえに、この本は、貴重です。
これからセキュリティ診断を行う企業、既に行った企業ともに、
依頼したベンダーの質や、他社はどこを点検しているのか、どのような資料をまとめるべきか、など具体的な事例を知ることができます。

なかなか得ることができない類の情報ゆえに、貴重な書籍です。

Emacs 中級1・・・

Emacs 中級2・・・

Emacs 中級3・・・

Emacs 中級4・・・

ncコマンド(1)・・・

# echo "ehlo localhost" | nc 0 25
220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Mon, 2 Feb 2009 20:57:58 +0900
250-localhost.localdomain Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
[root@localhost ~]# echo "quit" | nc 0 25
220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Mon, 2 Feb 2009 20:58:09 +0900
221 2.0.0 localhost.localdomain closing connection

上記は、sendmailを起動させているサーバーなので、25番ポートからの応答が返ってくる場合です。

今月の日経Linux(2009/2)では、ncコマンドを使って、オプションの-vを使うことで、20番ポートから30番ポートまでの複数ポートの一括スキャンを行うという例がとりあげられています。

下記参照。

ncコマンド(2)・・・-vオプション

# echo "quit" | nc -v 0 20-30
nc: connect to 0 port 20 (tcp) failed: Connection refused
nc: connect to 0 port 21 (tcp) failed: Connection refused
Connection to 0 22 port [tcp/ssh] succeeded!
SSH-2.0-OpenSSH_4.3
Protocol mismatch.
nc: connect to 0 port 23 (tcp) failed: Connection refused
nc: connect to 0 port 24 (tcp) failed: Connection refused
Connection to 0 25 port [tcp/smtp] succeeded!
220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Mon, 2 Feb 2009 21:04:36 +0900
nc: connect to 0 port 26 (tcp) failed: Connection refused
nc: connect to 0 port 27 (tcp) failed: Connection refused
nc: connect to 0 port 28 (tcp) failed: Connection refused
nc: connect to 0 port 29 (tcp) failed: Connection refused
nc: connect to 0 port 30 (tcp) failed: Connection refused


■参考
ブログ「Linuxコマンドとviとシェルスクリプトを家で覚えよう!」http://linuxcommand2007.seesaa.net/ 2月1日

ncコマンド(3)・・・

受信側:# nc -l 12345
12345番ポートで、Listenして、待っています。


送信側:# nc -w 3 localhost 12345

-wなしでも、いいのですが、-wがあると読み書きがない場合、3秒でタイムアウトします。

3秒経過する前に、送信側で文字列を入力すると、受信側に同じ文字が表示されます。

3秒放置すると、送受信側両方のプロセスが、終了します。

パケットキャプチャーを行うと、送信側は、「push+ackで、data領域に文字列を入れて」送信を行っている。

受信側は、ackを返しているのが理解できると思います。

ncコマンド(4)・・・

bonding・・・結合ドライバ(カーネルモジュール)設定

1.結合ドライバモジュールのロード
■/etc/modprobe.conf

alias bond0 bonding

2.結合インターフェース設定
■/etc/sysconfig/network-scripts/ifcfg-bond0

DEVIDE=bond0
(以下省略)


3.bondingの物理インターフェース(スレーブインターフェース)設定
■/etc/sysconfig/network-scripts/ifcfg-eth0とifcfg-eth1

MASTER=bond0
SLAVE=yes


4.bonding設定反映
■/etc/init.d/network restart
※SuSEではOS再起動必要。他のLinuxも再起動した方が良い。
 特に、mode変更などした場合。

5.bonding設定確認
ifconfig
bond0,eth0,eth1が表示されることを確認。
※もう1つ重要なことだが、IPアドレスとMACアドレスの表示にも注意。
※OSによりIPアドレスが表示されない可能性あり。
※MACアドレスが各々異なっている場合、設定に問題がある可能性もあり。
※routeコマンドでルーティングも確認しておく。

cat /proc/net/bonding/bond0

slaveインターフェースの名前やBonding Modeがわかる。

bonding・・・パラメーター

■/etc/modprobe.conf

alias bond0 bonding
options bond0 miimon=100 mode=active-backup


変更した場合は、次の手順で有効になる。(OSにより、OS再起動が必要なものもある)

/etc/init.d/network stop

rmmod bonding

/etc/init.d/network start

bonding・・・ethtool ネットワークインターフェースの状態確認

注意:全てのドライバが状態管理をサポートしているとは限らない。(今でも)


# ethtool eth0
Settings for eth0:
Current message level: 0x00000007 (7)
Link detected: yes <--ここ重要

※ちなみに、これはVMware仮想マシン(Fedora 8)のインターフェースeth0です。
これは、あんまり役立ちませんね。auto-negotiationとか出てないし。


ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:E2:6A:49
(途中省略)
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
LANケーブルを抜いても、RUNNINGになっているデバイスでは、正しいリンク状態を認識できない。





bonding・・・MII監視モード

注意:MII監視モードでは、結合ドライバでbondingするすべてのネットワークインターフェースは、状態管理をサポートしている必要がある。

■/etc/modprobe.conf
alias bond0 bonding
options bond0 miimon=100 mode=active-backup primary=eth0


mode=active-backup。デフォルトは、balance-rr。日経SYSTEMSなどでもとり上げられるトラブルの元ですが、なぜ標準?

miimon=100 <--100ms以上で指定。Active-Backupの場合、必須。

primary=eth0 <--省略可能。全インターフェースがUPしている時、どのインターフェースを優先するか指定する。省略時はbondingドライバが自動で割り振る。

updelay <--使わないだろう。インターフェースが有効になるまでの時間がかかるスイッチポート用。
downdelay <--使わないだろう。



私の学習書籍・・・Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編

Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編 ■Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編
 
 価格:¥3,675(税込)
 出版社:秀和システム


Amazonのレビューでも評価が高い本ですが、初心者のみならず、経験者でも活用できる箇所が多いです。

特に、bonding関連の設定が書かれている本は、これくらいだし、keepalivedによる監視、heartbeatによるサービス監視、その他、スイッチなどについても関連付けて書かれている書籍は、これくらいしかありません。

なので、設計・構築とかやっている人は、手元に1冊置いておくべきでしょう。きっと。

ここまで書いてくれていたら、相当役に立ちますよ。

実務で使っている設定・構成図などをそのまま(あるいは修正して)掲載してくれてますので、見やすくわかりやすいです。

いまだに、十分、オススメできる1冊です。



私の学習書籍・・・Linuxデバイスドライバ 第3版

Linuxデバイスドライバ 第3版 Linuxデバイスドライバ 第3版

出版社:オライリージャパン
価格:¥5,775(税込)

「OS自作入門」と一緒に買った本です。

現在、学習中です。

私の学習書籍・・・Linuxデバイスドライバプログラミング

Linuxデバイスドライバプログラミング Linuxデバイスドライバプログラミング

出版社:ソフトバンククリエイティブ
価格:¥4,725(税込)

4-1から、動的なデバイスドライバの作成が始まり、helloを出力するデバイスドライバからスタートして、簡単で面白いです。

私の学習書籍・・・Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編

Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編 ■Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編
 
 価格:¥3,675(税込)
 出版社:秀和システム


Amazonのレビューでも評価が高い本ですが、初心者のみならず、経験者でも活用できる箇所が多いです。

特に、bonding関連の設定が書かれている本は、これくらいだし、keepalivedによる監視、heartbeatによるサービス監視、その他、スイッチなどについても関連付けて書かれている書籍は、これくらいしかありません。

なので、設計・構築とかやっている人は、手元に1冊置いておくべきでしょう。きっと。

ここまで書いてくれていたら、相当役に立ちますよ。

実務で使っている設定・構成図などをそのまま(あるいは修正して)掲載してくれてますので、見やすくわかりやすいです。

いまだに、十分、オススメできる1冊です。



bondingとスイッチ冗長化に関して、ある程度のレベル以上で記述している本は、これくらいです。
※あと、Google本に少々記述があるくらいですよね。

私の学習書籍・・・


 
 価格:¥(税込)
 出版社:

私の学習書籍・・・


 
 価格:¥(税込)
 出版社:

TOP

経験を作ろう!(現在)

経験を作ろう!(過去)

シスアホ日記

資格をとる

Linux

Mailサーバー

サーバー

仮想化

802.1x認証

ネットワーク

検疫ネットワーク

無線

セキュリティ

DBプログラム

SEO・SEM

講習を受ける

定期購読

メルマガ・ブログ

休む

金融・経済

Copy Right 100th MONKEY Co.,Ltd. Since 1996