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

Bash(Bourne-Again SHell)は、Ubuntuのコマンドラインインターフェースでデフォルトで使用されるシェルです。

2
バイナリデータで標準の入出力を使用しても安全ですか?
バイナリファイルを2つに分割する必要があります。私は頭や尾を使用できるかどうか疑問に思っていましたが、その後疑問に思いました...リダイレクト、パイピングなどをバイナリデータで使用しても安全ですか?新しい行が台無しになったり、nullが無視されたり、バックスペースや削除が何か特別なことをしますか?(bash、kubuntu 18.04 LTS)


7
特定の拡張子を持つファイルとそれらが入っているディレクトリをカウントするにはどうすればよいですか?
.c大規模で複雑なディレクトリ構造で拡張子を持つ通常のファイルの数、およびこれらのファイルが分散しているディレクトリの数を知りたい。必要な出力は、これらの2つの数値だけです。 ファイルの数を取得する方法についてこの質問を見てきましたが、ファイルが存在するディレクトリの数も知る必要があります。 ファイル名(ディレクトリを含む)に文字が含まれている可能性があります。.または-で始まり、スペースまたは改行がある場合があります。 名前がで終わる.cシンボリックリンクと、ディレクトリへのシンボリックリンクがあるかもしれません。シンボリックリンクを追跡したりカウントしたりしたくない、または少なくともそれらがカウントされているかどうか、いつカウントされるのかを知りたい。 ディレクトリ構造には多くのレベルがあり、最上位ディレクトリ(作業ディレクトリ)には少なくとも1つの.cファイルがあります。 私は急いで(Bash)シェルでいくつかのコマンドを書いて自分でそれらを数えましたが、結果が正確だとは思いません... shopt -s dotglob shopt -s globstar mkdir out for d in **/; do find "$d" -maxdepth 1 -type f -name "*.c" >> out/$(basename "$d") done ls -1Aq out | wc -l cat out/* | wc -l これは、あいまいなリダイレクトに関する苦情を出力し、現在のディレクトリ内のファイルを見逃し、特殊文字でトリップします(たとえば、リダイレクトされたfind出力はファイル名に改行を出力します)。 .cファイルとそれらを含むディレクトリを確実に列挙するにはどうすればよいですか? それが役立つ場合、悪い名前とシンボリックリンクでテスト構造を作成するいくつかのコマンドがあります: mkdir -p cfiles/{1..3}/{a..b} && cd …

2
シェルに与えられた各コマンドをパイプするにはどうすればよいですか?
.bashrcを編集して、シェルで実行されるすべてのコマンドが何かにパイプされるようにします。例えば: $ sudo apt update _________________ < sudo apt update > ----------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || 私はかなり似たものを管理しましたが、完全ではありません: $ bash $ exec > >(cowsay) $ echo "Hello AU!" $ exit _______ < Hello AU! > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || …

5
bash履歴で「history -d」を非表示にします
誤ってパスワードまたはbashで機密性の高いものを入力した場合、その行を簡単に削除できますがhistory -d ROW#、常にhistory -d ROW#誰かが間違いを修正したことを示すコマンドが履歴に残ります。 コマンドに何かを追加して、bash履歴に表示されないようにできますか?



5
SSH接続のエイリアスを作成する
特定のサーバーへの接続を高速化したい。 私はサーバーを言ってみましょう: 123.123.123.1 123.123.123.2 123.123.123.3 私は通常、次のものに接続します。 ssh -p 12345 my_user@123.123.123.1 サーバー間の唯一の違いはIPの最後の数字であるため、これは苦痛です。 私は次のコードを試しました: alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<' しかし、エラーが発生します: karl@karls-laptop ~/scripts $ ssht 1 Pseudo-terminal will not be allocated because stdin is not a terminal. これを機能させる方法はありますか?
14 bash  ssh  alias 


1
なぜ「!!」ショートカットは前に実行したコマンドを実行できませんか?
最近、端末で入力しました username:~$ !! そして、bashからエラーが発生しました: bash: !!: command not found 同時に、スーパーユーザーで実行すると成功します。 ユーザーのPATHのコンテンツを調査したところ、疑わしいものは見つかりませんでした。 /home/username/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 出力は次のとおりです。 username:~$ history | tail 1993 date 1994 cal 1995 vcal 1996 uptime 1997 uname 1998 uptime 1999 uname 2000 uptime 2001 uname 2002 history | tail 別の: username:~$ echo foo foo username:~$ !! bash: !!: command not …

6
12番目を除くすべてのファイルを削除する
filename.12345.endという形式の数千のファイルがあります。12個ごとにファイルを保持したいだけなので、file.00012.end、file.00024.end ... file.99996.endを削除し、その他すべてを削除します。 ファイルには、ファイル名の前に番号が付いている場合があり、通常は次の形式です。 file.00064.name.99999.end 私はBashシェルを使用していますが、ファイルをループする方法がわからず、数値を取得してnumber%%12=0 、ファイルが削除されているかどうかを確認できません。誰も私を助けることができますか? ありがとう、ドリナ
14 bash  rm 

2
なぜ時間の出力形式は、私がそれを呼び出す方法によって異なるのですか
それは初心者の質問かもしれませんが、私はこれがどのように構成されているのか、timeこれらの2つのケースでコマンドの出力形式が異なる理由を理解していません: 経由timeで使用する場合、出力は基本情報を含む3行です。 $ time sleep 1 real 0m1.003s user 0m0.000s sys 0m0.000s 次に、使用されているバイナリを確認できます $ which time /usr/bin/time さらに直接呼び出して、完全に異なる形式の出力を取得し、さらに多くの情報を取得します $ /usr/bin/time sleep 1 0.00user 0.00system 0:01.00elapsed 0%CPU (0avgtext+0avgdata 2000maxresident)k 0inputs+0outputs (0major+77minor)pagefaults 0swaps に関連するエイリアスはありません time $ alias | grep time $ 走っているUbuntu 16.04。

2
WindowsとUbuntuに同様のシェルコマンドがあるのはなぜですか?
Ubuntuにはbash(Bourne Again SHell)がありますが、Windowsには独自のシェルがあります。私の研究によると、Windows / Ubuntuのシェルスクリプトに使用される言語の名前はありません。単にシェルスクリプトと呼ばれます。 なぜWindowsとUbuntuの殻のような同じコマンドを理解してください:ls、mkdir、rmdir、mountなどの上に? シェルスクリプト用の共通語のようなものはありますか?もしそうなら、詳細を教えてください。

5
Ubuntuでメモ帳(Windows)で作成されたスクリプトを実行する
Windowsでメモ帳ファイルを作成し、Ubuntuにコピーしました。このファイルには、いくつかのiptablesルールが含まれています。それを使用chmod +xして実行するファイルを実行した後、動作しませんでした。 ただし、Ubuntu(gedit)ファイルを作成し、同じ内容をメモ帳ファイルからコピーし、実行可能にして実行すると、動作しました。 NotepadファイルをUbuntuで実行するにはどうすればよいですか?

2
Rsync --deleteオプションはターゲットディレクトリのファイルを削除しません
私は--deleteオプションを使用rsyncして、元のディレクトリには存在しないターゲットディレクトリのファイルを削除しようとしています 私が使用しているコマンドは次のとおりです。 rsync -avz --ignore-existing --recursive --delete /var/www/* root@mydomaintest.com:/var/www だから私の質問は、元のディレクトリに存在しないターゲットディレクトリ内のすべてのファイルを削除するにはどうすればよいですか?
14 12.04  bash  rsync 

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