ホームページ > 運用・保守 > Nginx > すぐに Linux コマンド ライン マスターになれる 8 つのシェル コマンド

すぐに Linux コマンド ライン マスターになれる 8 つのシェル コマンド

王林
リリース: 2023-06-17 09:38:56
転載
1412 人が閲覧しました

強固なプログラミングの基礎を持つことは、優れたソフトウェア エンジニアにとって明らかに必須の資質です。 Python などのインタープリタ言語であっても、C などのコンパイル言語であっても、少なくとも 1 つのプログラミング言語をマスターすることが非常に重要です。ただし、これは真にバランスのとれたエンジニアになるための 1 つの側面にすぎません。シェル環境で迷ってしまうと、これらの基本は役に立ちません。

Bash コマンドの柔軟なアプリケーションにより、従来のプログラミング言語ではカバーできない領域に参入することができます。実際には、より強力なプログラミング言語を使用する必要がない場合もあります。シェルを使用すると、追加の依存関係を必要とせずに、必要なタスクをより迅速かつ簡単に実行できます。

八个 Shell 命令,让你瞬间成为 Linux 命令行大师

この記事では、非常に便利な Bash コマンドをいくつか紹介します。これらのコマンドは、実際に必要以上のコードを作成することを避けるのに役立ちます。次回問題が発生した場合は、次のコマンドを試してください。

1. ループ コマンド

linuxmi@linuxmi:~/www.linuxmi.com$ while true; do echo "hello $(date)"; sleep 1; done
ログイン後にコピー

八个 Shell 命令,让你瞬间成为 Linux 命令行大师

何かをループさせるためだけに、巨大なプログラミング言語に飛びつく必要はありません。 Bash では、定期的な間隔で出力を取得したり、基本データを反復処理したりすることが簡単に行えます。

このコード行は、シェルで単純な無限 while ループを構築する方法を示しています。すべてをセミコロンでつなぎ合わせるだけで完了です。実行するコマンドを自由に変更し、それに応じてスリープ タイマーを調整することができます。

このコマンドを実行すると、端末上で日付が毎秒変化するのが確認できるはずです。

2. 出力リダイレクト

linuxmi@linuxmi:~/www.linuxmi.com$ echo "hello linux迷 www.linuxmi.com" | tee linuxmi.rs | less
ログイン後にコピー

八个 Shell 命令,让你瞬间成为 Linux 命令行大师

tee コマンドは、他の言語で複数行のコードを必要とする機能を実現できます。この便利な小さなツールを使用すると、特定の入力をファイルまたは他のコマンドに送信し、それを別のコマンドに渡すことができます。実際には、水道管に「T」バルブを取り付けるようなものです。出力の一部を外部に向けることができ、出力はパイプ内を流れ続けます。

上記の例では、echo コマンドから取得した「hello linux fan www.linuxmi.com」というテキストを linuxmi.rs ファイルに送信し、続いてlessに送信します。これを書き換える 1 つの方法は、出力コンテンツを含むファイルを取得し、less コマンドを使用して画面上でそれを表示することです。

3. ファイルの圧縮

linuxmi@linuxmi:~/www.linuxmi.com$ tar -czvf linuxmi.tar.gz linuxmi.sh
ログイン後にコピー

八个 Shell 命令,让你瞬间成为 Linux 命令行大师

コマンド ラインでファイルやディレクトリを移動することは重要なスキルです。何かに取り組んでいて、それをホスト間で移動する必要がある場合、または単にオフライン ストレージ用にファイルを圧縮したい場合は、tar コマンドが頼りになります。

上記のコマンドとオプションを使用すると、ディレクトリを新しい tar.gz 圧縮パッケージに圧縮できます。ファイルをすぐに持ち込めるようになりました。

4. カウント中

linuxmi@linuxmi:~/www.linuxmi.com$ echo -e "linuxmi\n linuxmi.com\n www.linuxmi.com\n www.93139.com" > linuxmi.txt | wc -l
ログイン後にコピー

八个 Shell 命令,让你瞬间成为 Linux 命令行大师

ファイルに何行あるか知りたいですか?とてもシンプルです。トイレユーティリティを使用します。 「文字数」が実際の意味ですが、行数など他の多くのことを数えるのにも使用できます。

上記のスニペットは、4 行のテキストをファイルに出力し、wc を使用して行数をカウントします。このツールは、特定の行数を操作する必要がある場合、またはプロセスがファイルに新しい行を書き込んだかどうかを確認する必要がある場合に便利です。

5. 数値を生成する

linuxmi@linuxmi:~/www.linuxmi.com$ seq 95 100
ログイン後にコピー

八个 Shell 命令,让你瞬间成为 Linux 命令行大师

非常にシンプルですが、非常に役立ちます。 Bash での数値の生成は非常に簡単で、seq ユーティリティを使用するだけです。この素敵な小さなコマンドは、ループ、テキスト ファイル、または数値のリストが必要な場所で使用できる一連の数値を出力します。

必要に応じて区切り文字を変更することもできます:

seq -s " " 1 10
ログイン後にコピー

または

echo {0..10}
ログイン後にコピー

これにより、すべての数値がデフォルトの改行の代わりにスペースで区切られます。 echo コマンドと .. 演算子を使用して、同じ種類の結果を取得することもできます。

6. SSH キーを管理する

linuxmi@linuxmi:~/www.linuxmi.com$ eval $(ssh-agent) && ssh-add && ssh-add -l
ログイン後にコピー

八个 Shell 命令,让你瞬间成为 Linux 命令行大师

SSH キーとその管理方法の基本を理解することが絶対に必要です。 ssh-add ユーティリティと ssh-agent ユーティリティを理解することは、思っているよりも有益であることがわかるかもしれません。

上記のコマンドは、いくつかの重要な操作を実行します:

  • eval命令将为你执行ssh-agent,并确保它在后台运行。
  • ssh-add命令将添加你的默认SSH密钥。如果你为默认密钥设置了密码,它将提示你输入密码。
  • 最后,ssh-add -l命令显示当前在你的代理中添加的所有密钥。

这个简单的一行命令确保你的代理工作正常,并包含了正确的密钥。当你需要连接到某个服务或获取一些代码时,下一步就可以直接开始了。

7、查找过去的命令

linuxmi@linuxmi:~/www.linuxmi.com$ history | grep "top"
ログイン後にコピー
ログイン後にコピー

八个 Shell 命令,让你瞬间成为 Linux 命令行大师

或者按下CTRL + R,然后输入top

还记得很久以前运行的那个命令吗?我也不记得了。在历史记录中搜索它吧。

如果你像我一样记忆力不太好,那么history命令非常有用。它会显示当前终端会话中所有已运行的命令列表。反向交互式搜索或grep工具的真正威力在于能够找到之前执行的命令。

如果你只是想查看命令历史记录而不是执行它,你可以使用grep搜索。要统一搜索和执行操作,你可以使用CTRL + R的反向交互式搜索历史记录组合键。一旦按下快捷键,一个交互提示符就会出现,当你开始输入命令时,控制台会显示相应的匹配命令。

8、将多个命令作为一个整体传递

linuxmi@linuxmi:~/www.linuxmi.com$ history | grep "top"
ログイン後にコピー
ログイン後にコピー

八个 Shell 命令,让你瞬间成为 Linux 命令行大师

有时Bash会变得有点奇怪。变量插值可能出错,嵌套引号可能会混乱且难以跟踪。情况将变得更加复杂,尤其是当你需要在不同的二进制文件或服务中传递命令字符串时。在这种情况下,你可以使用bash命令将一组命令作为单个实体进行评估。

这个指令将接收纯文本字符串,然后按照常规的Bash语法来进行解析。对于外部shell来说,你只是运行一个命令并传递一个参数,但实际上你是在指示Bash解析多个命令的字符串并执行它们。

以上がすぐに Linux コマンド ライン マスターになれる 8 つのシェル コマンドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート