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

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

5
bashで配列の最後の要素を読み取る方法はありますか?
たとえば、5つの要素を持つ配列がある場合: [a][b][c][d][e] 使用してecho ${myarray[4]}、それが何を保持しているかを見ることができます。 しかし、与えられた配列の要素の数がわからない場合はどうでしょうか?未知の長さの配列の最後の要素を読み取る方法はありますか?すなわち、任意の配列の右から左に読み取る最初の要素? これをbashで行う方法を知りたいです。
68 bash  array 

3
shellshockはどのようにSSH経由で悪用されますか?
どうやら、shellshock BashエクスプロイトCVE-2014-6271は、SSHを介してネットワーク経由でエクスプロイトされる可能性があります。Apache / CGIを介してこのエクスプロイトがどのように機能するか想像できますが、SSH上でどのように機能するか想像できませんか? 誰かがSSHがどのように悪用されるのか、システムにどのような害を及ぼす可能性があるのか​​例を教えていただけますか? 明確化 AFAIU、認証されたユーザーのみがSSHを介してこの脆弱性を悪用できます。とにかくシステムへの正当なアクセス権を持つ誰かにとって、このエクスプロイトはどのような用途に使用されますか?つまり、このエクスプロイトには特権の昇格がないため(rootになることはできません)、SSHを介して合法的にログインした後にできること以上のことはできません。
68 bash  ssh  shellshock 

6
コマンドの前に変数をbashで有効に設定するのはなぜですか?
私はちょうどそのようになど、いくつかの答え遭遇した区切りのテキストファイル...解析する構文を使用します。 while IFS=, read xx yy zz;do echo $xx $yy $zz done < input_file ここで、IFS変数はreadコマンドの前に設定されます。 私はbashのリファレンスを読んでいますが、なぜこれが合法であるのか分かりません。 私は試した $ x="once upon" y="a time" echo $x $y bashコマンドプロンプトから、しかし何もエコーされませんでした。誰かがその構文がIFS変数をそのように設定できるようにする参照で定義されている場所を教えてもらえますか?それは特別な場合ですか、他の変数と同様の何かを行うことができますか?

3
〜/ .profile、〜/ .bashrc、〜/ .bash_profile、〜/ .gnomerc、/ etc / bash_bashrc、/ etc / screenrc…の違いは何ですか?
SOとaskubuntuに関する質問への回答は、を突く(およびヘッダーを読む)$HOMEとともに/etc/、環境変数を設定するために使用できるいくつかのファイルを示します。 ~/.profile ~/.bashrc ~/.bash_profile ~/.gnomerc ~/.Rprofile /etc/bash_bashrc /etc/profile /etc/screenrc /etc/ファイル$HOMEはユーザー固有であるのに対して、私はすべてのユーザー用に作業中のファイルを収集します。また、実行時にロードされるの.profileに対して、ログイン.bashrc時にロードされるものを収集します/bin/bash。また、プログラムごとに設定ファイルが異なることも理解しています(.RprofileRの場合など)。しかし、私はいくつかの明確化を感謝します: ある*rcと*profileファイルが根本的に違うのですか? そのようなファイルの範囲は何ですか(たとえば、Linuxで一般的に使用されるファイル) 階層があります(例:で.bashrc設定された変数を上書きします.settings) このクラスのファイルの良いリファレンスは何ですか?これらのファイルのオプションについては? リンクされた質問 「emacs-essでR内からbash環境変数にアクセスする方法は?」 「キーボードショートカットからのアプリケーションの起動と端末の違いは?」

9
入力したプレフィックスを使用して前のコマンドを検索します
上矢印と下矢印を使用して、コマンド履歴内を移動できます。 Matlabなどの一部のIDEでは、何かを入力してから矢印キーを押すと、入力したものから始まる履歴コマンドのみをスクロールします。これは本当に便利ですが、シェル端末ではこれは機能しません。 シェル端末で同様の機能を得る方法はありますか?そして、端末の使用効率を改善するための他のヒントはありますか?

8
GPG公開鍵を追加しようとしたときにキーサーバーがタイムアウトしました
CPGでプログラムをインストールするための公開キーを追加しようとしています。しかし、私はこれにはかなり新しいですが、私が見つけたすべてのコマンドは私に同じエラーを与えました: gpg --keyserver keyserver.ubuntu.com --recv-keys 94558F59 gpg: requesting key 94558F59 from hkp server keyserver.ubuntu.com gpg: keyserver timed out gpg: keyserver receive failed: keyserver error これがどのように可能かは、私がキーサーバーへの接続を確立することを不可能にする何らかの封鎖の背後にあるようです。私は多くのOPの質問を調べ、見つけられるすべてのコマンドを試しましたが、何も機能しませんでした。誰も以前にこの問題を抱えていましたか?
67 bash  ubuntu  gpg 

4
ウォッチコマンドエイリアス展開
watchエイリアスを含むコマンドを実行すると、エイリアスは展開されません。実際、次のエイリアスを指定して、一重引用符と二重引用符の両方を試しました: # alias ll alias ll='ls -l --color=tty' 次のコマンドは失敗します # watch ll sh: ll: command not found この場合、コマンドライン拡張は機能しませんか?
67 bash  alias 

1
bashを使用して、ユーザーにプロンプ​​トを表示せずにyumを強制的にインストールするにはどうすればよいですか?
php5.4をインストールするためのbashスクリプトを書いていますが、テストVM用にこれを自動化したいです。私が持っているrpmコマンドは次のとおりです。 rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm yum install php54w 現在、この実行中に、依存関係をダウンロードするかどうかにかかわらず[Y / N]を入力するユーザープロンプトがあります。だから私はどちらかをする必要があります: [Y]のユーザー入力をシミュレートします。または yumが尋ねたり仮定したりしないようにコマンドを渡します[Y] bashスクリプトの最良の方法は何ですか?上記の両方をどのように達成しますか?
66 bash  yum  rpm 

4
bashでは、forループのループ制御で整数変数を使用できますか?
次のbashスクリプトがあります。 #!/bin/bash upperlim=10 for i in {0..10} do echo $i done for i in {0..$upperlim} do echo $i done 最初のfor(ループなしの可変upperlimループ制御中)は正常に動作するが、第二for(ループと可変upperlimループ制御では)ありません。2番目のforループを修正して動作させる方法はありますか?御時間ありがとうございます。
65 bash  shell  shell-script  for 

4
コマンドが履歴に追加されないようにする方法はありますか?
コマンドが履歴に追加されないようにする方法はありますか?履歴ファイルに保存したくないコマンドがあり、メモリに保存されている履歴を検索するときにそこに保存することはあまり気にしませんが、それは心配ではありません。これを防ぐ方法はありますか、または戻って履歴ファイルを編集する必要がありますか? 更新:これがシェル固有である可能性があることを知りませんでした。私のシェルはzsh。他のシェルについても回答してください。そうすれば、シェルでこれを行う方法がわかります。

7
cat出力から最初と最後の行を読み取る方法は?
テキストファイルがあります。タスク-後のファイルから最初と最後の行を取得する $ cat file | grep -E "1|2|3|4" | commandtoprint $ cat file 1 2 3 4 5 cat出力なしでこれが必要です(1と5のみ)。 ~$ cat file | tee >(head -n 1) >(wc -l) 1 2 3 4 5 5 1 たぶんawkともっと短い解決策が存在する...
64 bash  shell  sed  awk  grep 

3
ファイルがディレクトリへのシンボリックリンクであるかどうかを確認するにはどうすればよいですか?
ファイルが存在し、-Lのシンボリックリンクであるかどうかを確認できます。 for file in *; do if [[ -L "$file" ]]; then echo "$file is a symlink"; else echo "$file is not a symlink"; fi done また、-dを使用したディレクトリの場合: for file in *; do if [[ -d "$file" ]]; then echo "$file is a directory"; else echo "$file is a regular file"; …
64 bash  shell  test 

8
「mv:引数リストが長すぎます」を解決しますか?
並べ替えが必要な100万を超えるファイルを含むフォルダーがありますが、mvこのメッセージは常に出力されるため、実際には何もできません。 -bash: /bin/mv: Argument list too long このコマンドを使用して、拡張子のないファイルを移動しています。 mv -- !(*.jpg|*.png|*.bmp) targetdir/
64 bash  shell  arguments  mv 

2
シンボリックリンクの再帰-何がそれを「リセット」しますか?
同じディレクトリを指すシンボリックリンクをたどっていくとどうなるかを確認するために、小さなbashスクリプトを書きました。非常に長い作業ディレクトリを作成するか、クラッシュすることを期待していました。しかし、結果は私を驚かせました... mkdir a cd a ln -s ./. a for i in `seq 1 1000` do cd a pwd done 出力の一部は ${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a ${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a ${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a ${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a ${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a ${HOME}/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a ${HOME}/a ${HOME}/a/a ${HOME}/a/a/a ${HOME}/a/a/a/a ${HOME}/a/a/a/a/a ${HOME}/a/a/a/a/a/a ${HOME}/a/a/a/a/a/a/a ${HOME}/a/a/a/a/a/a/a/a ここで何が起きてるの?
64 bash  symlink 

7
シェルスクリプトが失敗する:構文エラー:“(”予期しない
Raspberry Pi開発用の開発環境のセットアップを自動化するスクリプトに取り組んでいます(詳細な手順については、こちらをご覧ください)。スクリプトはその記事にリンクされていますが、利便性はこちらからも見つけることができます。これで、このスクリプトを実行すると、エラーなしで環境がインストールおよびセットアップされますが、デフォルトではsudoのタイムアウト値のため、sudoパスワードを複数回入力する必要があります。そこで、すべてのsudo行を削除し、コマンドラインでsudoを使用してスクリプト全体を実行することで、実験を開始しました。 kemra102@ubuntuvm:~$ sudo ./pi_dev_env_install.sh これは期待どおりに機能し、この時点までほとんどの方法を通過します。 ./pi_dev_env_install: 68: ./pi_dev_env_install.sh: Syntax error: "(" unexpected sudoを使用してスクリプト全体を実行しない場合、以前はこの行が正常に機能していました。sudoとして実行しているこの行については、私の知る限りそれを停止する必要はありません。

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