0から覚えるUnixコマンド!覚えておいて損はなし!

エンジニアとして開発をする上でUnixコマンドはなくてはならないものの一つです。ただただ「プログラミングをする」だけのエンジニアとして生きていくのはまだまだ辛い世の中です。

なぜなら世の中のサーバーはほとんどがLinux系のOSですので、ログインしたらもうコマンド以外ではOSの操作ができません。そのため、インフラエンジニアやサーバサイドエンジニアにとってはほぼ必須スキルと言っていいでしょう。

また、クライアントエンジニアだとしてもバージョン管理のために「git」や「svn」を使うことになりますし、「ln」コマンドを使ってリソースのリンクを貼ったりするかもしれません。

そして、Unixコマンドはちょっとしことをぱぱっとやるのに非常に便利なものです。覚えておいて全く損はありません。Macユーザならここで紹介するコマンドをほとんどそのままMac上で使うことが出来るはずですので是非試してみてください。



基礎の基礎

「0から覚える」と明言したので、本当の基礎のコマンドも紹介しておきます。
先に言葉の定義だけしておくと、自分がいるディレクトリのことを「カレントディレクトリ」と言います。

カレントディレクトリのパスを表示する「pwd」

ルートディレクトリからカレントディレクトリまでのパスを表示するのが「pwd」コマンドです。

$ pwd
/Users/myname/article

ディレクトリを移動する「cd」

ディレクトリを移動するためのコマンドが「cd」です。
カレントディレクトリ以下にならそのディレクトリ名を、上にもどるのであれば「../」と指定します。

$ pwd
/Users/myname

$ cd article
/Users/myname/article

$ cd ../
/Users/myname

カレントディレクトリのディレクトリとファイルを一覧表示する「ls」

ファイルの一覧表示のためのコマンドが「ls」です。このコマンドを打てばカレントディレクトリのディレクトリとファイルが空白区切りで
全て見ることができます。

$ pwd
/Users/myname

$ ls
article   image.jpg   m.doc   test.txt

コマンドの多くは「-」をつけてオプションの機能を使うことができます。「ls」にもオプションの機能があります。

かなり頻繁に使われるオプションとしては「-l」があります。「-l」をつけると付加情報とともに縦表示で確認することができます。

付加情報としてアクセス権限やowner(少し難しいのでここでは説明を省きます), ディレクトリやファイルの大きさ,作成日時などを見ることができます。

$ ls -l
drwxr-xr-x  12 myname  staff  408   1 12 22:54 article
drwxr-xr-x   4 myname  staff  1000  1 12 22:53 image.jpg
drwxr-xr-x   4 myname  staff  223   1 12 22:53 m.doc
drwxr-xr-x   4 myname  staff  13    1 12 22:53 test.txt

「-h」を付けることで付加情報を「人間が読みやすい表示」に変えることができます。

例えば上記で表示した時のファイルの大きさの単位が明確に表示されたりします。

さらにオプションは複数をまとめて指定することができます。「-l」と「-h」を同時に使用したい場合「-lh」のように指定します。

$ ls -lh
drwxr-xr-x  12 myname  staff  408B   1 12 22:54 article
drwxr-xr-x   4 myname  staff  1KB    1 12 22:53 image.jpg
drwxr-xr-x   4 myname  staff  223B   1 12 22:53 m.doc
drwxr-xr-x   4 myname  staff  13B    1 12 22:53 test.txt

すると「1000」と表示されていたところが「1KB」とわかりやすい表示となりました。

最初に覚えるべきコマンドたち

ここから上記の3つのコマンドの次に覚えるべき便利なコマンドを紹介していきます。

ファイルをコピーする「cp」

「cp [コピーしたいファイル名] [コピー先のファイル名]」と入力することでファイルをコピーすることができます。[コピー先のファイル名]は存在しなければ新規作成され、存在していれば上書きされます。

(上書きされる時は確認なしの問答無用で上書きされるので注意しましょう。古きUnixにはwindowsのゴミ箱のような機能はないのです。やはりゴミ箱は世紀の大発明だと思います。)

$ ls
article   image.jpg   m.doc    test.txt

$ cp test.txt test2.txt
$ ls
article   image.jpg   m.doc    test.txt   test2.txt

ファイルを移動する「mv」

「mv [移動したいファイル名] [移動先のファイル名]」と入力することでファイルを移動することができます。

[移動先のファイル名]は存在しなければ新規作成され、存在していれば上書きされます。

$ ls
article   image.jpg   m.doc    test.txt   test2.txt

$ mv test2.txt mv.txt
$ ls
article   image.jpg   m.doc    test.txt   mv.txt

ディレクトリを作る「mkdir」

「mkdir 「ディレクトリ名」」とすることでディレクトリをつくることができます。

「ディレクトリ名」が存在していた場合、作成に失敗します。

$ ls
article   image.jpg   m.doc    test.txt   test2.txt

$ mkdri sample
$ ls
article   image.jpg   m.doc   sample   test.txt   mv.txt

ファイル, ディレクトリを削除する「rm」

「rm [削除するファイル名]」とすることでファイルを削除することができます。

$ ls
article   image.jpg   m.doc    test.txt   mv.txt

$ rm mv.txt
$ ls
article   image.jpg   m.doc    test.txt

下記のようにオプションとして「-r」をつけることでディレクトリを削除(内包する全ファイルも一緒に)することができます。

$ mkdir sample
$ cp test.txt sample/
$ ls
article   image.jpg   m.doc   sample  test.txt

$ rm -r sample
$ ls
article   image.jpg   m.doc    test.txt

ディレクトリの削除コマンドとしては「rmdir」もありますがこちらはファイルを含むディレクトリの削除はできません。

ファイルを作成する「touch」「echo >」

「touch [ファイル名]」とすることでファイルを作成することができます。[ファイル名]が存在しなければ何も書いてない空のファイルをさくせいします。

もし存在していたら書かれている内容を変更せずにファイルの作成日時のみを更新します。

$ ls
article   image.jpg   m.doc    test.txt

$ touch z.txt
$ ls
article   image.jpg   m.doc    test.txt    z.txt

「echo [文字]」は標準出力に[文字]を表示するコマンドです。これを「>」とともに使うとファイル作成をすることができます。

「echo [文字] > [ファイル名]」とすることで[文字]が書き込まれたファイルを作成することができます。

$ ls
article   image.jpg   m.doc    test.txt

$ echo "hello" > zz.txt
$ ls
article   image.jpg   m.doc    test.txt    z.txt    zz.txt

ファイルの内容を表示する「cat」「less」

「cat」「less」コマンドのいずれかを使うことで、ファイルの内容を標準出力に表示することができます。

これらの違いは「cat」が問答無用で全内容を表示しようとします。「less」はファイル内容が大きい場合は途中までしか表示しません。

$ echo "hello" > zz.txt
$ ls
article   image.jpg   m.doc    test.txt    z.txt    zz.txt

$ cat zz.txt
hello

$ less zz.txt
hello

まとめ

この記事ではUnixコマンドの基礎的な操作を紹介しました。初めは慣れないかもしれませんが慣れればguiで操作するよりも高速に処理できるようになります。

ここでは基礎的なものしか紹介していませんが、まだまだたくせんの便利なコマンドがあるので興味のある方は是非調べてみてください。

コマンドを使う際に注意する点としてはやはり「ゴミ箱」という機構に守られていない点でしょう。ファイルを削除する場合などはくれぐれも注意するようにしましょうね。



プログラミングは楽しい!人生だって変わるかも!

この記事が気に入ったら
いいね!しよう

ABOUTこの記事をかいた人

ぽんぽこ

ぽんぽこです。数年前、会社に通いながらも頑張ってプログラミングスクールで学びました。私が利用したのはCodeCamp(コードキャンプ)です。なんとプログラミングを覚えたらころころと人生が変わっていって、現在は 外資系4大IT企業 に転職できました。今でも毎日勉強の日々ですが、このサイトで少しでも役立つ情報を提供できたらと思っています。プログラミングって難しそうだな...と思ってもとりあえずやってみることが大事!行動しないと現状は変わらない!▶自己紹介はこちら
話題のプログラミングスクールを厳選比較(真っ先に検討したいスクール)

2018年 最新版!話題のプログラミングスクールを厳選比較!