Unix & Linux

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

3
apt-get build-depがソースパッケージを見つけることができません
私はすでにこのガイドに従って、Ubuntu 12.04でマウスの中ボタンの貼り付けを無効にしました。 魔法のように機能します。 今、私はLinux Mint 17で同じことを達成しようとしています。 sudo apt-get build-dep libgtk2.0-0 次の出力が得られます。 Reading package lists... Done Building dependency tree Reading state information... Done Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0' E: Unable to find a source package for gtk+2.0 私にとっては、apt-getは何らかの形で「解決」'libgtk2.0-0'しているように見えます'gtk+2.0'が、そのような名前のパッケージは見つかりません。 編集:プログラムをコンパイルできるようになりました(私の答えをご覧ください)が、Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'どういう意味なのかまだわかりません 。これについての洞察はありがたいです、ありがとう!
16 apt  compiling 

3
マウントはudevによって呼び出されたときに実行されません
USBフラッシュドライブをマウントおよびアンマウントするために、いくつかのudevルールを作成しようとしました。現時点のルールは非常に単純です。 ACTION=="add",KERNEL=="sd[b-z]",RUN+="/root/scripts/plug_flash_drive.sh %k" ACTION=="remove",KERNEL=="sd[b-z]",RUN+="/root/scripts/unplug_flash_drive.sh %k" plug_flash_drive.shも非常に簡単です。 device_name=$1 mount_options="umask=000,utf8" if [ ! -e "/media/$device_name" ]; then mkdir "/media/$device_name" fi sleep 1 /usr/bin/mount "/dev/$device_name" "/media/$device_name" -o "$mount_options" unplug_flash_drive.sh: device_name=$1 umount "/dev/$device_name" rmdir "/media/$device_name" 私はそれを確認できるようにいくつかのテストを行いました: 接続すると、フラッシュドライブが検出されます。ファイルは/ devに作成されます plug_flash_drive.shはudevによって呼び出されます スクリプトのmkdir部分が機能する ただし、スクリプトの「マウント」部分が実行されていないようで、ドライブがマウントされていません コマンドラインでスクリプトを呼び出すと、完全に機能します。 誰もudevによって呼び出されたときにマウントが実行されない理由を知っていますか? EDIT 28/08/14:スクリプトの最後に「grep -q / proc / mounts && echo success || …
16 mount  udev  usb-drive 

5
重複ファイルを見つけて、それらをシンボリックリンクに置き換えます
特定のディレクトリ内で重複ファイル(名前が異なる場合でも)をチェックし、それらを最初の出現を指すシンボリックリンクに置き換える方法を見つけようとしています。私は試しましたfdupesが、それらの重複をリストするだけです。 それがコンテキストです:私は自分の好みに合わせてアイコンテーマをカスタマイズしていますが、親フォルダー内の名前や場所が異なっていても、さまざまな目的に使用されていても、多くのアイコンは基本的に同じであることがわかりました画像。1つだけが本当に必要な場合、同じ修正を20回または30回適用することは冗長であるため、1つの画像のみを保持し、他のすべてをシンボリックリンクしたいと思います。 例として、fdupes -r ./ディレクトリ内で実行testdirすると、次の結果が返される場合があります。 ./file1.png ./file2.png ./subdir1/anotherfile.png ./subdir1/subdir2/yetanotherfile.png この出力を考えるfile1.pngと、元のファイル名をすべて維持しながら、ファイルのみを保持し、他のすべてを削除し、それらを指すシンボリックリンクに置き換えたいと思います。そのfile2.pngため、その名前は保持file1.pngされますが、複製ではなくへのリンクになります。 これらのリンクは絶対パスを指すのではなく、親testdirディレクトリからの相対パスである必要があります。すなわち、ではなくをyetanotherfile.png指すよう../../file1.pngになります/home/testuser/.icons/testdir/file1.png GUIとCLIが関係するソリューションの両方に興味があります。使用することは必須ではありませんfdupesが、これは私が知っているツールであるため、引用していますが、他のツールを使用するソリューションも受け入れています。 これらすべてを処理するbashスクリプトを作成するのはそれほど難しくないはずですが、自分で作成する方法を見つけるのに十分な専門家ではありません。

4
コマンドの出力をリングバッファに保存する
stdoutで大量の出力を生成する長時間実行コマンドがあります。たとえば、最後の3日間または最後のギビバイト(中央の線を切断しない)のみを保持したいのですが、可能であれば、20 MiB以下のファイルチャンクに保持します。各ファイルチャンクには、数値の接尾辞またはタイムスタンプが付けられています。 何かのようなもの: my-cmd | magic-command --output-file-template=my-cmd-%t \ --keep-bytes=1G \ --keep-time=3d \ --max-chunk-size=20M \ --compress=xz 書くだろう: my-cmd-2014-09-05T10:04:23Z 20Mに達すると、圧縮して新しいファイルを開くなど、しばらくすると、最も古いファイルの削除が開始されます。 そのようなコマンドは存在しますか? 私はlogrotate他のアプリケーションによって書き込まれたファイルを管理する能力を知っていますが、cronジョブのセットアップ、ルールの指定、プロセスの一時停止などを必要としない、よりシンプルなものを探しています。

4
特定のネットワーク名前空間のみのOpenVPNを介してすべてのトラフィックをフィードする
特定のプロセスとの間のすべてのトラフィックとトラフィックのみがVPNを通過するように、VPNを設定しようとしています(OpenVPNを使用)。他のプロセスは引き続き物​​理デバイスを直接使用する必要があります。Linuxでこれを行う方法は、ネットワーク名前空間を使用することだと理解しています。 OpenVPNを通常どおりに使用する(つまり、クライアントからのすべてのトラフィックをVPNに送り込む)場合、正常に機能します。具体的には、次のようにOpenVPNを起動します。 # openvpn --config destination.ovpn --auth-user-pass credentials.txt (destination.ovpnの編集バージョンは、この質問の最後にあります。) トンネルデバイスを名前空間に制限するスクリプトを作成する次のステップに固執しています。私が試してみました: トンネルデバイスを名前空間に直接配置する # ip netns add tns0 # ip link set dev tun0 netns tns0 # ip netns exec tns0 ( ... commands to bring up tun0 as usual ... ) これらのコマンドは正常に実行されますが、ネームスペース内で生成されたトラフィック(たとえば、ip netns exec tns0 traceroute -n 8.8.8.8)はブラックホールに陥ります。 「仮想イーサネット(veth)インターフェースのみをネットワーク名前空間に割り当てることができる(まだ)ことを前提に(これは、真に不当に不必要なAPI制限に対して今年の賞を受賞)、vethペアとブリッジを作成し、名前空間にvethペアの一方の端を配置します。これは、床にトラフィックを落とすことさえしません:それは、私が橋にトンネルを入れることを許しません![編集:これは、タップデバイスのみをブリッジに配置できるためです。ネットワーク名前空間に任意のデバイスを配置できないこととは異なり、実際には理にかなっています。ブリッジとはイーサネット層の概念です。残念ながら、私のVPNプロバイダーはタップモードでOpenVPNをサポートしていないため、回避策が必要です。] # ip …

5
文字列内の特殊文字をエスケープする方法は?
$fileたとえば、ファイル名の値を保持していると仮定しますDr' A.tif。bashプログラミングで、特殊文字$fileを削除せずに、単一引用符やその他の特殊文字をエスケープするにはどうすればよいですか? 2014年7月9日に更新 @Gillesからのリクエストとして、次のコードスニペットを処理できませんDr' A.tif。 files=$(find /path/ -maxdepth 1 -name "*.[Pp][Dd][Ff]" -o -name "*.[Tt][Ii][Ff]") echo "${files}" > ${TEMP_FILE} while read file do newfile=$(echo "${file}" | sed 's, ,\\ ,g') ## line 1 done < ${TEMP_FILE} 私が試した後@Patrickからの回答を上line 1、私のために動作するようです。しかし、のようなファイルがある場合Dr\^s A.tif、printfコマンドは役に立たないようですDr\^s\ A.tif。次のようにコンソールで手動で試してみると: printf "%q" "Dr\^s A.tif" この出力があります: Dr\\\^s\ A.tif これを処理する方法はありますか?
16 bash 

3
名前付きパイプからの連続読み取り(catまたはtail -f)
rsyslog特定のログイベントを記録するように設定しました/dev/xconsole: *.*;cron.!=info;mail.!=info |/dev/xconsole /dev/xconsole名前付きパイプ(fifo)です。ログに記録されているものを確認したい場合は、できますcat /dev/xconsole。コマンドcat /dev/xconsoleがファイルの読み取り後に終了せず、代わりにとして機能することを見て驚いていますtail -f。つまり、2つのコマンドは同じように動作します。 cat /dev/xconsole tail -f /dev/xconsole 誰かがその理由を説明してもらえますか? 2つの間に違いはありますか?
16 pipe  cat  tail  fifo 

1
UbuntuのDHCPサーバーからDNSを無視する
ファイルに静的を設定DNSし/etc/resolvconf/resolv.conf.d/baseます: nameserver 8.8.8.8 nameserver 8.8.4.4 しかし、私のPCはまだDHCPからDNSを取得しています、これは私の/etc/resolv.confです: nameserver 192.168.100.2 nameserver 8.8.8.8 nameserver 8.8.4.4 サーバーDNSから取得したものを無視する方法はDHCP?
16 ubuntu 

3
プロセスとその子の合計リソース(メモリ)を制限する方法
単一のプロセスのリソースを制限することについては、多くの質問と回答があります。たとえば、RLIMIT_ASを使用して、などのVIRTと見なすことができるプロセスによって割り当てられる最大メモリを制限できますtop。もっとここで例えばトピックに関する特定のプロセスがUNIXで使用できるメモリの量を制限する方法はありますか? setrlimit(2) ドキュメントは言う: fork(2)を介して作成された子プロセスは、その親のリソース制限を継承します。リソース制限はexecve(2)全体で保持されます。 次のように理解する必要があります。 プロセスのRLIMIT_ASが2GBなどの場合、2GBを超えるメモリを割り当てることはできません。子が生成されると、2GBのアドレススペース制限が子に渡されますが、カウントは0から始まります。2つのプロセスを一緒にすると、最大4GBのメモリを使用できます。 しかし、プロセスのツリー全体によって割り当てられたメモリの合計を制約する便利な方法は何でしょうか?

4
Qt 5用のqtconfigツール?
Arch LinuxにQT 5をインストールしましたが、qtconfig機能しません。 %> qtconfig qtconfig: could not exec '/usr/lib/qt/bin/qtconfig': No such file or directory はい、そのようなファイルはありません。 /usr/lib/qt5/bin/qtconfig それを見つける場所はありますか?smplayerQT 5ライブラリにリンクされているのフォントを調整する必要があります。
16 arch-linux  qt 

6
なぜinitramfsが必要なのですか?
ファイルシステムとして(initramfsではなく)jffsまたはsdを選択すると、カーネルサイズが非常に小さい(initramfs-3.4MBと比較して1.4 MB)ことがわかりました。initramfsがかなり大きなスペースを取ることを示しています。だから私はそれを完全に削除することができます、私は非常に小さなカーネルを持っているでしょう、それは私が欲しいものです。 だから私の頭に浮かぶ基本的な質問は:なぜinitramfsが必要なのか?Linuxカーネルは、初期ファイルシステムがなくても起動しないのですか? 私の最終アプリケーションは、計算とコミュニケーションのみを行います。したがって、ファイルシステムのないOSは理にかなっています-少なくとも私のアプリケーションにとっては。

3
Linuxで使用していない(バックアップ)ハードディスクをシャットダウンする
データのバックアップを作成するために使用するコンピューターにハードディスクがあります。それ以外の場合は、このディスクを使用しません。 バックアップが完了したら、このディスクの回転を停止するにはどうすればよいですか?また、バックアップが後で行われる前に、どのように再度スピンアップさせますか? ドライブは通常のSATAドライブです。



6
Googleにpingできないのはなぜですか?
google.com (不明なホスト)に pingできません。しかし、IPアドレスにはpingを実行できます。GoogleのIPアドレスにpingを試みましたが、機能しません。 resolv.conf nameserver 8.8.8.8 nameserver 209.139.209.33 ifconfig -a eth0 Link encap:Ethernet HWaddr 00:50:56:xx:xx:xx inet addr:10.2.0.63 Bcast:10.2.15.255 Mask:255.255.240.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:638762803 errors:0 dropped:0 overruns:0 frame:0 TX packets:231307131 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:55502371533 (51.6 GiB) TX bytes:23436883491 (21.8 GiB) lo Link encap:Local …
16 dns  ip  internet  ping  route 

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