Putty 0.63 Portable & Linux基本コマンド
レジストリを使わずUSBメモリに入れて持ち歩くことのできるSSHクライアント
→ Putty 0.63 Portable (日本語/32bit版)
→ Putty 0.63 Portable (日本語/64bit版)
■ls ... ディレクトリのファイルを一覧表示
ls -l
(今居るファイル・ディレクトリ一覧の詳細を表示します。)
ls -a
(今居るファイル・ディレクトリの特殊ファイルも表示します。)
※.で始まるファイルがUNIX(LINUX)系ではシステムファイル、特殊ファイルとなります。
ls -lah
(詳細表示&特殊ファイルも表示&読みやすい単位形式で表示します。)
ls -lahS
(詳細表示&特殊ファイルも表示&読みやすい単位形式で表示&サイズ順に降順表示します。)
■cd ... 今居るところから移動
cd public_html/
(public_html/へ移動します。)
cd /home/yamada/public_html
(yamadaさんのpublic_htmlへ移動します。)
cd ../
(ひとつ上のディレクトリに移動します。)
cd ../../
(2階層上に移動します。)
■mkdir ... ディレクトリを作成
mkdir htdocs
(htdocsという名前のディレクトリを作成します。)
mkdir -p doc1/doc2
(doc1というディレクトリが無ければdoc1を作成し、その中にdoc2を作成します。)
■less ... テキスト・ファイルの内容を閲覧
less index.html
(index.htmlファイルを閲覧します。)
less -i top.html
(top.htmlファイルをファイル内検索時に大文字と小文字を区別しないモードで閲覧します。)
※SPACEキー: 次のページへ
※キーボードの「b」で前のページへ
※キーボードの「g」でページの先頭へ
※キーボードの「G」でページの最後へ
※キーボードの「q」で終了
※「/」で検索を開始。次の候補に移動するときは「n」で前の候補に移動するときは「N」
■tail ... テキスト・ファイルの末尾を閲覧
tail mail.log
(mail.logというファイルの終わりから10行を閲覧します。)
※デフォルトで終わりから10行が表示される。
tail -n 3 mail.log
(mail.logというファイルの終わりから3行を閲覧します。)
tail -f mail.log
(mail.logというファイルの終わりから10行をリアルタイムで閲覧します。)
※随時変わる内容を自動更新でモニタ表示することができます。
※「Ctrl+c」でモニタ表示を終了。
tail -fn 50 mail.log
(mail.logというファイルの終わりから50行をリアルタイムで閲覧します。)
■vi ... vimエディタでファイルを編集
vi index.html
(index.htmlというファイルを編集します。)
vi ../index.php
(1階層上のindex.phpというファイルを編集します。)
※index.phpというファイルが存在しない場合、index.phpを作成し編集します。
:e ++enc=euc-jp
(viコマンド実行時、日本語が文字化けしていた場合、文字コード「euc-jp」を指定)
※viコマンドの一覧 (因みに全行削除のviコマンドは「:%d」)
■mv ... ファイル・ディレクトリの移動、名前の変更
mv index.php ../user/
(index.phpを1階層上のuserディレクトリに移します。)
mv test1 test2
(test1という名前のファイルをtest2という名前に変更します。)
mv hoge-dir/ fuga-dir/
(hoge-dirという名前のディレクトリをfuga-dirという名前に変更します。)
※変更後のファイル名は存在するディレクトリであってはいけません。存在する場合は、そのディレクトリに移動します。
■find ... 検索
find -name "hoge.txt"
(hoge.txtという名前のファイルを検索します。)
find ./ -name "hoge.txt"
(今居るディレクトリ以下のhoge.txtという名前のファイルを検索します。)
find ./ -name "hogehogehoge" -type d
(今居るディレクトリ以下の「hogehogehoge」という名前のディレクトリを検索します。)
find -mmin -30 -type f
(過去30分以内に更新されたファイルを検索します。ディレクトリは対象外。)
find ./ -size +1000000c
(今居るディレクトリ以下の1MBより大きいサイズのファイルを検索します。)
find ./ -size -1000c
(今居るディレクトリ以下の1000バイトより小さいサイズのファイルを検索します。)
find ./ -size +1M -ls
(今居るディレクトリ以下の1MBより大きいサイズのファイルを検索し、サイズ値等の詳細も表示します。)
find ./ -mtime 4
(今居るディレクトリ以下の4日前に修正、更新されたファイルを検索します。)
find ./ -mtime +4
(今居るディレクトリ以下の5日以前に修正、更新されたファイルを検索します。)
find ./ -mtime -4
(今居るディレクトリ以下の3日以内に修正、更新されたファイルを検索します。)
find ./backup/ -name "blog*" -mtime +8 -exec rm -f {} \;
(backupディレクトリ以下でファイル名がblogから始まる9日以前に修正、更新されたファイルを削除します。)
※-mtime オプションはタイムスタンプで修正更新日時を判別しています。
■grep ... ファイル内の文字列を抽出
grep "utf-8" ./*
(今居るディレクトリ内ファイルで、ファイルの中に「utf-8」を含むファイルを一覧表示します。)
grep -i "utf-8" ./*
(今居るディレクトリ内ファイルで、大文字・小文字に関係なくファイルの中に「utf-8」を含むファイルを一覧表示します。)
grep -n "utf-8" ./*
(今居るディレクトリ内ファイルで、検索した文字が何行目にあるかも含めファイルの中に「utf-8」を含むファイルを一覧表示します。)
grep -R "utf-8" ./*
(今居るディレクトリ以下の全てのファイルで、「utf-8」を含むファイルを一覧表示します。)
grep "MaxClients" /usr/local/apache/logs/error_log
(「/usr/local/apache/logs/error_log」ファイル内の、「MaxClients」を含む行を一覧表示します。)
■rm ... ファイル・ディレクトリを削除
rm hello.php
(hello.phpを削除します。)
rm -R joomla-1.2.3-japanese/
(joomla-1.2.3-japanese/ディレクトリ以下を削除します。)
rm -Rf zencart-1.2.3/
(zencart-1.2.3/ディレクトリを今すぐ確認せずに削除します。)
rm symbo
(シンボリックリンクsymboを削除します。)
※注意が必要なのは、Linuxではファイルの削除後、基本的に復元できないということ。
心配な場合には、絶対にcpコマンドでどこかにバックアップを取るか、あるいは確認モード(-fをつけない)で削除します。
特に、cpはこういった「やり直せないファイル操作」の時に、バックアップを取っておく上で重要です。
※シンボリックリンク削除の際「rm symbo/」にするとリンク先ディレクトリまで消えてしまうので絶対に最後に「/」を入れないこと。
■cp ... ファイル・ディレクトリをコピー
cp hello.php hola.php
(hello.phpをhola.phpという名前でコピーします。)
cp -R images/ images_takahashi/
(images/ディレクトリをすべて、images_takahashi/というファイル名でバックアップ・コピーします。)
※オプションの「-p」でパーミッションとタイムスタンプもコピー先に反映します。
※コピー元がシンボリックリンクの場合、オプションの「-dp」でそのままコピーします。
■tar ... ファイル・ディレクトリの圧縮・解凍
tar -pxvzf server.tar.gz
(server.tar.gzをパーミッションとタイムスタンプを反映して解凍します。)
tar -pcvzf server.tar.gz ./web
(web/ディレクトリ以下をパーミッションとタイムスタンプを記録してserver.tar.gzという名前で圧縮します。)
※オプションの「-x」は書庫化を戻す
※オプションの「-c」は書庫化
※オプションの「-v」は圧縮または解凍中のファイル名を表示
※オプションの「-z」はgzipで圧縮または解凍する (使用しないことで書庫化のみの非圧縮処理となる)
※オプションの「-f」はファイル名を指定
※オプションの「-p」でパーミッションとタイムスタンプも圧縮・解凍先に反映 (-pxvzf のように先頭付記推奨)
■chmod ... パーミッションを変更
chmod 666 log.txt
(log.txtのパーミッションを「666」に変更します。)
chmod -R 666 tmp/
(tmpディレクトリ以下のパーミッションを全て、「666」に変更します。)
※rwx 7 (4+2+1) 読み出し可+書き込み可+実行可能
※rw- 6 (4+2) 読み出し可+書き込み可
※r-x 5 (4+1) 読み出し可+実行可能
※-wx 3 (2+1) 書き込み可+実行可能
■chown ... ファイル・ディレクトリの所有者を変更
chown user1 log.txt
(log.txtの所有者をuser1に変更します。)
chown -R user1 tmp/
(tmpディレクトリ以下の全ての所有者をuser1に変更します。)
■chgrp ... ファイル・ディレクトリの所属グループを変更
chgrp group1 file2
(file2の所属グループをgroup1に変更します。)
chgrp -R group1 tmp/
(tmpディレクトリ以下の全ての所属グループをgroup1に変更します。)
■wget ... 外部ファイルのダウンロード
wget http://www.xxxxx.co.jp/file.tar.gz
(指定したURLのデータをダウンロードします。)
wget -A .png http://www.xxxxx.co.jp/index.html
(指定したURLに存在するPNG画像データのみをダウンロードします。)
■curl ... 外部ファイルにアクセス(ダウンロードやアップロードも可能)
curl http://www.xxxxx.jp/
(指定したURLのソースを表示します。)
curl "http://[2001:1xx0:xxxx:1::20]/"
(IPv6で指定したURLのソースを表示します。)
curl -d name=zatsu -d my_id=no1st http://www.xxxxx.php
(指定したURLでPOST送信を行います。)
※「-d KEY=VALUE」を連続して指定し、最後にURLを指定
curl -u username:password http://www.xxxxx.jp/login/
(指定したURLのBASIC認証ページにアクセスします。)
curl -k https://www.xxxxx.jp/
(指定したURLのSSL接続の証明書エラーをスキップしてアクセスします。)
curl -u username:password ftp://ftp.xxxxx.jp/public_html/
→ curl ftp://username:password@ftp.xxxxx.jp/public_html/ でも可
(指定したFTP接続先のディレクトリ情報をリスト表示します。)
※末尾のスラッシュ「/」は必須
curl -u username:password -O ftp://ftp.xxxxx.jp/public_html/img/image.jpg
(FTP接続によりファイルをダウンロードします。)
curl -T image.gif -u username:password ftp://ftp.xxxxx.jp/public_html/img/
(FTP接続により指定ディレクトリへファイルをアップロードします。)
※「-T」の後にアップロードしたいファイルを指定
※末尾のスラッシュ「/」は必須
■df/du ... 各種容量の確認
df -h
(現在のディスク使用量を確認します。)
du -sh
(今居るディレクトリ以下の容量を確認します。)
du -h ./ | sort -n | tail -10
(今居るディレクトリ以下の容量の大きなディレクトリ10位を昇順表示します。)
■ln -s ... シンボリックリンク(ショートカット)を作成します。
ln -s /var/www/ /home/hoge/www
(/home/hoge/wwwにアクセスすると、/var/www/のフォルダにリンクします。)
ln -s /var/www/html/default.php /var/www/html/index.php
(/var/www/html/index.phpにアクセスすると、/var/www/html/default.phpにリンクします。)
cd /var/www/html/
unlink ./index.php
(上記で作成したシンボリックリンクを、念のためディレクトリ移動後に削除します。)
※rmで削除するとリンク先の実体を削除する危険があるので「unlink」で削除する方法が安全です。
■crontab ... 定期的にコマンドを自動実行します。
crontab -l
(SSHでログインしているユーザーのcrontabの内容を表示します。)
crontab -e
(SSHでログインしているユーザーのcrontabをエディタを起動して編集します。)
crontab -r
(SSHでログインしているユーザーのcrontabを削除します。)
※上記コマンドは実際には「/var/spool/cron/ユーザー名」を編集していることになります。
つまり、「/var/spool/cron/ユーザー名」を直接less(閲覧)、vi(編集)、rm(削除)しても結果は同じです。
■その他のコマンド
●ps aux
(現在のプロセスを詳細に表示します。)
●kill プロセス番号
(不要なプロセスが稼動している場合、プロセス番号を指定して停止します。)
※kill 7873 (この場合、プロセス番号の7873番を停止します。)
※kill -KILL 7873 (応答のないプロセスを強制的に停止する場合は「-KILL」を指定して実行します。)
※kill -HUP 7873 (プロセスを再起動したい場合は「-HUP」を指定して実行します。)
※pkill -HUP httpd (「pkill」を用いればサービス名でプロセスを指定できます。)
●top
(サーバーの負荷状況をリアルタイムで確認します。)
※キーボードの「Ctrl+c」か「q」で停止。 「h」でヘルプ
※「Shift + p」でCPUの使用時間率の長いプロセスを降順で表示
※「Shift + m」でメモリ使用量が多いプロセスを降順で表示
※「Shift + t 」で実行時間が長いプロセスを降順で表示
※キーボードの「d」か「s」で更新の間隔を変更 (デフォルトは3.0秒)
●uptime
(サーバーの連続稼動時間やロードアベレージを確認します。)
※上記「top」コマンド実行時の1行目に表示される内容のみを表示
●diff -c A B
(ファイルAとBを比較し違いを出力します。)
●echo $LANG
(サーバーの文字コードを確認します。)
●date -s "2008/06/24 19:48:10"
(サーバーの時間を2008/06/24 19:48:10に合わせます。)
●touch -t 10031521 target.html
(target.htmlの更新日時を10月3日15時21分に変更します。)
※西暦も指定する場合「touch -t 201012051901 target.html」 (2010年12月5日19時1分に変更)
※全てのファイルを一括で変更する場合「touch -t 201103252117 ./*」 (2011年3月25日21時17分に変更)
●uname -a
(OSのバージョン及び、その他の情報を確認します。)
●pwd
(現在地を確認します。)
●quota -v
(現在のファイル数を確認します。)
●man ls
(コマンドのマニュアルを表示します。上記の場合、lsコマンドのマニュアルを出力します。)
※キーボードの「q」でマニュアルからコマンド入力へ
●cal
(カレンダーを出力します。)
●passwd ユーザー名
(ユーザーのパスワードを変更します。変更後のパスワードは、2回入力して下さい。)
●w
(ログインしているユーザーの情報を表示します。)
●last
(過去にログインしたユーザー履歴やOSの再起動履歴を表示します。)
※last -3 (過去にログインしたユーザー履歴から最新の3件のみを表示します。)
※lastb (過去にログインに失敗した履歴を表示します。)
※lastb -3 (過去にログインに失敗した履歴から最新の3件のみを表示します。)
●history 5
(過去に実行したコマンドの履歴を表示します。上記の場合、最新の5件の実行コマンドを出力します。)
※history -c (履歴を全て削除します。)
●curl inet-ip.info
(サーバから外に出ていく時のグローバルIPを確認します。)
※外部APIサーバーと連携するときなどのチェック用コマンド
●fsck
(ハードディスクの検査を行い、問題があれば自動で修復します。Windowsのscandiskに当たるコマンドです。)
※fsck /dev/sda2 (ファイルシステム「/dev/sda2」を検査し、問題があれば自動で修復します。)
※fsck -y /dev/sda2 (ファイルシステム「/dev/sda2」の検査・修復中の問い(y or n)を省略して実行します。)