Linuxターミナルで、基本的なbash構文のリファレンスまたはチートシートを表示するにはどうすればよいですか?


8

ifステートメントを含む小さなbashスクリプトを実行する必要があるたびに、空の変数と存在しないファイルなどをチェックします。私はいくつかの簡単なbashのマニュアルまたはガイドのためにグーグルを叩いているのに気づきます。

多くの場合、これらは長すぎて複雑すぎて、私が直面している質問にすばやく答えることができません。

したがって、基本的なbash構文(ifステートメントのようなもの、空の変数のチェック、存在しないファイルなど)を短くアクセス可能な方法でカバーするコマンドまたはマニュアルページが必要だと考えていました。私はコマンドを見つけられなかったと確信しています(man bashはそうではないようです)。

どこにありますか?


2
bashあなたが試すことができますhelp
mikeserv

回答:


13
  • man bash 正規のBash参照です。
  • help helphelp、Bashビルトインに関するヘルプを提供しますhelp for。また、Bashビルトインなどの他のBashビルトインに関する短いヘルプメッセージを提供します。
  • GregのWikiは、Bashのほぼすべての側面について、的確で簡潔な、そして時には面白い参考資料を見つけるのに最適な場所です。
  • 構文をすばやく検索する方法が必要な場合は、バージョン管理.bash_historyできます。あまりにも多くのコマンド、異なるパラメータ構文、ありますsedawk、これまでにノイズラインや他のものは、それのniceが持つ「よく手入れ」の個人的な言及持っているので、それのすべてを覚えているのタグを中にルックアップします。

言及のための1 help
goldilocks 2014年

1
ありがとう!@polymの回答で述べたように、man bashで明らかに間違った検索語( "ifステートメント"、 "[-n"など)を使用しなかったため、情報がないと思っていました。「条件式」を検索するのが適切な検索用語でした。
Samuel Lampa 2014年

2
私は知らなかった...この瞬間... 10年間の愛と憎しみの等量を持ってhelpいました。そんなに不必要なman bash読書は必要ありません!
Matt

13

オンラインはそのようなものたくさんあるので、ここにあなたへの提案があります。いろいろなものに使っています。

ディレクトリを作成します$HOME/notes。サブフォルダを追加しますbash。がない場合は$HOME/bin、作成し、任意の方法(~/.bashrc:)を使用してパスに追加します。次に、そこに簡単なスクリプトを挿入しますcmdref.sh

#!/bin/bash

if [ -z "$CMREF_DIR" ]; then
        CMREF_DIR="$HOME/notes"
fi

cat "$CMREF_DIR/${1}/${2}.txt"

便宜上、シンボリックリンクしてくださいln -s ~/bin/cmdref.sh ~/bin/cmdref。私はこれを行うのが好きなので、cmdref.shソースを編集でき、エディターはサフィックスによってファイルタイプを認識します。

コピー内のさまざまなファイルに何でも貼り付ける~/notes/bash-例えば、あなたがファイルを持っている可能性がありarrays.txtloops.txtこれはあなた自身の個人的な使用のためだけである限り、あなたが著作権を侵害していないとしてなど、。

これで、コマンドラインからそれを使用できます。例:次のcmdref bash arraysチートシートがコンソールに出力されます。ファイルは.txt(ここでも、適切なサフィックスを使用するとエディター、ファイルブラウザーなどに役立ちます)がcmdref bash arrays.txt追加されているため使用しないでくださいcmdref.sh(スクリプトが行うのは、パスを変換してサフィックスを追加することだけです)。


ゴージャス!素晴らしいアイデアで、Linuxの柔軟性とカスタマイズ性について、私が考慮していなかったいくつかのことを教えてくれました。
マイティパイル2014年

@goldilocksスクリプトファイルをシンボリックリンクする理由について、特に「cmdref.shソースを編集できるようにしたいので、エディタがサフィックスによってファイルタイプを認識できるようにしたい」という理由を理解できませんでした。説明していただけますか?それは私ができることを意味しvi cmdref、vimは "cmdref.sh"を開き、それを編集できますか、それともここで明らかなものが欠けていますか?
オタク2014

@Geek AFAIKすべての編集者は、主にファイルサフィックスを使用して、ファイルタイプのWRT構文の強調表示を決定します(他の方法で行うと、見た目はおおざっぱにわかりますが、サフィックスを認識しない場合、一部のツールのフォールバックになる可能性があります)。したがって、もしvi ~/bin/cmdrefvimはこれがどのような種類のファイルであるかを実際には認識しておらず、強調表示にデフォルトを使用します(そうだと思います.txt)。ただし、の場合vi ~/bin/cmref.sh、vimはファイルがシェルスクリプトであることを認識しているので、強調表示しても意味があります。しかし、WRTはコマンドでcmdrefはなく、入力したいですcmdref.sh。それが私がシンボリックリンクを使う理由です。
goldilocks 2014

サイドバーとして:vi通常、それ自体がへのシンボリックリンクvimです。そのため、構文が強調表示されます(元の「vi」にはそのような機能がなかったと思います)。そして:Vimは実際にあるファイルには接尾辞を持っていない場合は、シェルスクリプトとして、そのスクリプトを認識するためのスマート十分な、しかし原則スタンド;)まれに、多分私はあまりスマートなものを使用したい/必要があります。
goldilocks 2014

...違いを確認したい場合は.sh、vimでファイルをロードしてset filetype=txt-eek!
goldilocks 2014

3

man bashbashの構文、例えばのためのあらゆる側面をカバーしif statementsstring is zeroそしてnon-existent filesちょうど検索(ヒット、/キーを、次のように入力します)のために CONDITIONAL EXPRESSIONS


1
ああ、確かに。その検索語が思いつかなかったため、私の脳はオフになっているか、不足している必要があります(「ifステートメント」、「\ '[-n」などを検索してみましたが、役に立ちませんでした)。ありがとう!
Samuel Lampa

1
@SamuelLampa bashのmanページを十分に使用すると(それほど多くはかかりません)、その構造の感触が得られるので、実際に調べる前に、そこに何があるか、どこにあるのかを知ることができます。
David Z
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.