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

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

1
常に失敗して終了する標準コマンドはありますか?
失敗するコマンドでスクリプトをテストしたい。悪い引数を持つ既存のコマンドを使用できます。また、すぐに失敗して終了する簡単なスクリプトを書くこともできます。これらはどちらも簡単に実行でき、動作しますが、この目的のための標準コマンドがあれば、代わりにそれを使用したいと思います。

1
ターミナルでvimキーバインディングを使用することはできますか?
私はvimバインディングに慣れてきて(wを押して単語に行く、dwを押して単語を削除するなど)、そのモード(挿入、通常、視覚)、そして好奇心から知りたい: vimから端末へのモードとバインディングのこの動作の実装の種類は? 挿入モード、通常モードなどがあります...
42 bash  shell  terminal  vim  zsh 


10
パイプが空であるかどうかを確認し、空でない場合はデータに対してコマンドを実行する方法は?
bashスクリプトで行をパイプし、プログラムに渡す前にパイプにデータがあるかどうかを確認したいと思います。 私が見つけた検索ですが、test -t 0ここでは機能しません。常にfalseを返します。では、パイプにデータがあることを確認する方法は? 例: echo "string" | [ -t 0 ] && echo "empty" || echo "fill" 出力: fill echo "string" | tail -n+2 | [ -t 0 ] && echo "empty" || echo "fill" 出力: fill 前述のパイプラインが出力を生成したかどうかをテストする標準/標準的な方法とは異なりますか?入力をプログラムに渡すために保存する必要があります。これは、あるプロセスから別のプロセスに出力をパイプする方法を一般化しますが、最初のプロセスに出力がある場合にのみ実行しますか?電子メールの送信に焦点を当てています。
42 bash  shell  pipe 


1
エクスポートされるシェル変数とbashにないシェル変数の違い
Bashは、エクスポートされた変数とエクスポートされていない変数を区別するようです。 例: $ FOO=BAR $ env | grep FOO $ set | grep FOO FOO=BAR set変数を見ますが、見envません。 $ export BAR=FOO $ env | grep FOO BAR=FOO $ set | grep FOO BAR=FOO FOO=BAR set両方の変数が表示envされますが、エクスポートされた変数のみが表示されます。 私はそれsetがbash組み込みであり、そうでenvはないことを知っています。 エクスポートされる変数とエクスポートされない変数の違いは何ですか?

7
sed -i(インプレース編集)で移植性を実現するにはどうすればよいですか?
FreeBSDを実行している共有ホスティングであるサーバー用のシェルスクリプトを書いています。また、Linuxを実行しているPCでローカルにテストできるようにしたいと考えています。したがって、私はそれらを移植可能な方法で記述しようとしていますが、それsedを行う方法はありません。 私のウェブサイトの一部は生成された静的HTMLファイルを使用し、このsed行は各再生成の後に正しいDOCTYPEを挿入します: sed -i '1s/^/<!DOCTYPE html> \n/' ${file_name.html} sedLinux上のGNU で動作しますが、FreeBSD sedは-iオプションの後の最初の引数がバックアップコピーの拡張であると想定しています。これは次のようになります。 sed -i '' '1s/^/<!DOCTYPE html> \n/' ${file_name.html} しかし、GNUはsed順番に式が直後に続くことを期待します-i。(改行処理の修正も必要ですが、それはここですでに回答されています) もちろん、スクリプトのサーバーコピーにこの変更を含めることもできますが、バージョン管理にVCSを使用することは混乱します。完全に移植可能な方法でsedでこれを達成する方法はありますか?

4
nohupを使用して複数のコマンドを実行する方法
を使用して複数のコマンドを実行する必要がありますnohup。各コマンドは、前のコマンドの後に実行する必要があります。 例としてこのコマンドを使用しました。 nohup wget $url && wget $url2 > /dev/null 2>&1 & ただし、そのコマンドは機能しませんでした。 この目的のためにどのコマンドを使用する必要がありますか?

4
不正なbashコマンドを終了またはキャンセルするにはどうすればよいですか?
私はこれについて多少の期待を寄せていますが、どこにも答えが見つかりません。それはとても明白なはずのようです。ときどき、bashターミナルで間違ったコマンドを入力すると、カーソルが次の行にエラーや何もせずにジャンプするだけです。何を間違えたかわかりません。私はプログラムにこだわっているようです。再現: $ tidy 私:「おっと!それは私がタイプしたものではない...」 :q 私:「うまくいかなかった...」 :exit :quit exit quit /exit /quit -exit -quit -wtf??? 失敗したことは知っていますが、端末を閉じずにプロンプ​​トに戻るにはどうすればよいですか?

3
不明なシェルからbashに切り替えるにはどうすればよいですか?
この質問がサイト上ですでに見つからなかったことに驚いた。だから、$私は新しいユーザーとしてログインした後、今日来ました。メインユーザーのプロンプトがで始まるため、これは予想外username@computername:~$でした。 だから、この他のシェルからbashに切り替えるにはどうすればよいですか?
41 shell 

5
ファイルの内容をコマンド「echo」にリダイレクトする
my_file.txt内容が単なる文字列であるという名前のファイルがありますHello。そのコンテンツをコマンドにリダイレクトするにはどうすればよいechoですか? 私は、コマンドを持って知っているless、cat、more...しかし、私はそれを行う必要がありますecho。 私はこれを試しました: $ cat my_file.txt | echo またこれ: $ echo < my_file.txt ただし、どちらの場合も、my_file.txtのコンテンツではなく、stdoutに空白のみが表示されます。 どうすればそれができますか?

4
SSH経由で `cd`コマンドが機能しないのはなぜですか?
SSH経由でいくつかのファイルをバックアップしようとしていましたが、必要なファイルの代わりにtarホームフォルダーを取得しました。私はさらにいくつかのテストを行いました、そしてそれはこれに要約します: ssh root@server /bin/sh -c "cd /boot && ls -l" 驚いたことに、ファイルはリストされて/rootいません/boot。しかし/bin/sh、端末からコマンド全体を実行するcdと、/bootファイルが適切に出力されます。 ここで何が起こっていますか?
41 shell  ssh  cd-command 

2
〜は常に$ HOMEに等しい
これはおそらく以前に尋ねられたことを知っていますが、Googleで見つけることができませんでした。 与えられた Linuxカーネル $ HOMEを変更する構成はありません バッシュ ウィル~ == $HOME真でありますか?


7
リダイレクトの使用方法を思い出すにはどうすればよいですか?
私は何を知っている program > /dev/null 2>&1 します。それはへの出力をリダイレクト/dev/nullし、2>&1出力が送信された同じ場所にエラー出力をリダイレクトするための手段。 私の問題は、それを覚えていないので、常にグーグルで検索する必要があることです。 だから、私がしようと&2>1、1>2&、1>&2私はそれをグーグルまで...私はすべての組み合わせを試してみてください... 簡単に覚えるコツは何ですか?
40 shell 

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