コマンドライン(Bash)をサッと使いこなせるようになるには

コマンドライン(Bash)をサッと使いこなせるようになるには

今回はLinux上のコマンドライン(Bash)でこういう操作をするといろんな作業が捗るよ(と個人的に思う)な部分を紹介させていただきます。

目次


1. まえがき

 自分は普段の作業をLinuxベースの環境で行っているため、Bashを頻繁に使っています。(普段使いはLinux Mint 19 Cinnamon)
 Zshを入れてカスタマイズというのもすごく素敵なのですが、一時期50台くらいの仮想環境をバラバラに面倒見ていた時期があり、そのときはそれぞれの環境を汚すことができなかったので、「Bashを使いこなすのが一番自分を楽にしてくれる」という結論に至り、現在もその名残でBashを使っています。
 Ubuntu系のBashは標準でもかなり優秀で、意外とコマンドのオプションもTabキーで補完してくれますね。(そのため余計にBashでいいやになってしまっています)


2. 前提

 基本操作の前に、Tabキーを使った補完は使いこなしておくとより作業が捗ります。

例えば、/var/www/html などを ls したいときは、

$ ls /va

でTabキーを押すと

$ ls /var/

と補完されますね。その後

$ ls /var/w

でTabキー、

$ ls /var/www/

さらに

$ ls /var/www/h

でTab、

$ ls /var/www/html

 みたいな感じで補完されていくかと思います。
 複数候補がある場合は、Tabキーを2回押すと候補が表示されますので、1つの候補に絞られるまで入力するだけであとはTabキーがよろしくやってくれます。

 このTabキーはコマンド操作を早くしていく上で必要不可欠、かつ打ち間違いを減らせるかなり協力な手段だと思いますので是非マスターしましょう。


3. 基本操作(コマンド)

 基本操作(コマンド)は各所でまとめられてはいますが、自分がよく使うものを抜粋して列挙したいと思います。

組み合わせ 動作 備考
Ctrl+p ↑ 方向キー上 p rev
Ctrl+n ↓ 方向キー下 n ext
Ctrl+b ← 方向キー左 b ackward/ b ack
Ctrl+f → 方向キー右 f orward/ f ront
Ctrl+a 先頭へ Homeキー a tama
Ctrl+e 末尾へ Endキー e nd
Ctrl+d 右1文字消す Deleteキー d elete
Ctrl+h 左1文字消す BackSpaceキー
Alt+d 右1文節消す(右側のスペースまで)
Ctrl+w 左1文節消す(左側のスペースまで)
Ctrl+c キャンセル(何かをやめたい時) c ancel
Ctrl+r 履歴検索 r everse search

 普段のコマンド操作をラクにするために一番使っているのは Ctrl+r かもしれません。
 altキーシリーズの組み合わせは概ね応用編かなと思ってますので、今回は省略しています。


4. オススメのコマンドの使い方

 先ほどの Ctrl+r を駆使することで、かなり作業が捗ります。

例えば、

  • 過去に編集していた httpd.conf を履歴から検索してvimで開く
    を行う場合。

Ctrl+r を押すと

(reverse-i-search)`':

と表示されるので検索したい文字を入力する(例: httpd)

(reverse-i-search)`httpd': less /etc/httpd/conf/httpd.conf

のように表示されると思います。
lessで開く場合は、このままEnterで大丈夫ですが、vimに変更したいときはこのあと Ctrl + aを入力すると

$ less /etc/httpd/conf/httpd.conf

この状態で lesslにカーソルがいきます。ここでAlt+dを入力すると lessが消えるので、あとは vim と入力すると最小限の入力でやりたいことが実現できます。

※ WindowsのターミナルアプリだとAltキーを押したときに、メニューが開く場合があるので、その場合は Ctrl+d で1文字ずつ消すイメージです。Esc → d の順で押すといける可能性もありますが。

 このような感じで、Ctrl+rを使うとかなり手間が省けます。

  • 以前と同じコマンドを実行したい
  • 同じファイルに対してコマンドだけ変えたい(上記の手順)
  • 同じディレクトリにある別のファイルを編集したい(Ctrl+eで末尾へカーソル移動し、ファイル名を消していく)

のような場合に活躍すると思います。


5. おまけのTIPS

検索の仕方のコツ

 先ほどの Ctrl+r で検索するときは、探したい履歴の中でしか現れないようなキーワードで検索すると検索をする回数が減らせます。
例えば、上記の場合だと

(reverse-i-search)`d/co': less /etc/httpd/conf/httpd.conf

のような感じで、検索すると狙ったものが出やすいイメージです。
etc とかで検索してしまうと、/etcだったり /usr/local/etc だったりと様々なところで etc が使われるので、なかなか狙った履歴にたどり着けないことがあるからです。

ファイルの絶対パスを調べられる readlinkコマンド

 例えば、カレントディレクトリにあるファイルをscpでコピーしたい、となったときに使えるコマンドです。

matatabi@localhost: ~/tmp $ readlink -f test.txt

と実行すると

matatabi@localhost: ~/tmp $ readlink -f test.txt
/home/matatabi/tmp/test.txt

といった感じで、フルパスが返ってきますので、この下の行をマウスでダブルクリックやトリプルクリックするとフルパスが選択されるので、そのままクリップボードにコピーし、scpコマンドのパスを指定するときにペーストするだけで良くなります。


 さいごに、障害発生時など切羽詰まっている時ほど正確な操作が求められます。そういうときこそTabでの補完やこういうパスを調べてコピペすることでミスを減らし確実な作業ができるとみんなハッピーになれると思います!

他にもいろいろ使いますが、まずはこれを覚えとくと便利というものを載せておきました。
また別の機会に追加でよく使うものを書けたらと思います。

この記事もおすすめ