Linuxはコマンドでの操作が基本だ。だからこそ、ショートカットを使いこなせるかで作業の速度に明確な差が出てくる。
ショートカットを覚えると大袈裟ではなく、作業時間が半分になることもある。Linuxを使うエンジニアなら覚えておくべきだろう。
このページではLinuxショートカットの基本を総まとめしてみた。ショートカットと言っても2種類ある。
このページでは「時短」という意味合いを込めて両方ともまとめた。Linuxを使う方はぜひ参考にしてほしい。
目次
Linuxターミナルのショートカット一覧と解説
補完機能
まずはもっともよく使う補完機能についてだ。これはご存知の方も多いだろう。
コマンドを打つとき、ファイル名が長いと厄介だ。例えば、次のようなファイル名があったとする。
hogehoge_201803420819_bk.txt
この中身を確認したいとき、ファイル名をすべて打ち込むのは大変だ。
途中で打ちたくなくなるだろう。
そのようなときは「Tabキー」を用いる。Tabキーを押すと補完機能が働いて、ファイル名を補完してくれる。上記の状態からTabキーを押すと、下のように補完してくれる。
次のようにhogehogeから始まるファイルが2つあるとする。
この場合はhだけ押して補完すると、まずは「hogehoge_」のところまで補完をしてくれる。次の文字が違うため、それを入力してTabキーを押せば最後まで補完してくれる。
↓(Tabキーを押す)
↓(nを押してからTabキーを押す)
このようにTabをうまく使いこなすとファイル操作やディレクトリの移動が速くなる。
履歴の表示
矢印キー「↑」「↓」
こちらもすでに使っている方が多いだろう。
一つ前に打ったコマンドをもう一度打ちたいと思ったとき、同じコマンドを書くのは面倒だ。そういったときには矢印キー「↑」を使うと一つ前のコマンドが表示される。
↓(を押してからTabキーを押す)
行き過ぎて戻りたいときは「↓」を押せばいい。
ちなみに次のようなコマンドもあるが、使う場面はほとんどないだろう。
Ctrl+P:一つ前の履歴を見る(「↑」と同じ)
Ctrl+N:一つ後の履歴を見る(「↓」と同じ)
Ctrl+R:コマンド履歴の検索
コマンド履歴を検索して、同じコマンドを実行することもできる。「Ctrl+R」で実行可能だ。
初心者の方は使いにくいし、それほどたくさんのコマンドを打つこともはじめはないだろう。中上級者向けのショートカットだ。
↓(Ctrl+Rを押す)
↓(検索したいワードを入れる。例えば「ls」)
ここで「Enter」を押せば実行できる。
historyコマンド
ショートカットとは違うがコマンド履歴の閲覧ではhistoryコマンドも活躍する。これまでのコマンドを確認することが可能だ。
↓
カーソルの移動
コマンドラインが長くなると修正するときカーソルの移動が大変だ。そんなときは次のショートカットキーを使う。
Ctrl+A:行の先頭に移動
例えば次の状態から、「あ、コマンドはviではなく、lessにしたかった!」となったら一番左に戻るのは大変だ。
このようなとき使えるのが「Ctrl+A」のショートカットキーだ。上の状態で、「Ctrl+A」を叩くと下のように行の先頭にカーソルが移る。これはよく使い、とても便利だ。
Ctrl+E:行の最後にカーソルを移動
今度はファイル名がよく見たら間違っていたことに気がついた。最後の「txt」だけを「html」に変更したかったとする。
そういったときは「Ctrl+E」で行末にカーソルを移すことができる。上の状態から「Ctrl+E」を押すと下のように行末にカーソルが移る。
カーソルの移動だと、あまり使わないが下記のようなコマンドもある。
Ctrl+B:左方向へ移動(矢印キー←と同じ)
Ctrl+F:右方向へ移動(矢印キー→と同じ)
コマンドラインの編集
コマンドラインの編集にもショートカットキーが用意されている
Ctrl+D:カーソル部分を1文字削除する
カーソル部分の文字を削除したければ「Ctrl+D」のコマンドを使う。
↓(Ctrl+D を押す)
このようにカーソルの1文字が消える。
Ctrl+H:カーソルの左を1文字削除する
このショートカットを使うことはあまりないだろうが、念のため紹介しておこう。「Ctrl+H」を押すことで、カーソル左の1文字を削除する。
↓(Ctrl+H を押す)
役割としてはBackspaceキーと同じなので、そちらを使えばいい。
Ctrl+U:カーソルの位置から行頭まで削除
カーソルの位置から行頭まで削除するキーボードショートカットもある。「Ctrl+U」を叩くことで、一気に削除ができる。
↓(Ctrl+U を押す)
これはよく使うので覚えておいて損はない。
Ctrl+K:カーソルの位置から行末まで削除
続いて反対にカーソルの位置から行末までを削除するコマンドだ。「Ctrl+K」を使う。
↓(Ctrl+K を押す)
このように行末までが削除される。これもよく使うので覚えておこう。
Ctrl+W:カーソル位置の単語を削除(カーソルの前部分)
ファイル名を間違えたときなど、単語ブロックごと消してしまいたいときもよくあるだろう。そんなときは「Ctrl+W」を使うといい。
↓(Ctrl+Wを押す)
カーソルの前部分を削除するため、単語の途中で押すとその前半部分だけ削除される。
Ctrl+Y:直前に削除した文字列を貼り付け
直前に削除した文字列を貼り付けることもできる。mvコマンドでファイルの順序を前後間違えたときなどあれば、これを活用すると速い。
上の例のように「Ctrl+W」で単語を削除した後、「Ctrl+Y」を押すと次のようになる。
↓(Ctrl+Yを押す)
このように単語が貼り付けられる。「Ctrl+U」や「Ctrl+K」との組み合わせももちろん可能だ。
処理の制御
Ctrl+C:処理をキャンセルする
なかなか処理が終わらないときや、誤った処理をしてしまったとき、処理をキャンセルすることができる。「Ctrl+C」を打つと処理がキャンセルされる。
実際にpingコマンドを使って実験してみよう。pingコマンドは継続的に処理が続くため、キャンセルをしないとずっと動作が続く。
↓(Ctrl+Cを押す)
このように処理がキャンセルされる。「Ctrl+C」を覚えておくと窮地を脱することができる場面もあるだろう。動かなくなって困ったら、「Ctrl+C」でキャンセルしてみることだ。
Ctrl+Z:処理を一時中断する
処理を終わらせるのではなく一時中断することもできる。「Ctrl+Z」で可能だ。上と同じようにpingコマンドで実験してみる。
このように動作が停止したのがわかるだろう。
Ctrl+Zによる一時中断処理を再開させたい場合、まずjobsコマンドを叩く。jobsコマンドはジョブ(処理)の一覧を表示するコマンドだ。
ここでジョブ番号を確認し、「fg ジョブ番号」コマンドを叩くと再開する。
少し複雑なので、このページをブックマークするなり、Evernoteに入れるなりして、検索できるようにしておくのがいいだろう。
その他のコマンド
Ctrl+L:画面をクリアにする
コマンドを叩いて作業をしていると、作業している画面が埋まっていって見にくくなる。一度画面を綺麗にしたいこともあるだろう。そういったときに使えるのが「Ctrl+L」コマンドだ。
↓(Ctrl+Lを押す)
このように画面がスッキリとする。頭をクリアにして、作業を見直したいときなどによく使う。
「clear」コマンドというコマンドもあり、動作は同じだ。覚えやすい方で覚えておこう。
Ctrl+S:画面をロック
コマンド入力ができないように画面をロックすることもできる。「Ctrl+S」で画面をロックして、キーボード操作を一切受け付けなくできる。
ほぼ使うことはないが、もしキーボード入力ができなくなったら、「Ctrl+S」を押したことを疑ってみるのがいいだろう。
再開には、「Ctrl+Q」のショートカットが使える。
Linuxでディレクトリやファイルのショートカットを作る
あるファイルやディレクトリによくアクセスすることがあったとき、そこへ行く経路を作っておくと便利だ。Windowsだと右クリックから「ショートカットの作成」をクリックするとショートカットを作ることができる。
Linuxはコマンド作業なので、Windowsほど移動が面倒ではないが、ショートカットを作りたいときはあるだろう。
Linuxでディレクトリやファイルのショートカットを作るのには、「リンク」と呼ばれるものを使う。Linuxには2種類のリンク作成方法がある。ハードリンクとシンボリックリンクだ。
ハードリンク
ハードリンクはファイルの実体を直接見にいくリンクだ。Linuxはファイルの実体が一つでも、その実体を参照するファイルを複数作ることができる。
下の図のようなイメージだと思ってほしい。
このように実体を見る同じようなファイルを作成するのがハードリンクだ。ln(linkの略)コマンドで作成ができる。
$ ln fileA fileB
ショートカットというよりコピーにも近いが、実体が同一なのでcpコマンドなどとは違う。fileAの中身を弄るとfileBにも反映される。
シンボリックリンク
ハードリンクとは違い、シンボリックリンクはファイルやディレクトリの場所だけを持っているファイルだ。
図にした方がわかりやすいだろう。次の図を見てほしい。
このようにfileBはfileAの場所を見に行っているだけで、実体は見に行っていない。Windowsのショートカットと近いのはこのシンボリックリンクだ。
lnコマンドに「-s」オプションを追加するとシンボリックリンクが作成できる。
$ ln -s fileA fileB
頻繁に見かけるのはシンボリックリンクの方だろう。あなたがLinuxの初心者であれば、シンボリックリンクでまずはショートカットを作ることをオススメする。
まとめ
冒頭でもお話ししたが、Linuxはショートカットを覚えていると作業を倍速にできることもある。特にコマンドラインのショートカットはエンジニアにとって重要だ。
「Ctrl+L」や「Ctrl+C」などのコマンドは必須とも言って良い。
同じ作業をするのに時間が半減になったら、他の仕事ができる。精神的にも楽になるだろう。
あなたがプロフェッショナルなエンジニアを目指しているのであれば、ぜひ練習して指に覚えこませてほしい。
「ハードリンク」の項目に「fileA」「fileB」というのがありますが、これはinodeとどのように違うのですか?
ご愛読ありがとうございます。
Linux上で1つファイルを作成した時のことを考えてみましょう。
TEST.TXTというファイルを作った時には、まずディレクトリに「ファイル名」「inode番号」の2つの情報が収められます。
続いて、作成者、グループ、作成日時、サイズ等の「ファイルに必要だが実データではない部分」がinodeのデータとして別途保管されます。
更にそれとは別に、TEST.TXTの実データが保管されます。
TEST.TXTというファイル1つに、ファイル名・inode番号・inodeデータ・中身のデータ、と4つの情報が生成されました。
Linux上で目的のファイルにアクセスするためには、ファイル名&inode番号→inodeデータ→中身のデータという流れでディスク上にあるデータへアクセスを行います。
例にあるfileA・fileBは上記の流れの中の「ファイル名」に相当し、inodeはそれとは別に保管されているファイルの情報、ということになります。