gracetory’s blog

東池袋にある合同会社グレストリのエンジニアブログです

5分で分かる開発中によく使う基本的なLinuxコマンド

f:id:ykira:20170919182151j:plain

こんにちは。プログラマの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

ネットで調べてもいいけどね・・・

最後に

これで、黒い画面でカッコよく「タタタタ、ッターンッ!」できますね!

また別の機会に他のものも紹介できればと思います。