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

シェルは、Unixのコマンドラインインターフェイスです。シェルにインタラクティブにコマンドを入力するか、スクリプトを記述してタスクを自動化できます。/ bin / shおよび最も互換性のあるシェル(ash、bash、ksh、zshなど)に適用される質問には、このタグを使用します。エラーのあるシェルスクリプトについては、ここに投稿する前にhttp://shellcheck.netで確認してください。


13
パイプ文字を持つパターンで複数のパターンをgrepするにはどうすればよいですか?
2つのパターンのいずれかに一致する複数のファイルですべての行を検索したい。入力して探しているパターンを見つけようとしました grep (foo|bar) *.txt しかし、シェルは|をパイプとして解釈しbar、実行可能ファイルではない場合に文句を言います。 同じファイルセットで複数のパターンをgrepするにはどうすればよいですか?



13
パイプのバッファリングをオフにします
2つのコマンドを呼び出すスクリプトがあります。 long_running_command | print_progress long_running_commandプリントは進歩が、私はそれに不満です。print_progressより良いものにするために使用しています(つまり、進行状況を1行で出力します)。 問題:stdoutにパイプを接続すると、4Kバッファーもアクティブになります。素敵な印刷プログラムには何も...何も...何も... たくさんありません... :) 4Kバッファーを無効にするにはどうすればよいですかlong_running_command(いいえ、ソースがありません)?
395 shell  pipe  buffer 

10
名前が「-」(ハイフン、ダッシュまたはマイナス)で始まるファイルを削除するにはどうすればよいですか?
ファイル名がダッシュ(ハイフンまたはマイナス)で始まるファイルを削除するにはどうすればよいです-か?リモートOSXサーバーにssh'dし、ディレクトリにこのファイルがあります: tohru:~ $ ls -l total 8 -rw-r--r-- 1 me staff 1352 Aug 18 14:33 --help ... どのように--helpしてCLIから削除できますか?この問題は時折さまざまな形で出くわします。これらのファイルは簡単に作成できますが、取り除くのは困難です。 バックスラッシュを使用してみました rm \-\-help 引用符を試してみました rm "--help" マイナス(ダッシュまたはハイフン)文字がオプションとして解釈されるのを防ぐにはどうすればよいですか?


5
「which」を使用しないのはなぜですか?それでは何を使用しますか?
実行ファイルへのパスを探したり、Unixシェルでコマンド名を入力する場合に何が起こるか確認する場合は、異なるユーティリティの茄多があります(which、type、command、whence、where、whereis、whatis、hash、など)。 which避けるべきだとよく耳にします。どうして?代わりに何を使うべきですか?

5
ログインシェルと非ログインシェルの違いは?
対話型シェルと非対話型シェルの基本的な違いを理解しています。しかし、ログインシェルと非ログインシェルを正確に区別するものは何ですか? 非ログインインタラクティブシェルの使用例はありますか?
318 shell  login 

10
ファイルに複数の行を追加する方法
ファイルが存在しない場合はそれを探して作成し、これを追加するbashスクリプトを作成しています。 Host localhost ForwardAgent yes だから"line then new line 'tab' then text"私はそれが敏感なフォーマットだと思う。私はあなたがこれを行うことができることを知っています: cat temp.txt >> data.txt しかし、その2行からは奇妙に見えます。これをこの形式で追加する方法はありますか? echo "hello" >> greetings.txt

16
bashまたは他の言語/フレームワークで整数と浮動小数点の計算を行う方法は?
echo "20+5"文字通りに使用すると、テキスト「20+5」が生成されます。 25この場合、数値の合計を取得するためにどのコマンドを使用できますか? また、浮動小数点にbashを使用するだけの簡単な方法は何ですか?たとえば、:(をecho $((3224/3807.0))出力し0ます。 基本的なコマンドシェル(「コマンドライン」)自体を使用するか、コマンドラインから使用可能な言語を使用して回答を探しています。


5
シェルスクリプトが空白またはその他の特殊文字で停止するのはなぜですか?
または、堅牢なファイル名処理およびシェルスクリプトで渡すその他の文字列の入門ガイド。 ほとんどの場合、うまく機能するシェルスクリプトを作成しました。ただし、一部の入力(たとえば、一部のファイル名)で停止します。 次のような問題が発生しました。 スペースを含むファイル名を持っていて、hello worldそれは2つの別個のファイルhelloとworld。 2つの連続したスペースを持つ入力行があり、入力で1つに縮小しました。 入力行から先頭と末尾の空白が消えます。 入力に文字の1つが含まれている場合、\[*?実際にはファイルの名前であるテキストに置き換えられることがあります。 入力にアポストロフィ'(または二重引用符")が含まれており、その時点以降は状況がおかしくなりました。 入力にバックスラッシュがあります(または、Cygwinを使用していて、ファイル名の一部にWindowsスタイルの\区切り文字があります)。 何が起こっており、どうすれば修正できますか?

4
セグメンテーションフォールトは内部でどのように機能しますか?
「CPUのMMUが信号を送信する」と「カーネルが問題のあるプログラムにそれを送り、それを終了する」以外に、これに関する情報を見つけることができないようです。 私はそれがおそらくシグナルをシェルに送信し、シェルが問題のあるプロセスを終了して印刷することによってそれを処理すると仮定しました"Segmentation fault"。そのため、crsh(crap shell)と呼ばれる非常に最小限のシェルを作成して、この仮定をテストしました。このシェルは、ユーザー入力を取得してsystem()メソッドに渡すこと以外は何もしません。 #include <stdio.h> #include <stdlib.h> int main(){ char cmdbuf[1000]; while (1){ printf("Crap Shell> "); fgets(cmdbuf, 1000, stdin); system(cmdbuf); } } そこで、私はこのシェルを裸の端末でbash実行しました(下で実行せずに)。次に、セグメンテーション違反を生成するプログラムを実行しました。私の仮定が正しければ、これはa)クラッシュcrsh、xtermのクローズ、b)印刷しない"Segmentation fault"、またはc)両方のいずれかです。 braden@system ~/code/crsh/ $ xterm -e ./crsh Crap Shell> ./segfault Segmentation fault Crap Shell> [still running] 正方形に戻って、私は推測する。これを行うのはシェルではなく、その下のシステムであることを示しました。「セグメンテーション違反」はどのように印刷されますか?「誰」がやっているの?カーネル?他に何か?信号とそのすべての副作用は、ハードウェアからプログラムの最終的な終了までどのように伝播しますか?


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