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

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

8
複数のコマンドに標準出力を送信するにはどうすればよいですか?
入力をフィルタリングまたは処理し、それを出力として渡すstdoutコマンドがいくつかありますが、通常はそうなると思いますが、一部のコマンドはそれを受け取り、stdinそれで何でもし、何も出力しません。 私はOS Xで最もよく知っているので、気になる二人はすぐにありますされているpbcopyとpbpaste-システムクリップボードにアクセスする手段です。 とにかく、stdoutを使用して出力を吐き出し、両方stdoutとファイルに移動する場合は、teeコマンドを使用できることを知っています。そして、私は少し知っxargsていますが、私はそれが私が探しているものだとは思わない。 stdout2つ(またはそれ以上)のコマンドに分割する方法を知りたい。例えば: cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors おそらくそれよりも良い例がありますが、私はそれを中継しないコマンドにstdoutを送信し、stdout「ミュート」されないようにする方法を知っていることに本当に興味がcatあります- grepその一部をクリップボードにコピーします-特定のコマンドはそれほど重要ではありません。 また、私はこれをファイルに送信する方法を尋ねていませんstdout-これは「重複」の質問かもしれません(申し訳ありません) -そして、それらの質問に対する答えはのようteeでした。 最後に、「pbcopyをパイプチェーンの最後のものにしないのはなぜですか?」私の応答は1)それを使用して、コンソールに出力を表示したい場合はどうなりますか?2)stdout入力を処理した後に出力しない2つのコマンドを使用する場合はどうなりますか? ああ、もう1つ-私teeは名前付きパイプ(mkfifo)を使用できることを理解していますが、事前にセットアップせずに、これをインラインで簡潔に行う方法を望んでいました:)

8
シェルスクリプトでsetuidを許可する
setuid許可ビットではなく、エグゼキュータの所有者の実効ユーザーIDを使用してプログラムを実行するためのLinuxに指示します: > cat setuid-test.c #include <stdio.h> #include <unistd.h> int main(int argc, char** argv) { printf("%d", geteuid()); return 0; } > gcc -o setuid-test setuid-test.c > ./setuid-test 1000 > sudo chown nobody ./setuid-test; sudo chmod +s ./setuid-test > ./setuid-test 65534 ただし、これは実行可能ファイルにのみ適用されます。シェルスクリプトはsetuidビットを無視します。 > cat setuid-test2 #!/bin/bash id -u > ./setuid-test2 1000 > …


7
コマンドからの出力の各行にタイムスタンプを付加する
コマンドからの出力の各行にタイムスタンプを追加したいと思います。例えば: foo bar baz になるだろう [2011-12-13 12:20:38] foo [2011-12-13 12:21:32] bar [2011-12-13 12:22:20] baz ...ここで、接頭辞が付けられている時間は、行が印刷された時間です。どうすればこれを達成できますか?
182 shell  timestamps 



8
/ sbin / nologinと/ bin / falseの違いは何ですか
技術的にpamは、シェルを使用してpam_shellsいない場合、これらのどちらでも実際にログインを防止できないようにシェルを設定しない限り、です。私のシステムでは、それらは異なるサイズですら、実際に何かをしているのではないかと思います。それで、違いは何ですか?なぜ両方が存在するのですか?なぜ私は一方をもう一方の上に使用するのですか? -rwxr-xr-x 1 root root 21K Feb 4 17:01 /bin/false -rwxr-xr-x 1 root root 4.7K Mar 2 14:59 /sbin/nologin
169 shell  security  login 


5
バックグラウンドプロセスを一時停止してフォアグラウンドにする方法
元々フォアグラウンドで実行されているプロセスがあります。Ctrl+ Zで中断し、バックグラウンドで実行を再開しbg <jobid>ます。 バックグラウンドで実行中のプロセスをどのように一時停止するのでしょうか? バックグラウンドプロセスをフォアグラウンドにするにはどうすればよいですか? 編集: プロセスはstderrに出力するのでfg <jobid>、プロセスが端末に出力している間にどのようにコマンドを発行する必要がありますか?

6
エイリアスによってシャドウされているコマンドを実行する
bashに次のエイリアスがあるとしますalias ls='ls --color=auto'--そして、lsオプションなしで普通に呼び出したいと思います。それを行う唯一の方法は、エイリアスを解除し、コマンドを実行してから再びエイリアスにすることですか?または、気の利いたトリックや回避策がありますか?
164 bash  shell  alias 

11
パイプ入力の行ごとに1回コマンドを実行しますか?
のすべての一致に対してjavaコマンドを1回実行したいls | grep pattern -。この場合、私はできると思いますfind pattern -exec java MyProg '{}' \;が、一般的なケースに興味があります-「標準入力のすべての行に対して一度コマンドを実行する」という簡単な方法はありますか?(魚またはバッシュで。)
162 bash  shell  fish 


2
停止されたジョブがあります(bash出口で)
There are stopped jobs.時々bashシェルを終了しようとすると、メッセージが表示されます。Python 2.xの再現可能なシナリオを次に示します。 ctrl+ cは、インタープリターによって例外として処理されます。 ctrl+ zプロセスを「停止」します。 ctrl+ d実数でpythonを終了します。 以下は、実際の端末出力です。 example_user@example_server:~$ python Python 2.7.3 (default, Sep 26 2013, 20:03:06) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> ctrl+z [1]+ Stopped python example_user@example_server:~$ exit logout There are stopped jobs. bashが終了しませんでしexitた。bashシェルを終了するには、もう一度する必要があります。 Q:「停止したジョブ」とは何ですか、またはこれはどういう意味ですか? Q:停止したプロセスを再開できますか? Q:最初exitに停止したジョブを強制終了しますか? …
158 bash  shell  process 

7
ターゲットファイルをmvで上書きする方法は?
親ディレクトリに移動したいサブディレクトリに大量のファイルとディレクトリがあります。ターゲットディレクトリには、上書きする必要のあるファイルとディレクトリが既にあります。ターゲットにのみ存在するファイルは変更しないでください。それを強制mvすることはできますか?それ(mv * ..)文句を言う mv: cannot move `xyz' to `../xyz': Directory not empty 私は何が欠けていますか?

9
環境変数がどこから来たのかを判断する方法は?
しばらく前にセットアップしたLinuxインスタンスがあります。起動してログインすると、root設定した環境変数がいくつかありますが、それらがどこから来たのか覚えていないか、見つけることができません。 私がチェックした~/.bash_profile、/etc/.bash_rcと、すべての起動スクリプト。 私が実行したfindとgrep無駄に。 明らかな場所を見るのを忘れているに違いないと思う。これを理解するためのトリックはありますか?

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