Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

7
コロンビルトインはどのような目的に役立ちますか?
私は多くのシェルスクリプトをハッキングしてきましたが、時には最も単純なことが私を困惑させます。今日、:(コロン)bashビルトインを広範囲に使用するスクリプトに出会いました。 documenationは、単純な十分です。 : (a colon) : [arguments] 引数を展開してリダイレクトを実行する以外は何もしません。戻りステータスはゼロです。 ただし、これはシェル拡張のデモンストレーションで使用されているだけです。私が出会ったスクリプトのユースケースでは、この構造を広範囲に使用しました。 if [ -f ${file} ]; then grep some_string ${file} >> otherfile || : grep other_string ${file} >> otherfile || : fi 実際には何百ものグレープがありましたが、それらは同じものです。上記の単純な構造以外の入出力リダイレクトは存在しません。スクリプトの後半で戻り値はチェックされません。 私はこれを「または何もしない」という意味のない構成として読んでいます。これらの不満を「または何もしない」で終わる目的は何ですか?どのような場合、この構成は|| :、すべてのインスタンスから単純に離脱するのとは異なる結果を引き起こしますか?


3
find ... -exec grepでファイル名と行番号の両方を返す方法は?
を使用する場合find、文字列を検索するときにファイル名と行番号を返すにはどうすればよいですか?あるコマンドでファイル名を返し、別のコマンドで行番号を返すことができますが、それらを結合することはできません。 ファイル名: find . -type f -exec grep -l 'string to search' {} \; 行番号: find . -type f -exec grep -n 'string to search' {} \;
45 grep  find 

2
コマンドラインで括弧はどのように解釈されますか?
設定方法を読んでいるgrubと、次の2つの構文のいずれかを使用する必要があると主張する記事に出会いました。 echo \(hd0,0\) >> /boot/grub/grub.conf または echo '(hd0,0)' >> /boot/grub/grub.conf なぜなら、コマンドラインでは、かっこが特別な方法で解釈されるためです。括弧の特別な点は何ですか?それらはどのように解釈されますか?
45 bash  shell  quoting 

7
UNIXシェルスクリプトのファイル拡張子[終了]
ウィキペディアでは、.shの記事は次のように述べています。 .shファイル拡張子タイプについては、Bourne shellを参照してください。 他のUNIXシェルはどうですか? 私は実行中のインタープリターを示すためにファイル内でシバン が使用されていることを知っていますが、私は疑問に思います: ファイル拡張子とファイル拡張子なしの長所と短所は何ですか?

3
各grepの一致後、他の特定の一致まで行を表示する方法は?
"-A NUM"スイッチを使用することで、一致するたびに特定の数の後続行を出力できることを知っています。各マッチの後に特定の単語が見つかるまで末尾の行を印刷することが可能かどうか疑問に思っています。たとえば、「Word A」を検索するとき、「Word A」を含む行と、「Word D」を含む行までの行を表示したい。 状況: Word A Word B Word C Word D Word E Word F コマンド: grep -A10 'Word A' この出力が必要です: Word A Word B Word C Word D
45 grep 

4
Fedoraの「apt-get purge」に相当するものは何ですか?
Debianには、パッケージを削除する少なくとも2つの方法があります。 apt-get remove pkgname apt-get purge pkgname 1つ目はシステム全体の設定ファイル(つまり、「/ etc」にあるファイル)を保存しますが、2つ目は保存しません。 Fedoraの2番目のフォームに相当するものは何purgeですか?または、yum remove pkgname実際に設定ファイルを保存するかどうかを尋ねる必要があります。

2
/ etc / aliasesとその機能を理解する
これらは、私のDebian(Wheezy)サーバー上の '/ etc / aliases'ファイルの内容です。 # /etc/aliases mailer-daemon: postmaster postmaster: root nobody: root hostmaster: root usenet: root news: root webmaster: root www: root ftp: root abuse: root noc: root security: root root: t 1.デフォルトでは、サーバーは次のようなメールを送信することに気付きましたroot@hostname.domain.com。それで、これを支配する上記のルールのどれが?postmaster: root;? 2.それで、「/ etc / aliases」のルールは特定の部門にユーザーを割り当てるために使用されますか?つまり、たとえば、「abuse」のために送受信されるすべての電子メールは、root @ hostname.domain.com(別名がない限り、rootのデフォルトの電子メール)から配信されます。正しい? 3.メーラーデーモン、ポストマスター、ノーバディ、ホストマスター、ユースネット、ニュース、ウェブマスター、www、ftp、悪用、noc、セキュリティ、ルート-これらのそれぞれが何を意味するのか、誰か説明してください。 私が意味する、などの説明「mailer-daemonメール配信エラーを送信しますが、実際に電子メールを受信するためのものではないため。security人々があなたについてのセキュリティ問題を連絡しなければならない場所のために」、またはそのような何か。
44 email 



5
mv:宛先が存在しない場合にのみファイルを移動します
私は使用することができmv file1 file2、それが唯一動くような方法でfile1のfile2場合file2は存在しないのですか? 私はもう試した yes n | mv -i file1 file2 (これによりmv、file2をオーバーライドするかどうかを尋ねて、自動的にnoと答えることができます)しかし、-iそれを悪用するだけでなく、素敵なエラーコードも与えません(移動した場合は常に0ではなく141、移動しない場合は何か)
44 shell  files  mv 

4
Linuxでプログラムがスタックしている場所を知る方法は?
私はubuntuサーバーで次のコマンドを実行しています root@slot13:~# lxc-stop --name pavan --logfile=test1.txt --logpriority=trace 無期限にハングするようです。これがAIXで起こったときはいつでも、私は単に違反プロセスのPIDを取得して、 $ procstack <pid_of_stuck_process> また、プロセスのコールスタック全体を表示するために使用されていました。procstacklinux / ubuntuに同等のものはありますか?

7
testまたは[または[[はbashシェル間および他のシェル間でより移植性がありますか?
できると思う $ [ -w /home/durrantm ] && echo "writable" writable または $ test -w /home/durrantm && echo "writable" writable または $ [[ -w /home/durrantm ]] && echo "writable" writable 3番目の構文を使用するのが好きです。それらはすべての点で、すべてのネガティブおよびエッジケースで同等ですか?移植性に違いはありますか?たとえば、UbuntuのbashとOS Xまたは古い/新しいbashバージョンの場合、たとえば4.0より前/後で、どちらも式を同じように展開しますか?

4
逆grepping
たとえば、非常に大きなテキストファイル(約10.000.000行)があるとします。grep最後からそれをする必要があり、結果をファイルに保存します。タスクを達成する最も効率的な方法は何ですか?

6
cd ..ルートフォルダー
なぜcd ..、ルートフォルダで入力、警告またはエラーで失敗しないのですか? 私は期待するだろう: /$ cd .. -bash: cd: ..: No such file or directory 代わりに、私はに残ってい/ます。もちろん、これは以降である..に存在するがない/、と単純に/同じように、.。なぜそうなのか不思議です。

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