Unix & Linux

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

3
グロブの順序を変更することは可能ですか?
次のようなことを行って、syslogから特定のメッセージのすべてのインスタンスを時系列順に表示しようとしています。 grep squiggle /var/log/messages* 残念ながら、globパターンは現在アクティブなファイルと最初に一致します。例えば。 /var/log/messages /var/log/messages-20120220 /var/log/messages-20120227 /var/log/messages-20120305 /var/log/messages-20120312 これは、最近のメッセージが最初に表示され、その後に時系列で履歴メッセージが表示されることを意味します。 どうにかしてグロブパターンの振る舞いを調整して、空の一致をmessagesリストの最後に表示することは可能ですか? そうでない場合、この問題に対処する良い方法は何でしょうか?
12 bash  wildcards 


2
色をサポートするウォッチの代替
phpunit色付きの出力があるコマンド()があります。によるとwatch、コマンドを使用して、--colorフラグを使用してカラーレンダリングをパススルーできるようにする必要があります。ただし、これは機能しません。これを解決する他の方法はありますか?
12 bash  utilities  watch 

2
xargsを使用して複数のパターンをgrepする
grepする用語が含まれるファイルがあり、各用語はファイル内の1行です。私はこれをxargsでできると考えていました。このようなmanページの例から収集できるもの find ./work -print0 | xargs -0 rm xargsはpre-pipeコマンドの出力を引数の最後に追加するということです。したがって、検索結果が返された場合、report.docxargsはを構築しrm report.docます。この理解は正しいですか? したがって、ファイルの値をgrepコマンドの中央に配置するため、プレースホルダーを指定する必要があります。遊んで、試してみました{}が、うまくいきませんでした: $> cat strings.txt | xargs grep {} subdirectory/* grep: string1: No such file or directory grep: string2: No such file or directory xargsは適切なツールですか?もしそうなら、構文は何ですか?
12 grep  xargs 

5
プロセスを強制終了する優雅な方法
bashスクリプトがseleniumサーバーで処理された後、スクリプトは次のようにそれを強制終了します。 kill `ps -ef | grep selenium | awk '{ print $2 }'` これは機能し、セレンスクリプトを強制終了しますが、grep seleniumプロセス番号をkillコマンドに戻すまでにプロセスを強制終了しようとするため、プロセスは終了するため、エラーメッセージが生成されます。(つまり、最終的に2つのプロセスを強制終了します。1つは実際のセレンサーバーであり、もう1つは一時的なプロセスであり、このコマンドの実行方法の副作用です。) プロセスを強制終了するより優雅な方法はありますか?この意図しない副作用はありませんか? (FWIW私が持っていた1つのアイデア:この同じスクリプトは、スクリプトの早い段階でセレンを起動します。問題は、そのPIDを取得する方法、変数を使用してそれを保持する方法、およびスクリプト内で後で参照する方法がわからないことです。
12 process  search  kill 


2
CentOSサーバーにSSHで接続するときのデフォルトパスを変更しますか?
CentOS 5.7 Webサーバーを使用していますが、SSHを使用して接続するときに、デフォルトの場所を変更したいと考えています。 現在、私はに着陸し/home/username、/home代わりに着陸したいです。 私はルートとして入り、追加PermitUserEnvironment yesしました/etc/.ssh/sshd_config-そして、私はそれを理解しているのでssh、environmentファイルのユーザー自身のフォルダーをスイープします。export path=$PATH:$HOMEここで、または.bashrcまたは.bash_profileファイルのいずれかで動作しないように思えるので、私はこの環境ファイルに正確に追加するものについて確信していませんとにかく、SSH接続は非対話型のシェルですか?)。 前もって感謝します。
12 centos  ssh  sshd  home 


3
連結された変数名の逆参照
これはできますが、変数の文字列を作成してから参照解除する必要があります。より単純なステートメントに短縮する方法はありますか? #!/bin/bash FRUITS="BANANA APPLE ORANGE" BANANA_COLOUR="Yellow" APPLE_COLOUR="Green or Red" ORANGE_COLOUR="Blue" for fruit in $( echo $FRUITS ); do fruit_colour="${fruit}_COLOUR" echo $fruit is ${!fruit_colour} done 私はのようなものをたくさん試してみました${!"${fruit}_COLOUR"}か\$${fruit}_COLOURおよび他の多くの変種を、しかし、働いている唯一の方法は、文字列を使用することです。

2
コマンドラインで正規表現のバックスラッシュをエスケープするために必要なバックスラッシュの数
私は最近、コマンドラインでいくつかの正規表現に問題があり、バックスラッシュを一致させるために、異なる数の文字を使用できることがわかりました。この数は、正規表現に使用される引用符(なし、単一引用符、二重引用符)に依存します。意味については、次のbashセッションを参照してください。 echo "#ab\\cd" > file grep -E ab\cd file grep -E ab\\cd file grep -E ab\\\cd file grep -E ab\\\\cd file #ab\cd grep -E ab\\\\\cd file #ab\cd grep -E ab\\\\\\cd file #ab\cd grep -E ab\\\\\\\cd file #ab\cd grep -E ab\\\\\\\\cd file grep -E "ab\cd" file grep -E "ab\\cd" file grep …

1
tar -cvzf Pack.tar.gz mydirは隠しファイルを考慮しますか?
特定のディレクトリのtarballを作成する必要があります。ただし、隠しファイル(で始まるファイルなど)も含める必要があります.。 次のコマンドは、隠しファイルを自動的に考慮しますか? tar -cvzf packed.tar.gz mydir そうでない場合、隠しファイルを含めるにはどうすればよいですか?
12 directory  tar  gzip 


2
まだ作成されていないファイルのテーリングを開始する方法
私はtail、ジョブの進行状況をディスクに書き込むことがわかっているジョブの進行状況を監視するために使用します。ほとんどの場合、実行を開始する前に作成するファイルを知っています(ジョブはスーパーコンピューターのスケジューラーによってディスパッチされます) tailこれらのファイルを作成する前に、それらのファイルへの方法はありますか?競合状態を回避し、かつ/またはジョブがディスクに書き込む方法とタイミングについて推測しながら、そのようにしたいと思います。

2
名前付きパイプの戻り値に対するseek()操作を成功させることは可能ですか?
プログラムseek()が名前付きパイプで操作を実行しようとすると、「違法シーク」の代わりに成功します(ただし、パイプが空のファイルであるかのように振る舞う)ようにする方法はありますか? 私のシステムの最後の少しのログはSQLiteデータベースに保存されており、どこにもファイルはありません。ただし、これに問題があるプログラムがいくつかあります。2つの特定のケースがあります。 プログラムは、syslog-ngが名前付きパイプとして作成して読み取り中のログファイルに書き込みたいと考えています。プログラムはseek()何らかの理由でaを実行したいのに失敗します。 プログラム(denyhostsやfail2banなど)は、syslog-ngが名前付きパイプとして作成して書き込み中のログファイルから読み取りたいと考えています。プログラムはそれを実行しようとしてseek()失敗します。 理想的には、これらのシークが名前付きパイプが単なる空のファイルであるかのように動作するようにしたいのです。とにかく、ログを書き込むプログラムがシークを実行する必要がある理由がわかりません。追加のためにファイルを開いて書き込みを開始するだけです。プログラムの読み取りが最後の位置から再開できるように、プログラム読み取りがシークしたい理由がわかります。したがって、ファイルが空のように(切り捨てられたように)動作するようにします。 名前付きパイプにこのように動作させるために設定できるオプションがありますか?そうでない場合、syslog-ngがパイプを開いてこのように動作させるときに設定できるモードはありますか?それとも、私は小川を上がっていますか?
12 pipe  syslog 

1
find / path / -execコマンド '{}'の{}とは何ですか?
次のコマンドの{}が実際に何のためにあるのか興味がありますか? コマンド例: find /foo/ -name "*.txt" -exec rm -v {} \; Manページには小さな宣伝文句がありましたが、少し混乱しました。 文字列「{}」は、findの一部のバージョンのように、単独の引数だけでなく、コマンドの引数で発生するすべての場所で処理される現在のファイル名に置き換えられます。
12 find 

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