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

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

5
特定の戻りコードをすぐに返すUnixコマンド?
以下の私の例に似た何かをする標準のUnixコマンドはありますか $ <cmd here> 56 $ echo Return code was $? Return code was 56 $ <cmd here>forkで実行できるもので、プロセスの終了時に終了コードとして56を残すものでなければなりません。exitそしてreturnシェル組み込みコマンドは、私はそれから出たことで、彼らが起動したシェル自体に影響を与えるので、探しています何のためには適していません。<some cmd>は、シェル以外のコンテキストで実行できるものである必要がありますsubprocess。たとえば、を使用してPythonスクリプトから呼び出します。 たとえば、/usr/bin/false常にリターンコード1で直ちに終了しますが、そのリターンコードを正確に制御したいと思います。独自のラッパースクリプトを記述することで同じ結果を得ることができました $ cat my-wrapper-script.sh # i.e., <some cmd> = ./my-wrapper-script.sh #!/usr/bin/bash exit $1 $ ./my-wrapper-script.sh 56 $ echo $? 56 しかし、私のためにこれを行うことができる標準のUnixコマンドが存在することを望んでいます。



9
PATHからディレクトリを削除する
MingWを使用してwxWidgetsをコンパイルしようとしていますが、パスにcygwinが含まれていますが、これは競合しているようです。したがって/d/Programme/cygwin/bin、PATH変数から削除したいのですが、これを行うためのエレガントな方法があるのでしょうか。 素朴なアプローチは、ファイルにエコーし、手動で削除してソースにすることですが、これにはもっと良いアプローチがあると思います。

4
gnu texttoolsで連続した 'wc -l'を実行する方法は?
もちろん知っている cat logfile.txt | wc -l 120 ファイル内の行数を教えてくれます。 一方、 tail -f logfile.txt 別のプログラムが書き込む新しい行を表示しlogfile.txtます。 両方を組み合わせて、標準のテキストユーティリティでlogfile.txtの継続的な更新行数を取得することは可能ですか? 私は知っています watch wc -l logfile.txt しかし、毎回ファイル全体を再カウントしたくないので、それは無駄だと思われます。1秒ごとに追加のみのカウントが必要になり、おそらく行末では\rなくカウントが必要になり\nます。

1
>ファイルがechoよりもリアルタイムを使用する理由| sed> file?
以下の例は私を驚かせました。それは、直感に反するようです... コンボのためのより多くのユーザー時間があるという事実は別としてecho | sed。 単独で実行する場合echo、なぜそんなに多くのsys時間を使用するのでしょうか、または質問sedは「プレイの状態をどのように変更するのですか?」と思われるechoでしょうが、同じ行う必要があるエコー-INGのを両方のケースで... time echo -n a\ {1..1000000}\ c$'\n' >file # real 0m9.481s # user 0m5.304s # sys 0m4.172s time echo -n a\ {1..1000000}\ c$'\n' |sed s/^\ // >file # real 0m5.955s # user 0m5.488s # sys 0m1.580s
28 bash  shell  pipe  time  echo 

6
UNIXでVIキーを使用してシェルコマンドを編集する
UNIXが本当に得意な同僚がいました。 彼は、Viキーバインディングを使用してシェルコマンドを編集する方法を示しました。 彼はコマンドを、私がログインするたびに実行されるファイルに入れました。 それ以来、私は別のプロジェクトに移りました。 残念ながら、これを設定する方法を覚えていません。 Viキーバインディングを使用して端末でコマンドを編集する方法を知っている人はいますか? その設定を永続的にするにはどうすればよいですか?
28 shell  vim  terminal  vi 

3
シェルスクリプト内でPATHを変更する方法は?
Java / Grails / Mavenのバージョンを変更する必要があるプロジェクトがいくつかあります。変更を行うスクリプトでこれを処理しようとしています。例えば: #!/bin/sh export JAVA_HOME=/cygdrive/c/dev/Java/jdk1.5.0_22 export PATH=$JAVA_HOME/bin:$PATH export GRAILS_HOME=/cygdrive/c/dev/grails-1.0.3 export PATH=$GRAILS_HOME/bin:$PATH export MAVEN_HOME=/cygdrive/c/dev/apache-maven-2.0.11 export PATH=$MAVEN_HOME/bin:$PATH which java which grails which mvn これが実行されると、スクリプトのコンテキスト内でPATHが正常に変更されますが、スクリプトは終了し、変更は行われません。 現在作業しているシェルのPATHを変更する方法でスクリプトを実行するにはどうすればよいですか? Cygwinを使用しています。

8
grepとtail -f?
tail -fファイルに対して(または同様の)処理を行うことはできますgrepか?他のコマンドがそのような動作を探しているだけでもかまいません。

3
ファイルを行ごとに分割し、結果のファイル拡張子を制御する
ファイル分割の標準コマンド-splitがあります。 たとえば、単語ファイルを10000行の複数のチャンクに分割する場合、次を使用できます。 split -dl 10000 words wrd そして、wrd.01、wrd.02などの形式の複数のファイルを生成します。 しかし、これらのファイルには特定の拡張子が必要です。たとえば、wtd.01.txt、wrd.02.txtファイルを取得したいです。 それを行う方法はありますか?
28 shell  filenames  split 

7
なぜ「シェル」という言葉がコマンドラインインターフェイスを表すのに使用されたのですか?
「シェル」という用語に興味があります。私はそれが何であるかを知っていると思いますが(「シェル」と「ターミナル」の区別はまだあいまいですが)、なぜこのタイプのプログラムを説明するために「シェル」という言葉が選ばれたのですか? これは重要ではないように思えるかもしれませんが、通常、単語の選択が私を混乱させるとき、それは私の理解のギャップを指しています。

1
$ _ vs!$。前のコマンドと出力リダイレクトの最後の引数
問題は特殊変数に関するものです。ドキュメントは言う: !!:$ 前のコマンドの最後の引数を指定します。これは!$に短縮できます。 ($_、アンダースコア。)シェルの起動時に、環境または引数リストに渡されて実行されるシェルまたはシェルスクリプトを呼び出すために使用される絶対パス名に設定します。その後、展開後、前のコマンドの最後の引数に展開します。また、そのコマンドにエクスポートされた環境で実行および配置された各コマンドの呼び出しに使用されるフルパス名に設定されます。 次の理由により、キャッチできない違いがあるはずです。 $ echo "hello" > /tmp/a.txt $ echo "!$" echo "/tmp/a.txt" /tmp/a.txt $ echo "hello" > /tmp/a.txt $ echo $_ hello 違いはなんですか?

4
フォルダーが実際にシンボリックリンクであるかどうかを確認するにはどうすればよいですか?また、壊れている場合はどうすれば修正できますか?
Linuxにシンボリックリンク、何らかのショートカット、またはフォルダーがあるかどうかを確認するにはどうすればよいですか?次のスクリーンショットをご覧ください。 ご覧のように、lsコマンドはオブジェクトのリストを表示しますが、一部のオブジェクトは濃い青色で、他のオブジェクトは明るい青(シアン)で色付けされています。これらのシアン色のオブジェクトは何ですか?これらは実際のシンボリックリンクですか? あなたが見ることができるように、私はcdHDDと呼ばれるものにできません。 root@dm500hd:/# cd hdd -sh: cd: can't cd to hdd リダイレクトする必要がある/media/hddと思いますが、hddフォルダーが見つからないことに気付きました。 これを修正する方法はありますか? 更新:ls -alコマンドの結果は次のとおりです。 あなたが見ることができるように、それは言いhdd -> /media/hdd、それは赤で着色されています。これは、破損している、または自動マウントされていることを意味しますか?つまり、物理hddが接続されている場合ですか? 更新:これはgrep media /etc/auto*コマンドの結果です。 これら/etc/auto.master:/media/netと/etc/auto.networkエントリは何をしますか? ls -Fal /mediaコマンドの結果は次のとおりです。 これは助けになりますか?... 以下はコマンドstatとfileコマンドの結果、および/ usrと/ binのリストです。 これは私を助けますか?...あなたは私を助けますか?... サイドとしてではなく、あなたが知っておくべきことは、これがBusyBoxを備えたLinuxベースのSTBであり、組み込みシステムであることです。そのため、すべてのコマンドがサポートされるわけではありません。 更新: / sbinおよび/ usr / sbinにあるファイルとサポートされるコマンドを示す最後のスクリーンショット。 更新:新しい共有が追加されました... 古い共有を削除し、以前と同じ名前の共有を再作成し、2番目の共有を追加しました。だから今、私はそれらの2つを持っています。 SHARES remote share local share mydream dream1 mydream2 dream2 LOCATIONS …
28 linux  shell  symlink 

5
GNUまたはBSD Sedの正規表現の代替/演算子(foo | bar)
私はそれを機能させることができないようです。GNU sedのドキュメントでは、パイプをエスケープすると書かれていますが、それは機能せず、エスケープなしでストレートパイプを使用することもできません。括弧を追加しても違いはありません。 $ echo 'cat dog pear banana cat dog' | sed 's/cat|dog/Bear/g' cat dog pear banana cat dog $ echo 'cat dog pear banana cat dog' | sed 's/cat\|dog/Bear/g' cat dog pear banana cat dog


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