Version :1.0 of 2012/05/21
Author :SUZUKI Masashi / masasuzu
Mail :m15.suzuki.masashi@gmail.com
基本的に以下の環境で動かすことを前提にしています。
今回の話は昔どっかの勉強会で話した内容の焼き直しです。
クライアントマシン :Windows7
ターミナル :mintty
開発マシン :Debian Lenny
Client PC
(mintty on Windows)
|
|
| ssh Development Machine
+-------> (Debian Lenny on VM)
|
| ssh IDC
+-------> (Debian Lenny)
サーバに接続するには、ターミナルエミュレータを使用する必要があります。このターミナルエミュレータのことを一般的に黒い画面と言います。 Windows で動作するターミナルエミュレータには以下のものがあります。
sshとはローカルのターミナルからリモートのサーバへ接続するためのプロトコルです。 古くはtelnetが使われていましたが、平文で通信するなど、セキュリティ的に問題があるため、現在ではほとんど使われていません。
認証の方式にパスワードと公開鍵方式がありますが、基本的にパスワード認証は推奨されません。
ターミナルでは基本的にCUIと呼ばれる文字ベースのインターフェースが使用されます。 一般的にコマンドラインと呼ばれ、1行単位で命令(コマンド)を実行します。
コマンドラインはデフォルトで、emacsキーバインドになっています。 emacsキーバインドを覚えておくと効率よくコマンドラインを編集することができるようになります。
set -oで変更することができます。
set -o vi
set -o emacs
コマンドラインをエディタで編集できます。EDITOR変数に指定されているエディタが立ち上がります。
Unixコマンドは基本的に以下の形式で、オプションと引数を取ることがあります。
command <option> <argument>
コマンドにはオプションをつけることで挙動を変えることができるものもあります。
オプションにはロングタイプとショートタイプがあります。シェルスクリプトなどあとで見返すことのあるものに関してはロングタイプを使うと良いでしょう。
perl -v
perl --version
ショートオプションに関しては、くっつけて記述することも可能です。
ls -lah
コマンドのリファレンスを表示します。ググる前にまず引いてください。
% man <section> <command>
セクション番号の意味は以下の通り。コマンドを調べる限りは1もしくは省略しても大丈夫です。
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions),
e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
今いるディレクトリを表示します。
% pwd
/home/masasuzu
ディレクトリの中身を表示します。
ls
# リスト表示
ls -l
# 隠しファイルも表示
ls -a
今いるディレクトリを移動します。
# 今いるディレクトリのある<file>というディレクトリに移動
cd <file>
# 一つ前にいたディレクトリに移動
cd -
# ホームディレクトリに移動
cd ~
新しく空のファイルを作ります。すでに存在する場合は更新時間を更新します。
touch <file>
ディレクトリを作ります。
mkdir <file>
# 親ディレクトリが存在しない場合、まとめて作成する
mkdir -p <directory>/<directory>
mkdir --parent <directory>/<directory>
ファイルを削除します。
rm <file>
# ディレクトリを再帰的に削除します
rm -r <directory>
rm --recursive <directory>
空のディレクトリを削除します。rmコマンドでファイルを削除してから、rmdirコマンドで削除すると安全です。
rmdir <directory>
ファイルの中身を出力します。
cat <file>
ファイルの先頭数行を表示します。
head <file>
ファイルの末尾数行を表示します。
tail <file>
tailと同じくファイルの末尾を表示しますが、ファイルに更新があった際に更新分を表示してくれます。 tail -fでも同様のことができますが、tailfが使用可能な環境であれば、tailfの使用を推奨します。
tailf <file>
ファイルの中身をページングして表示します。 j,k,Ctrl + u, Ctrl + dで上下移動できます。 ?,/で検索できます。移動方式はvimとほぼ同じなので覚えておくとよいでしょう。
lv <file>
ディスクの空き状況を表示します。
df
# 読みやすい単位で表示します
df -h
現在いるディレクトリ以下のディスクの使用状況を表示します。
# デフォルトはカレントディレクトリ
du
# ディレクトリ指定出来る
du <directory>
# サブディレクトリは探索しない
du -s
現在実行されているプロセスを表示する
ps
#全てのプロセスを表示する
ps -ef
実行中のプロセスのリソース使用状況をリアルタイムに表示します。 <,>でソートする列を変更することができます。
top
複数ウィンドウを管理できるプログラム。別の人が詳しく説明してくれるはずです。
ここまで基本的なコマンドを上げました。それ以外のちょっと複雑なコマンドや使い方に関しては次回やります。
Use a spacebar or arrow keys to navigate