サーバーを操作せざるを得なくなってしまったプログラマーに捧ぐ 使えるLinuxコマンド20選
目次
こんにちわ。井上です。
プログラマーにとって、サーバーを触る機会は結構少ないと思います。
プロジェクトの規模が大きければなおさらです。
現在社内で作業しているプロジェクトは、自分で要件定義からリリースまでやらなければいけません。
今までほとんど触れることのなかったサーバーですが、これを機にいろいろと覚えておきたいと思っています。
そこで今回は、プログラマーでも知っておきたいLinuxコマンドを20個選びましたので、使用方法も含めて説明していきたいと思います。
前提条件
windowsマシンからPoderosaを利用して、Linuxサーバーを操作します。
現在いるディレクトリーを確認する 【pwd】
【コマンド】
【使用例】
[amg-sol@srv local]$ pwd /usr/local
指定の場所に移動する【cd】
【コマンド】
【使用例】
[amg-sol@srvl local]$ cd ../ [amg-sol@srv usr]$ pwd /usr
今いるディレクトリにあるファイルやディレクトリを表示する【ls】
【コマンド】
【使用例】
[amg-sol@srvl local]$ ls -l 合計 60 drwxr-xr-x 15 root root 4096 4月 13 17:10 2015 . drwxr-xr-x 15 root root 4096 4月 9 12:14 2015 .. drwxr-xr-x 3 root root 4096 10月 13 23:50 2015 bin drwxr-xr-x 3 root root 4096 4月 9 12:48 2015 etc drwxr-xr-x 2 root root 4096 4月 9 12:48 2015 sbin drwxr-xr-x 6 root root 4096 4月 9 16:05 2015 share drwxr-xr-x 2 root root 4096 10月 13 23:54 2015 src drwx------ 13 tomcat tomcat 4096 8月 15 22:02 2015 tomcat7
[パーミッション 所有者名 グループ名 サイズ 最終更新日時 ファイル名]の順に表示されます。
引数を指定で更新日時、所有者を表示したりもできます。
※同じようなコマンドで【ll】というものがあります。
llコマンドは、ls -lのaliasになりますので、サーバーの設定で存在しない場合もあります。
ファイルの末尾を表示する【tail】
【コマンド】
【使用例】
[amg-sol@srvl logs]$ tail -f codematic.log 2016/02/22 10:15:31 CODEMATIC [DEBUG] DBUtil query[SQL]SELECT * FROM user WHERE user_id = ?
引数の指定でファイルの表示が変わります。
-f ファイルが更新されると更新分をすぐに表示します。
-100 末尾から数字分だけ遡ってファイルを表示します。
コマンドやシェルスクリプトを指定した日時に自動実行する【crontab】
【コマンド】
【使用例】
[amg-sol@srvl local]$ crontab -e
引数の指定で操作が変わります。
-e 定期実行する内容を入力できるようになります。
2つのファイルの差分を表示する【diff】
【コマンド】
【使用例】
[amg-sol@srvl model]$ diff AbcModel.class.php AbcModel.class.php.bak 22c22 < public $srch_item; --- > public $srch_items;
現在実行中のプロセスを表示する【ps】
【コマンド】
【使用例】
[amg-sol@srvl local]$ ps -ef | grep java 700 3676 3556 0 14:59 pts/1 00:00:00 grep java
javaのプロセスを表示しています。
文字列を検索する【grep】
【コマンド】
【使用例】
[amg-sol@srvl logs]$ tail -f codematic.log | grep ERROR 2016/02/22 19:48:08 CODEMATIC [ERROR] DBUtil commit[line:100] no data
ERRORという文字列がログに出力された場合に表示されます。
ファイルの内容を表示する【more】
【コマンド】
【使用例】
[amg-sol@srvl logs]$ more codematic.log 2016/02/22 19:11:56 CODEMATIC [DEBUG] UserGenDAO selectByPK start
tailとの違いは、moreは1行目からファイルの内容を表示するという所です。
「/検索文字列 + Enter」で、検索文字列にジャンプします。
ファイルの内容を編集する【vi】
【コマンド】
【使用例】
[amg-sol@srvl config]$ vi config.properties
編集を始める場合 a
保存なしで終了する場合 Control+c :q!
保存して終了する場合 Control+c :wq
ファイルやディレクトリのアクセス権限を変更する【chmod】
【コマンド】
【使用例】
[amg-sol@srvl config]$ chmod 755 abc
権限がありませんとエラーが出た時は、このコマンドで権限を変更すれば直ります。
新しいディレクトリを作成する【mkdir】
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ mkdir test
引数の設定で、サブディレクトリも同時に作成できたり、権限をつけて作成もできます。
ファイルやディレクトリを移動、名前変更する【mv】
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ mv test testBak
testフォルダをtestBakに名前変更します。
ファイルやディレクトリをコピーする【cp】
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ cp abc.txt abcBak.txt
abc.txtというファイルをabcBak.txtという名前でコピーします。
サーバーのメモリーやCPUの使用率を表示する【vmstat】
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ vmstat 1 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 48956 5757200 0 1837924 0 0 1 0 0 0 0 0 100 0 0 0 0 48956 5757204 0 1837924 0 0 0 0 0 62 0 0 100 0 0
1秒ごとの状況を表示します。
たくさん値が出ていますが、見るべき項目は以下の3つです。
・procs
r アクセス中のプロセス数
・memory
free 空きメモリ量 ※0になるとメモリ不足状態となりシステムが動かなくなる恐れがあります。
・cpu
id CPUのアイドル(%) ※0になるとシステムが動かなく恐れがあります。
ファイルやディレクトリを削除する【rm】
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ rm abcBak.txt
ディスク・ドライブの使用量を表示する【df】
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/simfs 1048576000 36736324 101183967 24% / none 209715 44 209714 11% /aaa none 209715 44 209714 11% /aaa/shm
容量をキロバイト単位で表示します。
プロセス、ジョブを強制終了する【kill】
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ kill -9 1234
PID 1234番のジョブを強制終了します。
ネットワークの接続状況などを表示する【netstat】
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path
ユーザーを切り替える【su】
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ su - postgres
postgresユーザーに切り替えます。(コマンド入力後、パスワードを聞かれます)
おまけ
【コマンド】
【使用例】
[amg-sol@srvl codematic]$ man pwd
コマンドのマニュアルを参照するコマンドになります。
「man マニュアルを見たいコマンド」でコマンドの詳細情報を知ることができます。
最後に
いかがでしたでしょうか。
プログラマーだからサーバーの知識なんて必要ないと思っていたら、大間違いです。
聞かれた時に知っていると「こいつ、できるな」と思ってもらえるかもしれませんね。