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

Zshは、多くの高度なコマンドラインとスクリプト機能を備えたシェルです。


1
二重引用符はいつ必要ですか?
以前は$VARIABLE、少なくともシェルが単一のアイテムとして解釈することを望んでいた場合、を含む式を二重引用符で囲む$VARIABLEことを推奨していました。 ただし、シェルの最近のバージョンでは、二重引用符は必ずしも必要ではありません(少なくとも上記の目的のため)。例えば、中bash: % FOO='bar baz' % [ $FOO = 'bar baz' ] && echo OK bash: [: too many arguments % [[ $FOO = 'bar baz' ]] && echo OK OK % touch 'bar baz' % ls $FOO ls: cannot access bar: No such file or directory ls: cannot access …


8
名前付き引数をシェルスクリプトに渡す
名前付きパラメーターをシェルスクリプトに渡す(受け取る)簡単な方法はありますか? 例えば、 my_script -p_out '/some/path' -arg_1 '5' そして内部でmy_script.shそれらを受け取ります: # I believe this notation does not work, but is there anything close to it? p_out=$ARGUMENTS['p_out'] arg1=$ARGUMENTS['arg_1'] printf "The Argument p_out is %s" "$p_out" printf "The Argument arg_1 is %s" "$arg1" これはBashまたはZshで可能ですか?

10
何かをチェックしている間、ハーフタイプのコマンドを覚えておいてください
私はしばしば次の位置にいます:bashプロンプトで長いコマンドを入力し始めましたが、途中で別のコマンドで何かを確認する必要があることがわかりました。これは、コンソール(Xなし)にいるときの問題です。これはよくあることです。なぜなら、次のような不十分な方法しか持っていないからです。 ヒットctrl+ alt+ F2戻っていき、その後、別の仮想コンソールにログインして、私が望んでいたものを見つけます ctrl+ a、echo + space+と入力してenter、必要なもの↑を見つけ、コマンドが見つかるまで押しますctrl+ a、delx 5、ctrl+ e、そして続行 マウスでこれまでに入力した内容をハイライトし(gpmが実行されている場合、通常)、中断するにはctrl+ cを押し、マウスを使ってハイライト表示しないように注意しながら必要なものを見つけ、マウスの中ボタンを押します新しいプロンプトで続行します コマンドラインの神に祈ります。半分書かれたコマンドは悪影響を及ぼさず、単に失敗するだけで、Enterキーを軽く押してから、必要なものを見つけ、コマンドが返されるまで上矢印キーを押して続行します。 タイムマシンにジャンプして、時間をさかのぼり、コマンドを入力する前に画面を開始するように思い出させ、現在に戻り、ctrl+を押してa c、必要なものを見つけ、ctrl+を押してa ctrl+a続行します 私が知りたいのは、これを行うためのよりエレガントな方法がありますか?一種のサブシェルコマンドまたは類似のもの? 私は、動作するための準備やセットアップを必要としない方法に最も興味があります。
97 bash  command-line  zsh 


7
エイリアスコマンドで「which」を使用する方法は?
ほとんどのユーザーと同様に、頻繁に使用するプログラムにデフォルトのフラグセットを提供するために、多数のエイリアスを設定しています。例えば、 alias vim='vim -X' alias grep='grep -E' alias ls='ls -G' 問題はwhich、vim/ grep/ ls/ etcがどこから来たのかを確認したい場合、エイリアスが邪魔になることです: $ which vim vim: aliased to vim -X これは有用な出力ですが、この場合に私が探しているものではありません。私vimはエイリアスさvim -Xれていること を知っていますvimが、どこから来ているのか知りたいです。 エイリアスを一時的に定義解除するだけでは使用できませんが、エイリアスを「アンラップ」してその上で実行whichする簡単な方法はありwhichますか? 編集:which異なるシェル間で異なる動作をするシェル組み込みのようです。Bashでは、SiegeXによる--skip-aliasフラグの提案が機能します。ただし、私はZshを使用しています。似たようなものがそこにありますか?
76 shell  zsh  alias  which 

2
zshの$ PATHキャッシュにオートコンプリートインデックス(またはそれが呼ばれているもの)とバイナリを再構築します
新しいソフトウェアをインストールした後、zshで既に開いているターミナルは新しいコマンドを認識せず、それらのオートコンプリートを生成できません。どうやら新しい端末を開くと問題は解決しますが、古い端末でオートコンプリートが機能するように、インデックス(またはそれを呼び出すもの)を再構築できますか? 私は試しましたcompinitが、それは助けにはなりませんでした。また、シェルに依存しない方法はありますか?答えを確認する方法があると便利です(何かをアンインストールして再インストールする場合を除く)。 私は何を意味することは、コマンド名の数文字を入力した後、私は押すことができているTab、とzshフルネームをプルアップするために、残りを行う必要があります。
75 zsh  autocomplete 

7
シェルの深さはいくつですか?
問題:シェルの深さを確認してください。 詳細:vimからシェルをたくさん開きます。ビルドして実行し、終了します。時々忘れて、別のvimを開いてから、さらに別のシェルを開きます。:( シェルの深さがいくつあるかを知りたいのですが、シェル画面に常に表示されているかもしれません。(その部分を管理できます)。 私の解決策:プロセスツリーを解析し、vimとbash / zshを探して、現在のプロセスの深さを調べます。 そのようなものはすでに存在しますか?何も見つかりませんでした。
73 bash  shell-script  shell  vim  zsh 

6
シェルがSSHから制御されているかどうかを検出するにはどうすればよいですか?
SSHで制御されているかどうかをシェルスクリプト(より具体的には.zshrc)から検出したいのですが。HOST変数を試しましたが、常にシェルを実行しているコンピューターの名前です。SSHセッションの発信元のホスト名にアクセスできますか?2つを比較すると、問題が解決します。 ログインするたびに、最終ログイン時刻とホストを示すメッセージが表示されます。 Last login: Fri Mar 18 23:07:28 CET 2011 from max on pts/1 Last login: Fri Mar 18 23:11:56 2011 from max これは、サーバーにこの情報があることを意味します。
69 ssh  shell-script  zsh 

3
ESCキーにより、Alt +の動作により端末でわずかな遅延が発生します
私の端末設定は、viバインディングを備えたgnome-terminal + tmux + zshです。 vimのようなアプリケーションやzshのコマンドラインvi編集モードでも、ESCキーを頻繁に押す必要がありますが、このキーの効果が現れるまでに少し遅れがあります。参照してください。GNU画面が遅いVimのESCキーを作ります いくつかの実験の後、ESCキーを押すとすぐに別のキー(たとえばb)を押すとを押すのと同じ効果があることがわかりましたAlt+b。なぜそうなのかはわかりません(おそらく、以前の理由でなかったのAltでしょうか?わかりません)。いずれにせよ、私は2つのAltキーを持っているので、ESCキーでこの動作をしたくありません。私も試してみC+[ましたが、同じ問題があります。 誰がこれを担当しているのか、gnome-terminal、tmux、または私のOS自体(Ubuntu Natty)はわかりません。これに対処する方法についてのアイデアは素晴らしいでしょう。 更新:別の端末(LXTerminal)でtmuxを使用せずにチェックすると、遅延も存在します。

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


6
zshにはどの機能があり、bashにはない、またはその逆ですか?
Linuxユーザーとして、私は常にbashを使用しました。これは、使用したすべてのディストリビューションでデフォルトであったためです。BSDなどの他のUnixシステムを使用している人々は、他のシェルをはるかに頻繁に使用しているようです。もう少し学ぶために、zshを試してみることにしました。 bashユーザーとして: どの機能が恋しいですか? そして、私は何に注意する必要がありますか?
62 bash  zsh 

1
Zshのコマンド履歴
Zshはコマンド履歴をどのように追跡しますか? ホームディレクトリに2つのファイルがあります:.zhistoryと.zsh_history。それらの違いは何ですか?ファイルには私の履歴がすべて含まれているようです。Zshはそれらの1つに行を永久に追加し続けますか?履歴検索が遅くなりすぎないでしょうか? これらのファイルを別の場所へのシンボリックリンクに安全に作成できますか?(たとえば、履歴への変更を追跡するgitリポジトリ)

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