Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2819

【コマンドライン初心者向け】知ると捗る基本的なショートカット+Tips

$
0
0

はじめに

この記事はLinkbal Advent Calendar 2020の24日目の記事です。

昨日の記事は、昨年と一昨年に引き続きリンクバルで一番プログラミングできると私が思っている方の「CANVASの内容をHTTP通信だけでライブ配信する💃💃💃」です。

・・・

クリスマスイブだ。やったね!!!

どうも、キンチキです。

この記事では、コマンドライン初心者が知っておくと捗る基本的なショートカット(というよりキーバインドといったほうが正しい?)やコマンドの使い方を紹介します。

ただし、個人的に「コマンドライン初心者でもコマンドラインを初めて使った日に誰かに教わったり自分で気づく」と感じるものは紹介しません。
例えば、「カーソルキー↑で一つ前のコマンド表示」や「ctrl+cでフォアグラウンドの処理を強制終了」などです。

また、私はいまだにカーソルキーでカーソル移動をしているので、カーソルキーの代わりになるショートカットも紹介しません!

意外と知らないものがあるかもしれませんので、よかったらコマンドラインnot初心者の方もご覧ください。

動作確認環境

ターミナルソフトの違いはコマンドラインの動作にはほぼ関係ないと思います。
OSもUnix系やLinux(=POSIX準拠?)なら変わらないかと。

シェルの種類やバージョンによってはもしかしたら動作が異なるものがあるかもしれませんが、よく使われてそうなbashやzshなら問題ないでしょう。

紹介するもの一覧

  • cdだけでホームディレクトリに戻る
  • cd -で一つ前のディレクトリに戻る
  • ctrl+dでカーソル位置から後方の文字を削除
  • ctrl+uでカーソル位置から前方の文字をすべて削除
  • ctrl+kでカーソル位置から後方の文字をすべて削除
  • ctrl+wでカーソル位置から単語削除
  • ctrl+yctrl+u , ctrl+k , ctrl+wで削除した文字のペースト
  • ctrl+aで行頭へ移動
  • ctrl+eで行末へ移動
  • ctrl+rでコマンド履歴からインクリメンタル検索 進む
  • ctrl+sでコマンド履歴からインクリメンタル検索 戻る
  • ctrl+lで画面クリア
  • sourceコマンドで設定ファイルを読み込む

ではいきます。

cd

cdだけでホームディレクトリに戻る

知らずに cd ~と打っていた方、これを使いましょう!

cd -で一つ前のディレクトリに戻る

深いディレクトリまで一気に行ったらこれをどうぞ。

文字削除&ペースト

ctrl+dでカーソル位置から後方の文字を削除

widnowsでいうdeleteキー。

なにも入力されていない状態ではログアウトされます。
ログアウトは、sshしているときや、他のシェルを起動しているとき、それらをやめるときに使います。

ctrl+uでカーソル位置から前方の文字をすべて削除 ※

bashだとカーソル位置から前方にある文字だけ多分消します。
zshだとカーソルがどの位置にあっても多分全て消します。

「多分」と書いているのは、私のzshの設定などでデフォルトの挙動から変わっているかもしれず、自信がないからです。

使いどころは多く、特にパスワードを間違えたときに使えます。
コマンドライン上でのパスワードは、何文字打ったか、何文字消したかわかりません。
このショートカットを知らないと、パスワードを打ち間違えたときにbackspaceをとにかく連打して文字を全部消しますが、ctru+uなら一発かつ確実に全文字消えています。

ctrl+kでカーソル位置から後方の文字をすべて削除

そのまま。コマンド履歴からパスやオプションだけ消したいときなどにどうぞ。

ctrl+wでカーソル位置から前方の単語削除

Macでいうoption+deleteです。

コマンド履歴のパスからディレクトリ一つ分消すなど、使いどころは多いです。

ctrl+yctrl+u , ctrl+k , ctrl+wで削除した文字のペースト

上記3つのコマンドで消した文字をペーストできます。

例えば以下の使い方などができます。

コマンドの入力順序を間違えたことに入力中に気づいた
ctrl+uで消す
→ 本来のコマンドを打つ
→ 途中まで入力してたコマンドを ctrl+yでペーストする

カーソル移動

ctrl+aで行頭へ移動

WindowsでいうHomeキーやMacでいうcmd+←と同じ。

ctrl+eで行末へ移動

WindowsでいうEndキーやMacでいうcmd+→と同じ。

検索

ctrl+rでコマンド履歴からインクリメンタル検索 進む

入力した文字でコマンド履歴を検索します。
ctrl+rを押すたびに、ヒットするコマンドを遡ります。

pecoというコマンドライン向けのツールを使うことを強く勧めます。

参考記事

pecoる - Qiita

ctrl+sでコマンド履歴からインクリメンタル検索 戻る

ctrl+rでどんどん履歴を進んで、「いきすぎた!もっと前(未来)だった」みたいなときに使います。
コマンド履歴から、検索結果に出ていたコマンドより未来に入力されたものを検索します。

ctrl+rで過去に進みすぎたコマンド履歴から元の位置に戻っていく、という説明がわかりやすいでしょうか?
表現が難しいですね。

ctrl+sを押すたびに、履歴を戻ります。

bashだと ctrl+sはデフォルトだとスクリーンロックという機能に割り当てられているらしいので、 ~/.bashrcなどに以下を書きましょう。

if [ "$SSH_TTY" != "" ]; then
        stty stop undef
fi

参考記事

その他

ctrl+lで画面クリア

clearコマンドと同じ。あちらより打つのが楽。

sourceコマンドで設定ファイルを読み込む

$source ~/.zshrcとすると ~/.zshrcを読み込みます。

使いどころは、シェルの設定ファイルを編集した後に、ターミナルを開き直したり新規タブを開いたりせずに、編集内容を現在のシェルに反映させるときです。

シェルの設定ファイルをいじるときは便利です。
いじっているときは頻繁に使うと思うので、aliasを登録しておくと楽です。

alias sz='source ~/.zshrc'

sourceコマンドは、ファイルに書かれたコマンドを現在のシェルで実行するコマンドらしいです。

参考

おわりに

おわりません。

・・・

最後に、初心者向けかつコマンドラインの話で、この記事と近いジャンルのなので一つ宣伝します。

「デフォルトのターミナルの見た目がダサくてをなんとかしたい!」って方は、拙著ですが以下の(半分ネタ)記事をどうぞ!

お前らのターミナルはダサい - Qiita

それでは良いクリスマスイブをお過ごしください!


Viewing all articles
Browse latest Browse all 2819