Unix & Linux

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

2
bashの二重引用符はどのように一致(ペア)しますか?
を使用していGNU bash 4.3.48ます。単一のドル記号のみが異なる次の2つのコマンドを検討してください。 コマンド1: echo "(echo " * ")" コマンド2: echo "$(echo " * ")" それらの出力は、それぞれ (echo test.txt ppcg.sh ) そして * したがって、最初のケースで*は明らかにがグロブされます。つまり、最初の引用符は2番目と一緒にペアを形成し、3番目と4番目は別のペアを形成します。 2番目のケースで*はがグロブされず、出力にちょうど2つの余分なスペースがあります。1つはアスタリスクの前、もう1つは後です。つまり、2番目の引用符は3番目の引用符に、最初の引用符は4番目に続きます。 $()引用符が次の引用符と一致せず、代わりにネストされているという構造以外のケースはありますか?この動作は適切に文書化されていますか?はいの場合、対応する文書はどこにありますか

3
古いLinuxカーネルがプリエンプティブでない理由は何ですか?
最初のLinux開発者は、なぜプリエンプティブでないカーネルの実装を選択したのですか?同期を保存するためですか? 私の知る限り、Linuxは90年代前半に開発されました。PCには単一のプロセッサが搭載されていました。そのようなPCにおいて、プリエンプティブでないカーネルはどのような利点がありますか?しかし、マルチコアプロセッサによって利点が減るのはなぜですか?

3
頭が余分なキャラクターを食べる
次のシェルコマンドは、入力ストリームの奇数行のみを出力するものと想定されていました。 echo -e "aaa\nbbb\nccc\nddd\n" | (while true; do head -n 1; head -n 1 >/dev/null; done) ただし、代わりに最初の行を出力しますaaa。 -c(--bytes)オプションを使用した場合、同じことは起こりません。 echo 12345678901234567890 | (while true; do head -c 5; head -c 5 >/dev/null; done) このコマンド1234512345は期待どおりに出力します。ただし、これはユーティリティのcoreutils実装でのみ機能しheadます。busyboxのの出力がちょうどあるので、実装はまだ、余分な文字を食べます12345。 この特定の実装方法は、最適化のために行われていると思います。行の終わりがわからないため、読む必要がある文字数がわかりません。入力ストリームから余分な文字を消費しない唯一の方法は、バイト単位でストリームを読み取ることです。ただし、一度に1バイトずつストリームから読み取るのは遅い場合があります。したがってhead、入力ストリームを十分な大きさのバッファに読み込んでから、そのバッファ内の行をカウントすると思います。 --bytesオプションが使用される場合にも同じことは言えません。この場合、読み取る必要があるバイト数がわかります。したがって、このバイト数を正確に読み取ることができますが、それ以上はできません。corelibsの実装は、この機会を使用しますが、busyboxのの 1にはない、それはまだバッファに必要以上のバイトを読み取ります。おそらく実装を簡素化するために行われます。 質問です。headユーティリティが入力ストリームから要求されたより多くの文字を消費することは正しいですか?Unixユーティリティには何らかの標準がありますか?そして、もしあれば、この動作を指定しますか? PS を押しCtrl+Cて上記のコマンドを停止する必要があります。Unixユーティリティは、以降の読み取りで失敗しませんEOF。押したくない場合は、より複雑なコマンドを使用できます。 echo 12345678901234567890 | (while true; do head -c 5; head -c …

2
cpは。(ドット)または..(ドットドット)はソースディレクトリです
この回答は、隠しファイルを含むすべてのファイルsrcをディレクトリからディレクトリにコピーできることを示していますdest: mkdir dest cp -r src/. dest これが実際に機能する理由についての答えやコメントには説明がなく、これに関するドキュメントも見つけられないようです。 私はいくつかのことを試しました。まず、通常の場合: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src dest $ ls -A dest dest_file src そして、/.最後に: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src/. dest $ ls -A dest …

2
パスで最初に見つかった実行可能ファイルはどのような状況で使用されませんか
osxでzsh(homebrewでインストールされた5.4.2_1)で、パス内で最初に実行可能ファイルが使用されないという奇妙な動作があります。 シナリオは次のとおりです。 echo $PATH 戻り値: /usr/local/Cellar/zplug/HEAD-9fdb388/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 醸造は両方にあります /usr/local/Cellar/zplug/HEAD-9fdb388/bin そして usr/local/bin/brew これはwhich -a brewを実行することで確認されます: /usr/local/Cellar/zplug/HEAD-9fdb388/bin/brew /usr/local/bin/brew しかし、どの醸造を実行すると、それが返されます: /usr/local/bin/brew そしてbrewでは/usr/local/bin/brewなく/usr/local/Cellar/zplug/HEAD-9fdb388/bin/brew brewがパスの初期にある場合、これはどのように発生しますか? 感謝します。
15 zsh  path 

8
配列要素がすべてbashで等しいかどうかをテストするにはどうすればよいですか?
次の配列は、各Linuxマシンのディスク数を表しています 各単一アレイには、Linuxマシン上のディスクの数が含まれます。 echo ${ARRAY_DISK_Quantity[*]} 4 4 4 4 2 4 4 4 すべての配列の値が等しいことを識別する簡単な方法は何ですか? 良い状態: 4 4 4 4 4 4 4 4 悪い状態: 4 4 4 4 4 4 2 4 悪い状態: 6 6 6 6 6 6 6 6 6 6 2 6 2
15 bash  shell-script  awk  array 

3
sshを介したコマンドでtrueとORする
pkill -fssh経由でリモートで実行しようとして、可能なエラーコードを破棄しようとすると(プロセスが見つからない場合でもスクリプトの残りの部分を続行するため)、|| true期待どおりに動作しません。 $ pkill asdf || true $ echo $? 0 $ pkill -f asdf || true $ echo $? 0 $ ssh pi@10.20.0.10 "pkill asdf || true" $ echo $? 0 $ ssh pi@10.20.0.10 "pkill -f asdf || true" 255 引用符で囲まれたコマンドではなく255を返すのはsshだと思いますが、なぜですか?
15 shell  ssh  kill 

1
Fedoraの2つのパッケージ間の循環依存関係をどうしますか?
私はFedoraを初めて使い、最近Fedora 26 OSをインストールしました。私はそれを使用して無線LANに接続しようとしています。YouTubeビデオBroadcomのインストールに従って、Broadcomドライバーをインストールしようとしました。必要だと言うコマンドを実行したときに、broadcom-wl-6.30.223.271-2.fc26.noarch.rpmのrpmファイルをダウンロードしました。rpm -ivh broadcom-wl-6.30.223.271-2.fc26.noarch.rpmwl-kmod >= 6.30.223.271 グーグルで検索したところ、パッケージakmod-wl-6.30.223.271-13.fc26.x86_64.rpmであり、インストールしようとするとwl-kmod-common >= 6.30.223.271必要であることがわかりました。グーグルで検索したところ、パッケージbroadcom-wl-6.30.223.271-2.fc26.noarch.rpmであることがわかりました。お互いを必要とするため、デッドロックのようです。 broadcom-wl-要件としてwl-kmod(akmod-wl)があります akmod-wl-要件としてwl-kmod-common(broadcom-wl)があります 私は2日間これに打たれました。この点に関する提案は役立ちます。
15 fedora  wifi  rpm  broadcom 

3
Bash、パスの一部として常に$ PWDをチェックしますか?
背景:Linuxのバックグラウンドを持っていない同僚の1人が、./いくつかのコマンドの前に使用することを尋ねましたが、他のコマンドではありませんPATH。彼の反応は、それは愚かであり、./コマンドの前に入力する必要がないことだけでした。 質問:$PWD常に最初の項目になるようにシェルの動作を簡単に変更する方法はありPATHますか?
15 shell  usability 

1
LD_LIBRARY_PATH変数が環境にないのは正常ですか?
偶然にも、私のDebian JessieにはLD_LIBRARY_PATH変数がありません(正確にprintenv | grep LDは、リンカに関連するものは何も表示されず、何echo "$LD_LIBRARY_PATH"も表示されません)。 これは、xターミナルエミュレータ(setgidによりクリアされる可能性があります)および基本ターミナル(Ctrl+Alt+F1)の場合です。 私はそれLD_LIBRARY_PATH が悪いと思われるかもしれないので、Debianはそれをどういうわけかブロックするかもしれませんが、その一方で/etc/ld.so.conf.d/、に追加されるディレクトリを含むいくつかのファイルがありますLD_LIBRARY_PATH。私のrcファイル(私が知っている)はどれも混乱しませんLD_LIBRARY_PATH。 LD_LIBRARY_PATH変数が表示されないのはなぜですか?

3
Ubuntu 16.04-ログイン開始ページでGUIがフリーズする
ログイン画面で何も入力できません。ページが表示された直後にフリーズします。ログインフォーム内のカーソルが約10回点滅してから停止します。マウスを動かしたり、キーボードを使用したりできません。 すでにセキュアモードに入り、ルートシェルを介して更新、アップグレード、dist-upgradeをトリガーしましたが、違いはありませんでした。
15 ubuntu  login  gui  freeze 

5
ソースコードなしでプログラムの引数を非表示にする
実行中のプログラムに対する機密性の高い引数を非表示にする必要がありますが、ソースコードにアクセスできません。また、共有サーバーでこれを実行しているので、hidepidsudo特権がないため、次のようなものは使用できません。 ここに私が試したいくつかのものがあります: export SECRET=[my arguments]に続いてを呼び出しますが./program $SECRET、これは役に立たないようです。 ./program `cat secret.txt`どこsecret.txtに私の議論が含まれていますが、全能者psは私の秘密を嗅ぎ分けることができます。 管理者の介入を必要としない私の引数を隠す他の方法はありますか?
15 linux  process  ps  arguments 


3
bashはパラメーター展開で後方参照をサポートしますか?
私が持っているという名前の変数descrの文字列を含むことができBlah: -> r1-ae0-2 / [123]、-> s7-Gi0-0-1:1-US / Fooなど私が取得したい-> r1-ae0-2、-> s7-Gi0-0-1:1-US文字列から一部を。現時点ではdescr=$(grep -oP '\->\s*\S+' <<< "$descr"これに使用しています。これを行うためのより良い方法はありますか?パラメータ拡張でこれを行うことも可能ですか?


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