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

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

3
VIM(BashまたはTmux)のように画面上の単語の補完
画面で最後に一致する識別子を完了するようにBash、Zsh、またはTmuxを構成するにはどうすればよいですか?次の一般的なシナリオを検討してください。 $ git fetch remote: Counting objects: 16, done. remote: Compressing objects: 100% (9/9), done. remote: Total 9 (delta 4), reused 0 (delta 0) Unpacking objects: 100% (9/9), done. From /opt/git/thunder * [new branch] issue540 -> origin/issue547314 e9204cf..4d42c3f v2.1 -> origin/v2.1 issue547CLIでBash / Zsh / Tmuxを簡単に完了するにはどうすればよいですか?Git が問題なく完了したTab後にを押すと、数字を自分で完成させる必要があります。なぜなら、前のすべての数字は実際には既存のGitブランチと一致するからです。$ git checkout isissue …

3
bashコマンドパイプラインの出力を変更する方法
たとえば、いくつかのコマンドからいくつかの行を取得しました $ some-command John Bob Lucy 次に、出力を変更するチェーンコマンドを追加します。 $ some-command | other-command Hi John Bye Hi Bob Bye Hi Lucy Bye 書き方はother-command?(私はbashの初心者です)
10 bash  pipe 

2
tarがsftpまたはftpを使用してリモートマシンにアーカイブを保存する方法
非常に重要なデータの一部をリモートマシンにバックアップしたい。 現在、次のコマンドを使用してローカルマシンに保存しています。tar -cvjf ~/backups/Backup.tar.bz2 ~/importantfiles/* 別のコマンドを使用してリモートマシンに転送したくないので、データをリモートマシンに転送できるように、このコマンドをアップグレードするだけです。 これは、後でスクリプトで実行されるように設計されており、単独で実行される可能性があります。つまり、必要なユーザー入力はすべて、完全に台無しになります。 何かのようなもの tar -cvjf sftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/* tar -cvjf ftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/* 完璧になります!(パイプなしなど)、1つのコマンドのみ!)
10 bash  tar  ftp  remote  sftp 

1
rootとしてログインすると、ターミナルにカラースキーマが表示されないのはなぜですか?
現在、Debian 7 Wheezyを使用していますが、rootとしてログインすると、ターミナルのカラーパレット(ファイルとフォルダーの大きなセットを識別するのに役立つ)が有効にならないことに気付きました。 同じように、この状況ではタブ補完が同じように機能しないことに気づきました。 これらの問題をどのように構成できますか?
10 bash  shell  root  colors 

2
bash setenvコマンドが見つかりません
次のコマンドを使用しているとき setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH エラーは bash setenv command is not found どのコマンドでsetenvのパスを見つけたら、次のパスを見つけました (/usr/kerberos/sbin:/usr/kerberos/bin:/home/ec2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/ec2/bin:/root/bin)

3
どうすればルートとしてディレクトリにcdできますか?
私がアクセスする特権を持っていないディレクトリがあるとしましょう。は、これまですべてのシェルに組み込まれたシェルsudo cd fooであるため、明らかに機能しませんcd。 これまでのところ、sudo bashルートプロンプトを取得するために使用しています(より良い方法があることはわかっています)。その後、私cdはディレクトリに侵入することができます。 これを行うより良い方法はありますか?
10 bash  sudo  cd-command 

2
引数をそのままの状態で機能させる
次の機能があります。 bar() { echo $1:$2; } この関数を別の関数から呼び出していますfoo。fooそれ自体は次のように呼び出されます。 foo "This is" a test 次の出力を取得します。 This is:a つまり、bar受け取る引数は、に渡すトークンと同じでなければなりませんfoo。 fooこれを達成するためにどのように実装する必要がありますか?次の2つの実装を試しましたが、どちらも機能しません。 foo() { bar $*; } –出力: this:is foo() { bar "$*"; } –出力: this is a test: 私の質問は、議論の引用をどのように保存できるかということです。これはまったく可能ですか?

3
ディレクトリに移動し、多くのコマンドを実行します
次のスクリプトがあります。 #!/bin/bash mount /dev/sda6 /mnt/gentoo set +e cd /mnt/gentoo && mount -t proc none /mnt/gentoo/proc \ && mount --rbind /dev /mnt/gentoo/dev \ && mount --rbind /sys /mnt/gentoo/sys \ && chroot /mnt/gentoo /bin/bash \ && source /etc/profile \ && export PS1="(chroot)$PS1" ここで達成しようとしているのは、ディレクトリ/mnt/gentooに移動していくつかのコマンドを実行することです。これは、パスがマウントされていないときに初めて正常に機能します。ただし、一部のパスでマウントが正常に実行された後に実行すると、継続せず、最初の失敗で停​​止します。「すでにマウントされています」エラーが原因でマウントが失敗した場合でも、すべてのコマンドを実行してください。これどうやってするの? また、これらすべてのコマンドを1行にまとめるよりも良い方法はありますか?
10 bash 

7
CentOS | [root @ hostname]はもう表示されませんか?
なんらかの理由でCentOS6サーバーにログインし、すべての行の先頭に通常表示されます [root@hostname]# 今それが示しています -bash-4.1# これは何を意味するのでしょうか?そして、どうすれば正常に戻すことができますか?
10 centos  bash 

2
bashタブ補完の更新
私のssh-hostsをオートコンプリートするためのスクリプトがあります。~/.ssh/configただし、変更すると、オートコンプリートは自動的に更新されません。これは私を驚かせません。もちろん、新しいシェルでは、新しいエントリが取得され、使用可能になります。 bashで完了の更新を手動でトリガーするにはどうすればよいですか?

4
bashスクリプトでの論理AND
私が持っているif2つのファイルのいずれかが存在する場合、彼らはそれが試合をエコーすべき存在しない場合は、チェックする必要が私のbashスクリプトで。 私が持っているコード: if [[ ! -f /etc/benchmarking/code ]] && [[ ! -f /etc/benchmarking/code.class ]]; then echo "match" fi しかし、これは何らかの理由で機能しないようです。 これら2つのファイルが存在しないことを110%確信しています。エラーは発生しませんが、に入りませんif。 私はbashスクリプトを初めて使用するので、何が問題なのかわかりません。

3
不足しているディレクトリを作成するには、 `ln`を使用します
だから私は小さなパッケージマネージャーを書いていて、私が遭遇した問題はファイルへのシンボリックリンクを作ることです。 パッケージをにインストールし/usr/pkg/name-version、ファイルを読み取って、作成するシンボリックリンクを決定します。lnリンクの作成に使用していますが、Linux APIヘッダーをインストールしようとすると問題が発生します。ヘッダーファイルをリンクする必要があります。ヘッダーファイルを含むフォルダーではなく、リンクする必要があります(したがって、2つのパッケージがインクルードの同じサブディレクトリにファイルを配置する必要がある場合、1つのパッケージをねじ込むことなくそれらを行うことができます)。 その問題は解決しましたがln、パスが不完全な場合は単にエラーが表示されます。これは、パッケージがインストールされるまでこれらのディレクトリが存在してはならないため、厄介です。 ln不足しているディレクトリを作成するフラグがありますか、それとも複雑なbashスクリプトを使用する必要がありますか?

2
bashループでファイルを除外する
次のスクリプトでは、ループ内のディレクトリをどのように除外しますか?これは、すべてのファイルが同じレベルにあるこのディレクトリを指すシンボリックリンクであるため、追加したくないので、これを実行します。 cd /var/www for dir in */ do base=$(basename "$dir") tar -czfh "${base}.tar.gz" "$dir" done
10 bash 

1
bashのif句内での正規表現の使用
ifブロックを見てください: #!/bin/bash str="m.m" if [[ "${str}" =~ "m\.m" ]]; then echo "matched" else echo "not matched" exit 1 fi exit 0 これは「一致した」と出力するはずですが、そうではありません。どこがいけないの?

3
bashからzshに移行する誰かが直面する主な問題は何ですか?
数回私はbashでzshを使用している他の人にはない問題を抱えていました。 また、私は尊敬する人々の中でzshユーザーを見たことがあります。zshへの移行を半分心をこめて何度か試しましたが、日常業務を行う時間がないため(そして怠惰で)毎回戻ってきました。 zsh。 実用的な移行ツールはありますか?または、少なくとも私が移行をより簡単にする方法を学び、それを試して「私にとって」何か違いがあるかどうかを確認できるようにすることをお勧めするいくつかの重要なことがありますか? ちなみに、私の人生のほとんどをMac、ubuntu、RedHatの亜種に費やしています。
10 bash  zsh 

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