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

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

3
すべてのシェル変数をリストするにはどうすればよいですか?
この質問について読む:zshでは、どのようにしてすべての環境変数をリストできますか?、私はどうすればすべてのシェル変数をリストできますか? また、シェル変数と環境変数の区別は、zsh以外のシェルにも適用されますか? 私は主にBashとZshに興味がありますが、他の主流のシェルでこれを行う方法を知ることは素晴らしいことです。

1
zshでは、cat <(cat)vs cat | cat vs cat =(cat)?
私は同じことcat &lt;(cat)をcat | catすることを期待しました:stdinからstdoutに行をコピーします。私の理解では、両方がcatサブシェルでa を実行し、サブシェルcatのstdoutを一時的な名前付きパイプにcatリダイレクトしてから、stdinをパイプにリダイレクトして現在のシェルで別のシェルを実行します。 代わりに、cat &lt;(cat)端末で入力できますが、入力行はコピー^Dされず、シグナルを送信できませんEOF。cat | cat期待どおりに動作します。 さらなる実験として、にcat =(cat)似た問題があるかどうかを確認cat &lt;(cat)しました^Dが、期待どおりに動作します。aまでのすべてのstdin が一度にstdoutにコピーされます。 誰もzshがボンネットの下で何をしているのかを理解するのを助けることができますか?

2
zsh:パターンからファイルを除外する
次のファイルがあるとします。 |-- bar `-- foo |-- type_A_1 |-- type_A_2 |-- type_B_1 |-- type_B_2 |-- type_B_xx |-- type_B_xx `-- something_else 私は次のコマンドを考えました print -l foo/*~{type_B*} で始まるものを除くすべての下にすべてを印刷しますが、そうではなく、fooの下にすべてを印刷します:foo type_B foo/type_A_1 foo/type_A_2 foo/type_B_1 foo/type_B_2 foo/type_B_xx foo/something_else 私もprint -l foo/*~type_B同じことを試してみました。 ~zshで例外ワイルドカードはどのように機能しますか?

1
zsh for zsh:ドライランとマニュアルページ
で素晴らしいことを聞いたことがzmvありzsh、実際に使用することを学びたいと思っています。しかし、私はまだzshで比較的経験が浅く、いくつかの基本的な質問があります: zmvinのマニュアルページはありますかzsh(man zshは「No manual entry for zmv」を出力します) ドライランはzmvネイティブに許可されますか? 上記の答えが「いいえ」の場合、どのようにドライランをテストまたは実行しzmvますか?
18 zsh  rename 

4
zshプロンプトでパスを短くする
BashPROMPT_DIRTRIMオプションがあります。たとえば、を設定するとPROMPT_DIRTRIM=3、次のような長いパスになります。 user@computer: /this/is/some/silly/path 代わりに次のように表示されます: user@computer: .../some/silly/path 同様のオプションが存在しzshますか?
18 zsh  prompt 

4
キーバインディングテーブル?
キープレスを参照するさまざまな方法をすべて変換するキーバインディングテーブルはありますか?私はを使用しzshていますが、そのようなテーブルがあれば、どのシェルでも機能すると思います。 私が尋ねる理由は、いくつかのキーバインディングを割り当てたいので、それらを参照する方法を知る方法がないためです(すでに定義されているものを盗もうとしない限り)。 たとえば、「zbindkey」には次のようなものがあります。 [[ "$terminfo[kend]" == " O"* ]] &amp;&amp; \ bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line ...そして、「ケンド」はこれがEndキーを指すことを意味すると推測できます。 bindkey次の行が表示されているクロスチェック: "^E" end-of-line "^[OF" end-of-line "^[[F" end-of-line ...そのため、これらの行の1つがEndキーを参照していると信じています。どれ? 「bindkey」ファイルにもこれがあります。 bindkey "\e[A" history-beginning-search-backward 今、私はたまたまそれがUp Arrow鍵であることを知っていますが、私が知らなかったならどうやって見つけることができますか? $ bindkey (at CLI) ...同じキーに対して異なる言語を提供します。 "^[[A" history-beginning-search-backward ...しかし、少なくとも今で ^[[Aは、bindkey-at-CLIで話すことは\e[Abindkey-in-zbindkeyで話すことと同じことを知っています。それは簡単です。DOSの古い時代には、Up Arrow だった0;72-あなたはすべての法的なキーストロークのスキャンコードを見つけることができる、唯一の言語がありました。 テーブルはありますか?またはterminfo[]、「bindkey-in-zbindkey」...「bindkey-at-CLI」および/または他の言語でキーストロークを選択し、それを参照する方法を知ることができる他の方法たまたま? 繰り返しますが、DOSにはscancodeプログラムがありました。キーストロークを入力すると、スキャンコードが表示されます。それは罪深いほど簡単でした。 私が推測する答えから、すべての可能なバインディングの表を印刷する方法はないと思いますか?とにかく「bindkey」はほとんど私が望むことをします: pts/2 HP-y5-10-Debian1 root /aWorking/Docs $ …

1
カスタムコマンドの動的zshオートコンプリート
私が書いたいくつかのカスタム関数の補完関数を書き込もうとしていますが、最も基本的な関数でさえ本当に苦労しているようです。 関数の例は次のとおりです。 function eb_instances() { if [ "$#" -ne 2 ]; then echo "Usage eb_instances &lt;aws profile name&gt; &lt;environment name&gt;" echo "e.g.:" echo " eb_instances production kraken-prod-api" return 1 fi aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=tag:Name,Values=$2" --profile=$1 --output=json | jq -r ".Reservations[].Instances[].PrivateIpAddress" } これには2つの位置引数が&lt;aws profile name&gt;あり、&lt;environment name&gt; &lt;aws profile name&gt;実行することで完了オプションを動的に使用可能にし …
18 zsh  autocomplete 

3
zshでスラッシュまたは単語を削除するにはどうすればよいですか?
Bashの動作 からbashに移行しましたzsh。ではbash、次の行がありました~/.inputrc。 "\e\C-?": unix-filename-rubout したがって、Alt+ Backspaceは前のスラッシュに戻って削除され、入力されたパスを変更するのに役立ちました。 さらに、bashデフォルトで は前のスペースをCtrl+ w削除します。これは、引数全体を削除するのに役立ちます(引数にスペースがないと仮定)。 Zshの動作 ではzsh、Alt+ BackspaceとCtrl+の両方wが同じことを行います。どちらも前の単語を削除しますが、単語区切りを構成するものに対して寛大すぎて、前の単語-またはまで削除し_ます。とzsh同様に動作させる方法はありbashますか?それが重要であれば、私はoh-my-zshインストールしました。
18 zsh 

1
部分パスのZshタブ補完が期待どおりに機能しない
のファイルとディレクトリの大文字と小文字を区別しないファジー補完が必要ですzsh。数時間マニュアルを読んだ後、これが私が思いついたものです: zstyle ':completion:*:*:*:*:globbed-files' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' zstyle ':completion:*:*:*:*:local-directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' zstyle ':completion:*:*:*:*:directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' さらに、1 TAB回押して可能な補完を表示し、入力が1つだけの場合に入力した内容を変更するだけです。その後、もう一度押すとTAB「メニュー完了」モードになります。マニュアルに基づいて、私はこれを思いつきました: zstyle ':completion:*' menu select 1つの状況を除き、すべてが正常に機能するようになりました。ホームディレクトリに2つのフォルダがDesktopあります.rstudio-desktop。私が持っているのでsetopt globdots、私は次を入力することを期待しています: $ cd ~/dktop&lt;TAB&gt; コマンドを入力したままにして、完了候補Desktopおよびとして表示し.rstudio-desktopます。代わりに、を削除 dktopして、次のものを残します: $ cd ~/ 関連するすべてのマニュアル、ガイド、Stack Exchangeに関する質問、およびその他のさまざまなソースを確認しました。しかし、私が何をしても、私はこの仕事をすることはできません。 興味深いことに、しかし、私は場合にホームディレクトリと予想されるように、次のすべての作品を入力します。 $ cd dktop&lt;TAB&gt; つまり、パスの先頭以外のセグメントの問題だけです(これは、使用されC-x hているdirectoriesタグではなくタグに対応していることがわかりますlocal-directories)。 簡単に再現するために、ここにある~/.zshrc(と新鮮なエルキャピタンの仮想マシン上でテストされ、上記の状況や行動再現することzsh自作のを)。
17 zsh  autocomplete 

1
このffmpegコマンドがzshではなくbashで機能するのはなぜですか?
今日、私は仕事から家に帰り(Ubuntuボックスでbashを実行)、私の大好きなzshでローカルアーチボックスでコードを実行しようとしましたが、コマンドは失敗しましたか? コマンドは、個人情報とIPが明らかに変更された状態で以下にあります ffmpeg -i rtsp://user:pass@my.webserver.org:5554/my-media/media.amp?videocodec=h264 -threads 3 -vcodec copy -f segment -segment_time 2 outfiles/cam_out%04d.mp4 それはbashで完璧に動作しますが、zshで実行するとエラーが発生します zsh: no matches found: rtsp://user:pass@my.webserver.org:5554/my-media/media.amp?videocodec=h264 私の愛するzshが私を裏切ったのはなぜですか?
17 bash  zsh  quoting  url 

2
zsh:tmuxでTERM = screen-256colorを設定しますが、tmuxなしでxterm-256colorを設定します
私は私が必要と$TERMするxterm-256color(zshの持つ「プレーン」の端末で)tmuxの外、しかしscreen-256color内部tmuxは。 最初に試しました: に追加export TERM='xterm-256color'します~/.zshrc。 set -g default-terminal "screen-256color"私に追加する~/.tmux.conf さて、ときに私開放端子(たとえば、xterm)など、TERMあるxterm-256color正しいいます、。しかし、tmuxを実行すると、TERM再びxterm-256color! それから私は自分の行でコメントアウトしようとしました~/.zshrc。さて、ターミナルを開いたときTERMはxtermであり、tmuxを実行したときTERMはscreen-256colorです。で設定TERMすると.zshrc、tmuxはまずに設定さTERMれscreen-256color、シェル(zsh)を実行し、zshが読み取り.zshrc、リセットTERMしxterm-256colorます。 だから、どのように作るTERMことをxterm-256color「プレーン」の端末では、とscreen-256colortmuxの中に?
17 zsh  tmux  xterm 

1
zshでの「../」のタブ補完
bashでは、タブ補完を使用して、1つのディレクトリを上下に移動し、別のパスに再び下降できます。例えば、私はだと仮定$HOME/folder1し、私がしたいcdの$HOME/folder2。$HOMEには2つの子ディレクトリfolder1とのみがありfolder2ます。 bashでは、単に入力できます cd ..[TAB]f[TAB]2 で終わることになり$HOME/folder2ます。私の新しいzshインストールでは、を押すと、名前に2 cd ..[TAB]つの子ディレクトリのリストが作成されます。$HOME/folder1. 私が慣れている動作を取得する簡単な方法はありますか?または、私がzshで望んでいることを達成するのがさらに簡単なものがありますか?

1
zshでsudo [コマンド]の自動修正を無効にする方法は?
zshとoh-my-zshにはデフォルト値が設定されており、sudo mcまたはsudo gem updateなど、よく使用する特定のコマンドの自動修正をオフにする方法がわかりません。問題は、.mcディレクトリと.gemディレクトリがあり、zshが自動修正(zsh: correct 'mc' to '.mc' [nyae])を提案していることです。 一般に、zshを構成して、自動修正用sudo [smth]の別のコマンド(そうではない)とは見なされないようにします。それに対する修正は何でしょうか?

3
エントリを非表示にしないようにタブ補完を修正する方法は?
homebrew'ed zsh 4.3.12を搭載したMac OS Xでoh-my-zshを使用しています。私は最近、奇妙な問題に出くわしました。ではscripts/not-used私、いくつか持っている.Rファイル: breakdowns.R eventloop.R process-largeclients.R process-qt.R reprocess-pinning.R calculate-qt-error.R generate_decision_tree.R process-net.R process-scalingexp.R 私がしようとしたときただし、ls scripts/not-used/+ Tab最初の完了があるls scripts/not-used/_.R場所_にカーソル位置を表しています。Tabもう一度押すと、この奇妙な完成が得られます。 $ ls scripts/not-used/.R breakdowns.R eventloop.R このい(間違った)動作を解除する方法は? 設定されるオプションは次のとおりです。 alwaystoend autocd autonamedirs autopushd cdablevars completeinword correctall extendedglob extendedhistory noflowcontrol histexpiredupsfirst histignoredups histignorespace histreduceblanks histverify incappendhistory interactive login longlistjobs monitor promptsubst pushdignoredups pushdminus pushdsilent pushdtohome …

2
カスタムzshrcでzshを起動します
コマンドに似たカスタムrcファイルでzshを起動できるようにしたい: bash --rc-file /path/to/file これが不可能な場合、zshを起動し、実行source /path/to/fileして、同じzshセッションにとどまることは可能ですか? 注:コマンドzsh --rcs /path/to/fileは、少なくとも私にとっては機能しません... 編集:全体として、私は次のことができるようにしたい: sshリモートサーバー「example.com」に、実行zsh、source私の設定は/path/to/file、すべて1コマンドで。これは、特にリモートマシン上の設定ファイルを上書きしたくないため、苦労した場所です。
17 linux  shell  zsh  oh-my-zsh 

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