こんにちは。プログラマのykiraと申します。
暑かったり、寒かったり、なかなかに過ごし辛い毎日ですが、ご機嫌いかがでしょうか?
今回は、開発するときによく使用する基本的なLinuxコマンドをご紹介します。
プログラマでもサーバ内で作業することは多いかと思いますので、何かの参考になれば。
ちなみに、弊社はbashです。
ディレクトリとファイルの操作コマンド
説明はいらないであろう、基本的なコマンド達です。
cd
ディレクトリを移動します。
$ cd /usr/local/Cellar $ pwd /usr/local/Cellar
ちなみに、「pwd」で今いるディレクトリを確認できます。
ls
今いるディレクトリにどんなファイルやディレクトリがあるかを一覧表示します。
$ ls apr c-ares httpd24 jemalloc ・・・ $ ls -l drwxr-xr-x 3 ykira admin 102 Jul 28 12:15 apr drwxr-xr-x 3 ykira admin 102 Jul 28 12:15 apr-util $ ls -la drwxrwxr-x 30 ykira admin 1020 Jul 28 16:30 . drwxr-xr-x 14 root wheel 476 Jul 26 19:39 ..
ファイルやディレクトリの権限とかでハマることが多いので、いつも「-l」オプションを付けるようにしています。
「-a」オプションを付けると、隠しファイルも表示されます。
mkdir
ディレクトリを作ります。
$ mkdir a $ ls -l drwxr-xr-x 2 ykira admin 68 Sep 19 16:44 a
たまーに使うかな?
touch
ファイルを作ります。
$ touch a.txt $ ls -l -rw-r--r-- 1 ykira admin 0 Sep 19 16:45 a.txt
これもたまーに。
rm
ディレクトリとかファイルの削除を行います。
使い方を間違えると死ぬので、あまり使わないです。
$ rm a.txt $ rm -r a
ディレクトリを削除する時は、「-r」オプションを付けます。
ディレクトリとファイルの権限操作コマンド
よくハマるので、覚えておきましょう。
chmod
パーミッション(777とか644とか)の変更を行います。
sshする時に鍵ファイルのパーミッションが緩すぎるとよく警告がでますよね?
$ chmod 600 ssh_key
迂闊に変えると、自分でアクセスできなくなったりするので注意が必要です。
chown
所有権の変更を行います。
-rw-r--r-- 1 ykira admin 0 Sep 19 16:45 a.txt
これの、ykiraがユーザ所有権で、adminがグループの所有権です。
$ chown root:root a.txt
上記はrootユーザとrootグループの所有権に変更するという記述です。
これも迂闊に変えると死ぬので、注意してください。
ファイルの出力と編集コマンド
かなり使用するので、基本的な使い方も習得しておくといいです。
vim
エディタです。どのサーバでも基本的に入っているので、弊社ではvim使っています。
$ vim a.txt
各モード、カーソル移動、文字削除、保存くらいは覚えておいてもバチは当たらないと思います。
ファイルを作成するときも「touch」でなく「vim」使うことが多いですね。
cat
ファイルの内容を標準出力に出力します。
$ cat a.txt
短いファイルとかはこれで。
view
閲覧専用のvimです。私はlessよりも、こちら派なのです。
$ view a.txt
不用意に編集するのが怖いので、閲覧のみするときはコレ使います。
less
一応紹介しておきますが、私はあまり使っていません。
ただ、かなり便利なのは間違いないので使えるといいと思います。
$ less a.txt
tail
ファイルの最後の方を出力します。主にログ出力に使いますね。
いつもターミナルを分割して、アクセスログ・エラーログ・・・など、複数ログを垂れ流しながら開発をしています。
$ tail -f a.log
「-f」オプションをつけると、新しくファイルに書き込まれたら瞬時に出力してくれるので便利です。
「-1000f」とかやって最後の1000行とか見たりもします。
検索系のコマンド
これも結構使います。
基本的な使い方だけでも覚えておくといいですね。
find
ファイルとかディレクトリとか検索します。
よく、「.conf」ファイルとか探します。
$ find / -name httpd.conf 2>/dev/null
これは、Apacheの設定ファイルを探してます。
「2>/dev/null」を付けないと、Permission deniedが沢山でるので付けてます。
grep
ファイル内の検索ですが、それ以上にいろいろできます。
検索することを「グレップする」とみんな言いますし、私も言います。
$ grep "検索ワード" *.txt
*.txtに合致するファイルの中で、"検索ワード"と書かれている行を抜き出すコマンドになります。
which
コマンドのパスを取得する。
$ which php
PHPを実行したいなーと思った時に、あれパスは?とよくなるので知っておくと便利。
超重要な「|(パイプ)」
知っておくと、ひとつ上の男になれること間違い無し。
Linuxコマンドは単体でも強力ですが、コマンドを組み合わせる更に便利になります。
コマンドの出力を次のコマンドに渡す処理がパイプです。
$ history | grep find
簡単な使い方ですが、この前使ったfindコマンドどんなだったかなーとうろ覚えの時に役に立ちます。
ls -l | grep .txt
.txt拡張子のファイルだけ出力するのはこんな感じ。
と、まあクソ便利です。
ちなみに、パイプはいくつでも繋げられます。
オプションの調べ方
コマンドのオプションがわからなくなったら「man」コマンドです。
man ls
ネットで調べてもいいけどね・・・
最後に
これで、黒い画面でカッコよく「タタタタ、ッターンッ!」できますね!
また別の機会に他のものも紹介できればと思います。