序文 実際、Linux では、控えめな「!」が驚くほど多くの用途で使用されています。この記事では、「!」の魔法的な使い方について詳しく説明します。詳しい紹介を見てみましょう。 前のコマンドを実行する たとえば、前のコマンドを実行した後、次の方法を使用して前のコマンドを再度実行できます。 $ whereis bash #コマンドbashを実行: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz $ !! # 前のコマンドをもう一度実行します。bash bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz !! は最後に実行されたコマンドを表します。ご覧のとおり、感嘆符を 2 つ入力すると、前のコマンドが表示され、同時に実行されます。もちろん、このタスクを実行するには、通常は「UP」キーを使用することを考えます。しかし、以前のコマンド展開に基づくと、!! の方が便利になります。 $ /opt/user/test.txt #さらに入力するのを忘れました $以上!! #これならもっと早くないですか? 使ってみてください!!もっと便利じゃないですか? 前のコマンドの最初または最後の引数を使用してコマンドを実行します。 前のコマンドの最後のパラメータを使用する たとえば、ls を使用してパラメーターなしでディレクトリの内容を一覧表示したが、長いパラメーターを入力せずに -al パラメーターを使用して再度実行したい場合は、次の方法を使用できます。 $ ls /proc/1/task/1/net/tcp /proc/1/タスク/1/net/tc $ ls -al !$ ls -al /proc/1/task/1/net/tcp -r--r--r-- 1 ルート ルート 0 12月22日 17:30 /proc/1/task/1/net/tcp ここで、!$ は前のコマンドの最後のパラメータを表します。 前のコマンドの最初のパラメータを使用する 前のコマンドの最初のパラメータを使用するには、!^ を使用します。例: $ ls -al !^ 最後のパラメータを削除し、前のコマンドを実行します 最後のパラメータなしで前のコマンドを実行する場合: $ ls -al dir # dir は非常に長い文字列であると想定します $ !:- ls -al どのようなシナリオで使用される可能性がありますか?たとえば、前のコマンドの最後のパラメータが長い文字列で、それを使用せず、バックスペース キーで削除するのに時間がかかる場合は、上記の方法を使用できます。 前のコマンドのすべてのパラメータを使用する 先ほど、前のコマンドの最後のパラメータを使用することを説明しました。最後のパラメータではない場合はどうなるでしょうか?とても簡単です。!* を使用するだけです。たとえば、find コマンドの入力を間違えて修正したい場合、次のようにします。 $ fin -name "test.zip" #ここでの検索語は間違っています。 $ 見つけてください!* ./ -name "test.zip" を検索します ./workspaces/shell/find/test.zip ./workspaces/shell/テスト.zip 前のコマンドで指定したパラメータを使用する 読者の中には、パラメータの 1 つだけを使用したい場合はどうすればよいのかと疑問に思う人もいるかもしれません。 ![コマンド名]:[パラメータ番号]のルールに従ってください。例えば: $ cp -rf dira dirb/ #diraをdirbにコピー $ ls -l !cp:2 #diraの内容を表示 ls -l dira 合計 0 -rw-rw-r-- 1 hyb hyb 0 12月22日 17:45 テストファイル 前のコマンドのパラメータが非常に長く、途中でパラメータを使用する必要がある場合、その効果はより顕著になります。 履歴内のコマンドを実行する 履歴コマンドを使用して、以前に実行したコマンドを表示できることは誰もが知っていますが、履歴内のコマンドを再度実行するにはどうすればよいでしょうか。 「UP」キーを使用して表示することもできますが、履歴コマンドが非常に長い場合は、あまり便利ではありません。このようなときは、「!」が便利です。 $ 履歴 (ここではこれ以上の内容を省略します) 2043 ./dira/testfile をタッチ 2044 cp -rf dira dirb/ 2045 ls -al dira 2046 ls -l ディラ 2047 ls -al dira 2048 ls -l ディラ 2049 ls -al dira 2050 ls -l ディラ 2051年の歴史 history コマンドでは、以前に実行されたコマンドを表示でき、その前に値も表示されることがわかります。前述の cp -rf dira dirb/ コマンドを実行する場合、実際には次のように実行できます。 $ !2044 #2044 は実行された n 番目のコマンドです cp -rf dira dirb/ つまり、履歴コマンドは![履歴コマンド値]を通じて実行されます。 もちろん、最後から 2 番目のコマンドを実行したい場合は、次の方法があります。 $ !-2 #感嘆符の後には負の数が続き、負の数は項目の最後の数を表します キーワードで履歴コマンドを実行する !キーワードに基づいてコマンドを実行できます。 キーワードで始まる前のコマンドを実行します たとえば、前の find コマンドを実行します。 $ !find #findで始まる前のコマンドを実行します キーワードを含む前のコマンドを実行する 別の例として、name を含む前のコマンドを実行します。 $ find ./ -name "テスト" 。/テスト ./検索/テスト $ !?名前? ./ -name "テスト" を検索します 。/テスト ./検索/テスト 前のコマンドのパラメータを置き換えます 例えば: $ find ./ -name "古い*" -a -name "*.zip" このコマンドで古いものを新しいものに置き換える必要がある場合: $ !!:gs/古い/新しい 論理否定の役割 これは最もよく使われる機能で、たとえば、cfg で終わるファイルを除くすべてのファイルを削除します。 rm !(*.cfg) # 削除するときは注意してください ここでは詳細には触れません。 要約する 感嘆符「!」の効果は、確かに時々驚くべきものがあります。先ほども触れたばかりかもしれませんが、他の文字と組み合わせて特定の意味の特定の用途を表しますが、実際には、組み合わせたり拡張したりして、より素晴らしい用途を発見することができます。これについてはここでは詳しく説明しません。他に何か良い発見はありましたか?ぜひメッセージをお寄せください! さて、以上がこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただきありがとうございます。
以下もご興味があるかもしれません:
|
<<: React Native の基本原則の深い理解 (Bridge of React Native)
>>: Mysql 5.6ではユーザー名とパスワードを変更するメソッドが追加されました
目次vue2のキャッシュ機能Vue キャッシュ関数の変換最適化要約するvue2のキャッシュ機能vue...
以下のような効果でしょうか?もしそうなら、ぜひ読み進めてください! コードデモンストレーション(上の...
Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...
多くの人が MySQL の起動時にこのエラーに遭遇しています。まず、このエラーの前提は、サービス ス...
目次1. 基本的な例2. 計算プロパティキャッシュとメソッド3. 計算プロパティセッター序文:通常、...
1. vue2 での従来の書き方 // 親コンポーネントは 'foo' を提供します...
Ubuntu 1804 への MySQL 5.7 のインストールについて詳しく紹介します。 MySQ...
高さ:100% が機能しないのはなぜですか?この知識は不人気ではありませんが、使用する際には混乱する...
mysql explain コマンドは、MySQL がインデックスを使用して選択ステートメントを処理...
MySQL 5.7.21 winx64無料インストールバージョンの設定方法、参考までに、具体的な内容...
目次1. js整数の演算2. ネイティブアラートを書き換えてポップアップボックスの数を記録する3. ...
以下のように表示されます。 SELECT count(DISTINCT(a.rect_id)) zc...
HTML には、幅の異なる 5 つのスペース エンティティが用意されています。非改行スペース ( )...
目次1. Dockerをインストールする2. GitLabをインストールする3. GitLabを初期...
序文説明を簡略化するために以前に設定した要件は、他のグループから MQ メッセージを受信し、データベ...