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

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

4
システム上のUbuntuのバージョンを.sh(bash)スクリプトでどのように確認できますか?
だから私はbash /実行可能ファイルを作成しようとしています、そしてそれはシステム上のUbuntuのバージョン番号を知る必要があります。オンラインで見つけた方法はすべてで構成されていますがlsb_release -r、これを変数に出力することはできません。 Ubuntuの現在のバージョンを取得してシェル実行可能ファイルの変数として保存する方法はありますか?

4
/ bin / shリンクを一時的に変更する
私は/bin/shBashである必要のあるソフトウェアを持っていますが、UbuntuのデフォルトはDashであり、それをデフォルトのままにしておきたいです。永久にBashに変更したくありません。 実行中のターミナルセッションに対してのみ変更する方法はありますか?したがって、このターミナルで実行されているプログラムは/bin/shbashにリンクされているように見えますが、システムの残りの部分はまだDashを認識していますか?または、ソフトウェアをだまして/bin/shBashとして認識させることはできますか? 私はこのソフトウェアを作成せず、/bin/bash代わりに使用するためにそれをハッキングすること/bin/shは本当にオプションではありません。
9 command-line  bash  sh 


1
realpathまたはreadlinkによって返された絶対パスをサニタイズまたはエスケープするにはどうすればよいですか?
realpathreadlink絶対パスを返します: +akiva@X230:~$ realpath ZannaIsAwesome /home/akiva/ZannaIsAwesome このようなパスは簡単に処理できます。ただし、このようなものにはいくつかの問題があります: 例えば: したがって、このような名前は、他のコマンドにフィードできるようにするために、無害化する必要があります。ユースケースは次のようなものです。 +a@X230:~/\e[92mM@r|< $hu+'|'|_e|\|\|0rth [`-_-"]$ bacon=$(realpath pullingATerdon) +a@X230:~$ vim $bacon 言うまでもなくvim $bacon、期待どおりに動作しません。 他のコマンドで機能するように、絶対パスをサニタイズするにはどうすればよいですか?


1
端末を開くたびに「404 ::コマンドが見つかりません」というメッセージを受け取り続ける
404:: command not foundターミナルを開くたびにメッセージが表示され続けることに気づきました。このメッセージが表示される前に、何をインストールしたか覚えていません。 bashのどのスタートアップファイルにも見つかりません。 $ grep 404 -H ~/.bashrc ~/.profile ~/.bash_profile ~/.bash.login \ ~/.bash_aliases /etc/bash.bashrc /etc/profile \ /etc/profile.d/* /etc/environment 2> /dev/null $ 私も走ったPS4='${BASH_SOURCE}:${LINENO} ' bash -lxe、あなたはここで見つけることができる完全な出力を見つけることができます。


4
正規表現を使用せずにcp / mvを使用して複数のファイルをコピー/移動する
いくつかのファイルといくつかのフォルダーを含むフォルダーがあるとします(ファイルはどのタイプでもかまいません)。そして、それらのファイルやフォルダの一部をmv/ cpコマンドを使用して移動/コピーしたいと思います。Ctrlキーを使用して選択し、ターミナルを使用して移動/コピーを行うのと同じように、それらのいくつかをランダムに選択できる方法はありますか?異なるタイプのファイルを選択したいので、ワイルドカードも正規表現も使用できません。それらの名前には類似性が少しあります。
9 command-line  bash  cp  mv 

4
ユーザーが開いた端末の数を検出する方法
私はUbuntuのを使用していますし、手動で変更することができますbashにシェルプロンプトの色を緑使用します export PS1="\e[0;32m[\u@\h \W]\$ \e[m" ただし、新しいターミナルまたはタブを開くたびに、シェルプロンプトの色が自動的に変更されるようにしたいと思います。基本的なtty TERMには16色があり、16個を超えるターミナルが開いている場合は色を回転しても問題ありません。解決策は、私が通じ接続したときに動作しますPutty、tmuxまたはscreen。 私の考えは.bashrc、ユーザーが開いた新しいターミナルセッションを検出し、グローバルカウンターをから\e[0;31m[に増やすシェルスクリプトを記述して、そこに配置すること\e[0;47m[です。ユーザーが開いた端末の数を検出するにはどうすればよいですか?

5
bashを使用してパス文字列の1つの要素を取得する
次のコマンドを実行して読み取るファイルパスを含むASCIIファイルがあります。 while read p; do echo $p; done < filelist.txt ファイルには、次のパターンのファイルパスが含まれています。 ./first/example1/path ./second/example1/path ./third/example2/path パス文字列の特定の部分(from /から/)を取得するにはどうすればよいですか。たとえば、次のような出力を取得する必要があります。 first second third そしてまた example1 example1 example2 正規表現とを使用してこれを行う方法は確かにありますが、sed私はそれに慣れていません。

2
shファイルの実行時に権限が拒否されました
私のminecraftサーバーコンソールで簡単に画面を開始するためにshファイルを使用しようとしています。このファイルにmc.shという名前を付けました。mc.shと同じディレクトリに、正常に動作する別のshファイルがあります。 mc.shの内容は次のとおりです。 screen -S minecraft java -Xms1024M -Xmx1024M -jar spigot.jar nogui 他のshファイルの内容は次のとおりです。 #!/bin/sh java -Xms512M -Xmx1024M -XX:MaxPermSize=128M -jar spigot.jar 私が得るエラーメッセージは-bash: ./mc.sh: Permission deniedです。の権限mc.shは-rw-rw-r-- 1

2
実際のコマンドで実行できるように、オートコンプリートするエイリアスの引数で[TAB]を機能させる方法
.bash_aliasesファイルに作成した多くのエイリアスがあり、それらは非常に便利なので、パッケージのすべての情報が必要な場合は、次のようにします。 allinfo software-center そしてそれは以下と同等です: apt-cache show software-center エイリアスが次のように設定されているため: alias allinfo='apt-cache show' しかし、これには1つの欠点があります。現在、実際のコマンドの代わりTABに使用allinfoすると、オートコンプリートできません。したがって、この欠点を克服allinfo software-ce[TAB]し、実際のコマンドで使用する場合と同じように機能するようにして、大きなタブスペースを作成するだけの方法があるのではないかと思いました。 使用していgnome-terminalます。 OS情報: No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 15.04 Release: 15.04 Codename: vivid パッケージ情報: gnome-terminal: Installed: 3.14.2-0ubuntu3 Candidate: 3.14.2-0ubuntu3 Version table: *** 3.14.2-0ubuntu3 0 500 http://gb.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages 100 /var/lib/dpkg/status

7
解像度のみを取得する1つのライナーffmpeg(またはその他)?
私はコマンドラインに精通していないので、うまくいけば、これはあまりにも愚かな質問ではありません。 実行した場合: ffmpeg -i videofile.avi 次のような出力が表示されます。 ffmpeg version git-2013-11-21-6a7980e Copyright (c) 2000-2013 the FFmpeg develop ers built on Nov 21 2013 12:06:32 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5) configuration: --prefix=/home/user/ffmpeg_build --extra-cflags=-I/home/user/ffmpeg_build/include --extra-ldflags=-L/home/user/ffmpeg_build/lib --b indir=/home/user/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable -libfdk- aac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-l ibx264 --enable- nonfree libavutil 52. 53.100 / …
9 bash  ffmpeg  regex  pipe 

2
出力を変数にリダイレクトしますか?
2つのコマンドからの出力を変数に送信することに興味があります。出力を画面に表示したくないので、スクリプト内の変数に割り当てて、もう一度使用できるようにします。 以下のコマンドを使用して、ディレクトリからファイルサイズを取得しています。 ls -l /var/spool | wc -c このコマンドは、ファイルサイズをバイト単位で取得し、出力を整数として表示します。この整数を好きな変数に割り当てて、後で別の変数と比較できるようにしたい これはうまくいかないようです: size = ls -l /var/spool | wc -c リダイレクトは機能しますか? このような.... ls -l /var/spool | wc -c > size どちらにしても、この数値出力を変数に割り当てて、画面に表示しないようにします。 どんな提案も大歓迎です!

4
デフォルトのエイリアス「アラート」の使用
デフォルトのエイリアスアラートはコマンド用です notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')" 実行alertすると、テキストAlertと端末アイコンが表示されます。のように1つのパラメータでそれを実行するとalert !!!!!、テキストアラートで通知されます!!!!! そして!!!!! 。 では、単純なnotify-sendコマンドと、notify-send、echo、history、tail、sedを使用するこの複雑なエイリアスの違いは何ですか? このエイリアスはどのような状況で役立ちますか、それともしゃれのために作成されただけですか(使用するようなもの sudo sudo sudo sudo sudo apt-get install Ubuntu 12.10を使用しています

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