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

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

5
bash:コマンドラインで指定されたコマンドを実行し、終了しません
〜/ .bashrcを読み取った後、新しいbash内で1回実行されるコマンドをbashのコマンドラインで指定するにはどうすればよいですか? 私は、起動後にいくつかの分割がいくつかのアプリケーション(vim、mutt、irrsi)を開始するターミネーターの「ブートアップ構成」をいじっています。しかし、私はまだバックグラウンドで通常のシェル(ctrl-zなど...)が欲しいので、アプリケーションを終了した後、eapplicationsライフタイム中に持っていたのと同じシェルを持っています... 私にはうまくいかない(与えられた答えに基づいて) ( bash; vim ) # vim waits for the exit of bash... bash -c vim # bash exits after vims exit... bash -c 'vim; exec bash' # bash is executed _after_ vim... ctrl-z won't work echo vim | bash -s # "Vim: Warning: Input is not …
13 bash  boot  bashrc  terminator 


2
ある種のサンドボックスでbashスクリプトを実行することは可能ですか?
当社の製品は、特定の目標を達成するために、繊細なサーバーで未知のbashスクリプトを実行する必要があります。このbashスクリプトはユーザー指定です。特定のコマンドのみが許可され、他のすべてのコマンドが許可されないようにすることに関心があります。さらに、一部のコマンドを他のコマンドに置き換える必要があります。 したがって、たとえば、スクリプトを実行し、次のコマンドを許可します。echo cat awk ただし、他のコマンドは許可しません(ここでは特定のリストを提供しません)。 さらに、スクリプトにコマンドcpが含まれている場合、それをキャプチャして別のコマンドにリダイレクトします(エイリアスを使用して実行できます)。 これがどのように行われるか考えていますか?
13 bash 

3
Windows 10 bashおよびmintty
Windows 10に新しいLinuxサブシステムをインストールしました。Ubuntuリポジトリにアクセスできるのは本当に素晴らしいことですが、デフォルトのターミナルプログラムは絶対に嫌いです。CygwinにはMinTTYが付属しており、これは本当に素晴らしく、非常にうまく機能しますが、MinTTYのスタンドアロンパッケージが見つかりません。ショートカットを起動するときに、MinTTYをWSLのデフォルトのターミナルとして作成する方法はありますか? 編集:明確にするために、私はCygwinをインストールしたくない。新しいLinuxサブシステムとそのbashシェルを使用したいのですが、ターミナルとしてminttyを使用します。

1
Apache configでsedを使用して.htaccessファイルを有効にする
Bashスクリプトを使用してUbuntu Vagrantボックスのプロビジョニングを自動化しようとしています。すべて順調ですが、.htaccessファイルからのオーバーライドを許可するようにApacheを構成するのは困難です。私の設定ファイルには、次のブロックがあります。 <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> 行うには、すべての私の必要性は置き換えであるAllowOverride NoneとAllowOverride all。これはのタスクのようですが、この設定ファイルにはオーバーライドを許可したくないsed他の<Directory>ブロックがあります。 特定の文字列が他の2つの特定の文字列の間にある場合、sedを使用して特定の文字列を新しい文字列に置き換えるにはどうすればよいですか? つまり、とのAllowOverride None間にある場合にのみ置き換えることができますか?<Directory /var/www/></Directory> 次のコマンドを使用して、興味のあるブロックを取得できます。 sed -n '/<Directory \/var\/www\/>/,/<\/Directory>/p' 000-default

4
エコー改行文字がbashで機能しない
私は多くのechoステートメントを持っているbashスクリプトを持っています。また、との両方にエイリアスechoを設定echo -eし.bash_profileている.bashrcのでecho 'Hello\nWorld'、出力のようにステートメントに対して新しい行が適切に印刷されます Hello World しかし、私が得ている出力は Hello\nWorld 私もshopt -s expand_aliasesスクリプトで使用しようとしましたが、それは役に立ちません スクリプトを次のように実行していますbash /scripts/scriptnm.sh。. /scripts/scriptnm.sh目的の出力を取得しているときに実行すると...
13 linux  bash  shell  script 


3
bashスクリプトの実行中にMacのスリープを停止し、完了したら通常どおりスリープさせる
夜中にMacを起動して、rsyncを実行してバックアップします。これは、[省エネルギー]> [スケジュール]で設定します。 ただし、何かを実行する前にスリープ状態に戻っているようですので、rsyncを実行するbashスクリプトの実行中にスリープ状態を停止する必要があります。 可能な場合は、rsyncする前にスリープタイムアウトを「Never」または非常に長いタイムアウトに設定し、完了したら通常の状態に戻すコマンドを発行するのが最善の方法だと考えました。これを行うためのより良い解決策はありますか?
13 mac  bash  sleep  rsync 

2
Ctrl-eとCtrl-aはUbuntu Hardyで動作しませんか?
私はMacを使用しているため、キーボードにキーがHomeありませんEnd。LinuxサーバーへのSSHもかなりしています。とき粋Iを実行しているUbuntu LinuxのサーバーへのI SSHはreadlineのキーバインディングを使用することができることを私が見つけたCtrl- aとCtrl- e先頭または行の末尾にカーソルを移動しますが、ハーディのサーバーのカップルは、私が頻繁にありますSSHに接続すると、これらのキーバインディングは接続時に機能しません。 Macターミナルの設定方法と関係がある場合に備えて、代わりにLinuxボックスから接続しようとしましたが、同じ結果が得られます。 誰もがなぜ、そしてこれを修正する方法を知っていますか?
13 linux  bash  shell  readline 

3
bashの「mapfile」をパイプ処理できませんが、なぜですか?
特定のディレクトリにあるすべてのファイルをbash配列に入れたいだけです(ファイルの名前に改行が含まれていないと仮定します)。 そう: myarr=() find . -maxdepth 1 -name "mysqldump*" | mapfile -t myarr; echo "${myarr[@]}" 空の結果! 一時的またはそれ以外の方法でファイルを使用するラウンドアバウトの方法を行う場合: myarr=() find . -maxdepth 1 -name "mysqldump*" > X mapfile -t myarray < X echo "${myarray[@]}" 結果! しかし、なぜmapfileパイプから適切に読み取らないのですか?
13 bash 

3
スクロールホイールに対するページャーの応答を減らし、画面をクリアしない方法
$ LESS環境変数からフラグを削除する方法であるhow-to-make-mouse-wheel-scroll-the-less-pager-using-bash-and-gnome-terminalのような回答について知ってい-Xます。しかし、私はこれらの両方をしたいと思います: (ターミナルウィンドウのスクロールバーをスクロールするのではなく)マウスホイールを使用してページャーをスクロールします(これはから削除する ことで取得できます)。-X$LESS 終了後、ページャーからのコンテンツを画面に残します(通常はに追加 -Xすることで完了します$LESS)。 ケーキを食べて食べる方法はありますか?

5
「whereis」と「which」がコマンドの場所を表示しないのはなぜですか?
コマンドがコマンドの場所を表示する、whereisまたは表示whichしない理由は何ですか?たとえば、nvmがあり、それがどこにあるのか知りたいのですが、これらのコマンドのどれもバイナリを見つけるのに役立ちません。findこの場合にのみ使用する必要がありますか? 更新 これは長い出力です type nvm $ type nvm nvm is a function nvm () { if [ $# -lt 1 ]; then nvm help; return; fi; local uname="$(uname -a)"; local os=; local arch="$(uname -m)"; case "$uname" in Linux\ *) os=linux ;; Darwin\ *) os=darwin ;; SunOS\ *) os=sunos ;; FreeBSD\ …
13 bash 

4
最後のコマンドのみのターミナル出力をクリアします
何百行もの出力をスクロールして前のコマンド履歴を表示するのではなく、最後のコマンドの出力をクリアできますか?たとえば、を実行した後ls、必要がなくなったため、出力をクリアします。 編集: これはいつものではないclearか、ctrl+L操作。前のコマンドの出力を探すために履歴をスクロールバックするという考えですがls、本当にしたい場合を除いて、、、、catまたはsudo apt-get install出力の負荷を超えてスクロールする必要はありません。次のようになります。 cat fileIWantToRemember ls directoryIWantToForget # some command that wipes the output of ls # scroll back to see the output of cat immediately
13 linux  ubuntu  bash  terminal 

1
bashで「〜」のようなカスタムの「ディレクトリエイリアス」を作成できますか?
bashでは、を使用してホームディレクトリに移動しcd ~、実際にを使用して任意のコマンドでホームディレクトリを参照でき~ます。 他のディレクトリを参照するために、新しいカスタムの「ディレクトリエイリアス」(?)を作成できますか?仮説の例: make_alias "~~" /mnt/photon/work/foo_project/ cp ~/home.png ~~/set_8/home_4.png もしそうなら、それをどのように行うことができますか?それができない場合、それは設計によるものであり、なぜそうなのですか? いい~ですね:どこでどのように設定され、この「〜」にバインドされますか?
13 bash 

4
ssh許可はcronジョブでのみ拒否されました
非常に奇妙な問題がある。(公開鍵認証を使用して)sshを介してリモートホストでコマンドを実行する小さなbashスクリプトを作成しました。 このスクリプトをコマンドラインから手動で実行すると正常に動作しますが、/ etc / cron.hourlyに配置するとPermission denied, please try again.エラーで失敗します。 を使用して、スクリプトでキーを明示的に設定しましたssh -i /root/.ssh/id_rsa user@remote "command"。 スクリプトはrootとして実行されています(私echo `id` > /tmp/whoami.logはダブルチェックに追加しました); そして sshキーはパスワードで保護されていません... システムはUbuntu 12.04サーバーです。リモート側でトラブルシューティングを行うためのアクセス権はあまりありませんが、前述のように、sshを手動で実行するか、コマンドラインから同じbashスクリプトを実行できます。 なぜこれが起こっているのか、それをどのように修正するのか? 更新 私が間違っていたことがわかり、sshキーがパスワードで保護されていた(キーチェーンがssh-agentをロードしている)ため、スクリプトから失敗したのに、bashセッションから実行したときに失敗しなかったのです。. ~/.keychain/$HOSTNAME-shスクリプトに追加することで問題が解決しました(正しい方向に私を指して包括的な回答を提供してくれた@grawityに感謝します)。
13 bash  ssh  cron 

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