検索

キーワード


【Linux】シェルの機能について

  • 公開日:2020-11-13 16:10:42
  • 最終更新日:2020-11-16 10:19:49
【Linux】シェルの機能について

シェルの機能

こんにちは。AIX技術者の和田です。

今回はシェルを使う上で便利な機能について解説します。

この記事で、コマンドラインの編集やシェルの機能についてを覚えてもらえれば幸いです。


コマンドラインの編集

コマンドはプロンプト($)の後ろに入力します。コマンド入力部分をコマンドラインと言います。

コマンドラインにコマンドを入力していく際に、タイプミスの修正や直前使用したコマンドの内容を変更することがよくあります。

コマンドライン編集には多くの機能がありますが、今回は利用頻度の高いカーソル移動と文字の削除から学んでいきましょう。


1.カーソル移動

最初に基本のカーソル移動について解説します。

Ctrlキーを押しながらbキーを押すと、一文字分カーソルが後ろに移動します。

Ctrlキーを押しながらfキーを押すと、1文字分カーソルが前に移動します。

2文字分分移動する際は、b(f)キーを2回押すことで移動できます。

カーソルキーでも移動はできますが、ホームポジションが崩れてしまい、効率的なキーボード操作が行えません。

なので、できるだけコントロールキー入力をお勧めします。


次は行頭・行末へのカーソル移動について解説します。

行頭には、Ctrl+bを連打して行頭に戻ることはできますが、次のやり方ならばすぐに移動できます。

Ctrlを押しながら、aキーを押すと、カーソルを行頭まで移動できます。

逆に行末まで移動する際には、Ctrlを押しながらeキーを押すと移動できます。


最後に単語単位でのカーソル移動について解説します。

単語単位でのカーソル移動は、Metaキーを操作して行います。

一般的なパソコンのキーボードにはMetaキーは存在していないので、次の操作で代用できます。

・Escキーを押してから、bキーを押す。

・Altキーを押しながら、bキーを押す。

Escキーで操作する場合は、Ctrlキーと違い、押しながらではなく、押した後にという操作になるので注意してください。

AltキーはWindowsではアプリケーションのメニュー操作に用いるキーであるため、直接シェルに入力することが難しいケースもあります。

その場合、ターミナルエミュレータのキー設定でAltキーをMetaに割り当てることでMetaキーとして認識させることができます。


2.文字の削除

基本的な文字の削除方法を解説します。

文字の削除方法は、カーソル位置の後方を削除とカーソル位置の一文字を削除の2通りの方法があります。

カーソル位置の後方を削除する時はBackSpaceキーを押すと削除ができます。

BackSpaceキーの代わりにCtrl+hでも削除できます。

ホームポジションを崩さず使用できるので、Ctrl+hの方をお勧めします。

ただし、ターミナルエミュレータの設定によっては使用できないので注意が必要です。

カーソル位置の文字を削除する時は、DeleteキーまたはCtrl+dで削除ができます。

コマンドラインに文字列がない状態でCtrl+dを入力すると、bashはログアウト操作と認識するので注意してください。


次に1単語削除の方法について解説します。

1単語削除する時は、Ctrl+wで削除ができます。

カーソル位置から後方に向かって、スペースが現れるまでの文字列をまとめて削除します。


3.カットとヤンク

最後のコマンドライン編集機能のカットとヤンクについて解説します。

Ctrl+kとCtrl+uでコマンドラインの内容をまとめて削除することができます。

この2つの機能の違いは、Ctrl+kはカーソル位置から行末まで削除し、Ctrl+uはカーソル位置から行頭までを削除します。

こうして削除された内容はシェルに記憶されており、後から取り出して使うことができます。

今説明した2つの機能は、切り取りを行う操作です。

Ctrl+yは、Ctrl+k(u)で削除したコマンドラインを復元する際に使用されます。

bashでは、ヤンクと呼ばれていますが、WindowsやMacOSではペーストと呼ばれています。


シェルの便利な機能

1.TABキー

作業をする際に長いコマンドを入力したり、打ち間違いによるミスが起きたりすることもあります。

コマンドを使うことが面倒になったりしますよね。

ですが、bashにはコマンド補完機能という仕組みがあります。

この機能を利用すると、コマンド名をすべて入力する必要がなくなり、最初の文字さえ覚えておけば自動で入力させることができます。

bashの補完機能はtabキーを押すことで使用できます。

$ ec    ←ここでTabキーを押すと
$ echo  ←echoが自動表示される


複数候補がある場合、Tabキーを押しても、コマンドを補完できない時があります。

その場合、複数候補を出すためには2回連続でtabキーを押すと出てきます。

Tabキー例


2.コマンド履歴

Linuxを使用している際に、以前使ったコマンドを使いたい、前のコマンドを編集して使いたいという場面がよくあります。

bashには、自動的にコマンド履歴として記録している機能があります。

コマンド履歴を活用すれば、以前入力したコマンドを簡単にコマンドライン上に呼び出すことができます。

コマンド履歴を遡るには、Ctrl+p、または↑キーで一つ前のコマンド履歴に移動できます。

逆にコマンド履歴を進むには、Ctrl+n、または↓キーで次のコマンド履歴に移動できます。

コマンド履歴操作はカーソルキーを使うことはできますが、ホームポジションに近いCtrlを使ったやり方を勧めます。


3.コマンド履歴検索

作業をしていると、コマンド履歴は1000行を超えることがあります。

その中から、Ctrl+pを使ってコマンドを探すのは大変ですよね。

その場合は、コマンド履歴を検索するCtrl+rが役に立ちます。

Ctrl+rを押すとプロンプトが以下のように変わり、『インクリメンタル検索』というモードに変わります。

インクリメンタル検索

このインクリメンタル検索とは、逐次検索とも呼ばれ、1文字入力するごとに履歴を検索するモードです。

検索したい単語を入力すると、自動的に検索されます。


インクリメンタル検索実行例

実際にeを入力したら、私の環境ではexitコマンドが表示されました。


過去のコマンド履歴か自動的にコマンドを検索できます。

現在の検索結果をそのまま実行する際は、Enterキーを押します。

コマンドを修正して実行する場合は、Escキーを押して、修正後Enterキーを押します。

検索結果を破棄し、プロンプトに戻るためには、Ctrl+gを使用します。


まとめ

今回はコマンドラインでの編集機能やシェルの便利な機能について解説いたしました。

機能としては多くないのですが、どのキーをつかえばいいのか?というのを覚えるのは大変かもしれません。

ですが、これからの学習や作業でも頻繁に使う機会があるので、頑張って覚えていきましょう!


【著者】

和田祐輔

AIXからSEとしてキャリアスタート 同じOSというジャンルでありながら、現在Linuxに苦戦中(笑) 初心者やOS経験者でもつまずかないようにこれからもためになる情報を発信していきます!!