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

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

2
Bashの単語にエイリアス、関数、ファイルなどを強制的に参照させる方法は?
関連する質問にもう少し詳細を追加しようとすると、どのBashワードタイプを実行するかを指定する方法がわからないことに気付きました。によるとhelp type、5つの単語タイプがあります: エイリアス キーワード 関数 ビルトイン ファイル 単語にはいくつかのタイプがある可能性があります(true単なる例です。より一般的にオーバーライドされる単語はになりますcd)。 $ type -a true true is a shell builtin true is /bin/true 特定の同義語の実行をどのように強制しますか?これまでのところ、優先順位の順に: 別名:他のすべての同義語よりも優先されるため、これは特殊なケースです。これを強制することは、エイリアスが定義されていない場合にコマンドが失敗する場合にのみ役立ちます。 $ キーワード: $ 関数: $ ビルトイン: $ builtin true ファイル: $ command true $ $(which true) $ /bin/true 部分的な解決策: 単語を引用すると、エイリアスとキーワードは除外されます。あれは、 $ 'true' 関数、組み込み関数、またはファイルのみを実行します。
13 bash 

5
特定の文字列に一致する履歴のコマンドを削除するにはどうすればよいですか?
文字列に一致する履歴内のすべてのコマンドを削除する必要があります。私はもう試した: $ history | grep searchstring | cut -d" " -f2 | history -d -bash: history: -d: option requires an argument $ history | grep searchstring | cut -d" " -f2 | xargs history -d xargs: history: No such file or directory $ temparg() { while read i; do "$@" …

3
teeを使用してgrepにリダイレクトする方法
Tシャツの使用経験はあまりないので、これがあまり基本的ではないことを願っています。 この質問に対する答えの1つを見た後、私は奇妙な行動に出会いましたtee。 最初の行と見つかった行を出力するために、これを使用できます: ps aux | tee >(head -n1) | grep syslog USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND syslog 806 0.0 0.0 34600 824 ? Sl Sep07 0:00 rsyslogd -c4 ただし、これを(zshで)初めて実行したとき、結果の順序が間違っていて、列ヘッダーがgrepの結果の下にありました(ただし、これは再び起こりませんでした)。 ps aux | tee >(grep syslog) | head -n1 USER PID %CPU %MEM VSZ …

4
ユーザーがログインした後にメッセージをbashシェルに表示する方法は何ですか?
SSH経由でログインした直後にブランドグリーティングを表示するシェルとしてbashを使用するCentOS 5.7 VPSがあります。私はそれを修正しようとしましたが、通常の場所でそれを見つけることができないようです。これまで、motdファイルを調べてsshd_config、バナーファイルの設定を確認しました。バナーファイルが設定されていません。 ログインメッセージがどこにあるのか、他にどこで見つけることができますか?
13 linux  bash  ssh  centos  login 

2
サブシェルのBash構文強調表示
Bashのサブシェルに関連することが判明した大量の質問(「このパイプwhile readループで変数が増加しないのはなぜか?」サブシェルで実行されるコードは、親シェルで実行されるコードとは形式が異なります。教育用デバイスとして役立つかもしれません(違いcode | codeをcode < <(code)即座に確認してください)。これは存在しますか? 誰かがそれをjEditまたはVImに実装した場合のボーナスポイント。 明らかに完全である必要はありません(私の経験では構文の強調表示は(foo=bar; echo $foo;)ありcommand | while read ...ません)が、開始するのが難しいことではないかと疑っています。

4
BashでのWindowsシェルエスケープキー(行全体の削除)と同等
Windowsコマンドライン(powershellおよびcmd)ではEsc、ライン上でキーを押すと、プロンプトで入力したものはすべて削除されます。 Escbashプロンプトでキーを押しても何も起こらないことがわかりました。を押してから単語Escをbackspace削除しますが、これは単語ごとに実行する必要があります。 私はBashを少しずつ学んでいますが、時には行の途中で何かおかしいものを入力して、もう一度最初から入力する方が良いと感じています。これを行うにbackspaceは、今まで見つけた唯一の方法は押すことです。 職業はなんですか? clearコマンドとCtrl-Lショートカットは知っていますが、端末全体をクリアすることについては話していません。ただのライン。

4
「クリア」するたびにbashrcファイルを入手する方法
これは悪い考えかもしれません。私はそれについて考えるほど、私はおそらくそれをしてはならないという認識になります... 私が望むのは、clearコマンドを実行するたびにbashrcファイルを取得することです。この理由は完全に唯物論的です。bashrcをソースするときにシステム情報がエコー表示されますが、それは私にとってクールであり、クリアするたびにトップになりたいです。 いくつかのエイリアスを設定しようとしましたclearが、無限ループに陥り続けます。明白な修正は、エイリアスをclear以外の何かに変更して、エイリアスでclearコマンドを干渉せずに実行できるようにすることです。clearと入力し、それを明確にし、bashrcファイルをソースできるようにしたいと思います。
13 bash  bashrc 

4
ssh経由でサーバーにログインできるかどうかを確認するにはどうすればよいですか?
サーバーのリストがあります: cat list.txt 10.10.10.10 servera 10.11.10.10 serverb ssh経由でログインできるかどうかを確認するにはどうすればよいですか?デフォルトでは、ssh key auth経由でログインできるはずです。したがって、要するに、list.txtの行(サーバー)を次のようにソートするソリューションが必要です。 sshキーでログインできるサーバー パスワードを要求するサーバー(もちろんパスワードは不明です。.) 到達不能なサーバー
13 bash  ssh 

2
古い定義の観点からbash関数を再定義するにはどうすればよいですか?
古い定義の観点からbash関数を再定義する方法はありますか?たとえば、次のコードブロックを関数のプリアンブルに追加しますcommand_not_found_handle ()。 # Check if $1 is instead a bash variable and print value if it is local VAL=$(eval echo \"\$$1\") if [ -n "$VAL" ] && [ $# -eq 1 ]; then echo "$1=$VAL" return $? fi 現在、/ etc / profile.d / PackageKit.shで定義されており、bash起動スクリプトをソースとしています。 そうすれば、変数名を入力するだけでコマンドプロンプトで環境変数の値を照会できます(その名前のコマンドが存在しない場合)。例えば user@hostname ~:$ LANG LANG=en_AU.utf8 現在の定義をコピーして貼り付け、に独自の変更を追加できることは知っていますが~/.bashrc、コードの再利用を伴うよりエレガントな方法を探しています。 …
13 bash  function 

4
bashを使用して別のディレクトリにある特定のファイルを選択するにはどうすればよいですか?
次のように、ディレクトリ内の特定のファイルを一覧表示(または削除、またはその他の操作)したいです。 $ ls /opt/somedir/ aa bb cc aa.txt bb.txt cc.txt $ ls /opt/somedir/(aa|bb|cc) ## pseudo-bash :p aa bb cc どのようにこれを達成できますか(最初にディレクトリにcdすることなく)?

3
bash関数でトラップを設定する方法は?
trapbashスクリプトではセットアップできますが、bash関数ではセットアップできません。 たとえば、source以下のコードを実行してf、今すぐCtrl+を試してみてくださいC。 trapbash関数で設定する方法は? 4 trap ctrl_c INT 5 6 ctrl_c () { 7 echo "** Trapped CTRL-C" 8 } 9 10 11 f () { 12 for i in `seq 1 100`; do 13 sleep 1 14 echo -n "." 15 done 16 }
13 bash  trap 


3
bashシェルのカスタマイズ:コマンドの太字/色付け
オンラインで多数のチュートリアル/投稿があります(例:http : //www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/)を設定してbashのプロンプトをカスタマイズする方法についてPS1。入力したコマンドの色/太字をカスタマイズする方法はありますか? 言い換えれば、例として、緑のプロンプト、太字の青のコマンド、そしてデフォルトの色で出力したかったとしましょう。以下の例では、joe>設定によって緑、青、太字などを表示する方法をすでに知っていますPS1。しかしgit status、たとえば大胆に見せることができる方法はありますか? joe> git status # On branch master # Your branch is ahead of 'origin/master' by 2 commits. # ...
13 bash  colors 

3
なぜ感嘆符「!」がbashを混乱させるのですか?
!コマンドライン履歴のコンテキストでコマンドラインに特別な意味があることを認識していますが、それ以外に、実行スクリプトでは感嘆符が解析エラーを引き起こすことがあります。 私はそれが何かに関係していると思いますeventが、私はイベントが何であるか、それが何をするのか分かりません。それでも、同じコマンドは異なる状況で異なる動作をする可能性があります。 以下の最後の例では、エラーが発生します。しかし、なぜ、同じコードがコマンド置換の外側で機能したのですか?.. GNU bash 4.1.5を使用する # This works, with or without a space between ! and p { echo -e "foo\nbar" | sed -nre '/foo/! p' echo -e "foo\nbar" | sed -nre '/foo/!p'; } # bar # bar # This works, works when there is a space between ! …

2
ルート対応スクリプトに変数を安全に渡す方法は?
この質問は完全に一般的なものであり、私の状況にのみ適用されるわけではありません。たとえば、DHCPを有効にする次の小さなスクリプトのよう$1に、コマンドライン(!!)で送信する変数()は、送信するホスト名のみです。 #!/bin/bash udhcpc -b -i eth0 -h $1 このようにudhcpcを実行するにはルートアクセスが必要なので、これを行う/etc/sudoersには、次の行を含むように変更する予定です。 joe ALL = NOPASSWD: /path/to/enable_dhcp.sh 次のコマンドを実行するだけで、「joe」がそのスクリプトをルート権限で簡単に実行できるようになります sudo /path/to/enable_dhcp.sh パスワードを求められない(これは、joeがこれをスクリプト化できるようにするためです)。 今..私は、ルート権限で簡単に実行できるスクリプトで使用することは、あなたが望むものを何でも注入できるので、恐ろしいアイデアであることを知っています(または少なくとも私はそう思います)$1。 だから...これに対処する最良の方法は何ですか?インジェクション攻撃に対して広く開かれていないときに、root権限でjoeに必要なことをさせ、変数を渡す(または環境変数を使用して効果的に行う)ようにするにはどうすればよいですか?

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