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

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

2
scpワイルドカードがzshで機能しない
zshに切り替えましたが、うまく機能しています。奇妙なことに、*ワイルドカードを使用してscpを実行しようとしても機能せず、bashにドロップする必要があります。以下の2番目のコマンドは正常に機能します。 なぜそうなるのか、それを修正する方法についてのアイデアはありますか? ~/dmp ⌚ 16:06:10 $ scp abc@123:/home/se/exports/201405091107/* . zsh: no matches found: root@uf3:/home/se/exports/201405091107/* ~/dmp ⌚ 16:06:53 $ bash sean@seanlaptop:~/dmp$ scp abc@123:/home/se/exports/201405091107/* .
17 zsh  wildcards 

4
現在のコマンドの途中からサブシェルを実行する
私はこのシナリオで頻繁に自分を見つけます。コマンドを入力している最中で、完了する前に他の何かを確認する必要があります。 私の現在の入力で記憶されているサブシェルを開く方法はありますか? $ mylongcommand -n -e <SOME KEY COMBINATION WHICH OPENS A SUBSHELL> $ date ... $ exit $ mylongcommand -n -e <BACK TO WHERE I WAS> 私は使っています zsh
16 command-line  zsh 

3
どのシェルインタープリターがシバンなしでスクリプトを実行しますか?
アカウントのデフォルトのシェルがzshであるが、ターミナルを開いてbashを起動し、という名前のスクリプトを実行したとしますprac002.sh。どのシェルインタープリターを使用して、スクリプト、zshまたはbashを実行しますか?次の例を考えてみましょう。 papagolf@Sierra ~/My Files/My Programs/Learning/Shell % sudo cat /etc/passwd | grep papagolf [sudo] password for papagolf: papagolf:x:1000:1001:Rex,,,:/home/papagolf:/usr/bin/zsh # papagolf's default shell is zsh papagolf@Sierra ~/My Files/My Programs/Learning/Shell % bash # I fired up bash. (See that '%' prompt in zsh changes to '$' prompt, indicating bash.) papagolf@Sierra:~/My Files/My Programs/Learning/Shell$ ./prac002.sh …

1
scpコマンドを入力して、リモートファイルをタブで補完できる魔法とは何ですか?
これはおそらく、私のoh-my-zshセットアップで有効にしたプラグインによって提供される機能です(zshを何年も使用しています)。 公開キーをサーバーに追加してから(パスワードを入力せずにサーバーにSSH接続できるようになった)、scpシェルでコマンドを作成すると、実際にリモートファイルパスをタブ補完できることに気付きました! 例えば $ diff <(scp Remoteuser@remote.domain.net:/var/www/html/ 私はタブを押すと、それはちょうど動作します!(コマンド自体で達成しようとしていることについては、scpstdoutに「コピー」し、それをファイルとしてdiffにフィードします。この方法で、サーバーに展開する正確な変更を確認できます実行中rsync) 私はこの作品をこれほどうまく作っている作品に興味があります。zシェルと統合されたscpに組み込まれているものですか?または、他の何か?

6
少ないキーストロークで複数のファイル名を入力する方法
imagemagickを使用pdfしてaをpng画像に変換する場合、次のようにします。 convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf this_is_a_very_long_filename_of_my_pdf_file.png pdfファイルには、いくつかの理由で非常に長いファイル名が付いていることが多くpng、拡張子を除いて同じ名前のファイルが必要です。 通常this_is_a_very_long_filename_of_my_pdf_file.pdf、タブで2回選択し、2番目の引数を手動でzsh-menu変更します。pdfpng しかし、これを行うためのより速い方法はありますか?

5
アンインストールせずにoh-my-zsh(およびzsh)を「無効化」するにはどうすればよいですか?
zshやoh-my-zshなどの新しい開発環境を試していました。oh-my-zshをインストールしたので、デフォルトで私の端末(iTerm2および端末)で起動し、常にzshで起動し、oh-my-zshからの設定で起動します。oh-my-zshをアンインストールせずに、zshとそのセットアップをoh-my-zshで「無効化」または停止できるかどうか疑問に思っていました。また、それらをオンに戻す方法を知っておくといいでしょう。 現在、私の端末は自動的にzshに入り(私が思うに)、oh-my-zshを自動的に使用します。zshを使用しているときと、oh-my-zsh機能を使用しているときの両方を制御できます。 私が知りたいことの1つは、起動時にどのシェルを起動するかを端末アプリケーションがどのように知るかということです。それも制御できるといいですね! あなたが私に与えるすべてのコマンドの「理由」についてできる限り説明するなら、それは役に立つでしょう!:) 私はOS Xを使用しています。それが重要かどうかはわかりませんが、答えは自分の好みではなく、より一般的なUnix環境により当てはまる傾向があります。
16 zsh  oh-my-zsh 

4
echoコマンドでフォントを変更する
echoの出力のフォント属性をzshまたはbashで変更することはできますか? 私が望むのは次のようなものです: echo -n "This is the font: normal " echo -n $font=italic "italic," echo -n $font=bold "bold," echo -n "and" echo -n $font=small "small". そのため、テキスト行内に「これはフォントです。通常、斜体、太字、小」です。
16 bash  shell  zsh  fonts 

4
複数行の構文を使用してPATHにパスを追加する
私の知る限り、PATH環境変数にパスを追加する通常の方法は、:文字で区切られたパスを連結することです。 たとえば、3つのパスを追加する場合/my/path/1、/my/path/2および/my/path/3、次のようにする必要があります。 PATH=$PATH:/my/path/1:/my/path/2:/my/path/3 読みにくいです。 複数行の構文を使用して変数にパスを定義または追加する方法はありますか?おそらく配列を使用していますか?私はこのようなものを探しています:PATH PATH = $PATH /my/path/1 /my/path/2 /my/path/3 シェル固有の興味深いソリューションがある場合は、zshのソリューションを探しています。

3
単語分割とは何ですか?なぜシェルプログラミングで重要なのですか?
単語分割が果たす役割について混乱していzshます。C、Python、またはMATLABでプログラミングするときにこの概念に触れたことはありません。これが、単語分割がシェルプログラミングに固有のものであるように思える理由への興味を引き起こしました。 このサイトや他のサイトで単語分割について読んだことがありますが、この概念の明確な説明は見つかりませんでした。ウィキペディアには単語分割の定義がありますが、Unixシェルへの適用方法についての言及はないようです。 以下に私の混乱の例を示しzshます。 ではZシェルよくある質問、私は以下をお読みください。 3.1:なぜ私が期待することを$varどこでしvar="foo bar"ないのですか? ほとんどのBourneシェル派生物では、などの複数ワード変数 var="foo bar" は、コマンドに渡されるか、for foo in $varループで使用されるときにワードに分割されます。デフォルトでは、zshにはそのような振る舞いはありません。変数はそのまま残ります。(これはバグではありません!以下を参照してください。)SH_WORD_SPLIT互換性を提供するオプションがあります。 ただし、Z Shell Manualでは、次を読みました。 SH_WORD_SPLIT (-y) <K> <S> 引用符で囲まれていないパラメーター展開でフィールド分割を実行します。このオプションは 単語の分割とは関係がないことに注意してください。(パラメータ拡張を参照してください。) なぜそれは単語の分割とSH_WORD_SPLITは関係ないと言うのですか?単語の分割は、これがすべて何であるかを正確に示していませんか?
16 shell  zsh 

1
pushd、popd vs cd、cd- in bashおよびzsh
bashとzshのpushd / popdの動作に違いはありますか?zsh cdでは、cd-はpushd / popd(cdのときにディレクトリを自動的に追加/ポップします)とまったく同じように動作しますが、bash cdではdirスタックに影響しません。 誰かが私に素晴らしいポインタをくれるとしたら。
16 bash  zsh  cd-command  pushd 

1
どことどこの違いは何ですか
whereとwhichシェルコマンドの違いは何ですか?下記は用例です ~ where cc /usr/bin/cc /usr/bin/cc ~ which cc /usr/bin/cc そして ~ which which which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' /usr/bin/which ~ which where /usr/bin/which: no where in (/usr/local/bin:/bin:/usr/bin:/home/bnikhil/bin:/bin) また ~ where which which: aliased to alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde which: shell built-in command /usr/bin/which /usr/bin/which …

1
zshでスクリプトを実行する-ファイルのアクセス許可
私は期待どおりに動作しないファイルの実行権限について混乱しています。おそらく私の期待が間違っているためです。とにかく: スクリプトファイルがあります。簡単にするためs、にあり~/binます。この例のために、ファイルには次の行のみが含まれています。 #!/bin/zsh echo "Test"; とても簡単です。 私はに移動し~/bin、ディレクトリ、およびchmod、ファイルのパーミッションsに400-すなわち、読み取り専用私のためだけ。実行許可なし。そのため、パスを入力してスクリプトを実行し、次のようにします。 % ./s zsh: permission denied: ./s ここまでは順調ですね。権限が間違っているため、ファイルを実行できません。500(実行されたアクセス許可が付与されている)までのアクセス許可のバンプも正常に機能します-これらのアクセス許可を使用すると、ファイルは正常に実行されます % ./s Test これはすべて予想どおりです。しかし、その後、私は(再度許可を実行する)にchmod戻って許可を与え、ファイルを400試してみるsourceと、これが起こります: % source s Test 権限はですが400、スクリプトが実行されます。 だからここに私の質問があります:なぜ./s失敗するのですか(そうするべきです)がsource s正常に実行されますか?これは、実行許可の全体的な目的に反しませんか? 400権限、sh sおよびzsh sまた仕事。 私はどこか恐ろしく間違っていることをしている、または理解していると確信しています。缶誰かのポイント私に場所を、との違いを説明し./s、source s、sh sとzsh s?

4
履歴はzshに保存されません
端末の新しいインスタンスを開くたびに、履歴が空になります。何故ですか?何かセットアップする必要がありますか?ただし、bashではこれは必要ありません。

2
パスで最初に見つかった実行可能ファイルはどのような状況で使用されませんか
osxでzsh(homebrewでインストールされた5.4.2_1)で、パス内で最初に実行可能ファイルが使用されないという奇妙な動作があります。 シナリオは次のとおりです。 echo $PATH 戻り値: /usr/local/Cellar/zplug/HEAD-9fdb388/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 醸造は両方にあります /usr/local/Cellar/zplug/HEAD-9fdb388/bin そして usr/local/bin/brew これはwhich -a brewを実行することで確認されます: /usr/local/Cellar/zplug/HEAD-9fdb388/bin/brew /usr/local/bin/brew しかし、どの醸造を実行すると、それが返されます: /usr/local/bin/brew そしてbrewでは/usr/local/bin/brewなく/usr/local/Cellar/zplug/HEAD-9fdb388/bin/brew brewがパスの初期にある場合、これはどのように発生しますか? 感謝します。
15 zsh  path 


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