コマンドとは何か?
コマンドとは、コンピュータに対する命令のことです。
ブラウザのアイコンとかをクリックすると、ブラウザが起動しますが、
あれも内部的にはコンピュータに対してブラウザを起動させる命令となっています。
コマンドも基本的にはそれと同様ですが、
命令を行う場所が、GUI(グラフィカルな部分。普段見ている画面)から
CUI(コマンドライン、ターミナルなどの黒い画面)に変わるようなイメージです。
コマンドを実行するには、terminalというアプリが必要ですが、
普段GUIで作業していたことなどは、実はCUIのterminalからでも
行うことができます。
そうした、様々な命令を行うものがコマンドで、
コマンドには色々種類があるという感じです。
lsコマンド
まず、1つ目に紹介するコマンドは、
おそらく一番使う機会が多いであろう、
lsコマンドです。
カレントディレクトリ内のファイルやディレクトリを表示します。
カレントディレクトリとは、ユーザが現在作業中のディレクトリのことを指します。
$ ls
Desktop Downloads Movies Pictures Public
Documents Library Music Project index.html
pwdコマンド
カレントディレクトリの絶対パスを表示します。
$ pwd
/Users/user1
cdコマンド
これもlsと同じぐらい使う機会が多いコマンドで、
change directoryの略でcdです。
ディレクトリを変更するという名称そのまんまで、
カレントディレクトリを変更したいときに使います。
$ pwd
/Users/user1/desktop
$ cd
$ pwd
/Users/user1
$ cd /Users/user1/Downloads
$ pwd
/Users/user1/Downloads
sourceコマンド
引数に与えられたファイルに書かれたコマンドを現在のシェルで実行するコマンドです。
.zshrcなど、シェルの設定ファイルをターミナルを再起動させずに適用したいときや、
シェルスクリプトを実行したいときなどに使います。
#!/bin/bash
echo 'testシェルスクリプトです'
$ ls
test.sh
$ source test.sh
testシェルスクリプトです
cpコマンド
こちらはコピーコマンドです。
ファイルやディレクトリをコピーできます。
$ ls
test.sh
$ cp test.sh test1.sh
$ ls
test.sh test1.sh
mkdirコマンド
ディレクトリを作成するコマンドです。
$ ls
test.sh
$ mkdir test
$ ls
test.sh test
rmコマンド
ファイルやディレクトリを削除するコマンドです。
$ ls
test.sh test
$ rm test.sh
$ ls
test
touchコマンド
ファイルのタイムスタンプを更新するコマンドなのですが、
引数で指定したファイルが存在しない場合、その空ファイルを作成するという副次効果が
あるので、その用途で使われることが多いです。(というか私はその用途以外で使ったことがありません。)
$ ls
test
$ touch test.sh
$ ls
test test.sh
catコマンド
ファイルの内容を表示するコマンドです。
vimとかでいちいち開くのが面倒なときに、
サクッと中身を確認したいときとかに使います。
$ ls
test.sh
$ cat test.sh
#!/bin/bash
echo 'testシェルスクリプトです'
ちなみにcatは、パイプやリダイレクトといったシェルの機能をフル活用して、
catエディタみたいな使い方をしている方もいるそうです。
お使いのエディタはなんですか?って聞かれたら、
一度でいいからcatですって答えたいですね。
grepコマンド
grepは、独学のときに使うことがなく、
実務に入ってから使うようになるコマンドの筆頭ともいえるもので、
簡単に言うと、ファイルやテキストなどの検索をするコマンドです。
grepは奥が深いので、
ここでは概要しか紹介しませんが、
気になる人は、grepの詳細解説の記事も御覧ください。
下記は、binという文字列をtest.shファイルから検索しています。
$ ls
test.sh
$ grep 'bin' test.sh
#!/bin/bash
実務でよく使うパターンとしては、
メソッドや関数がどのへんで呼ばれているか目星をつけたりする際に
使用されることが多い気がします。
例えば下記は、srcディレクトリ配下のすべてを検索対象として、
fetchApiFuncという文字列を検索します。
$ grep 'fetchApiFunc' src/*
これ以外にもよく使うコマンドをあげてみる
本記事では、代表的なコマンドと、
使い方の例を掲載したが、
各コマンドには、オプションも存在するため、
それらも合わせて知っておく必要がある。
(覚えることが多いですね)
加えて、まだまだ重要なコマンドは、
残っていて、ぱっと思いつく限りでも、
- ping
- dig
- curl
- mv
- less
- chmod
- which
などがある。
コマンドってたくさんあるなー