サーバーを操作せざるを得なくなってしまったプログラマーに捧ぐ 使えるLinuxコマンド20選

こんにちわ。井上です。

プログラマーにとって、サーバーを触る機会は結構少ないと思います。
プロジェクトの規模が大きければなおさらです。

現在社内で作業しているプロジェクトは、自分で要件定義からリリースまでやらなければいけません。
今までほとんど触れることのなかったサーバーですが、これを機にいろいろと覚えておきたいと思っています。

そこで今回は、プログラマーでも知っておきたいLinuxコマンドを20個選びましたので、使用方法も含めて説明していきたいと思います。

前提条件

windowsマシンからPoderosaを利用して、Linuxサーバーを操作します。

現在いるディレクトリーを確認する 【pwd】

【コマンド】

pwd

【使用例】

[amg-sol@srv local]$ pwd
/usr/local

指定の場所に移動する【cd】

【コマンド】

cd

【使用例】

[amg-sol@srvl local]$ cd ../
[amg-sol@srv usr]$ pwd
/usr

今いるディレクトリにあるファイルやディレクトリを表示する【ls】

【コマンド】

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】

【コマンド】

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】

【コマンド】

crontab

【使用例】

[amg-sol@srvl local]$ crontab -e

引数の指定で操作が変わります。
-e 定期実行する内容を入力できるようになります。

2つのファイルの差分を表示する【diff】

【コマンド】

diff

【使用例】

[amg-sol@srvl model]$ diff AbcModel.class.php AbcModel.class.php.bak
22c22
<     public $srch_item;
---
>     public $srch_items;

現在実行中のプロセスを表示する【ps】

【コマンド】

ps

【使用例】

[amg-sol@srvl local]$ ps -ef | grep java
700       3676  3556  0 14:59 pts/1    00:00:00 grep java

javaのプロセスを表示しています。

文字列を検索する【grep】

【コマンド】

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】

【コマンド】

more

【使用例】

[amg-sol@srvl logs]$ more codematic.log
2016/02/22 19:11:56 CODEMATIC [DEBUG] UserGenDAO  selectByPK start

tailとの違いは、moreは1行目からファイルの内容を表示するという所です。
「/検索文字列 + Enter」で、検索文字列にジャンプします。

ファイルの内容を編集する【vi】

【コマンド】

vi

【使用例】

[amg-sol@srvl config]$ vi config.properties

編集を始める場合 a
保存なしで終了する場合 Control+c :q!
保存して終了する場合 Control+c :wq

ファイルやディレクトリのアクセス権限を変更する【chmod】

【コマンド】

chmod

【使用例】

[amg-sol@srvl config]$ chmod 755 abc

権限がありませんとエラーが出た時は、このコマンドで権限を変更すれば直ります。

新しいディレクトリを作成する【mkdir】

【コマンド】

mkdir

【使用例】

[amg-sol@srvl codematic]$ mkdir test

引数の設定で、サブディレクトリも同時に作成できたり、権限をつけて作成もできます。

ファイルやディレクトリを移動、名前変更する【mv】

【コマンド】

mv

【使用例】

[amg-sol@srvl codematic]$ mv test testBak

testフォルダをtestBakに名前変更します。

ファイルやディレクトリをコピーする【cp】

【コマンド】

cp

【使用例】

[amg-sol@srvl codematic]$ cp abc.txt abcBak.txt

abc.txtというファイルをabcBak.txtという名前でコピーします。

サーバーのメモリーやCPUの使用率を表示する【vmstat】

【コマンド】

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】

【コマンド】

rm

【使用例】

[amg-sol@srvl codematic]$ rm abcBak.txt

ディスク・ドライブの使用量を表示する【df】

【コマンド】

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】

【コマンド】

kill

【使用例】

[amg-sol@srvl codematic]$ kill -9 1234

PID 1234番のジョブを強制終了します。

ネットワークの接続状況などを表示する【netstat】

【コマンド】

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】

【コマンド】

su

【使用例】

[amg-sol@srvl codematic]$ su - postgres

postgresユーザーに切り替えます。(コマンド入力後、パスワードを聞かれます)

おまけ

【コマンド】

man

【使用例】

[amg-sol@srvl codematic]$ man pwd

コマンドのマニュアルを参照するコマンドになります。
「man マニュアルを見たいコマンド」でコマンドの詳細情報を知ることができます。

最後に

いかがでしたでしょうか。

プログラマーだからサーバーの知識なんて必要ないと思っていたら、大間違いです。
聞かれた時に知っていると「こいつ、できるな」と思ってもらえるかもしれませんね。

記事をシェア
MOST VIEWED ARTICLES