これは非常に簡単な質問かもしれませんが、ここにあります。
技術的な方には、GUIよりもCLIを使用する方が効率的だと聞いたので、CLIの使い方を学ぶことを検討しています。 CLIの使用がなぜ有益なのかを説明できますか?
答え1
それはコミュニケーションの比喩についてです。 GUIは絵本です。 GUIを使用すると、アイテムを別のアイテムに移動したり、アイテムを右クリックしてオプションを選択したりできます。
ただし、質問したい場合は投稿を入力できます。
コマンドラインはほぼ同じです。つまり、コンピュータに何をすべきかを伝えます。やりたいことが簡単な場合は、写真やテキストが役に立ちます。やりたいことが複雑な場合は、言語を使用するとそれをよりよく説明できます。
私の好きな例の一つはですfind
。
find . -mtime -60 -name '*.txt' -exec sed -i.bak 's/fish/carrot/g' {} \;
これは次のことを行います。
- 現在のディレクトリ構造の検索
- 過去60日間に変更されたすべてのファイルについて
- 「*.txt」と呼ばれます。
- これらのすべての単語で、「魚」という単語を「ニンジン」に置き換えます。
- サフィックスを付けてバックアップコピーを残します
.bak
。
GUIを使ってこれをグラフィカルに説明しますか?
(もう少し拡張すると、コマンドラインの次のステップはスクリプトを学習することです。これにより、コンピュータで実行したいことをさらに詳しく説明できます。)
この原則は、長期にわたって実行され、時間がかかる作業にとってより重要です。これを行うコマンドを作成し、「enter」を押して出力を保存します。 - 家に帰り続けます。複雑なGUIコマンドの場合は、一度に1つずつ実行する必要があります。
私の考えでは、GUIの主な利点は、ユーザーが知識なしにさまざまなタスクを実行できることです。具体的に。 「一部の設定を調整する」には、Windowsのコントロールパネルを見てください。コントロールパネルをすばやく移動して、正しい項目を見つけることができます。私はお勧めしますほとんど見られないこれは非常に有益です。おそらく(私の考えでは)LinuxよりもWindowsでこれを行う方が簡単です。
しかし、事実は同じです。時々行われるまれな操作の場合、GUIは良い選択です。複雑で日常的な繰り返し可能なコマンドの場合は、必ず CLI を使用してください。
答え2
GUIと比較してCLIが持つ最も重要な利点の1つは、CLIを使用すると次のことができることです。簡単にあるコマンドの出力を別のコマンドの入力に接続します。接続はシンプルで直感的な表記法(パイプ、|
)を持ち、実装は非常に効率的です。これにより、人々は非常に単純なビルディングブロックを一緒に接続して複雑な作業を解決できます。
たとえば、次のコードは画像コレクションから重複した項目を削除します。
find ~/Images -type f -name '*.jpg' -print0 \
xargs -0 shasum -a256 | \
perl -l0ne 'm/^(\S+)\s.(.+)$/o and $a{$1} ? (print $2) : ($a{$1} = 1)' | \
xargs -0 rm -f
関連する各コマンドは非常に簡単な操作を実行します。各コマンドはわかりやすく、機能の正確性も簡単に確認できます。ただし、これらのコマンドを一緒にリンクした結果は決して些細なことではありません。 GUIには、このレベルのモジュール性や柔軟性はありません。