コマンド操作とは?Web開発のコマンドラインの基本操作を解説

Web開発におけるUnixコマンドの使いどころ

 

プログラミングを始めた方のつまずくポイントの一つとして、今までPCといえばマウスなどでのGUIベースの操作になれているためCUIのコマンドでPCを操作するというのになれないというのがあります。

が、Web開発にはこのUnixコマンドを使ったコマンドベースの操作が不可欠です。サーバを起動させたり、gitのコマンドを使ったりとこのコマンドが必要になる機会は多いです。

初心者の方には多少とっつきづらくもありますが、慣れてしまうと複数のファイルを移動したりファイルを検索したりとかはコマンドラインベースの方が早かったりもするので覚えておいて損はないです。

 

コマンドの基礎知識

 

ターミナル画面の見方

 

ターミナルを開くとこのような画面がでてきますが、最初のうちはこの画面がなんのことかわからないと思うので、簡単に説明すると

ターミナルでは、プロンプトという$の文字が表示されてユーザになんらかの入力を促します。

そして画面には、

webnari@mymac : ~ $

のような文字が表示されていますが、これは

<ユーザ>@<コンピュータ名> :< 現在のディレクトリ> $

を表します。この表示の形式は変更もできますが、初期設定ではだいたいこのような形で表示されます。

 

ファイルパス

 

プロンプトでは現在のディレクトリが表示されますが、この〜(にょろっと)したやつはユーザのホームディレクトリを示し、最初にターミナルを開いた時はいつものこのディレクトリにいる状態になります。

ターミナルを操作する間はいまどこのディレクトリにいるのかということを常に意識している必要があります。現在のディレクトリを知りたい場合はpwdコマンドを叩いて自分が今いるディレクトリを確認します。

$ pwd
/Users/admin/web-sample-application

普段PCを使っているとなんとなくわかるとは思いますが、PCのファイル達はツリー上の構造をしており、このファイルパスというスラッシュ区切りの文字列で各ファイルやディレクトリの所在を表し。

/から始まる場合は、絶対パス(ファイルのフルネームのようなもの)、/から始まらず

web-sample-application/hoge

のようにすると相対パス(ファイルのファーストネームのようなもの)でファイルを指定することができます。

コマンドを使う際には、このファイルパスを指定することが多くあるのでファイルパスの概念はおさえておきたいです。

 

これだけは覚えておきたいコマンド

 

コマンドの構造

早速、これだけはおぼえておきたいコマンドを紹介しますが、その前にコマンドの基本的な構造を確認しましょう。

コマンドは、

  • コマンド自身
  • オプション
  • 引数
からなり、ls コマンドを例にとると ```bash ls -ltr /Users/admin ``` のような形で ```bash ls -<オプション> <ファイルパス> ``` コマンドを叩いていきます。ここで指定しているファイルパスはどのディレクトリのファイルを表示するかということでオプションでは、ファイルのなかでもどのような情報を表示するか?どういう順番で表示するかなどを指定することができます。

多くのコマンドはこのように、オプションと引数の値を変えることで操作の意図にあった処理ができるように設計されています。

以降この知識を前提によく使うコマンドについてまとめていきます。

 

ファイルのリストを表示する | lsコマンド

lsコマンドはファイルのリストを表示します。

$ls -ltr
total 16
drwxr-xr-x  3 admin  staff  102 Feb 17 11:32 js
-rw-r--r--  1 admin  staff  982 Feb 17 11:32 index.html
drwxr-xr-x  3 admin  staff  102 Feb 17 11:32 css
drwxr-xr-x  4 admin  staff  136 Feb 17 11:32 app
-rw-r--r--  1 admin  staff  208 Feb 17 11:32 README.md

ただ、lsとだけ打つと今いるディレクトリ(カレントディレクトリ)のファイルを表示します。 ls のあとにファイルのリストを見たいパスを指定すると指定したパスのファイルの一覧がリストで表示されます。

また、ls -ltr *.htmlとするとカレントディレクトリのhtmlファイル(拡張子がhtmlのファイル)だけ表示することができます。

あとは、オプションの説明をすると以下の図のようになります。

説明
-l ファイルのタイプスタンプやサイズ、権限などの詳細情報を合わせて表示 ls -l
-1 ファイルを立て一列で表示 ls -1
-a 先頭に.「ドット」のついた隠しファイルも表示する ls -a
-t タイムスタンプ順に表示をする ls -t
-r 並び方を逆順にして表示する ls -t
 

オススメのオプションの組み合わせはls -ltrl,t,rのオプションをつけると、ファイルの詳細情報が表示された上で修正時刻が一番最近のものが一番下に表示されます。

 

 

ディレクトリを移動する | cdコマンド

cdコマンドはChange Directoryの略で、今いるディレクトリを変更します。

webnari@mymac : ~ $cd sample/web-sample-application/
webnari@mymac : web-sample-application $pwd
/Users/webnari/sample/web-sample-application

cdコマンドはそのまま引数にファイルパスを与えてあげればディレクトリを変更することができます。 引数を与えないと自動的にホームディレクトリに変更されます。

また、

cd -

とするとひとつ前のディレクトリに戻ることができ、 一つ上の階層に移動する場合は

cd ../

とします。

 

ファイルを削除する | rmコマンド

rmコマンドはRemoveの略で、引数に与えたファイルを削除することができます。
説明
-r ディレクトリの中身を再帰的に削除する rm -r
-f 確認のプロンプトを表示せずに強制的に削除 rm -f
rmコマンドは強力なコマンドなので扱うのには注意が必要です。GUIベースではファイルを消した際に一度ゴミ箱に入りますが、rmコマンドはゴミ箱に入る前に、削除されます。

これを踏まえた上で、rmコマンドはオプションを与えないとディレクトリを消すことができません。-rオプションの説明の中に再帰的に削除という聞き慣れないことばがあると思うのですが、ファイルシステム上でディレクトリを削除しようとした場合に削除しようとしたディレクトリの中にもディレクトリがある可能性があるので、ディレクトリの中のディレクトリも含めてファイルを消すというのが再帰的に削除するということになります。

 

ファイルを作成する | touchコマンド

touchコマンドは

touch hoge.txtで空のファイルを作成することができます。

また、このtouchコマンドに変えて

: > hoge.txt

でもファイルを作成することができます。「:」はコマンド上何もしないという意味で「>」は画面の表示を指定したファイルに入力するコマンドなので、touchと同様空のファイルが作成できます。

さらにいうと、

echo 'Hello World' > hoge.txt

とするとHello Worldと書かれたファイルを作成することができます。

 

ファイルを移動/リネームする | mvコマンド

 

mvコマンドファイルを移動したりリネームすることができます。移動・リネームは以下のように使用できます。

ファイル移動する

mv hoge.txt ../.  # ファイルを一階層上に移動する

ファイルをリネームする

mv hoge.txt foo.txt  # hoge.txtのファイル名をfoo.txtに変更する

 

 

ファイルの中身を表示する | catコマンド

catコマンドはファイルの中身を表示できます。さきほど説明したファイル作成のコマンドとあわせて使用すると

webnari@mymac : web-sample-application $echo 'Hello World' > hoge.txt
webnari@mymac : web-sample-application $cat hoge.txt
Hello World

というようにファイルの中身を確認できます。

 

コマンド操作に慣れるためにやること

 

基本的なコマンドは一通り説明できたと思いますが、他にも有用で便利なコマンドは無数にあります。 一度に全てを覚えることは難しいので「これどうやるんだろう?」という時に検索して調べて習得するというのが良いと思います。