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

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


2
一般的なスクリプト用の/ usr / local / binの非sudo代替
私は/usr/local/bin、端末を使用してどこからでも実行できるように、一般的なスクリプトを配置することに慣れています。 たとえば、という名前のシェルスクリプトを作成し、1で実行可能にしchmod +x 1、に配置し、最初の行/usr/local/binに入力#!/bin/shしたスクリプト内にコマンドを入力します。それ以降は、非常に便利に使用でき、入力することですばやく実行できます 1Enter ターミナルで、任意のフォルダ内から。 私の問題は、現在できないコンピューターで作業しており、sudoそれを取得することも期待できないため、スクリプトをに配置できないこと/usr/local/binです。 私のオプションは何ですか?同じ「どこからでも実行」機能を備えた別のパスはありsudoますか? この投稿に対する受け入れられた答えは言う ユーザースコープのスクリプトの場合、ホームディレクトリでbin /を使用します。 これを試しましたがbin、ホームディレクトリにフォルダがなく、作成したときに、どこからでもスクリプトを実行できませんでした。 Ubuntu 12.04 LTSで実行しています。

3
入力を削除して最後のスラッシュに戻す
私は非常に頻繁にサーバー上のいくつかのファイル間を飛び回っています。次のコマンド例を順に実行します。 nano /web/site/path/to/file /web/site/script.py nano /web/site/path/to/anotherFile nano /web/site/path/to/yetAnotherFile /web/site/script.py nano /web/site/path/to/etc 1から行くには、nano次のI現在のプレスにコマンドUpやBackspaceパスの最後のセグメントを交換します。これに関する問題は、私が本当に、本当に怠け者だということです。 次のいずれかを実行できるキーボードショートカット(またはBashism)がありますか? 最後に使用されたパスに置き換えられます(最後に余分なビットがあります) 現在の行を削除して(例えばを押した後Up)最後に戻る/

1
grepでファイル名を省略します
複数のファイルから文字列を取得していますが、1つの望ましくない副作用は、出力の前にあるファイル名です。grepのみを使用してファイル名の出力を抑制するにはどうすればよいですか? $ grep -i lp lpNet* lpNet:This was printed via the internet using the lp command. lpNet:I believe lp doesnt care what the device is. lpNet1:This was printed via the internet using the lp command. lpNet1:I believe lp doesnt care what the device is. lpNet2:This was printed via the internet …
16 command-line  bash  grep  cat 

2
複数のタブでターミナルを開き、アプリケーションを実行します
Linuxシェルスクリプトの初心者です。複数のタブでターミナルを開くシェルスクリプトを書きたいです。各タブでrtspクライアントアプリを実行する必要があります。 このため、私はこのフォーラムでここで質問を行って、次のようなコードを作成しようとしましたが、 tab="--tab-with-profile=Default -e " cmd="java RunRTSPClient" for i in 1 2 3 4 5 do # foo="$foo $tab $cmd" done gnome-terminal $foo exit 0 これは実行中で、タブでターミナルウィンドウを開きますが、突然閉じます。エラーが発生していません。

3
コマンドを実行すると、Ubuntuサーバーで「メモリを割り当てることができません」が返されます
Ubuntu 14.04を使用しています。最近、sudo特権を持つユーザーでSSH経由でログインすると、実行するすべてのコマンドで「メモリを割り当てられません」というエラーが発生します。コンソールで試したものをいくつか紹介します myuser@mymachine:~$ whoami -bash: fork: Cannot allocate memory myuser@mymachine:~$ uname -a -bash: fork: Cannot allocate memory sudo reboot now上記のエラーが発生した場合でも、インスタンスのロックを解除できる他の方法がわかりません。それが重要な場合、ホストはDigitalOceanです。 編集:ここで与えられた答え/提案ごとに「無料」の出力です myuser@mymachine:~$ free -bash: fork: Cannot allocate memory

4
ルートとして機能する場合のbashプロンプトの動作の変更
クリックする前に、これは典型的な「bashプロンプトに色を付けるにはどうすればよいか」という質問ではありません。私はすでにbashプロンプトを次のようにカスタマイズしています: [user @ host]----[$(pwd)] $ 〜/ .bashrcファイルに以下を追加することで、括弧内のすべてが水色で、他のすべて($を含む)が黒になります # Turn the prompt symbol red if the user is root if [ $(id -u) -eq 0 ]; then # you are root, make the prompt red PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m " else PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ " fi 目標は、「sudo su」を使用したときに変更される唯一のものが、黒の$が赤の#に変更されるようにすることです。/etc/bash.bashrcと/ etc / profileを調べてコメントアウトする行があるかどうかを確認しましたが、debian_chrootについてはわからないことがたくさんあります。何かを台無しにするために。どうすれば自分のやりたいことを達成できますか? PSこれは、プロンプトをルートとして表示するものです …

6
tail:inotifyは使用できません。ポーリングに戻ります:開いているファイルが多すぎます
しようとするtail -f catalina.outと、エラーが発生します: tail: inotify cannot be used, reverting to polling: Too many open files 私はこの投稿で答えを試しました: 開いているファイルが多すぎます-犯人を見つける方法 lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head 上記のコマンドを実行すると、出力は 17 6115 13 6413 10 6417 10 6415 9 6418 9 6416 9 6414 …
16 bash  apache2  tomcat  sshd  tail 

4
シェルをzshからbashに変更する
私のWebサーバーは、zshシェルを使用している誰かによって改ざんされました。bashシェルはUbuntuとOS X(私が使用する2つの主要なオペレーティングシステム)に付属しているデフォルトであるため、bashシェルを使用する方が快適です。しかし、この質問はUbuntuサーバーに焦点を当てています。このWebサーバーで実行している4つのWebサイトがあり、byobuを使用し、tmuxを使用し、rails、node.js、apache、いくつかのデーモンを使用します。現在のルートシェルをzshからbashに切り替えた場合、この切り替えによって悪影響が生じる可能性はありますか?たとえば、親プロセス(シェル)が切り替えられたため、プロセスは強制終了されますか?
16 command-line  bash  zsh 

2
誰もがワイルドカードを使用したsudo lsが機能しない理由を説明できますか?
$ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/access* ls: cannot access /sites/servers/server_instance/logs/access*: No such file or directory $ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/ total 594812 -rwxrwxrwx 1 abc abc 45 Mar 21 12:42 old.log -rwxrwxrwx 1 abc abc 304537970 Mar 24 12:45 console.log -rwxrwxrwx 1 abc abc 304537970 Mar 24 …

4
空のサブフォルダーを削除し、親フォルダーを保持します
使用するとき find /home/user/parentdir -type d -empty -delete 空のサブフォルダーを再帰的に探して/home/user/parentdir削除します。しかし、/home/user/parentdirも空の場合、parentdirフォルダも削除されますが、これは私にとって望ましくありません。 これparentdirをrsyncいくつかのファイルに保存して、バックアップまたはクラウドに保存したい。処理後、空のフォルダーを削除する必要がありますが、parentdir毎回再作成するのは非生産的です。 維持する提案はありparentdirますか?私は.nocopyその中にファイルを作成して、から除外することを考えましたrsyncが、やり過ぎのようです。もっとエレガントな方法はありますか?

3
bashスクリプトで2つのcdコマンドを使用して2番目のコマンドを実行しないのはなぜですか?
一連のディレクトリを作成し、選択したディレクトリにプロジェクトを複製するbashスクリプトを作成しました。 そのためには、cd各ディレクトリ(project 1およびproject 2)にアクセスする必要がありますが、スクリプトはcd2番目のディレクトリにもコマンドを実行しません。 代わりcdに、project2ディレクトリでのクローン作成後に停止します。なぜcd_project1次のコードの関数を呼び出さないのですか? #!/bin/bash #Get the current user name function my_user_name() { current_user=$USER echo " Current user is $current_user" } #Creating useful directories function create_useful_directories() { if [[ ! -d "$scratch" ]]; then echo "creating relevant directory" mkdir -p /home/"$current_user"/Downloads/scratch/"$current_user"/project1/project2 else echo "scratch directory already exists" : fi …

3
bashスクリプトで$ 1や$ 2などの特定の入力変数を省略しながら$ *を使用するにはどうすればよいですか?
例えば、 elif [[ $append = $1 ]] then touch ~/directory/"$2".txt echo "$variable_in_question" >> ~/directory/"$2".txt に続くすべての入力を含むテキストファイルを作成するか、すべての入力に続く"$2"既存のテキストファイルを追加する"$2"には"$variable_in_question"、4行目の代わりに何を使用しますか? 私は基本的に欲しい"$*"が、とを省略"$1"し"$2"ます。

1
端末入力が正しく折り返されない、またはまったく折り返されない
しばらくの間、私はすべての端末でこの永続的な問題を抱えていました。両方の使用するgnomeのデフォルトとtildaから、すぐに旋回を与えたものまで、入力が必要なときに独自の行の先頭を上書きしますラップし、次の行でのみラップします。 Ctrl-Aを押して行の先頭に戻ると、代わりに、最初の入力行の前の行のどこかに戻りますが、そこからの入力は非常に奇妙になります。 これは非常に悪い説明であり、視覚化が難しいため、次のようになります。 誰がこれが何であるか知っていますか?これは特定の状況下でのみ発生するものではなく、すべてのターミナルエミュレータのすべてのセッションの開始から終了まで常に存在する永続的なものです。 の出力printf "%s\n" "$PS1" "$COLUMNS": leod:~$ printf "%s\n" "$PS1" "$COLUMNS" \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 80 の出力stty -a: leod:~$ stty -a speed 38400 baud; rows 11; columns 140; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 …

3
bashスクリプトはどこに置くべきですか
私は、定期的にやることのために一緒にまとめた非常にシンプルなbashスクリプトをいくつか持っています。その1つは、バックアップタスクを実行するために複製を実行することです。if .. thenステートメントの単なる束のような賢いものは何もありません。これはsudoとして実行する必要があるため、スクリプトを/ usr / bin(またはPATHの他の場所)に置き、root.rootにchownし、700にchmodするのがベストプラクティスですか?
15 bash  scripts  sudo 

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