Unix & Linux

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

2
ZSHでの魚のような引数補完検索
私は魚をいじり回していて、この便利な行動に気づきました 「」と入力wget -<tab><tab><tab>すると、インタラクティブメニューが表示されました。しかし、入力すると、引数自体の説明を検索しました。私はこれをzshで試してみましたが、このメニューに入力しても、インタラクティブなプロンプトに戻るだけでした。zshで同様の機能を実現する方法はありますか?

1
bashで独自のcp関数を作成する
割り当てについては、関数cp(コピー)と同じ基本機能を持つbash関数を巧みに書くように求められます。1つのファイルを別のファイルにコピーするだけなので、複数のファイルを新しいディレクトリにコピーする必要はありません。 私はbash言語に慣れていないため、プログラムが機能しない理由を理解できません。元の関数は、ファイルが既に存在する場合はファイルの上書きを要求するので、それを実装しようとしました。それは失敗します。 ファイルは複数行で失敗しているように見えますが、最も重要なのは、コピー先のファイルがすでに存在するかどうかを確認する状態です([-e "$2"])。それでも、その条件が満たされた場合にトリガーされるはずのメッセージ(ファイル名...)が表示されます。 誰かがこのファイルを修正するのを手伝ってくれませんか?おそらく私の言語の基本的な理解に役立つ洞察を提供していますか?コードは以下の通りです。 #!/bin/sh echo "file variable: $2" if [-e file]&> /dev/null then echo "The file name already exists, want to overwrite? (yes/no)" read | tr "[A-Z]" "[a-z]" if [$REPLY -eq "yes"] ; then rm "$2" echo $2 > "$2" exit 0 else exit 1 fi else cat …

4
デバッグ方法:tar:単一のゼロブロック
これをデバッグする方法は?この問題は、過去数日以内に突然現れました。Webサイトのすべてのバックアップが破損しています。 バックアップをそのままにしておけばtar問題はありませんが、tarが圧縮されるとすぐに、gzまたはxz解凍できなくなります。 空きディスクがたくさんあります Local disk space 2.68 TB total / 2.26 TB free / 432.46 GB used エラー tar: Skipping to next header[===============================> ] 39% ETA 0:01:14 tar: A lone zero block at 2291466===============================> ] 44% ETA 0:01:13 tar: Exiting with failure status due to previous errors 878MiB 0:00:58 [15.1MiB/s] …

1
非決定的グラフィックカードのデバイス名
私のシステムには3つのグラフィックカード、1つのradeonと2つのnvidiaが含まれています。 マルチシートセットアップを設定しようとしていますが、グラフィックカードの「デバイス名」が安定しておらず、ブートごとに変更されます。 例 ブート1 Radeonカード /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card1 NVIDIA 1カード /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card0 Nvidia 2カード /sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2 ブーツ2 Radeonカード /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card0 NVIDIA 1カード /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card1 Nvidia 2カード /sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2 等... この問題は、デバイスのシートへの割り当てがこれらのデバイス名に基づいているため、マルチシート構成を不安定にします(私はloginctlを使用します)。別の実際の問題は、これがカーネルレベルとXorgレベルの両方でグラフィックカードのコネクタ名を変更する(つまり、VGA-1がVGA-2になるなど)ため、xorg.confを介してモニター構成を実行したり、「 video = "カーネルオプション。これは、セットアップでEDIDのない古いcrtモニターを強制的に有効にするために必要です。 この「card0」「card1 ...」が非決定的であるのは正常ですか、バグまたは構成可能なもの(udevまたはそのようなもの)ですか? 編集: ユーザー@dirktがコメントで言ったように、systemdレベルではこれは非決定的であり、実際にはマルチシート構成自体は問題ありません。私の主な問題は、出力名の信頼性の低さです。カーネルレベルで「video = VGA-1:e」を指定して出力を強制的に有効にする必要があります。そして、私はxorgレベルで使用する必要があります Option "Monitor-VGA-1" "Monitor-x"。

5
効率的にマージ/ソート/ユニークな多数のテキストファイル
私は素朴なことを試しています: $ cat * | sort -u > /tmp/bla.txt これは失敗します: -bash: /bin/cat: Argument list too long したがって、(巨大な一時ファイルを作成する)のようなばかげた解決策を避けるために: $ find . -type f -exec cat {} >> /tmp/unsorted.txt \; $ cat /tmp/unsorted.txt | sort -u > /tmp/bla.txt 私は使用してファイルを1つずつ処理することができましたが(これにより、メモリ消費が削減され、ストリーミングメカニズムに近づくはずです)。 $ cat proc.sh #!/bin/sh old=/tmp/old.txt tmp=/tmp/tmp.txt cat $old "$1" | sort -u > …
8 shell  sort  uniq 

2
find / rm -iname '* phpmyadmin'がphpMyAdmin-Version-XYZ.zipを削除しないのはなぜですか?
私はこの次のコードを持っています: find ./ -iname '*phpmyadmin' -exec rm -rf {} \; これはと呼ばれるディレクトリが削除されますphpmyadminが、それはしませんというファイルを削除しますphpMyAdmin-Version-XYZ.zip を削除し-rfても削除されません(おそらく、-inameの2番目の問題が大文字と小文字の区別に影響を与えていないためです)。 単一のrm(ファイル、ディレクトリ、ソフトリンク)のiノードを削除する方法はありますか? を追加し-inameても効果がないのはなぜですか? 注:「inodeを削除する」という引数はで見つかりませんでしたman rm。
8 find  rm 


2
“ w”は、urandomで何をしますか?
> strace w 2>&1 | grep urandom read(4, "/usr/bin/grep\0urandom\0", 2047) = 22 > なぜ「w」は不規則である必要があるのですか?これを回避するには? 更新: > strace w 2>&1 | awk '/urandom/' read(4, "awk\0/urandom/\0", 2047) = 14 > ですから、urandomと関係があるのはフィルタリングですか? > strace who 2>&1 | grep urandom > では、なぜ「誰」が影響を受けないのでしょうか。
8 random  w 

1
USBデバイス(アクションカム)がスリープ状態にならないようにするにはどうすればよいですか?
アクションカムを持っています(iON Air Pro Lite WiFi)。SDカードを使用し、USBケーブルでPCに接続できます。WindowsとMacのみがサポートされています。ただし、USB経由で接続してオンにすると、カムはNautilusで32 GBボリューム(SDのサイズ)として表示されます。これにより、簡単なファイルを使用してカムの設定を編集し、最も重要なこととして、表示、コピー、削除を行うことができます実際のビデオファイル。それが私が必要なものすべてです。Windowsでも基本的には同じように機能します。 接続して電源を入れている間lsusb、カムは次のように表示されます。 Bus 003 Device 013: ID 4255:1000 GoPro 9FF2 [Digital Photo Display] 問題は、私のLinux(Debian 9)マシンに接続すると、わずか1〜10秒後にカムが再びオフになることです。ビデオファイルフォルダーに移動してファイルのコピーを開始すると、コピープロセスが機能している限り、カムはオンのままになります。ファイルがコピーされると、カムはしばらくすると電源が切れます。これは、Windowsマシンに接続されている場合は発生しません。 私の質問は、デバイスがオフにならないようにするにはどうすればよいですか? これがWindowsに接続しているとき、およびデバイスをビジー状態にしていないときに発生しない方法を見て、私は方法があるはずだと思います。しかし、どこから始めればいいのか本当に分かりません。私の考えは現在次のとおりです。 ドライバーの問題である可能性があります。私はドライバーについての知識がないので、誰かが私の手を握ったり、私を素晴らしい情報源に向けることができない限り、私はここからどうやって行くのかわかりません。 たぶん、一般的な方法でUSBデバイスをポーリングまたはpingする方法があり、それを存続させるにはそれで十分でしょう。もしそうなら、これはいくつかのコードで解決できるもののように聞こえます。私の現在の調査では、GET_STATUS標準デバイスリクエストにたどり着きましたが、それでうまくいくようには見えません(以下を参照)。 最悪の場合、デバイスとの間でダミーファイルを絶えずコピーする(またはデバイス上のファイルの名前を変更する/移動する)スクリプトは、おそらくトリックを実行するはずです。この特定のデバイスが接続されているときに自動実行する方法を見つける必要があります。このオプションは実現可能と思われますが、あまりクリーンではありません(結局のところ、読み取り/書き込みを繰り返すと、SDカードの寿命が短くなり、非アクティブな状態がしばらく続くと電源がオフになる可能性があるため、これらの操作は常に実行する必要があります)。 編集1:PyUSBを見つけGET_STATUS、2 msごとに(ctrl_transfer関数を介して)カメラにを送信する簡単なスクリプトを書きました。これにより、カムの電源がまったくオフになりませんでした。 編集2:私はまだ解決策を見つけていません。また、5つのケースのうちの1 つでは、ファイルをコピーしているときにもカムがオフになります。考えられる原因や解決策に関するアイデアを共有してください。

3
UbuntuでSetUIDビットが機能しない?
SetUIDビットが設定された実行可能ファイルが所有者として実行されているはずですが、実際には再現できません。以下を試しました。 $猫prepare.sh cp / bin / bash。 chown root.root bash chmod 4770 bash#確認済み $ sudo sh prepare.sh $ ./bash $ id -u 1000 $出口 ドル $猫test.c #include <stdio.h> #include <unistd.h> int main(){ printf( "%d、%d \ n"、getuid()、geteuid()); 0を返します。 } $ gcc -o test test.c $ chmod 4770 test#確認済み $ sudo chown …
8 setuid 

2
オプションの関数引数を検出(スカラー)
次のスクリプトについて考えてみましょう。 function alfa(bravo, charlie) { if (charlie) return "charlie good" else { return "charlie bad" } } BEGIN { print alfa(1, 1) print alfa(1, 0) print alfa(1, "") print alfa(1) } 結果: charlie good charlie bad charlie bad charlie bad Awkには、引数が提供されていないことを通知する方法がありますか?

1
アクセスできないファイルへのシンボリックリンクを作成できますか?
[ 免責事項:この質問には悪意はありません。学校のプロジェクトのln -sコマンドを理解しようとしています] たとえば、ホームフォルダのあるファイルシステムがあるとします/home/anna。/home/bobアクセスできないフォルダ、アクセスできないファイル、foo.txt ln -s /home/bob/foo.txtホームフォルダーで正常に実行できますか?可能であれば、アクセスできないリンクが(と同じ権限でfoo.txt)生成されると想定することは正しいですか? DIDにfoo.txtへのアクセスではなく、に対する読み取り権限がある場合はどうなり/home/bobますか? アクセスできた/home/bobが読めなかった逆の場合はfoo.txtどうですか?

5
コンマ区切りリストの最後のエントリを変更する
次のような巨大なテキストファイルがあります。 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,3 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,8 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,14 36,53,15596,0.58454577855,0.26119,2.24878677855,0.116147072052964,12 望ましい出力はこれです: 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-03 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-08 36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-14 36,53,15596,0.58454577855,0.26119,2.24878677855,0.116147072052964,MI-12 ここや他のコミュニティで他の関連する投稿を試しましたが、私が望むものを正確に得ることができませんでした。 更新 これは、興味深い答えがある質問(Unix / perlとバッチ/ powershellの両方のソリューションが必要でした)です。

1
「ld」と「ld.so」の違いは?
どちらも「リンカー」と呼ばれ、バイナリーをリンクするために使用されますが、それらが互いにどのように異なるのか本当にわかりません。誰か私にそれらの違いを教えてもらえますか?
8 linker  ld 

1
/ tmp内のシンボリックリンクの権限
私のマシンには2人のユーザーがいます:linuxliteとotheruser。 otheruser ファイルがあります: otheruser@linuxlite:~$ ls -l a -rw-rw-r-- 1 otheruser otheruser 6 Mar 31 12:47 a otheruser@linuxlite:~$ cat a hello linuxliteでファイルとシンボリックリンクを作成しました/tmp: otheruser@linuxlite:~$ ls -l /tmp/file /tmp/link -rw-rw-r-- 1 linuxlite linuxlite 3 Mar 31 12:49 /tmp/file lrwxrwxrwx 1 linuxlite linuxlite 17 Mar 31 12:49 /tmp/link -> /home/otheruser/a 現在、およびotheruserを読むことはできますが、彼は読むことができません。/tmp/file/home/otheruser/a/tmp/link otheruser@linuxlite:~$ cat /tmp/file …

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