Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

2
Ctrl-R逆方向検索の後に前方検索する単一のショートカット
私は常にCtrl+ を使用しますRが、非常に速く押しているので、私はしばしば私が望んでいるコマンドを過ぎてしまいます。 前方検索には、最初に端末を使用していなければCtrl+ Sを使用できます(私の場合はコンソールstty -ixonを~/.bashrc修正します)。 ただし、2回押す必要があります。1回i-searchはreverse-i-searchモードに入ってから入り、2回目は実際に後退するようです。 ショートカットを2回押す必要をなくす方法はありますか?

1
このBSD grepの結果がGNU grepと異なるのはなぜですか?
私のコンピューターはmacOS 10.12.3を実行しておりgrep、バージョン2.5.1-FreeBSDでシステムにインストールされたユーティリティを使用しています。 これらは、さまざまな正規表現をテストするときに得られる出力です。 しかし、GNU grep(バージョン2.25)を使用してこれらを実行すると、次の結果が得られます。 GNUのgrepは正しいように見えますが、BSDのgrepは間違っていますか?なぜ違うのですか?正規表現で行の先頭に続く必要があると指定されている場合、BSDのgrepが「a」と一致する理由がわかりません。

2
SSHがバックグラウンドプロセスを待たないのはなぜですか?
ssh -tバックグラウンドジョブが完了するのを待たないのはなぜですか? 例: ssh user@example 'sleep 2 &' sshは2秒後に戻るため、これは期待どおりに機能しますが、 ssh user@example -t 'sleep 2 &' sleep終了するのを待たずにすぐに戻ります。 誰もがこの理由を説明できますか?ssh -t戻る前にすべてのバックグラウンドプロセスが完了するのを待つ方法はありますか? 私のユースケースは、でスクリプトを開始することです。ssh -tこのスクリプトは、メインスクリプトの終了後も存続する必要があるいくつかのバックグラウンドジョブを開始します。でssh -t、これは、これまでは不可能です。

3
UNIX-ルートの下のすべてを誤って/ oldに移動した-Solaris 10
見出しにあるように、ルート(/)の下にあるルートとして重要なほぼすべてが、Solaris 10マシンでは/ oldに移動されました。だから今、一般的な障害のコマンドを実行するときにしようとしたときにはされているCannot find /usr/lib/ld.so.1(変更$PATHとも変えてみました$LD_LIBRARY_PATH、$LD_LIBRARY_PATH_64そして$LD_RUN_PATH、それらをエクスポートするが、それの何が本当のライブラリパスを変更するようです)。昨日は助けになるかもしれないものを見つけようとしましたが、Solaris 10のライブラリパスを実際に変更するものはないかもしれませんcrleが、それ以降は実行できませんCannot find /usr/lib/ld.so.1。 Linux用のルートまたは/ usr / binリカバリのヒントなどを多数見つけましたが、Solaris 10 / Unixに関するその情報は豊富ではなく、非常にまばらです。 実行することはできませんcp、ln、mkdirまたはmv以来Cannot find /usr/lib/ld.so.1。マシンへの他のセッションでログインすることもできません。使用できるセッションがまだ1つあり、そのウィンドウが停止していwhile true; do date; echo hej 1234567; doneます。SolarisブートCDとUSBドライブ上のLinux distを使用するソリューションについて説明しました。ハードディスクを別のラックに切り替えるソリューションについて説明しました。 /.../static/.../mvソリューションは、テストされていますが、それはうまくいきませんでした。 まだ使用可能なコマンドを使用することができる(以上のコマンドがあるかもしれません): 、echo、<、>、>>、|、。pwdcd なしでディレクトリまたはフォルダを作成する方法はありますmkdirか?使用するためにどのような方法がありecho、および>またはechoおよび>>復元するためには/usr/lib/ld.so.1?/usr/lib/ld.so.1コマンドが機能するためには、おそらくそれ以上を復元する必要があることを知っています。 読んでくれてありがとう、とても良い一日を過ごす=)


1
なぜchrootを使用する必要があるのですか
この質問chroot-jail-what-is-it-and-how-do-i-use-itは、何がどのように使用されるかを示していますchroot。 私が理解していないのは、なぜ使う必要があるかということですchroot。私はそれが何をするのか理解していますが、答えが「chrootセキュリティとして使用するべきではない」と指摘しているため、セキュリティメカニズムまたはサンドボックスではないという事実を考えると、使用する必要がある場合を考えることはできませんプログラムがシミュレートされたファイルシステムの外部のファイルを変更するのを防ぐための手段」。 特に、特定のプロセスがサブディレクトリをルートファイルシステムとしてマップする必要があるのはなぜですか?
13 chroot 

3
マンページのないインストール済みバイナリパッケージを見つける方法はありますか?
最近、https: //lintian.debian.org/tags/binary-without-manpage.htmlを見ましたが、欠落している14,000のマンページが表示されています。 これは、いくつかのバイナリパッケージ(ライブラリではない)にマンページがない可能性が高いことを意味します。マンページを持たないインストール済みバイナリパッケージ/アプリケーション(ライブラリではない)のリストを取得するにはどうすればよいですか?私はいくつかを知っていて、それに少し貢献し始めるかもしれません。

1
いくつのディレクトリをネストできますか?
私は興味があります、いくつのフォルダーをネストできますか、そしてなぜですか?制限はありますか? ネストが意味するのは、フォルダーがこの構造にあるときです。 folder |_ folder |_ folder |_ folder |_ ... これは好きではありません: folder |_ folder |_ folder |_ folder |_ ... 制限がある場合、オペレーティングシステムまたはファイルシステムによって設定されていますか?

6
実行前のコマンドバイナリの検証
bashスクリプトから実際に実行していることを確認する方法はありますか? (例えば:あなたのbashスクリプトは、いくつかのコマンドを呼び出していると言うtar、mail、scp、mysqldump)、あなたはそのことを確認して喜んでいるtar本当の、実際にあるtarことによって決定された、rootファイルおよび親ディレクトリの所有者と書き込み権限を持つ唯一の一つであるユーザー所有者/tmp/surprise/tarであるwww-dataかapache2所有者ではない人もいます。 確かに私PATHは環境について知っていますが、これを実行中のbashスクリプトからさらにチェックできるかどうか、そしてそうであれば、どのくらい正確に知りたいですか? 例:(擬似コード) tarfile=$(which tar) isroot=$(ls -l "$tarfile") | grep "root root" #and so on...

2
POSIXシェルの関数と変数の個別の名前空間
ダッシュでは、関数と変数は別々の名前空間にあるように見えます: fn(){ fn="hello world" } fn; echo "The value is $fn!" #prints: The value is hello world! fn; echo "The value is $fn!" #prints: The value is hello world! #the fn variable doesn't conflict with the fn function これはダッシュ固有の機能ですか、それともPOSIXの保証ですか?
13 shell  posix  dash 

8
単語による変数の内容の反転
だから変数を持っているなら VAR='10 20 30 40 50 60 70 80 90 100' エコーします echo "$VAR" 10 20 30 40 50 60 70 80 90 100 ただし、スクリプトをさらに下に移動すると、この変数の順序が逆になり、次のように表示されます。 echo "$VAR" | <code to reverse it> 100 90 80 70 60 50 40 30 20 10 revを使用してみましたが、文字通りすべてが逆転したため、 echo "$VAR" | rev 001 09 08 …
13 linux  bash  shell  variable 

2
ウェイランドのgnomeと仮想端末(またはssh)のbashの環境変数を設定します
Gnome 3.22はデフォルトでウェイランドを使用します。ウェイランドのGnomeは読み取りません~/.profile(~/.bash_profileまたは/etc/profile)。https://bugzilla.gnome.org/show_bug.cgi?id=736660を参照してください。 初期化ファイルを次のように設定しています。 .bash_profileソース以外は何もせず.profile、.bashrc .profilePATHおよびのような環境変数のみを設定しますLC_MESSAGES .bashrclessやなどのアプリケーションのbash固有の設定とエイリアス、環境変数を設定しますgrep。 効果(ウェイランドの前)は次のとおりでした。 私がグラフィカルにログインしたときに.profile読むと、環境変数のようなものだったPATHとLC_MESSAGESしました。ターミナルエミュレーター内でbashを開いたときに.bashrc読み取られました。 私が仮想端末でログインすると、.bash_profile読み取られ、次に読み取ら.profileれ.bashrcます。 sshを使用してログインすると、動作は仮想端末に似ています。 すべての場合で.profile、.bashrc読んで、私の環境がセットアップされました。 そのため、gnome 3.22はwaylandを使用し、waylandは読み取りを行いません.profile。上記のような効果が得られるように、初期化ファイルを設定するにはどうすればよいですか? 特定のファイル(など.profile)が読み取られることを主張していないことに注意してください。私が望むのは、自分の環境を賢明な方法でセットアップすることです。つまり、bash固有の設定をbash初期化ファイルに保持し、他の設定を他の初期化ファイルに保持したいということです。また、設定を別のファイルにコピーしないようにします。 私はArch Linuxを使用しています。すべてのディストリビューションに対する回答を歓迎します。回避策を提案するときは、副作用と長所と短所も説明してください。 2017年11月の更新:私が理解している限り、gnome開発者は、ログインシェルの構成ファイル(.profileおよび.bash_profilebashの場合)がログイン後に提供されることを人々が期待していることを認めています。テキストまたはグラフィカルログインに関係なく。そのため、上記の私のユースケースは再び機能します。 まだgnome開発者はログインシェルの起動を避けたいと考えています。彼らが行っている方向は、systemdから環境化されたものを使用することです。 https://in.waw.pl/~zbyszek/blog/environmentd.html すべてのログイン方法が環境に適応するまでには時間がかかるようです。

4
スクリプトを介してsftp接続でコマンドを実行する
これは非常に基本的な質問であり、bashの初心者であり、これを行う方法がわかりませんでした。グーグルは残念ながら私をどこにも連れて行ってくれませんでした。 私の目標は、sftpでサーバーに接続し、ファイルをアップロードしてから切断することです。 次のスクリプトがあります。 UpdateJar.sh #!/bin/bash sftp -oPort=23 kalenpw@184.155.136.254:/home/kalenpw/TestWorld/plugins #Change directory on server #cd /home/kalenpw/TestWorld/plugins #Upload file put /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar exit 問題は、このスクリプトがsftp接続を確立してから何もしないことです。接続で手動でexitと入力すると、putコマンドを実行しようとしますが、sftpセッションが閉じられているため、単にput:command not foundと表示されます。 これを適切に機能させるにはどうすればよいですか? ありがとう

3
`set -e`を指定したbashスクリプトは`…&&… `コマンドで停止しません
最初のエラーでbashスクリプトset -eを停止するために使用します。 次のコマンドを使用しない限り、すべて正常に動作し&&ます。 $ cat script set -e cd not_existing_dir && echo 123 echo "I'm running! =P" $ $ ./script ./script: line 2: cd: not_existing_dir: No such file or directory I'm running! =P $ と比べて: $ cat script set -e cd not_existing_dir echo "I'm running! =P" $ $ ./script ./script: …

3
Firefoxに別のALSAデバイスを使用するように指示する方法は?
オンボードのサウンドカードと、接続されたBluetoothヘッドセットがあります。Bluetoothデバイスを/etc/asound.conf次のように構成しました。 # cat /etc/asound.conf pcm.bluetooth { type bluetooth device 12:34:56:78:9a:bc profile "auto" } ctl.bluetooth { type bluetooth } デフォルトでは、すべてのサウンドにオンボードカードが使用されます(明らかに、デフォルトのオンボードカードはasound.confにリストする必要さえありません)。 アプリケーションでbluetooth alsaデバイスを使用する場合、次のように指定する必要があります。 mplayer -ao alsa:device=bluetooth file.mp3 それは私にとっては大丈夫です。ただし、ブラウザにbluetooth alsaデバイスも使用するように指示する方法が必要です。 --alsa-output-deviceコマンドラインオプションを使用してクロムを起動する方法を見つけました。 chromium --alsa-output-device=bluetooth firefoxを起動するための同様の方法が必要ですが、見つかりませんでした。 どのように私は変更することなく、私のブルートゥースALSAデバイスを使用するようにFirefoxのを伝えることができ/etc/asound.confたり~/.asoundrcするたびに? 更新: @lgeorgetのアドバイスに従いましたが、/etc/asound.conf今は次のようになっています。 pcm.!default { type plug slave.pcm { @func getenv vars [ ALSAPCM ] default "hw:0,0" } } …
13 audio  firefox  alsa  browser 

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