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

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

5
長いパスで最初に見つからないディレクトリを見つけるにはどうすればよいですか?
存在しないパスがあると想像してください: $ ls /foo/bar/baz/hello/world ls: cannot access /foo/bar/baz/hello/world: No such file or directory しかし、存在すると/foo/bar しましょう。それbazがパスのブレークポイントであると判断する簡単な方法はありますか? 私はBashを使用しています。
14 bash  shell  directory  ls 

8
チェック変数はシェルのようなBourneの配列ですか?
配列変数をサポートするBourne like shellでは、変数が配列であるかどうかを確認するために何らかの解析を使用できます。 以下のすべてのコマンドは、実行後に実行されましたa=(1 2 3)。 zsh: $ declare -p a typeset -a a a=( 1 2 3 ) bash: $ declare -p a declare -a a='([0]="1" [1]="2" [2]="3")' ksh93: $ typeset -p a typeset -a a=(1 2 3) pdksh およびその派生物: $ typeset -p a set -A a typeset a[0]=1 …
14 bash  shell  zsh  ksh  yash 

3
「find -exec」はどのようにファイル名にスペースを渡しますか?
名前にスペースが含まれるファイルを含むディレクトリがある場合、たとえば $ ls -1 dir1 file 1 file 2 file 3 これらすべてを次のように別のディレクトリに正常にコピーできます。 $ find dir1 -mindepth 1 -exec cp -t dir2 {} + ただし、の出力にfind dir1 -mindepth 1はエスケープされていないスペースが含まれます。 $ find dir1 mindepth 1 dir1/file 1 dir1/file 3 dir1/file 3 のprint0代わりに使用する場合print、出力にはエスケープされていないスペースが含まれています。 $ find dir1 mindepth 1 -print0 dir1/file 1dir1/file 2dir1/file 3 を使用してこれらのファイルを手動でコピーcpするには、スペースをエスケープする必要があります。しかし、私がコマンドを使用するか、コマンドの最後に関係なく、cpの引数が来るとき、これは不要であるようです。find+\; …

9
コマンド「date -d @xxxxxx」と「find ./」をチェーンする方法は?
1970-01-01以降のミリ秒単位で与えられるタイムスタンプの名前のディレクトリがあります: 1439715011728 1439793321429 1439879712214 . . そして、私は次のような出力が必要です: 1442039711 Sat Sep 12 08:35:11 CEST 2015 1442134211 Sun Sep 13 10:50:11 CEST 2015 1442212521 Mon Sep 14 08:35:21 CEST 2015 . . コマンドですべてのディレクトリをリストできます: find ./ -type d | cut -c 3-12 しかし、出力を次のコマンドに入れることはできません。 date -d @xxxxxx出力を操作します。 これどうやってするの?
14 shell  find  date 

3
シェルコマンドを使用してファイルから列または複数の列を削除するにはどうすればよいですか?
私のファイル、 ARCHIVE B1_NAME B2_NAME B3_NAME ELEMENT INFO_NAM WERT PROCID -------- -------- -------- -------- -------- -------- ---- ------ 15MinAvg AIRSS 33-GIS DMDMGIS1 I MvAvr15m 1123 CP 15MinAvg AIRSS 33-GIS DMDMGIS1 P MvAvr15m 2344 CP 15MinAvg AIRSS 33-GIS DMDMGIS1 Q MvAvr15m 4545 CP 15MinAvg AIRSS 33-GIS DMDMGIS2 I MvAvr15m 6576 CP 15MinAvg …

1
1つの端末を終了するときに他の端末のbash履歴を更新する
ここで求められているように私は、この質問が曖昧にされていません知って更新し続ける(と重複こちら)。 私が達成しようとしていることは少し異なります。入力するたびlsにプロンプトをファイルに書き換えるという考えが好きではありません(history -a; history -c; history -r)。 終了時にファイルを更新したいと思います。それは簡単です(実際にはデフォルトです)が、書き換える代わりに追加する必要があります: shopt -s histappend ここで、端末が閉じられたときに、更新を認識できるように、開いたままになっている他のすべてのものを作成したいと思います。 入力$PS1するたびにチェックすることなくこれを行うことを好みcommandます。何らかの信号をキャプチャする方が良いと思います。どうしますか?不可能な場合は、おそらく簡単cronjobですか? このパズルをどのように解決できますか?

3
コマンドの質問に対する回答を準備する
1つのコマンドのみを実行するシェルスクリプトを作成するとします。ただし、このコマンドの設計は不十分です。コマンドラインオプションはありません。代わりに、いくつかの質問をし、ユーザーの入力を待ちます。 スクリプトでこの入力を準備する方法はありますか?質問は自動的に回答されますか?

4
echo $ -1は何を表示しますか?
出力を何をecho $-1、echo $-2、echo $-3平均..? 私のLinuxボックスの1つでは、次のように表示されます。 echo $-1 imsBEl1 echo $-2 imsBEl2 また、別のLinuxボックスでは、次のように表示されます。 echo $-1 himBH1 echo $-2 himBH2 それらはいくつかのメモリ位置または他の何かにマッピングされていますか?
14 shell  echo  parameter 

2
Markdownを認識するスペルチェッカーは存在しますか?
記事を公開する前に、スペルチェッカーを実行したいと思います。私aspellは大丈夫だと思いますが、コードブロックをチェックしようとするべきではありません: asdfasdfa adsfa sdfa text to check adsfasd f ``` a wild code block appeared! thisHas quiteOften() some strings.that should NOT get changed ``` and also `inlined code` should not get checked Linuxには、Markdownを認識しているためコードブロックを無視するコマンドラインベースのスペルチェッカーがありますか?複数のファイルに対してバッチモードでこれを実行できる必要があります。 (LaTeXを本当に理解している人を知っている場合はボーナスポイント-いいえ、aspell -t完全に機能しません)


8
Linuxの超軽量テキストベースのプログラミング環境の推奨セットアップ
特定のニーズに合ったセットアップの提案を探しています。私は大学以来Linuxをあまりやっていないので、趣味としてLinuxに戻りたいと思っています。あまり強力ではないハードウェア(512 MB RAM、シングルコア)があります。私はvimなどのテキストベースのシェルとエディタを介してすべてをやりたいです。私の目標は、マウスに触れないことです。 一度に複数のシェルを開き、1つはWebサーバーを実行し、1つはvimを実行し、1つはアプリケーションビルドパイプラインを実行し、もう1つはwget、grepping、tarキーボードを使用して新しいシェルを開き、シェルをすばやく切り替えることができます。 しかし、複数のシェルが必要な場合でも、グラフィカルなデスクトップ環境は必要ありません。私はマウスを使いたくはありません。私の目的の一部は、さまざまなタスクを実行するコマンドラインの方法を自分で学習させることです。 私はまた、大型モニターを活用して、数百のカラムをディスプレーしてvimを実行できるようにしたいと考えています。 これは可能ですか?

8
ディレクトリのコンテンツのみを削除する方法は?
私はフォルダーにいます:/var/myfolder。 内部には、次のような他のフォルダーがあります/var/myfolder/A/ /var/myfolder/B/ `/var/myfolder/C/。 それぞれの中に、ランダムな名前のファイルがいくつかあります。内部のすべてのフォルダーからすべてのファイルを削除するにはどうすればよい/var/myfolderですか? 構造(内部のすべてのディレクトリ(A、B、Cなど/var/myfolder)など)はそのままにしておく必要があります。
14 shell  files 


3
10進数をASCII文字に印刷すると、コマンドが意図したとおりに出力されません
次のコマンドですべてのASCII文字の文字列を出力したかった for i in `seq 32 127`; do printf "%c" $i; done 上記のコマンドの出力は次のとおりです。 33333334444444444555555555566666666667777777777.............. これは、各番号の最初の(左から)桁です。 このサイトを見ると、私の問題に対する答えが見つかりました。CLIですべての印刷可能なASCII文字を印刷するにはどうすればよいですか?ただし、元のスニペットが意図したとおりにASCII文字を出力しない理由はまだわかりません。

4
ncursesアプリケーションから呼び出されるスクリプトの出力のエスケープシーケンス
現在、ホームサーバーのtmuxセッションでJabberクライアント(ncursesを使用)としてmcabberを実行しています。ローカルでは、iTerm2をターミナルエミュレータとして実行します。これは、文字エスケープシーケンスを介したうなり声通知のトリガーをサポートします。 注:すべて echoこの質問のはprintf %b、またはecho -ebashとGNUのように機能しますecho。 たとえばecho "\e]9;foobar\007"、iTerm2に「foobar」というテキストを含むGrowlメッセージを送信させます。 ただし、tmuxセッションでは、エスケープシーケンスが使い果たされます。したがって、独自の文字エスケープシーケンス\Ptmuxを使用すると、次のように使用できます。 echo "\ePtmux;\e\e]9;foobar\007\e\\" これにより、tmuxセッション内からうなり声メッセージがトリガーされます。 ただし、新しいメッセージを受信したときに起動されるmcabberイベントスクリプトでこれを使用すると、エコーが間違った端末に送信されるかのように通知がトリガーされません。 これは、スクリプトをトリガーするmcabberがncursesアプリケーションであるため、通常のbashスクリプトからの出力が失われ、iTerm 2でそれが表示されないためと思われます。 また、発見したアイデアに賛同する前に、成功せずにsmcupを呼び出してみました tput smcup echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\" tput rmcup 問題は「実際の端末ウィンドウ」に戻っていないので、これは機能しないと思いますが、ncursesウィンドウに出力を向けます。 これに関するアイデアはありますか?

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