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

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

3
「noclobber」を設定することの欠点はありますか?
それzshはコマンドを与えられたすべてのファイルを上書きできることを考えると: >* オプションを設定noclobberすることは良い考えだと思います。 >| filebashとzshの両方でデフォルトのclobber動作を使用したい場合はいつでも使用できます。(zshでは代替構文も使用できます>!file)。 noclobberPOSIXとの互換性のため、デフォルトでは設定されていないと思いますが、念のために: 設定のマイナス面はありますnoclobberか? とにかくnoclobber対話型シェルのみに設定する必要はありますか?
19 bash  shell  zsh 

3
パイプされたlsはls -1と同じですか?
lsいくつかの列に出力を返しますが、私が試したディレクトリでls|catは、バイトが同じ出力を返しますls -1。それでも、私はls -1答えの中でパイプされたように見えls -1|wc -lます。好む理由はありls -1ますか?...|catの出力が変わるのはなぜlsですか?
19 shell  ls 

1
echo [9876543210]は1 4 5 6を表示します…なぜですか?
最後の4つのエコーステートメントに対して1 4 5 6が表示される理由を説明してください。私は偶然これにぶつかったのですが、今ではこの動作がなぜ起こるのか興味があります。 これらのステートメントは期待どおりに機能します(私にとって)。 $ echo [ 9876543210 ] [ 9876543210 ] $ echo [237890] [237890] これらのechoステートメントは常に1 4 5 6を表示します。これらの数値について何か特別なことはありますか? $ echo [9876543210] 1 4 5 6 $ echo [abcd9876543210ghi] 1 4 5 6 $ echo [-123456-] 1 4 5 6 $ echo [-7654321-] 1 4 5 6 ありがとう! …

7
シェル/ターミナルのランダムな色とジョーク
端末を使用しているときに冗談を言ったり、色を変えたり、ユーザーを笑ったりする人を見ました。それは、(年)以来、コンソールに漏れる色の線に沿って何かを言った。私はそれが何であったか覚えていませんが、Kubuntu Konsoleは長時間使用すると非常に退屈になるので、それを使用したいと思います。それが何であるか/どこで入手できるかについてのアイデアはありますか? 私が探しているのは、スクリプトまたはコマンド(または起動時に実行されるコマンド)を実行するためのユーザーからの特定の入力なしで、自動的にそれを行うものです。私が探しているものは、シェルの色のテーマをランダムな間隔で変更し、色の変更について冗談を言いました。おそらく、Kubuntuに組み込まれているKonsoleとは異なる端末プログラム(それが正しい用語かどうかはわかりません)でした。


4
いくつかのシェルの `read`ビルトインが` / proc`のファイルから行全体を読み取れないのはなぜですか?
いくつかのボーンのようなシェルでは、read組み込みは、ファイルから行全体を読み取ることができません/proc(以下のコマンドを実行にする必要がありzsh、交換する$=shellと$shell、他のシェルで): $ for shell in bash dash ksh mksh yash zsh schily-sh heirloom-sh "busybox sh"; do printf '[%s]\n' "$shell" $=shell -c 'IFS= read x </proc/sys/fs/file-max; echo "$x"' done [bash] 602160 [dash] 6 [ksh] 602160 [mksh] 6 [yash] 6 [zsh] 6 [schily-sh] 602160 [heirloom-sh] 602160 [busybox sh] 6 readstandardでは、標準入力がテキストファイルである必要がありますが、その要件はさまざまな動作を引き起こしますか? テキストファイルの POSIX定義を読み、検証を行います。 …
19 linux  shell  proc  read 


5
なじみのないシステムについて学ぶコマンド[非公開]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 なじみのないUNIXまたはLinuxシステムに(rootとして)ログインします。どのコマンドを実行して自分自身の方向を決め、どのようなシステムを使用しているかを把握しますか?使用中のハードウェアの種類、実行中のオペレーティングシステムの種類、およびアクセス許可とセキュリティに関してはどのような状況にあるのかをどのように把握しますか? 入力する最初と2番目のコマンドは何ですか?

5
cpを使用する方が簡単な場合にdiff / patchを使用する理由
diff -u file1.txt file2.txt > patchfile patchfile1.txtをfile2.txtとまったく同じように変換するための命令で構成されるパッチファイルを作成します cp代わりにコマンドを使用してこれを行うことはできませんか?これは、ファイルが大きすぎて、この方法で帯域幅を節約できるネットワーク経由で転送する必要がある場合に役立つと想像できます。他のシナリオで有利になるdiff / patchを使用する他の方法はありますか?
19 shell  cp  diff  patch 

3
シンボリックリンクを介してcdした場合、pwdが実際のパスではなくシンボリックリンクを表示するのはなぜですか?
ln -s 1 2ディレクトリ内にあるtestディレクトリへのソフトリンク()を作成し、ソフトリンク()を開き、cd 2を使用して現在のパスを表示しましたpwd。表示されたパスは~/test/2でした~/test/1。 WindowsのようなOSでは異なり、ショートカットにより実際のディレクトリに移動します。Linuxでこのソフトリンクがどのように機能するか、少し混乱しています。のようなショートカットではありませんWindowsか?なぜパスはそうではないの~/test/1ですか? $ mkdir test $ cd test $ mkdir 1 $ ln -s 1 2 $ cd 2 $ pwd /home/dazz/test/2

4
相互接続されたコマンド間でデータの循環フローを実装するにはどうすればよいですか?
コマンドを相互に接続する方法は2種類あります。 パイプを使用して(次のコマンドのstd-outputをstd-inputに入力します)。 Teeを使用して(出力を多数の出力に接合します)。 それが可能かどうかわからないので、仮想の接続タイプを描画します。 たとえば、コマンドの代わりに変数を使用するこの擬似コードのように、コマンド間でデータの循環フローを実装するにはどうすればよいでしょうか。 pseudo-code: a = 1 # start condition repeat { b = tripple(a) c = sin(b) a = c + 1 }

9
スクリプトを生き続けるために「while true」を使用するのは良い考えですか?
私はただ別の世界からunixに飛び込んでいて、 while true do /someperlscript.pl done perlスクリプト自体には、ターゲットの場所でファイルが変更されたときに実行されるフォルダー/ファイルウォッチャーが内部にあります。 これwhile trueは良いアイデアですか?そうでない場合、好ましい堅牢なアプローチは何ですか? TIA 編集:これはかなりの関心を生み出したように見えるので、ここに完全なシナリオがあります。perlスクリプト自体は、ファイルウォッチャーを使用してディレクトリを監視します。新しいファイルを受信すると(rsyncを介して到着します)、新しいファイルを取得して処理します。現在、着信ファイルが破損している可能性があり(質問しないでください。ラズベリーパイから来ています)、時にはプロセスがそれを処理できないことがあります。私たちはまだすべてのシナリオを認識していないので、正確な理由はわかりません。 ただし、プロセスが何らかの理由で失敗した場合、次のファイルはエラーを引き起こした可能性のある前のファイルとは完全に無関係であるため、実行して次のファイルを処理する必要があります。 通常、何らかのキャッチオールを使用し、コード全体をラップして、クラッシュしないようにしました。しかし、perlには確信がありませんでした。 私が理解したことから、supervisordのようなものを使用することはこのための良いアプローチです。
19 shell  perl 


4
evalを使用してスペースを含む値をbashの変数に割り当てる方法
を使用して変数に値を動的に割り当てたいeval。次のダミーの例が機能します。 var_name="fruit" var_value="orange" eval $(echo $var_name=$var_value) echo $fruit orange ただし、変数値にスペースが含まれevalている場合$var_value、二重引用符で囲まれていてもエラーを返します。 var_name="fruit" var_value="blue orange" eval $(echo $var_name="$var_value") bash: orange : command not found これを回避する方法はありますか?
19 bash  shell  quoting 

2
lsのようなシステムコマンドはどのように作成されますか?
* nixに関して疑問があります。 ls.sh、.ksh、または他の種類のシステム実行可能ファイルであるかどうか、実行可能ファイルのタイプがわからない場合、それは何ですか? 私はのソースコードであるかを確認しようとしたときlsのようなコマンドに見える、それが読めないこれらの種類のファイルを作成するために、* nixの使用を何方法、読めない何かを示していて、私は(のように、これらのファイルへの私のファイルは、同様のことができますls-読めません)。

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