MattZandとKevinDownsからのゲスト投稿
この記事では、端末を操作するときに使用できる時間を節約するための秘訣について簡単に説明します。システム管理者は、すべてではないにしても、ほとんどの時間を端末で過ごすことになります。このようなトリックを知っていると、時間を大幅に節約でき、より効率的なシステム管理者になります。ただし、これらのスキルは管理者だけに役立つわけではありません。これらのショートカットはすべて、コマンドラインインターフェイスを操作するすべてのユーザーが使用できます。これらをチェックしてお楽しみください!
1-コマンドライン編集用のキー
Linuxに精通している場合は、シェルプロンプトでコマンドを入力してコマンドを実行する方法を知っていると思います。シェルプロンプトで入力するテキストは、コマンドラインと呼ばれます(入力行とも呼ばれます)。次の表に、コマンドラインの入力に使用されるキーストロークを示します。
キーストローク | 関数 |
アップ | 履歴リストの1つのコマンドに戻ります(セクション3を参照) |
ダウン | 上矢印の反対側(1つのコマンドを前方に移動) |
左 | カーソルを1文字戻します。 |
正しい | カーソルを1文字前に移動します。 |
Esc f | カーソルを1単語前に移動します。 |
Esc b | カーソルを1単語戻します。 |
Ctrl-A | カーソルを行頭に移動します。 |
Ctrl-E | カーソルを行末に移動します。 |
Ctrl-D | 現在の文字を削除します。初心者は通常、これをBackspaceと混同します |
バックスペース | 前の文字を削除します。 |
Esc d | 現在の単語を削除します。 |
Ctrl-K | カーソルが下にある文字から行の終わりまで、入力行のすべてのテキストを強制終了または切り取ります |
Ctrl-U | 行頭から削除します。 |
Esc k | 行末まで削除します。 |
Ctrl-Y | 削除された最後のアイテムをフェッチします。 |
ESC 。 | 前のコマンドの最後の単語を挿入します。 |
Ctrl-LまたはCtrl-I | 画面をクリアし、現在の行を画面の上部に配置します。または、「clear」コマンドを使用することもできます。 |
タブ | 現在の単語を完成させて、コンテキストに基づいてファイル名、ユーザー名、変数名、ホスト名、またはコマンドとして解釈してください。 |
ESC ? | 可能な補完をリストまたは提案する |
上記の表で説明されているキーストロークに加えて、現在実行されているコマンドを一時停止する必要がある状況に遭遇することがよくあります。そのためには、次のように入力するだけです。 Ctrl-C または カール-Z その実行をキャンセルします。これらのキーストロークコマンドは、たとえば、プログラムの実行に時間がかかりすぎて、別のことを試したい場合に非常に便利です。
次のセクションでは、特殊文字と文字列の引用、コマンドの再実行、複数のコマンドの実行、コマンド履歴など、コマンドライン編集のいくつかの重要な機能について説明します。 こちら Linux OSのしくみについてもっと知りたい場合は、この記事をお勧めします。
2-コマンドへの特殊文字の受け渡し
一部の文字は 予約済み シェル自体に特別な意味があります。これらの文字が解釈されないようにするには、引数全体を一重引用符( '')で囲んで引用符で囲む必要があります。例えば、
$ echo'$&*のように、一重引用符で囲まれたすべての種類のものは無視されます。
; |.’
$&*;のように、すべての種類のものは一重引用符で無視されます。 |。
解釈される単一の文字をエスケープすることもできます。その前に円記号を追加します。
$エコー\ $date
$日付
通常、これは日付変数をエコーバックします。代わりに、バックスラッシュ文字は、$を特殊文字として無視し、それを解釈しないように端末に指示しました。
渡す引数に1つ以上の一重引用符が含まれている場合は、次のように二重引用符で囲みます。
$エコー「これは、二重引用符内で単一の 'を使用する方法です」
これは、二重引用符内で単一の 'を使用する方法です。
二重引用符は、シェルがドル記号、バッククォート、バックスラッシュ、変数などの一部の文字を解釈できることを除いて、シングルクォートと同じように機能します。
$echo「現在のOracleSIDは$ORACLE_SIDです」
現在のOracleSIDはテスト中です
以下は、二重引用符と一重引用符の正反対の作業を行うための2つの方法です。
- `コマンド`
- $(コマンド)
逆引用符は、実際には、それらが囲む文字とコマンドの解釈を強制します。
今日の$ = `日付 '+ %A、%B %d、%Y'`
$エコー$today
2020年11月25日水曜日
同様に、$()は、実際には、それらが囲む文字とコマンドの解釈を強制します。
今日の$ = $(日付 '+ %A、%B %d、%Y')
$エコー$today
2020年11月25日水曜日
次の例に示すように、特定の文字の特別な円記号エスケープシーケンスは、通常、文字列に含まれます。
例1– \文字で行を区切ります
エコー「これは印刷されます
2行として。」
出力:
#これは印刷されます
2行として#。
エコー「これは印刷されます\
1行として。」
出力
#これは1行として印刷されます。
例2–エスケープ文字として–e、改行として\ nを使用して行を区切ります
エコー -e 「これは \ n 2行」
これは
2行
例3– \文字で二重引用符をエスケープする
エコー「こんにちは」
#こんにちは
エコー「\”こんにちは\”」と彼は言った。
#「こんにちは」と彼は言った。
例4–エスケープ変数
エコー「\ $variable01」
#は$variable01になります
例5–エスケープ\文字
エコー "\\"
#の結果は\
3-最後に入力したコマンドを繰り返す
Linuxターミナルでは、前のコマンドを簡単に再利用できます。あなたは単にタイプすることによってそうすることができます 上矢印 キーを押してシェルで最後に実行されたコマンドを選択し、Enterキーを押して実行します。上矢印方式は、すべてのLinuxディストリビューションまたはターミナルで正常に機能します。上矢印の他に、他の方法に頼ることができます。ここでは、さらに2つの方法について説明します。
方法1-感嘆符
二重の感嘆符を入力してEnterキーを押すだけで、最後に実行されたコマンドを実行できます。
$ !!
方法2-逆検索を使用する
bashの逆インクリメンタルサーチ機能を使用できます。 Cr、へ 探す、逆に、コマンド履歴を介して。最近、「foo」を含むコマンドラインを入力したことを覚えていて、再入力せずにコマンドを繰り返したい場合に、これが役立ちます。タイプ Cr 続いてテキスト foo、および「foo」を含む最後に入力したコマンドが入力行に表示されます。
あ 増分 searchは、入力時に文字単位で検索文字列を作成します。文字列「toy」を入力すると、検索文字列の個々の文字を入力するときに、最初に「t」、次に「to」、最後に「toy」を含む最後の入力行が検索(および表示)されます。タイピング Cr 検索文字列に一致する次の前のコマンドラインを再度取得します。
おそらく、コマンドを呼び出すための最も簡単で最も広く使用されている方法は、端末に上矢印を入力することです。これにより、最後に入力したコマンドが表示されます。上矢印を押すたびに、前のコマンドが呼び出されます。これは、セッションに入力された最初のコマンドまでさかのぼって行うことができます。
4-コマンドのリストの実行
入力行で複数のコマンドを実行するには、実行する順序で各コマンドを入力し、セミコロン( ';')で各コマンドを次のコマンドと区切ります。 1つのコマンドラインで複数のコマンドを実行すると、それらが同時に実行され、1つのコマンドが失敗しても他のコマンドの実行には影響しないことに注意してください。
複数のコマンドを一度に実行する別のアプローチは、コマンドを && セミコロンの代わりに。この場合、Linuxはコマンドを左から右に順番に実行します。つまり、コマンドは、前のコマンド(存在する場合)が正常に実行された後にのみ開始されます。その結果、この方法を使用する場合、コマンドが失敗すると、後続のすべてのコマンドが実行されません。
これは、複数の非対話型コマンドを順番に実行する場合に役立つことがあります。
whoコマンドを3回実行するには、次のように入力します。
$誰; WHO; WHO
または
$ who && who && who
複数のコマンドを一度に実行する別の方法は、パイプを使用することです。コマンドが独立して実行される前の方法(;を使用)とは異なり、パイプの下では、1つのコマンドの出力(左から右へ)が次のコマンドの入力になり、右側の最後のコマンドを処理するまで続きます。その後、最終結果を出力します。つまり、パイプを使用して、複数のコマンドを接続または結合できます。以下は単純なパイプの例です。
$ ls -l |頭-4
現在直接にあるファイルとフォルダーを一覧表示し、パイプを使用して、リストの上位4項目のみをフィルター処理して出力します。
5-コマンド履歴
現在のセッションのコマンド履歴全体を表示することもできます。コマンドラインに履歴を入力すると、現在のセッションで実行されたすべてのコマンドを確認できます。次に、!と入力するだけで、その番号に基づいて特定のコマンドを実行できます。 。以下に例を示します。
$の歴史
1 ls
2エコー「こんにちは」
3 pwd
4枚のCD
5 ls -la
$ !2
こんにちは
$
概要
これは、コマンドラインを使用するときに時間を節約するための多くのトリックと方法の概要です。表面を引っかいただけです。ターミナルを使い続けると、より効率的になる独自の方法が見つかります。あなたの技術を磨くことが重要です。あなたは可能な限り効率的になりたいです。新しいユーティリティとコマンドは絶えず作成されているので、そこにあるものについては必ず独自の調査を行ってください。結局のところ、Linuxはオープンソースです!
リソース
Linuxについて詳しく知りたい場合は、次の記事とチュートリアルを読むことを強くお勧めします。
- Linuxファイルシステムのアーキテクチャと管理の包括的なレビュー
- Linuxファイルおよびディレクトリシステムがどのように機能するかについての包括的なレビュー
- すべてのLinuxOSディストリビューションの包括的なリスト
- すべての特別な目的のLinuxディストリビューションの包括的なリスト
- Linuxシステム管理者ガイド-バックアップ操作を作成および管理するためのベストプラクティス
- Linuxシステム管理者ガイド-Linux仮想メモリとディスクバッファキャッシュの概要
- Linuxシステム管理者ガイド-Linuxシステムを監視するためのベストプラクティス
- Linuxシステム管理者ガイド-Linuxの起動とシャットダウンを実行するためのベストプラクティス
- https://linuxcommand.org/tlcl.php
- https://books.goalkicker.com/BashBook/
- https://sourceforge.net/projects/linuxcommand/files/TLCL/19.01/TLCL-19.01.pdf/download
著者について
マットザンド シリアルアントレプレナーであり、3つのテックスタートアップの創設者です。 DCWebメーカー, Coding Bootcamps と High School Technology Services。彼はの筆頭著者です HyperledgerFabricを使用した実践的なスマートコントラクト開発 オライリーメディアの本。彼は、Hyperledger、Ethereum、CordaR3プラットフォームのブロックチェーン開発に関する100以上の技術記事とチュートリアルを書いています。 DC Web Makersで、彼はエンタープライズ分散型アプリケーションのコンサルティングと展開のためのブロックチェーンエキスパートのチームを率いています。チーフアーキテクトとして、彼はコーディングブートキャンプのブロックチェーンコースとトレーニングプログラムを設計および開発してきました。彼はメリーランド大学で経営学の修士号を取得しています。ブロックチェーンの開発とコンサルティングの前は、シニアWebおよびモバイルアプリの開発者およびコンサルタント、エンジェル投資家、いくつかの新興企業のビジネスアドバイザーとして働いていました。あなたはLIで彼とつながることができます: https://www.linkedin.com/in/matt-zand-64047871
ケビンダウンズ RedHat認定システム管理者またはRHCSAです。現在IBMでシステム管理者として働いている彼は、さまざまなLinuxディストリビューションで実行されている何百ものサーバーの管理を担当しています。彼はのリードLinuxインストラクターです Coding Bootcamps.