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

Bashは、GNUプロジェクトのUnixライクなオペレーティングシステム用の無料のシェルです。


3
Windows上のUbuntuのBash:(一部の)ディレクトリの色を変更できない
Windows(10)アプリ上のUbuntuの新しいBashで、ディレクトリの色を青からもっと見やすいものに変更しようとしましたが、何らかの理由で一部のファイル/ディレクトリの色を変更できませんでした。すべてのディレクトリ/ファイルの色を変更するにはどうすればよいですか?私の.bashrcファイルは現在、ファイルとディレクトリの色が緑色やその他の明るい色になるようにカラープロンプトを設定しています。設定は次のとおりです。 LS_COLORS=$LS_COLORS:'di=1;31:fi=0;31;bd=0;32:fi=0;33:cd=0;96'; export LS_COLORS if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[0;31m\]\u@\h\[\033[0,31m\]:\[\033[0;31m\]\w\[\033[0,31m\]\$ ' 一部のファイルとフォルダの色は.bashrcファイルに対応して変更されていますが、他のファイルとフォルダは何らかの理由で変更されていません。 スクリーンショットの例:

4
Bash組み込みで「exec」を実行する
シェル関数を定義します(clockこれをと呼びましょう)。これは、time関数と同様に、別のコマンドのラッパーとして使用したいものですclock ls -R。 私のシェル関数はいくつかのタスクを実行してから終了しexec "$@"ます。 この関数をシェルのビルトインでも機能させたいのです。たとえば、実行可能ファイルではなく、ビルトインclock time ls -Rの結果を出力する必要がtimeあり/usr/bin/timeます。しかし、exec常に代わりにコマンドを実行することになります。 Bash関数を引数としてシェル組み込みを受け入れるラッパーとして機能させるにはどうすればよいですか? 編集:これtimeはBashの組み込みではなく、パイプラインに関連する特別な予約語であることを学びました。で動作しない場合でも、組み込みのソリューションに関心がありますtimeが、より一般的なソリューションの方が優れています。

2
Ubuntuで「コマンドが見つかりません」ハンドラーにフックする
見つからないコマンドのハンドラにフックしたい wim@SDFA100461C:~$ thing No command 'thing' found, did you mean: Command 'tping' from package 'lam-runtime' (universe) Command 'thin' from package 'thin' (universe) thing: command not found この動作を自分のスクリプトで上書きしたいと思います。 具体的には、コマンドの出力にコマンドが存在するかどうかを確認し、存在する場合はlsvirtualenv -bそのvirtualenvをアクティブ化したいと思います。 ハッキングはどこから始めればよいですか?

2
bash関数のエイリアススコーピング
環境をセットアップする一連のエイリアスを作成するスクリプト(書き込みアクセス権がないスクリプト)を使用しています。環境をセットアップするためのbash関数を作成したいのですが、エイリアスが関数本体まで存続しないようです。 これは最小限の例です: # aliases.sh alias fooAlias='echo "this will never work!"' 。 # .bashrc function setupLotsOfThings() { source aliases.sh fooAlias } 。 さて、私が単にaliases.shインタラクティブにソーシングすると、物事は期待通りに機能します: [mycomputer]~/ $ source aliases.sh [mycomputer]~/ $ fooAlias this will never work! ただし、代わりに.bashrcで定義されている関数を呼び出すと、その定義を取得した後にエイリアスが認識されません。 [mycomputer]~/ $ setupLotsOfThings -bash: fooAlias: command not found ここで何が起こっているのですか?alias関数で使用する場合、コマンドのスコープについて何か不足していますか? 編集:私が達成しようとしていることにいくつかの光を当てるために、最小限の例を超えていくつかの詳細を追加します。 私の仕事では、クラスターやグリッドで多くのソフトウェアを開発して実行しています。さまざまなgccバージョン、特定のソフトウェアリリース、構成とデータのPATH、さまざまな環境変数など、まったく異なる環境を必要とするプロジェクトがいくつかあります。管理者は、通常、他の関数やエイリアスを呼び出したり、さまざまなスクリプトを実行したりするシェル関数やエイリアスを定義することによって、さまざまなものを設定するスクリプトを提供します。私にとって、それはブラックボックスです。 一つのコマンドで自分だけの様々な環境をセットアップしたい。現在、私は次のようなことをしています: [mycomputer]~/ $ source /some/environment/setup/script.sh …
9 bash 

2
bashの履歴を定期的に保存する
履歴をファイルに保存するようにbashを設定しています。これは、bashが[適切に]終了するたびに行われます。bashが適切に終了しない場合があるため、履歴は失われます。 したがって、問題は、より定期的に履歴を保存するようにbashを設定できるかどうかです。 LinuxカーネルでDebian Gnu(バージョン6、Squeeze)を実行しています。 bashバージョン:GNU bash、バージョン4.1.5(1)-release(i486-pc-linux-gnu)
9 linux  bash  gnu 

6
PIPESTATUSとbashスクリプトの出力の両方を取得する方法
このコマンドでファイルの最終更新日を取得しようとしています TM_LOCAL=`ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }'` この行の実行後、TM_LOCALの値は「2012-05-16 23:18」のようになります。 また、PIPESTATUSをチェックして、エラーが発生したかどうかを確認したいと思います。たとえば、ファイルが存在しない場合lsは2を返しますが、戻り$?値はなので、値は0ですawk。 このコマンドを単独で実行すると、lsの戻り値を確認できます。 ${PIPESTATUS[0]} ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }' しかし$PIPESTATUS、最初の例のように出力を変数に割り当てた場合、期待どおりに動作しません。この場合、$PIPESTATUS配列には次と同じ1つの要素しかありません。$? それで、問題は、どうすれば両方を取得$PIPESTATUSし、同時に出力を変数に割り当てることができるでしょうか?
9 bash  pipe 

2
cygwin bashからのプロセスの否認
cygwin bashからプロセスを適切に否認する方法はありますか? たとえば、バックグラウンドで実行できます /cygdrive/c/Windows/notepad.exe & メモ帳ウィンドウが表示されますが、Ctrl + Dを使用してbashを閉じるか、exitと入力すると、bashウィンドウは開いたままになります
9 bash  cygwin 

3
cygwinがWindowsホームで起動するため、Cygwin .bashrcがソースにならない
注:問題の更新については、以下の2番目の編集を参照してください。 Cygwinは先週まで私のためにうまく働いていました。現在、.bashrcはソース化されていません。何かをインストールまたは変更したはずですが、問題の原因を正確に思い出せません。Cygwinを起動すると、Windowsのホームにいて、エイリアスが機能しません。手動で.bashrcを入手する必要があります。以下は私のCygwin.batです。 @echo off C: chdir C:\cygwin\bin set CYGWIN=tty notitle glob bash --login -i 何か案は? 編集:私の.bash_profileには以下が含まれています、 # source the users bashrc if it exists if [ -f "${HOME}/.bashrc" ] ; then source "${HOME}/.bashrc" fi EDIT2:重要!Cygwinを起動すると、Windowsのホームフォルダーから起動します。私は.bash_profileと.bashrcをこのフォルダーに入れてみましたが、それらは正しく供給されました!これは、Cygwinが通常のCygwinホームフォルダーではなくWindowsホームフォルダーで起動する理由を解明することで問題が軽減されたことを意味します。 EDIT3:grep Gulshan / etc / passwd /を実行した結果 $ grep Gulshan /etc/passwd Administrator:unused:500:513:U-Gulshan-HP\Administrator,S-1-5-21-1235613160-4193452482-2032876723-500:/home/Administrator:/bin/bash Guest:unused:501:513:U-Gulshan-HP\Guest,S-1-5-21-1235613160-4193452482-2032876723-501:/home/Guest:/bin/bash Gulshan:unused:1000:513:U-Gulshan-HP\Gulshan,S-1-5-21-1235613160-4193452482-2032876723-1000:/home/Gulshan:/bin/bash
9 bash  cygwin  bashrc 

2
特定のディレクトリでiTerm2の複数のタブを開く
これが可能かどうか知りたいのですが。 5つのタブを開くスクリプトまたはコマンドを設定し、開く各タブに独自のディレクトリを指定します すべて同じウィンドウ内 tab 1: open ~/folderA1 tab 2: open ~/folderA2 tab 3: open ~/folderA3 tab 4: open ~/folderA4 tab 5: open ~/folderA5 これはMac OS XのiTerm2にあります。 CMD + Tなどを実行してcd ~/folderA1、それぞれを使用してそれらを開くことができることはわかっていますが、設定できるコマンドまたはスクリプトを実行後に実行すると、それらを一度にすべて実行できることを知りたいと思いますそうする方法があれば。
9 macos  bash  iterm2 


3
Macで/ etc / profileを編集できない
ターミナルでは、これを行います: sudo vi /etc/profile しかし、私は読み取り専用バージョンを取得します。スーパーユーザーとして何も編集できませんでした-どうなっているのですか?
9 mac  bash 


2
-eがbashスクリプト内で設定されているかどうかを確認することは可能ですか?
シェル関数が機能するために-e / + eの特定の設定を必要とする場合、その設定をローカルに設定し、関数を終了する前に以前の設定に復元することは可能ですか? myfunction() { # Query here if -e is set and remember in a variable? # Or push the settings to then pop at the end of the function? set +e dosomething doanotherthing # Restore -e/+e as appropriate, don't just do unconditional set -e }

1
DDoS攻撃と見なされない安全なping頻度とは何ですか?
定期的にサーバーとGoogleにpingを送信し、ping時間を比較することで、サーバーの稼働時間をグラフ化しようとしています。私はこれを一週間、たとえば一週間にわたって続けたいと思っています。 それぞれに5つのpingのセットを送信します。タイムアウトは5秒、各セット間の間隔は2分です。bashコマンドは次のとおりです。 while true; do echo Google; date; ping -c 5 -t 5 www.google.com; sleep 120; echo Outlook; date; ping -c 5 -t 5 https://outlook.office365.com/; sleep 120; done >> pings.txt サーバーがこれをDDoS攻撃と見なしていないか心配です。

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