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

他のBourne / POSIXシェルとは対照的に、GNUのBourne Again SHellに固有の質問。Unixシェル全般に関する質問については、代わりに/ shellタグを使用してください。

3
dircolors:色設定をグローバルに変更します
カラー出力を表示するls使用法を理解しdircolorsています。dircolorsファイル拡張子に関連付けられた色のデフォルトのデータベースがあり、コマンドで印刷できます dircolors --print-database man dir_colors私が読んで、システム全体のデータベースに配置する必要があります/etc/DIR_COLORS。しかし、このファイルは私のシステム(Debian)には存在しません。システム全体の色設定を変更するにはどうすればよいdircolorsですか?dircolors --print-databaseファイルが存在しない場合、コマンドはどこから設定を取得しますか。 ユーザーが~/.dircolors自分の設定でユーザー固有のファイルを持つことができることは承知していますが、これは私には適していません。なぜなら、すべてのユーザーの設定を変更する必要があるからです。 2番目の質問は、dircolorに8ビットカラーを使用できるかどうかです。私の端末はxterm-256colorです。
40 bash  ls  colors 

7
bashのみを使用して(curl、wget、perlなどを使用しない)ファイルをダウンロードする方法
ファイルをダウンロードするためのコマンドラインユーティリティを持たない最小限のヘッドレス* nixがあります(例:curl、wgetなど)。私にはbashしかありません。 ファイルをダウンロードするにはどうすればよいですか? 理想的には、幅広い* nixで機能するソリューションが欲しいです。
40 bash  command-line  web 

3
bash履歴から最後のN行を削除します
誤ってファイルをシェルに貼り付けると、大量のいナンセンスエントリがbash履歴に追加されます。これらのエントリを削除するクリーンな方法はありますか?明らかに、シェルを閉じて.bash_historyファイルを手動で編集できますが、現在のシェルの履歴を変更するために利用可能なAPIがあるのでしょうか?

2
bashの逆検索内をナビゲートする方法は?
Bashは、Ctrl+ を介して逆検索する機能を提供しますR。次に、コマンドの一部を入力すると、履歴から適切なエントリが表示されます。 これが私の歴史だと仮定します。 vim foo1 vim foo2 # I want to go here vim foo3 # this is where I land, how to go back? を検索しfooます。打撃Ctrl+ R再びと、次のフィッティングの検索エントリを示しています。多くの場合、私は速すぎて、意図した結果を過ぎてナビゲートvim foo3されて表示され、今すぐに戻りたいと思いvim foo2ます。 したがって、私の質問は、逆検索内でどのようにナビゲートするのですか?



5
実行されないソースとなるシェルスクリプトを定義する方法
ユーザーsourceが実行するのではなく、シェルスクリプトを定義しています。 たとえばファイル拡張子を使用して、これが事実であることをユーザーに示唆する従来の方法またはインテリジェントな方法はありますか? ファイル自体に書き込むことができるシェルコードはありますか?これにより、ソースの代わりにメッセージがエコーされ、実行されると終了するため、ユーザーがこの明らかな間違いを避けるのを助けることができますか?
40 bash  shell 

4
bashrcでローカル関数を作成するにはどうすればよいですか?
.bashrcには反復的なコードが含まれていたため、関数を使用して単純化しました do_stuff() { local version=$1 export FOO_${version}_X="17" export FOO_${version}_Y="42" } do_stuff '5.1' do_stuff '5.2' ただし、シェルを使用する場合、「do_stuff」名がスコープ内にあるため、タブ補完してその機能を実行できます(環境変数を台無しにする可能性があります)。.bashrc内でのみ「do_stuff」を表示する方法はありますか?
40 bash  bashrc 

4
バックグラウンドプロセスを起動し、終了時期を確認する
バックグラウンドでプロセスを起動し、bashスクリプト内で終了するタイミングを確認するにはどうすればよいですか?私のアイデアは次のようなスクリプトです。 launch backgroundprocess & while [ Process is running ];do echo "PROCESS IS RUNNING\r" done; echo "PROCESS TERMINATED"
40 bash 

6
ディレクトリ内のすべてのファイルの行数を人間が読める形式でどのようにリストしますか。
大きなcsvファイルを含むディレクトリとサブディレクトリのリストがあります。これらのファイルには約5億行あり、それぞれがレコードです。私が知りたいのですが 各ファイルの行数。 ディレクトリ内の行数。 合計何行 最も重要なことは、「人間が読める形式」でこれが必要なことです。12345678ではなく12,345,678 3つの方法でこれを行う方法を学ぶといいでしょう。プレーンバニラバッシュツール、awkなど、およびperl(またはpython)。
40 bash  awk  python  perl 

2
ファイルの「作成日」および「最終変更日」属性を別のファイルに変更する
マージキャップを使用して、15個のファイルからマージpcapファイルを作成しています。マージされたファイルについては、15個のファイルのうちの最初のファイルの名前に変更しました。しかし、「作成日」や「最終変更日」などのマージされたファイルの属性を最初の属性に変更したいと思います。とにかくこれを行うにはありますか? FILES_dcn=($(find $dir_dcn -maxdepth 1 -type f -name "*.pcap" -print0 | xargs -0 ls -lt | tail -15 | awk '{print $9}')) TAG1_dcn=$(basename "${FILES_dcn[14]}" | sed 's/.pcap//') mergecap -w "${dir_dcn}"/merge_dcn.pcap "${FILES_dcn[@]}" mv "${dir_dcn}"/merge_dcn.pcap "${dir_dcn}"/"${TAG1_dcn}".pcap 私は、sambaサーバー(Ubuntu)を介してマージされたファイルにアクセスしようとします。抽出機能がファイルに自動的にアクセスしてDフォルダーにアクセスできるようにします。ただし、マージされたファイルの作成日が変更されるため、抽出は失敗します。とにかくこれを修正する方法はありますか?
40 linux  bash  files  samba 


3
配列をコマンドの引数に変換しますか?
コマンドの「オプション」の配列があります。 my_array=(option1 option2 option3) 配列の値をオプションとして使用して、bashスクリプトでこのコマンドを呼び出します。したがって、次のようにcommand $(some magic here with my_array) "$1"なります。 command -option1 -option2 -option3 "$1" どうすればいいですか?出来ますか?
40 bash  parameter  array 

1
UbuntuとDebianは、sudo特権を持つユーザーの$ HOMEをどのように管理しますか?
私はmyhome.sh1行のみを含むbashスクリプトを持っています: echo $HOME スクリプトの所有者はユーザーです: $ ls -l myhome.sh -rw-rw-r-- 1 user user <date> <time> myhome.sh でUbuntuの16.04と17.10私が取得します: $ echo $HOME /home/user $ sudo echo $HOME /home/user $ bash myhome.sh /home/user $ sudo bash myhome.sh /home/user ではDebianのバスター/テスト Iを得ます: $ echo $HOME /home/user $ sudo echo $HOME /home/user $ bash myhome.sh /home/user # …
39 bash  debian  ubuntu  sudo  home 

4
nvmコマンドはbashスクリプトでは使用できません
nvm最終的にノードがインストールされるスクリプトを作成しようとしています。cURLで インストールnvmしました。.profileor .bashrcファイルの変更を確認し(両方とも)nvm、bashプロンプトでを入力すると、使用可能なオプションなどが表示されます。 したがって、nvmは機能します。手動でノードをインストールできますが、nvmコマンドをシェルスクリプトに入れるとすぐに: nano test.sh #!/bin/bash nvm そしてそれを実行します: chmod 755 test.sh ./test.sh 私は得る: ./test.sh: line 2: nvm: command not found それが見つからない場合nvm、私も考える必要はありません nvm ls-remote または nvm install ... Ubuntu 14.04をインストールしました。Bashは私のシェルです。

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