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

シェルは、Unixのコマンドラインインターフェイスです。シェルにインタラクティブにコマンドを入力するか、スクリプトを記述してタスクを自動化できます。/ bin / shおよび最も互換性のあるシェル(ash、bash、ksh、zshなど)に適用される質問には、このタグを使用します。エラーのあるシェルスクリプトについては、ここに投稿する前にhttp://shellcheck.netで確認してください。

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 

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 

3
中括弧(中括弧)を使用して、 `mkdir -p`でフォルダー構造を作成します
man mkdir状態として -p, --parents no error if existing, make parent directories as needed このコマンドを実行したとき mkdir -p work/{F1,F2,F3}/{temp1,temp2} それは、このようなフォルダ構造を作成work後、親フォルダF1、F2、F3子フォルダとtemp1とtemp23つの親フォルダの下に子フォルダをF1、F2、F3。 work -F1 -temp1 -temp2 -F2 -temp1 -temp2 -F3 -temp1 -temp2 今の問題は、私が作成したいということですtemp1、temp2フォルダだけ下F1の下でないF2とF3、私は、私は私が欲しいものを行うには、コマンドを書くことができますどのように混乱しています。

6
シェルスクリプトの学習に役立つオンラインリソースは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 シェルスクリプトを完全に学習することに興味があります。誰でも良いオンラインリソースを提案できますか?


5
ファイル内の任意の場所に複数のキーワードを含むファイルを検索します
私は、ファイル内のどこにでも、探しているキーワードの完全なセットを含むディレクトリ内のすべてのファイルをリストする方法を探しています。 そのため、キーワードを同じ行に表示する必要はありません。 これを行う1つの方法は次のとおりです。 grep -l one $(grep -l two $(grep -l three *)) 3つのキーワードは単なる例であり、2つ、または4つなどの場合もあります。 私が考えることができる2番目の方法は次のとおりです。 grep -l one * | xargs grep -l two | xargs grep -l three 別の質問に登場した3番目の方法は次のとおりです。 find . -type f \ -exec grep -q one {} \; -a \ -exec grep -q two {} \; -a …

9
リストを区切り文字付きの単一行に変換します
私は、この形式のIPアドレスのリスト(負荷)を取らなければなりません。 134.27.128.0 111.245.48.0 109.21.244.0 (IPが構成された)で、間のパイプと、この形式に変えます 134.27.128.0 | 111.245.48.0 | 109.21.244.0 | 103.22.200.0/22 私はそれを見つけると思いなどのコマンドを置き換えるsedが、私はそれを動作させることはできません。

2
ディレクトリ全体をコピーするためのインストールコマンドの問題
だから私は私の設定ファイルのいくつかとリポジトリを持っていると私はmakefilehomedirにそれらをインストールするために作成しようとしています。私が抱えている問題は、bashで次のコマンドを直接実行すると install -m 755 -d ~/path/to/dotfilesDir/ ~/ 一見何も起こらない install -m 755 ~/path/to/dotfilesDir/{file1,file2,...} ~/ 意図したとおりに動作します。 最初の(より簡単でクリーンな)ソリューションが機能しないのはなぜですか?

5
Unixのようなシステムに複数のシェルがあるのはなぜですか?
私はUnixの基礎を学び始めたばかりで、なぜUNIXのようなシステムにこんなに多くのシェルがあるのか​​疑問に思っています。本「Unix環境での高度なプログラミング」から: シェルは、ユーザー入力を読み取ってコマンドを実行するコマンドラインインタープリターです。シェルへのユーザー入力は、通常、ターミナル(対話型シェル)から、またはファイル(シェルスクリプトと呼ばれます)から行われます。 そして、この本は、Bourne shell、Bourne-again shell、Cshellなどのようなシェルプログラムのリストを続けています。私の質問は、基本的に複数のシェルが必要な理由です。
16 shell 

5
シェルコマンドをsed式に埋め込む方法は?
次の形式のテキストファイルがあります。 keyword value keyword value ... キーワードは単一の単語であり、値は行末までその他すべてです。値(キーワードではなく)がシェル拡張されるように、シェルスクリプトからファイルを読み取りたいです。 sedを使用すると、キーワードと値の部分を簡単に一致させることができます input=' keyword value value keyword "value value" keyword `uname` ' echo "$input"|sed -e 's/^\([^[:space:]]*\)[[:space:]]\(.*\)$/k=<\1> v=<\2>/' 生産する k=<keyword> v=<value value> k=<keyword> v=<"value value"> k=<keyword> v=<`uname`> しかし、問題は、シェルコマンドをsed式の置換部分にどのように埋め込むことができるかです。この場合、私は交換が欲しい\1 `echo \2`です。
16 shell  sed 

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?

3
shで矢印キーが機能しないのはなぜですか?
最近Ubuntuをインストールしました。ターミナルでshを実行すると、矢印キーが機能しないため、通話履歴を確認したり、入力した内容を編集したりできません。それはただのような奇妙なキャラクターとして出てき^[[Aます。 ログインシェルはbashであり、正常に動作しますが、shに切り替えるとすぐに動作しません。 どうすれば修正できますか?
16 shell  ubuntu  terminal 

4
sedを使用したbash変数の処理
bash変数LATLNGには、そのような括弧内に緯度と経度の値が含まれています (53.3096,-6.28396) 私はこれらをLATとLONと呼ばれる変数に解析したいので、sedを介してそうしようとしています LAT=$(sed "s/(\(.*\),\(.*\))/\1/g" "$LATLNG") LON=$(sed "s/(\(.*\),\(.*\))/\2/g" "$LATLNG") ただし、次のエラーが表示されます。 sed: can't read (53.3096,-6.28396): No such file or directory

7
ルートのシェルをデフォルト以外に設定するのは悪い習慣ですか?
ある友人(経験豊富なUnix / Linuxユーザー)が、ルートのシェルをsh(つまりbashまたはzsh)以外に設定すると問題が発生する可能性があると私に言った。 。 ただし、Ubuntuではデフォルトのルートシェルがbashに設定されており、Gentooもbashを使用していると思います。誰かが神話をつぶすことはできますか?
16 shell  users  login  root 

2
mv:シェルスクリプトにそのようなファイルまたはディレクトリがありません。
いくつかのファイルをあるフォルダーから別のフォルダーに移動するスクリプトを作成しましたが、次のエラーが発生しました.2つのフォルダーをチェックし、1つのフォルダーにそのようなファイルがあり、別のフォルダーにそのようなファイルがないことに気付きましたが、なぜすべてが「mvそのようなファイルやディレクトリはありません」 mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/194.199.68.165_tcp.folder/data/*': No such file or directory mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/194.42.17.124_tcp.folder/data/*': No such file or directory mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/195.113.161.13_tcp.folder/data/*': No such file or directory mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/203.159.127.3_tcp.folder/data/*': No such file or directory mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/212.199.61.205_tcp.folder/data/*': No such file or directory mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/212.51.218.235_tcp.folder/data/*': …
16 shell  rename 

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