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

他のBourne / POSIXシェルとは対照的に、GNUのBourne Again SHellに固有の質問。Unixシェル全般に関する質問については、代わりに/ shellタグを使用してください。

1
bash拡張グロブ-プレフィックスなしのファイルに一致
fail2ban刑務所のファイル名を一致させようとしています-そのため、ファイル名のグロビングのみを使用する必要があります-正規表現やbashスクリプトは使用しません。 私の/var/log/apache2ディレクトリには、次のファイルが含まれます。 example.com.error.log db.example.com.error.log app1.example.com.error.log app2.example.com.error.log を.error.log 除く すべてのファイルに一致するグロブを作成しようとしていますdb.example.error.log-これは可能ですか? 試しました!(db)*.error.logが、これはまだ一致していdb.example.com.error.logます。私は推測している!()可能、何の文字に一致されていない*ファイル名の先頭から一致します。 注:新しいappXログファイルが追加されたときにグロブを拡張する必要はないため@()、現在知られている非dbファイル名のリストでは使用できません。 (背景:db.example.com を除くすべてのドメインでphpMyAdmin URLを要求する人を禁止するフィルターを作成したい)

1
.bashrcと.inputrcの違いは何ですか
私は、UNIXシステムに新しいですし、それが面白いように設定ファイルでカスタマイズ機能や構成を作成するために見つける.bashrcと.inputrc。 しかし、私はこの2つの違いを理解していません。たとえば、エイリアスを作成したときに、それらをに入れます.bashrc。 Example 1: alias ...='cd ../../' 矢印キーを使用して前または次のコマンドを探すなどの操作を作成するとき、コマンドをに入れ.inputrcます。 Example 2: "\e[A": history-search-backward それらを異なる設定ファイルに入れる必要があるのはなぜですか?いつどこに何を置くかを区別するにはどうすればよいですか? 前もって感謝します!


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 

1
bash:警告:シェルレベル(1000)が高すぎるため、1にリセット
私はこのコマンドを実行しようとしました: /etc/ssl/acme/acme.sh --log /var/log/p3x/acme/acme.sh.log --home /etc/ssl/acme --force --issue -d patrikx3.tk -w /var/www/acme-challenge 私はこのエラーを受け取りました: bash:警告:シェルレベル(1000)が高すぎるため、1にリセット このエラーは何ですか?
13 bash 

2
bashのファイルでアトミック書き込み操作を実行する
バッシュを通過した後のドキュメント、この質問とこの私には、それはまだはっきりしていない1は、どのように私はbashで、ファイルへのアトミック書き込み(追記)の操作を行うことができます。複数のインスタンスで実行されるスクリプトがあり、ある時点でデータをファイルに書き込む必要があります。 echo "$RESULT" >> `pwd`/$TEMP_DIR/$OUT_FILE 同時に実行されているすべてのスクリプトからそのファイルへのすべての書き込み操作をアトミックにする(どのようにして、あるインスタンスのデータが別のインスタンスのデータと重複しないようにする)ことができますか?

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 

2
google-chromeの現在のタブからURLを取得する方法はありますか?
私はpythonコマンドを使用してFirefoxでこれを行っていましたが、最近何かが変更され、URLを取得できなくなりました! Firefoxで使用していたもの: #!/bin/bash current_tab_num () { python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nprint str(jdata["windows"][0]["selected"])' } current_tab_url () { sed -n "$(current_tab_num)p" <(python2 <<< $'import json\nf = open("/home/username/.mozilla/firefox/xxxxx.default/sessionstore.js", "r")\njdata = json.loads(f.read())\nf.close()\nfor win in jdata.get("windows"):\n\tfor tab in win.get("tabs"):\n\t\ti = tab.get("index") - 1\n\t\tprint tab.get("entries")[i].get("url")') } current_tab_url 誰でもFirefoxやChromeでこれを行う方法を教えてもらえますか? 注:私はpythonを理解していません、どこかでそれらのコマンドを見つけてbashで使用しました!

4
Linuxの.bashrcファイルはどこにありますか?
.bash_loginと.bash_profileが見つかりません root@linux:~# locate .bash* /etc/bash.bashrc /etc/skel/.bashrc /etc/skel/.bashrc.original /home/noroot/.bashrc /home/noroot/.bashrc.original /root/.bash_history /root/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc /usr/share/kali-defaults/.bashrc root@linux:~# すべてのユーザーに対して常に1つの.bashrcおよび.bash_profileファイルのみがありますか? また、.bashrcと.bash_profileは常に/ home / "user name"ディレクトリにありますか?

8
文字列内の1文字のみを小文字/大文字にawkまたはsedしますか?
いくつかの文字列で1文字のみを大文字/小文字にする方法はありますか? 入力例: syslog_apr_24_30 syslog_mar_01_17 望ましい出力: syslog_Apr_24_30 syslog_Mar_01_17 月の大文字で始まることに注意してください。 私は試しましたawkが、それを機能させるのに十分ではありません。
13 bash  sed  awk 

1
Pythonスクリプトの起動時にVirtualenvをアクティブにする方法は?
特定の日にcronを使用してPythonスクリプトを実行するようにスケジュールしたいのですが、問題はexample.py動作するためにexample-envアクティブ化する必要があるというexample.pyことです、cronを実行するたびに独自のvirtualenv をアクティブにする方法はありますか? そうでない場合、私はbash.sh含むbashスクリプトを作成する必要があります #!/usr/bin/env bash workon example-env python2 example.py そして、特定の日にcronによって実行されるようにスケジュールしますか?または、私は何か他のことをしなければなりませんか? どちらの方法でも問題ありません。正しい方法を知りたいだけです。おそらく、実行するPythonファイルが多数あるため、bashスクリプトメソッドを好むので、それらをすべてbashスクリプト内に入れてスケジュールすると、私にとっては簡単に思えますが、正しい方法はわかりません。 、したがって、私はアドバイスを求めています。

2
サブシェル内のネストされた引用符
次のようなサブシェル出力をカプセル化するには、引用符を使用する必要があるとします。 DATA="$(cat file.hex | xxd -r)" しかし、次のようなものをネストする必要があります。 DATA="$(cat file.hex | xxd -r | tr -d \"$(cat trim.txt)\")" 単一引用符は、その中にある変数を展開しないため、使用できません。引用符のエスケープは、受動的なテキストとして扱われるため機能しません。 これをどのように処理しますか?

7
文字と数字のすべての可能な組み合わせ
したがって、5文字の文字列を構成できる小文字と大文字のすべての可能な組み合わせを生成したいと思います。 可能性:a..z、A..Zおよび0..9。 bashでこれを行うエレガントな方法はありますか?
13 bash 

2
連続コマンド
1 ;つの行で2つのコマンドを結合すると、Bashは常に最初のコマンドが終了するまで待ってから2番目のコマンドを実行すると仮定するのは正しいですか?同様に、異なる行に2つの異なるコマンドを含むシェルスクリプトでは、Bashは常に1行目のコマンドが終了するまで待ってから2行目のコマンドを実行しますか? この場合、最初のコマンドが終了するまで2番目のコマンドが待機しないように、1行またはスクリプトで2つのコマンドを実行する方法はありますか? また、シェルスクリプト内の異なる行は、;または&&?
13 bash 

5
bashとfishの間で環境変数を共有する
bashスクリプトとfishスクリプトは互換性がありませんが、bashとfishの両方によって初期化されるいくつかの環境変数を定義するファイルが欲しいです。 私の提案する解決策は、次の~/.envような環境変数のリストを含むファイルを定義することです。 PATH="$HOME/bin:$PATH" FOO="bar" 次に、bashでソースを作成し、それをfish形式に変換するスクリプトを作成し、fishのソースを作成します。 私はこれよりも良い解決策があるかもしれないと考えていたので、bash fish間で環境変数を共有するより良い方法を求めています。 注:OS Xを使用しています。 以下は、.envfishとbashの両方をとんでもない魚の構文を使って処理したいファイルの例です(〜/ binと〜/ bin2は空のディレクトリであると仮定します): setenv _PATH "$PATH" setenv PATH "$HOME/bin" setenv PATH "$PATH:$HOME/bin2" setenv PATH "$PATH:$_PATH"

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