先日、知人のサーバ立ち上げのお手伝いをしていたときなんですが、サーバの立ち上げって基本的にCUI上で操作することになるので、ターミナルの基本操作が必須になっちゃいます。
お手伝いの中で、
「今どこにいんの?」
「とりあえず/etc/に移動して…」
「そのファイルを644に変えて…」
などという言葉が会話にでるのですが、その知人はポカーンでした。
たしかに、ターミナルの基本操作を覚えていないとそうなりますね…。
そういえば最初は自分もそうだった。
ってなわけで、今回は
「必ず使える!Macのターミナルで使う基本コマンド15選」
と題して、ターミナルで使う基本コマンドを15に絞って紹介していこうと思います。
ちなみに、Mac OSはUNIXベースのためコマンドはUNIXと同じ仕様になっていますし、もちろんLINUXもほぼ同じです。
目次
基本的なコマンド15選
1. ls ・・・ ファイルの表示
ls
今いるディレクトリにあるファイルやディレクトリ(「.」で始まる隠しファイルを除く)を表示します。
以下のような感じで横並びで表示されます。
Applications Desktop Downloads Library Music Public Documents Movies Pictures
隠しファイルやファイルの情報を含めて表示したいときは「-a」をつけて、
リスト形式で表示したいときは「-l」をつけます。
一緒につけて実行することもできます。
# 実行したコマンド ls -la # 結果 drwxr-xr-x+ 38 user staff 1292 5 12 15:54 . drwxr-xr-x 6 root admin 204 2 13 17:38 .. -rw-r--r-- 1 user staff 179 2 13 14:35 .zsh_profile -rw-r--r-- 1 user staff 514 4 14 16:56 .zshrc drwxr-xr-x 2 user staff 68 3 24 11:59 Applications drwx------+ 12 user staff 408 5 14 19:55 Desktop drwx------+ 7 user staff 238 5 8 15:41 Documents drwx------+ 10 user staff 340 5 14 11:53 Downloads
2. cd ・・・ ディレクトリを移動する
cd [path]
ディレクトリを[path]に移動します。
ちなみに、「./」は今いる場所、「../」は一つ上のディレクトリを表しています。
なので「cd ../」を実行すると一つ上の階層に移動できます。
「change directory」の略語です。
# /hoge/fuga/に移動 cd /hoge/fuga # 一つ上の階層に移動 cd ../
3. pwd ・・・ 今いるディレクトリを確認する
pwd
今いるディレクトリ(カレントディレクトリ)を表示してくれます。
ターミナル上ではMacのFinderのようにパッと見で今いる場所がわかりません。
そのため、pwdのコマンドで場所を確認したりします。
「print working directory」の略語です。
4. mkdir ・・・ ディレクトリを作成する
mkdir [dir]
ディレクトリを作成します。
「make directory」の略語です。
# hogeというディレクトリを作成します mkdir hoge
5. mv ・・・ ファイルを移動する、ファイル名を変更する
mv [file][dir]
ファイルやディレクトリを移動するときはもちろん、名前を変更するときにも使います。
# file1というファイルを/tmp/に移動 mv file1 /tmp/ # file1をfile2という名前に変更する mv file1 file2
6. cp ・・・ ファイルをコピーする
cp [file][dir]
「copy」の略語で、その文字通りファイルをコピーします。
基本的な使い方は「mv」と同じような感じですが、
ディレクトリとその内容ごとコピーするときは「-r」というオプションが必要です。
ちなみに、この「-r」は他のコマンドでも同じような意味(=ディレクトリと中身ごとまとめて実行)で登場します。
# file1を/tmp/というディレクトリの中にコピーする cp file1 /tmp/ # file1をfile2という名前でコピーする cp file1 file2 # dirというディレクトリとその中身を/tmp/にそっくりコピーする cp -r dir /tmp/
7. rm ・・・ ファイル(ディレクトリ)を削除する
rm [file][dir]
「remove」の略語で、こちらもその文字通りファイルを削除します。
こちらもディレクトリと中身をまとめて削除する場合は「-r」というオプションをつけます。
# file1を削除する rm file1 # dirというディレクトリとその中身を削除する rm -r dir
8. touch ・・・ 空のファイルを生成する
touch [file]
touchコマンドは主に空のファイルを生成するときに使います。
または、ファイルの最終アクセス時刻と変更時刻を更新するときに使います。
vimで直接新規ファイル作成しても問題ないですが、空ファイルの作成だけならこちらで。
利用例としてはgitの空のディレクトリの中に「.empty」を入れるときなどですかね。
9. vim ・・・ ファイルを編集する
vim [file]
vimとは主にCUI上で利用するテキストエディタのことです。
CUI上でファイルを編集するときはvimを利用します。
vimの操作方法はけっこう特殊なので慣れるまで大変ですが、慣れると快適。
# file1を編集する vim file1
10. find ・・・ ファイルを検索する
find [dir] -name ['file']
findはファイルを検索する時に使います。
ワイルドカードの「*」をうまく使って、かなり汎用的に検索できます。
検索結果を表示するには、「-print」等のオプションをつけます。
検索するだけでなく、他のコマンドと組み合わせて検索したファイルに一気に処理を実行したりすることもできます。
# htdocsというディレクトリから、拡張子が「.html」のファイルを検索して表示 find htdocs/ -name '*.html' -print
11. sudo ・・・ スーパーユーザーとして実行する
sudo [command]
sudoは権限がないファイルに対して、何か実行するときに使います。
例えば、apache等の設定ファイル(httpd.conf等)は所有者が「root」になっていることがほとんどです。
その場合はroot以外のユーザーは編集等ができず、「Permission denied」等のエラーメッセージが表示されるかと思います。
そういったときにsudoをつけた上でコマンドを実行するとできます。
sudoで実行するとパスワードを求められますが、PCにログインする時に使うパスワードでOKです。
ちなみに、ファイルやディレクトリの所有者は上述した「ls -la」等で確認できます。
# httpd.confのvimで編集するときなど sudo vim httpd.conf
12. chmod ・・・ パーミッションを変更する
chmod [mode] [file]
ファイル、ディレクトリのパーミッションを変更するときに使うコマンドです。change modeの略です。
wordpress等のインストールの際などに、このディレクトリを「755」「707」等に変更します等の説明があったりします。
そういったときにchmodを利用します。もちろん、FTPクライアント等で変更しても大丈夫です。
ファイルの「読み、書き、実行」を制御するものですが、最初のうちは意味を理解するより、指定された数字に変更することを覚えていれば大丈夫かと。
このファイルのパーミッションも「ls -la」で確認できます。また同様に「-R」(今度は大文字)をつけることで、ディレクトリとその中身にまとめて実行できます。
# file1のパーミッションを600にする chmod 600 file1 # dir1とその中身のパーミッションを775にする chmod -R 775 dir1
13. chown ・・・ ファイルの所有者を変更する
chown [user]:[group] [file]
chmodとはまた別で、chownはファイルの所有権の変更をするコマンドです。
change ownerの略称です。何かをインストールした際の設定等で所有権の変更を迫られるときなどはこちらのコマンドを使います。所有権にはユーザーとグループの2つがあり、どちらもchownで変更します。
こちらも同様「-R」でまとめて実行できます。
# devディレクトリにあるファイルの所有ユーザーをfooにする。 chown -R foo dev/ # devディレクトリにあるファイルの所有ユーザーをbarに、所属グループをbuzzにする chown hoge:fuga file1
14. ssh ・・・ リモートマシンに接続する
ssh [domain]
gitのリポジトリを取得する他、リモートでサーバにログインするときに使います。
ドメインかIPアドレスでログインできますが、普通はユーザー名、パスワード、ポート指定、鍵認証をしていると思います。その場合はオプションで指定することになります。
主に使うのは下記3つかな。
-l | ログインするユーザー |
---|---|
-i | 公開鍵のファイルを指定する |
-p | ポートを指定する |
# IPが111.222.33.44のサーバに # ユーザー名tanakaで # ポートが1234でログインする ssh 111.222.33.44 -l tanaka -p 1234
15. exit ・・・ ターミナルを閉じる
exit
ターミナルを閉じます。そのままです。
exitとコマンドを実行する他、「control + D」で閉じることもできます。
ちなみに、実行中のコマンドを止めるのは「control + C」です。
まとめ
ざーっと15ほどまとめてみましたが、使っていくうちに勝手に覚えますし、無意識にコマンドを打つようになっちゃいます。
最近はwordpress、sass、git等、便利なフレームワークやツールがたくさんありますが、インストールや設定をターミナルからしなければならないこともあります。もちろんブラウザや外部のアプリから操作できたりすることもありますが、カスタム等はコマンドで実行する必要があったりするなど、覚えておいて損はないはず。
ディレクター、デザイナー、コーダー、などのほとんどCUIを触った経験がない方は、覚えておけば何か開発時の設定などでどうしてもターミナル上で作業しなければいけないときに楽になるかもですよー。