1

私は最近、本当に素晴らしいコマンドwcを使用して多くのシェルスクリプトを奨励しています。例:

  1. たとえば、過去20時間ほどで、16人の新規ユーザーがFASに登録しました。
    $ cat messages | grep \
    'fedora-infrastructure:org.fedoraproject.prod.fas.user.create'|wc -l
    16 /*output*/

  2. .ディレクトリ 内のコード行を計算します

    find . -type f -exec cat '{}' \; | wc -l

私はLinuxの初心者なので、基本的な使用法だけでなく、manページからwc(他のコマンドをサポートして)どのような素晴らしいことができるのかを知りたいです。

4

2 に答える 2

2

編集:パイプとは何か、そしてそれらがどのように機能するかを理解することで最も恩恵を受けるように思えます)

コマンドラインでこれを試してください:

man wc

のマニュアル ページが表示されwc、このツールで実行できるすべてのことを確認できます。

そして、Linux の学習を開始するときに知っておくべきいくつかの基本的なイディオム / メンタル モデルを次に示します。

  • wc1つのツールです。(現在のディレクトリの内容を一覧表示する)、(現在の作業ディレクトリを出力する)、 (現在の時刻を出力する)、および 、 、などのより高度なツール[shell][2]など、で直接操作できるツールは多数あります。lspwddateawksedgreptr
  • |構文 (ただし||! ではない) は「パイプ」と呼ばれます 。
    • デフォルトでは、コマンドはstdin(標準入力) から読み取るか、ファイルから読み取るか、何も読み取る必要がない (lsたとえば、 は入力を必要としない) かのいずれかです。
    • したがって、次のようなことをするとls | wc -l、実際には次のようになります。
      • 走るls
      • ls通常は (標準出力) に書き込まれるの出力を受け取り、 ofにstdout直接「パイプ」します。これは、 to オプションとともに、行数をカウントします。stdinwc-lwc
  • wcシェル言語のパイプとフィルターのパラダイムのため、相互作用できる他のコマンドの完全なリストはありません。のようなものが表示されている場合は... | wc、 の前にプログラムによって出力されたもの|が入力として供給されることを意味しwcます。
于 2013-01-03T05:32:35.160 に答える
0

Unix ツールは非常にシンプルになるように設計されていますwc

wc = 単語数

wc -l = 行数

UNIX では、次のコマンドを使用して、あるコマンドから別のコマンドに出力を送信できます。|

これらの小さなツールを組み合わせて、個々の能力をはるかに超える結果を達成するという考え方です。

探す

多くのオプションを備えた非常に強力なコマンドですが、基本的には、指定された述語とオプションに一致するファイルのファイル名を検索します。

manは unix に組み込まれているヘルプ システムです。入力するだけで、コマンド ラインから使用できるほとんどのコマンドで使用できるman wc情報を取得できますが、いくつかの例外があります。wc

Zsh、抗原、Oh-My-Zsh

Unix は、優れたシェルと便利なツールがあれば、はるかに簡単です。Zsh を使用することをお勧めします。このセットアップを行う簡単な方法は、AntigenOh-my-zshを使用することです(Antigen は Oh-My-Zsh とその他のツールのインストールに役立つので、その指示に従ってください)。

セットアップが完了すると、タブのオートコンプリートが表示され、コマンド、コマンド オプションが表示されます (などの多くのツール用git) find

これにより、シェルの暗い暗闇が活気に満ちた環境にすばやく変わります.

コマンドのクールな組み合わせを学ぶには?

まず、UNIX シェルで基本的なループと条件を使用できることを常に覚えておいてください。

これらのコマンドは通常、ファイル名のパターンで機能します。たとえば*.txt、パイプ|入力でも機能することがよくあります。

たとえば、複雑な操作を実行したい場合、特定のパターンを置き換える一連のファイルの名前を変更するとします。

for f in *; mv $a ${a/bak/}

bak現在のフォルダ内のすべてのファイル名から単語を削除します.\

隠された金

2 つのコマンドがありsed、それ自体awkほとんど言語です。それらを完全に理解する必要はなく、それらが行う多くのことは、 や などの簡単なコマンドで再現できtrますcut。ただし、それらが基本的にどのように機能するかを理解することは、知っておくと非常に便利です。実際、SedAwkは非常に強力で、O'Reilly に専用の本さえあります。

Unix コマンドラインの素晴らしさの例はどこにありますか?

例を探すのに適した場所は、コマンドライン fuです。

幸運を

于 2013-01-03T06:13:15.787 に答える