CLIの豆知識
友人に教える必要があったのでメモします。
概念
- CLI(Command Line Interface) プログラマーとかのラップトップをのぞくと画面に表示されている黒い背景のウィンドウがそれです。ユーザーがコンピューターに何かさせたい時に、コマンドを実行できるインターフェースのことです
- GUI(Graphical User Interface) はCLIじゃないやつ。コマンドを使用しないで視覚的にマウスだったり指だったりで操作するインターフェースです。ブラウザとかエクセルとかGUIアプリケーションです。
- Terminal.app はMacに標準でインストールされているCLIアプリケーション。Applications > Utilities > Terminal.app から開けます。
コマンド
主要なコマンドは以下の通りです。コマンドの実行はコマンド入力後 Enter キーを押してください。入力途中で tab キーを押すと文字列を保管してくれて便利です。
pwd
: 現在のディレクトリの位置を確認ls
: 現在のディレクトリに含まれているファイルの一覧を表示cd ディレクトリ名
: ディレクトリの移動exit
: ターミナルを閉じますopen ファイル名
: ファイルを開きます。GUIで操作したくなったらこれを使う感覚です。
ls
に関するTips
ls -l
: ファイル一覧の詳細表示ls -la
: 隠しファイルも含めたファイル一覧の詳細表示
cd
に関するTips
open
に関するTips
open .
: 現在いるディレクトリをファインダーで開く
カーソル
ターミナルではマウスによる操作が制限されているため、カーソルの移動ショートカットを覚えると便利です。ターミナルだけでなく色々な場面でこのショートカットは使えるので生産性が向上します。(emacs
キーバインドと言います。ほとんどのアプリケーションの入力箇所でこのショートカットは有効です)
Ctrl + f
: 行末方向へ移動Ctrl + b
: 行頭方向へ移動Ctrl + e
: 行末へ移動Ctrl + a
: 行頭へ移動Ctrl + d
: カーソル位置の文字を削除Ctrl + h
: カーソルのひとつ前の文字を削除Ctrl + k
: カーソル位置の文字から行末までの文字を全て削除Ctrl + u
: カーソル位置の文字から行頭までの文字を全て削除
入力ミスして一旦全てのコマンドを消したい時には、Ctrl + u
または Ctrl + a
+ Ctrl + k
を使ったりします。(Ctrl + c
でも同じことができますが、これはコマンドキャンセルのショートカットなので、手癖にならないようにしてます)
履歴
実行したコマンドは全てではないですが履歴に残ります。履歴を使うことで打ち間違えなどのミスを減らすことができます。保持されている全ての履歴を表示するコマンドはhistory
です。
Ctrl + p
: ひとつ前に入力したコマンドを表示します(連続して入力することでどんどん遡っていくことができます)Ctrl + n
: ひとつ後に入力したコマンドを表示します(遡りすぎた時に戻るために使います)Ctrl + r
: 履歴検索対話プログラムが起動し、入力した文字に部分マッチする直近の履歴を表示します。結果が正しくて実行したい場合はEnter
、正しいけど実行したくはない場合はCtrl + a
など何か他のショートカット、正しくない場合はCtrl + r
でさらに遡る、もうやめたい場合はCtrl + c
でキャンセルします。
まとめ
快適に使うための豆知識をまとめて見ました。多分知ってるよとか、これ足りないとかあると思いますが、とにかく言いたいことはemacs
キーバインドがものすごく便利だということです。僕はプログラミング始める時にvim
かemacs
で迷って結局vim
にしたのですが、その時に軽くemacs
触っていたおかげで、たくさんのアプリケーションで快適な入力体験ができています。
あとCLIのショートカットとか便利な使い方は友達とか先輩から教えてもらったことが多いので、自分も誰かに教えたくなったというのも動機です。