コマンドの使用方法を学ぶためにマニュアルページを使用するにはどうすればよいですか?


92

別の問題を調査しているときに、コマンド出会いました

locate something | xargs -I {} bash -c "if [ -d "{}" ]; then echo {}; fi"

もっと知りたいと思いました。だから私は走っman xargsて、次の出力を得ました:

XARGS(1)                    General Commands Manual                   XARGS(1)

NAME
       xargs - build and execute command lines from standard input

SYNOPSIS
       xargs  [-0prtx]  [-E  eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null]
       [-d delimiter] [--delimiter delimiter]  [-I  replace-str]  [-i[replace-
       str]]    [--replace[=replace-str]]   [-l[max-lines]]   [-L   max-lines]
       [--max-lines[=max-lines]] [-n max-args] [--max-args=max-args] [-s  max-
       chars]  [--max-chars=max-chars]  [-P max-procs] [--max-procs=max-procs]
       [--interactive]      [--verbose]      [--exit]      [--no-run-if-empty]
       [--arg-file=file]   [--show-limits]   [--version]   [--help]   [command
       [initial-arguments]]

DESCRIPTION
       This manual page documents the GNU version of xargs...

私はドキュメントを使用してLinuxプログラムについて学習しようとしていますが、その「概要」セクションは新しいユーザーを脅かしています。man locateまたはに比べて文字通り意味不明man freeです。

これまでのところ、角括弧はオプションを意味し、ネストされた括弧はオプションのオプションを意味することを理解しています。しかし、それで有効なコマンドをどのように誘導するのですか?

私はここでxargsの助けを求めていません。 複雑なコマンドを理解するためにmanページを解釈するためのヘルプを探しています。Linuxコマンドを学習するための最初のアプローチとして、Googleが索引付けしたWebブログや他人からの個人的なヘルプを作成するのをやめたいと思っています。


17
マニュアルページを読み続けてください。「オプション」セクションでは、「構文」セクションで使用可能なすべてのオプションについて説明します。
ジョン

7
開始man man
mikeserv

14
多くの場合、一番下に直接移動して、例のセクションを探します。
テップ

9
また、キーワードのmanページをスキャンするだけではありません。本当に読んでください!想定される奇妙な振る舞いはよく説明されます。
FloHimself

6
man man読んだ後man intro
mikeserv

回答:


102

まあ、これはマンページを読むための私の非常に個人的な方法です:

マンページャー

manコマンドを使用してマンページを開くと、出力はlessor moreコマンド、またはページャー(manpager)として設定される他のコマンドによって表示/レンダリングされます。

Linuxを使用している場合は、おそらく/usr/bin/less -is(最小限のディストリビューションをインストールしていない限り)として既に使用するように構成されたmanインフラストラクチャが提供されます。man(1)オプションセクションで説明します。

-P pager
Specify which pager to use. This option overrides the MANPAGER environment variable, 
which in turn overrides the PAGER variable. By default, man uses /usr/bin/less -is.

FreeBSDおよびOpenBSD では、MANPAGERほとんどがを使用するため、環境変数を編集するだけで、more検索やテキストの強調表示などの一部の機能が欠落する可能性があります。

そこどのような違いの質問に対する良い答えはmorelessmostしているここに(使用されることはありませんmost)。マンページを閲覧するときは、またはで(または、バインディングとを使用して)Space行ごとに、または両方の方法でページを後方にスクロールし、前方にスクロールする機能が不可欠です。使用中に押すと、使用可能なコマンドの概要が表示されます。vijkhless

そして、それが私がlessあなたのman pagerとして使うことを勧める理由です。lessこの回答中に使用されるいくつかの重要な機能があります。

コマンドはどのようにフォーマットされますか?

ユーティリティ規約:Open Group Base Specifications Issue 7-IEEE Std 1003.1、2013 Edition。マンページを理解する前に、そのリンクにアクセスする必要があります。このオンラインリファレンスでは、標準ユーティリティの引数構文について説明し、ユーティリティによって処理される引数を説明するためにPOSIX.1-2017全体で使用される用語を紹介します。これにより、パラメータ、引数、引数オプションなどの単語の本当の意味について間接的に更新されます...

ユーティリティ規約の表記法を理解すると、マンページの頭がわかりにくくなります。

utility_name[-a][-b][-c option_argument]
    [-d|-e][-f[option_argument]][operand...]

何をしたいかを念頭に置いてください。

あなたの研究を行うとき、xargsあなたはそれを目的のためにしたのですか?標準出力を読み取り、その出力に基づいてコマンドを実行する特定のニーズがありました。

しかし、どのコマンドが欲しいのかわからないときは?

使用するman -kか、apropos(彼らは同じです)。ファイルの検索方法がわからない場合:man -k file | grep search。説明を読み、ニーズに合ったものを見つけてください。例:

apropos -r '^report'
bashbug (1)          - report a bug in bash
df (1)               - report file system disk space usage
e2freefrag (8)       - report free space fragmentation information
filefrag (8)         - report on file fragmentation
iwgetid (8)          - Report ESSID, NWID or AP/Cell Address of wireless network
kbd_mode (1)         - report or set the keyboard mode
lastlog (8)          - reports the most recent login of all users or of a given user
pmap (1)             - report memory map of a process
ps (1)               - report a snapshot of the current processes.
pwdx (1)             - report current working directory of a process
uniq (1)             - report or omit repeated lines
vmstat (8)           - Report virtual memory statistics

Aproposはデフォルトで正規表現で動作します(man apropos、説明を読んで何-rが起こるかを調べます)。この例では、説明が「レポート」で始まるすべてのマンページを探しています。

標準入出力処理の読み取りとxargs可能なオプションとしてのリーチに関連する情報を検索するには:

man -k command| grep input
xargs (1)            - build and execute command lines from standard input

DESCRIPTION開始前に必ずお読みください

時間をかけて説明を読んでください。xargsコマンドの説明を読むだけで、次のことがわかります。

  • xargsSTDINから読み取り、必要なコマンドを実行します。これはまた、標準入力がどのように機能するか、パイプを介してコマンドをチェーンするためにそれを操作する方法についての知識が必要であることを意味します
  • デフォルトの動作はのように動作します/bin/echo。これにより、複数のチェーンxargsを作成する必要がある場合に、エコーを使用して印刷する必要がないというちょっとしたヒントが得られます。
  • また、Unixファイル名には空白と改行が含まれることがあり、これが問題になる可能性があり、引数-0はヌル文字セパレーターを使用して物事が爆発するのを防ぐ方法であることも学びました。この説明は、入力として使用されるコマンドもこの機能をサポートする必要があること、およびGNUがfindサポートすることを警告しています。すばらしいです。で多くのfindを使用しxargsます。
  • xargs 終了ステータス255に達すると停止します。

一部の説明は非常に短く、それは一般的にソフトウェアが非常に簡単な方法で動作するためです。マンページのこの部分をスキップすることさえ考えないでください ;)

その他の注意事項...

を使用してファイルを検索できることを知っていますfind。たくさんのオプションがあり、を見るだけで、SYNOPSISそれらに圧倒されます。それは氷山の一角にすぎません。、、およびを除くNAMESYNOPSISDESCRIPTION次のセクションがあります。

  • AUTHORS:コマンドの作成を作成または支援した人々。

  • BUGS:既知の欠陥をリストします。実装の制限のみである可能性があります。

  • ENVIRONMENT:コマンドまたは使用される変数の影響を受ける可能性のあるシェルの側面。

  • EXAMPLESまたはNOTES:自明。

  • REPORTING BUGS:このツールまたはドキュメントにバグを見つけた場合に連絡する必要がある人。

  • COPYRIGHT:ソフトウェアの作成者および免責事項。すべては、ソフトウェア自体のライセンスに関連しています。

  • SEE ALSO:他のコマンド、ツール、またはこのコマンドに関連し、他のセクションには当てはまらない作業面。

ほとんどの場合、ツールに必要な側面に関する興味深い情報は、例/メモのセクションで見つけることができます。

以下の手順では、説明するfindよりも概念が「単純」であるxargsため、例として取り上げます(1つのコマンドがファイルを検出し、他のコマンドがstdinと他のコマンド出力のパイプライン実行を処理します)。このコマンドについて何も知らない(またはほとんど知らない)ふりをしましょう。

特定の問題があります:.jpg拡張子があり、500KiB(KiB = 1024バイト、一般にkibibyteと呼ばれる)、またはFTPサーバーフォルダー内のサイズ以上のすべてのファイルを検索する必要があります。

まず、マニュアルを開きますman findSYNOPSISスリムです。マニュアル内の項目を検索してみましょう。タイプ/と必要な単語(size)を入力します。-size特定のサイズをカウントする多くのエントリにインデックスを付けます。捕まってしまった。指定されたサイズを「以上」または「未満」で検索する方法がわからないので、男性はそれを私に見せません。

試してみて、を押して見つかった次のエントリを検索してみましょうn。OK。面白いものが見つかりました:find \( -size +100M -fprintf /root/big.txt %-10s %p\n \)。たぶんこの例は-size +100M、100MB以上のファイルを見つけることを示しています。どうすれば確認できますか?マンページの先頭に移動して、他の単語を検索します。

繰り返しますが、単語を試してみましょうgreater。押すgと、マンページの先頭に移動します。/greater、最初のエントリは次のとおりです。

 Numeric arguments can be specified as

    +n     for **greater** than n,

    -n     for less than n,

     n      for exactly n.

いいね。マニュアルのこのブロックは、私たちが疑ったことを確認したようです。ただし、これはファイルサイズにのみ適用されません。これはn、このマンページに記載されているものすべてに適用されます(「数値引数は次のように指定できます」というフレーズにあるとおり)。

良い。名前でフィルタリングする方法を見つけましょう:g /insensitive。どうして?鈍感?WTF?私たちは、「そのほかのOS」人々はとしての拡張子を持つファイル名を与えることができる架空のftpサーバ、持っている.jpg.JPG、を.JpG。これにより、次のことが可能になります。

-ilname pattern
              Like  -lname,  but  the  match  is  case insensitive.  If the -L
              option or the -follow option is in  effect,  this  test  returns
              false unless the symbolic link is broken.

ただし、lname検索すると、シンボリックリンクのみが検索されることがわかります。実際のファイルが必要です。次のエントリ:

   -iname pattern
          Like -name, but the match is case insensitive.  For example, the
          patterns `fo*' and `F??' match  the  file  names  `Foo',  `FOO',
          `foo',  `fOo',  etc.   In these patterns, unlike filename expan‐
          sion by the shell, an initial '.' can be matched by  `*'.   That
          is, find -name *bar will match the file `.foobar'.   Please note
          that you should quote patterns as a matter of course,  otherwise
          the shell will expand any wildcard characters in them.

すばらしいです。この引数の大文字と小文字を区別しないバージョンであるかどうか-nameを確認する必要はありません-iname。コマンドを組み立てましょう:

コマンド: find /ftp/dir/ -size +500k -iname "*.jpg"

ここで暗示されるのは、ワイルドカード?が「単一の位置にある任意の文字」を*表し、「任意の文字のゼロ個以上」を表すという知識。-nameパラメータは、あなたにこの知識の概要を提供します。

すべてのコマンドに適用されるヒント

いくつかのオプション、ニーモニック、および「構文スタイル」はすべてのコマンドを介して移動するため、マンページをまったく開かずに時間を節約できます。これらは実践によって学習され、最も一般的なものは次のとおりです。

  • 一般的に、-v詳細を意味します。-vvv一部のソフトウェアでは「非常に冗長」なバリエーションです。
  • POSIX標準に従って、通常、1つのダッシュ引数をスタックできます。例:tar -xzvfcp -Rv
  • 一般的に-Rおよび/または-r再帰を意味します。
  • ほとんどすべてのコマンドには、--helpオプションに関する簡単なヘルプがあります。
  • --version ソフトウェアのバージョンを示します。
  • -p、コピーまたは移動ユーティリティでは、「権限を保持する」ことを意味します。
  • -y はい、またはほとんどの場合「確認なしで続行」を意味します。

ただし、上記は常に正しいとは限らないことに注意してください。たとえば、-rスイッチはソフトウェアごとに非常に異なることを意味する場合があります。コマンドが危険になる可能性がある場合は常に確認して確認することをお勧めしますが、これらは一般的なデフォルトです。

コマンドのデフォルト値。

この答えのページャーチャンクで、それless -isがのページャーであることがわかりましたman。コマンドのデフォルトの動作は、マンページの別のセクションや、一番上にあるセクションに常に表示されるとは限りません。

デフォルトを見つけるにはオプションを読む必要があります。運が良ければ、入力/pagerするとその情報が表示されます。また、これはページャー(マンページをスクロールするソフトウェア)の概念を知っている必要があり、これは多くのマンページを読んだ後にのみ取得するものです。

なぜそれが重要なのですか?これにより、たとえばman(1)Linux(less -ispager)またはFreeBSD man(1)での読み取り中にスクロールと色の動作に違いが見つかった場合、認識が広がります。

そして、SYNOPSIS構文はどうですか?

コマンドの実行に必要なすべての情報を取得した後、オプション、オプション引数、およびオペランドをインラインで組み合わせて、ジョブを完了させることができます。概念の概要:

  • オプションは、コマンドの動作を指示するスイッチです。「これを行う」「これをしない」または「このように行動する」。多くの場合、スイッチと呼ばれます。
  • オプション引数は-t、ファイルシステムのタイプを指定するオプション(マウント時など)がバイナリ(オン/オフ)でない場合、ほとんどの場合に使用されます(-t iso9660-t ext2)。「目を閉じてこれを行う」または「動物に餌をやるが、ライオンのみに餌をやる」。引数とも呼ばれます。
  • オペランドは、そのコマンドに作用するものです。を使用する cat file.txt場合、オペランドは現在のディレクトリ内のファイルであり、その内容はに表示されSTDOUTます。lsオペランドがオプションのコマンドです。オペランドの後の3つのドットcatは、同時に複数のオペランド(ファイル)に作用できることを暗黙的に示しています。一部のコマンドでは、使用するオペランドのタイプが設定されていることに気付くかもしれません。例:cat [OPTION] [FILE]...

関連する概要:

この方法はいつ機能しませんか?

  • 例のないマンページ
  • オプションの簡単な説明があるマンページ
  • andtoなどの汎用キーワードをforマンページ内で使用する場合
  • インストールされていないマンページ。明らかなようですが、lftp(およびそのマンページ)をインストールしていない場合は、それがより洗練されたftpクライアントとして適切なオプションであることがわかりませんman -k ftp

場合によっては、例は非常に単純であり、テストするためにコマンドを実行する必要があります。最悪の場合は、Googleを実行する必要があります。

その他:プログラミング言語とそのモジュール:

プログラミングまたはスクリプトを作成する場合、一部の言語にはperlperldocs)、python(pydocs)などの独自のマンページシステムがあり、メソッド/関数、変数、動作、およびモジュールに関するその他の重要な情報に関する特定の情報を保持していることに注意してください使用して学習しようとしています。これは、perl Mail::IMAPClientモジュールを使用して未読のIMAP電子メールをダウンロードするスクリプトを作成していたときに役立ちました。

man -kオンラインで使用または検索して、これらの特定のマンページを把握する必要があります。例:

[root@host ~]# man -k doc | grep perl
perldoc              (1)  - Look up Perl documentation in Pod format


[root@host ~]# perldoc Mail::IMAPClient
IMAPCLIENT(1)         User Contributed Perl Documentation        IMAPCLIENT(1)

NAME
       Mail::IMAPClient - An IMAP Client API

SYNOPSIS
         use Mail::IMAPClient;

         my $imap = Mail::IMAPClient->new(
           Server   => ’localhost’,
           User     => ’username’,
           Password => ’password’,
           Ssl      => 1,
           Uid      => 1,
         );

...ここには、通常のマンページのようなセクションを持つ他の多くのものがあります...

Pythonの場合:

[root@host ~]# pydoc sys
Help on built-in module sys:

NAME
    sys

FILE
    (built-in)

MODULE DOCS
    http://www.python.org/doc/current/lib/module-sys.html

DESCRIPTION
    This module provides access to some objects used or maintained by the
    interpreter and to functions that interact strongly with the interpreter.
...again, another full-featured manpage with interesting info...

または、help()オブジェクトの詳細を読みたい場合は、Pythonシェル内の関数:

nwildner@host:~$ python3.6
Python 3.6.7 (default, Oct 21 2018, 08:08:16)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help(round)

Help on built-in function round in module builtins:

round(...)
    round(number[, ndigits]) -> number

    Round a number to a given precision in decimal digits (default 0 digits).
    This returns an int when called with one argument, otherwise the
    same type as the number. ndigits may be negative.

ボーナス:このwtfコマンドは頭字語で役立ちます。whatisデータベースの頭字語が見つからないかのように機能しますが、検索対象はmanデータベースの一部です。Debianでは、このコマンドはbsdgamesパッケージの一部です。例:

nwildner@host:~$ wtf rtfm
RTFM: read the fine/fucking manual
nwildner@host:~$ wtf afaik
AFAIK: as far as I know
nwildner@host:~$ wtf afak
Gee...  I don't know what afak means...
nwildner@host:~$ wtf tcp
tcp: tcp (7)              - TCP protocol.
nwildner@host:~$ wtf systemd
systemd: systemd (1)          - systemd system and service manager

することもできますman find | grep ...。私が好きman command | sed -n '/^[[:space:]]*-/,/^$/p'
-mikeserv

6
うん。あなたはできる。私は、オペレーターが「noob」であり、マンページを開始しようとしていると仮定していました:)

3
この答えは、「効果的に使用するにはどうすればよいmanですか」の上位結果である必要があります。ありがとう、よくやった。
user1717828

8
@nwildner、あなたはそのような巨大でうまくフォーマットされた答えの後にキャンディーに値します。よくやった!
ウィリアンパイシャオ

6
これはLinuxに追加すべきだと思います。manもちろんページとして。
myaut

38

これについては、man man以下で詳しく説明しています。

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.

   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.

そこから有効なコマンドを記述する方法については、そうではありません。構文は、コマンドの動作がわかったら便利です。記憶をリフレッシュするのに役立ちます。コマンドの動作を理解するには、manページを読む必要があります。特にオプションの説明と例のセクション。

概要で十分な場合もあります。例えば、中man ls

SYNOPSIS
       ls [OPTION]... [FILE]...

また、問題のコマンドの使用方法を既に知っている場合を除き、役に立たないこともあります。例man dd

   dd [OPERAND]...
   dd OPTION

したがって、結論として、概要がわからなくても心配しないでください。それは正常です。マニュアルページ自体を読んでください。


アドバイス、特に「方法について...」段落に感謝します。
-user1717828

21

概要を理解するためのいくつかの基本

  • それぞれ、[foo]オプションの引数またはパラメーターを表します。
  • とき[foo [ bar ] ]の構文が使用されている、あなたはFOOを使用して、あなたがバーを追加することができます。
  • 必須オプションパラメータはこの方法[ -S size ]で使用され、-S引数が必須サイズを待機していることを示します。

例えば ​​: foo [-S size ] filename ...

手段

  • コマンドは foo
  • オプションのパラメータ-Sを使用することができます、あなたは伝える必要がありますsize(名前はあなたにヒントを与える)
  • 必須の引数はfilename(これもヒントを提供します、を参照してくださいman mkdir
  • 省略記号...は、複数のファイルを使用できることを示しています。

あなたはまだオプションを理解するためにマニュアルページの深さまで行く必要があります(上の私のサンプルケースでは、何-S sizeについてですか)


14

manページは通常、less最近表示されます。それはそれらを検索することを可能にします。特に、あなたが理解したい特定のコマンドラインがあるからではありません。

/押して-I、入力を開始してからを押しますEnter。最初のヒットは概要にあり、2番目(n次の使用)はの詳細な説明を取得します-I


11

覚えておくべき重要なことの1つは、他のコマンドを実行するコマンドの場合、1つのコマンドのマニュアルだけを見ることができないということです。

コマンド例

locate something | xargs -I {} bash -c "if [ -d "{}" ]; then echo {}; fi"

情報だけでxargsなく、bashand も必要です[(これはtestマンページにあります)。コマンドには複雑な引用文字列が含まれているため、引用ルールのシェルに関する情報(おそらくbashも)が必要になる場合があります。引用符で囲まれた引数が間違っている(および名前にスペースが含まれるファイルに遭遇した場合にのみ表示されるという点で間違っている)ことは既に説明できます。内側"{}"はおそらくであるべき'{}'です。

したがって、最初にxargsのマンページを参照して[-I replace-str]、何を-I {}意味するの[command [initial-arguments]]bash、それ以降の意味をすべて確認します。次にbash、何をするのか-cなどについてマンページを参照します。


6

すでに与えられた素晴らしい答えに加えて:

1)gnuユーティリティ、特にsedandのようなユーティリティに興味があるgrep場合は、infoコマンドを使用すると、コマンド情報の大幅に拡張されたバージョンが表示されます。sedたとえば、正規表現の記述方法に関する詳細なセクションと、非常に複雑な使用例が記載された別のセクションがあります。

2)「マニュアル」です。マニュアルは、主に、すでに理解している内容の詳細を思い出すのに役立つように設計されています。必要な詳細をすばやく取得して外出できるように設計されています。(そして、あまりにも多くの場合、使用例がないか、ささいな例しかありません。)

私は何か新しいもの、私には明らかではないが、コマンドの小さな機能を学ぶ必要があるときに、私はウェブに行き、私が(例えばを考えることができる最適なキーワードを使って検索Linux xargs)と単語を追加howtoexamplesまたはtutorial。これは非常に生産的です。

私は通常、プライバシーを維持するためduckduckgoを使用しますが、検索をさらに制御する必要がある場合は、1つのWebサイト内で検索するか、昨年の結果のみを返すように指示できるため、Googleを使用します。(他にも多くの高度な検索オプションがあります。Googleで検索できます。;))

別のヒント:

よく参照するコマンドについては、マニュアルページをテキストファイルに保存します

man bash > bashman.txt

そのファイルをテキストエディタの別のウィンドウにロードして、前後に反転したり、コピーアンドペーストしたりできるようにします。通常、ファイルを読み取り専用にします。そのため、誤ってマングルしてしまうことはありません。パーソナルコピーを使用して、任意の方法で編集し、タグを追加してセクションを見つけやすくしたり、独自のメモや例を追加することもできます。

これの唯一の欠点は、元のマニュアルページが更新される可能性があり、私のコピーが静的であることです。


4

特定のコマンドのクイックヘルプを取得するには、Explain Shellを使用できます。たとえば、コマンド。これがどのように機能するかを最初に高レベルで理解した後、他の回答が推奨するように、マンページに進む必要があります。


2

Linuxコマンドの詳細を知るための便利なツールが2つあります。

  1. cheatコマンドラインで頻繁に使用されるオプションを表示します。また、特定のコマンドをcommand + option介しcheatて表示される独自のものを追加できます。
  2. bropagesツールはコマンドラインのいくつかの例を提供します、あなた自身の例を追加するか、検証コードを取得した後に与えられた例を上下に投票することが可能ですbro thanks。投票する必要のあるコマンドがbroページの上部に表示されます。

1

tldr包括的な人間に似たツールをお勧めします。簡素化されたコミュニティ主導のマニュアルページ。Ubuntuでは、snap経由でインストールできますが、他のディストリビューション用のバージョンもあります。また、いくつかの一般的な使用例も提供します。100%推奨。


0

>私は、複雑なコマンドを理解するためにmanページを解釈する助けを探しています。

ここが誤解だと思います。Linux / UNIXを非常に強力にしているのは、パイプ()を介して、あるコマンド(ここではlocate)のstdout を別のコマンド(ここでは)のstdinにリダイレクトするなど、非常に長く効果的なコマンドを構築できることです。したがって、Random832が正しく述べたように、コマンド例の動作を説明するマンページは1つも見つかりません。xargs|

Linuxシェルスクリプトガイドを読むことをお勧めします。高度なバッシュ・スクリプティングガイドは優れた文書です。怖がらないでください。Linuxを習得するには数年かかり、終わりのないプロセスですが、合理的な時間で基本を学ぶことができます。

次に、特定のコマンドの詳細を知る必要がある場合は、マンページを参照してください。

概要を理解したら、CommandlinefuBash One-Linersも参考になります。


-1

manページのコマンドで特定の何かを検索するには、次を使用できます。

man echo | grep output.

ただし、スイッチを検索するには(たとえば-n)、次のように使用する必要があります。

man echo | grep -- -n
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.