Unix & Linux

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

1
Bashスクリプトを改善する
問題なく問題なく実行されるように、Bashスクリプトを改善する必要があります。このスクリプトはそのds4drv中で使用しており、修正方法がわからない問題があります。 最初の問題は、コントローラーが検出されたときに常に実行または機能するとは限らないことです。そのためにudevルールを作成しましたが、検出されたときにこのスクリプトが常に実行されない理由が明確ではありません。 2番目の問題は、ds4drv通常のユーザーとして実行されるのではなく、rootとしてのみ実行できるようにすることです。 3番目の問題は、作成されたPIDロックファイルを処理する適切な方法がわからないため、PIDプロセスが存在しなくなったときに、PIDロックファイルが削除されるためです。実行中のインスタンスが1つだけになるように、bashスクリプトでPIDファイルを使用する方法に関する適切なドキュメントを見つけるのは困難です。 ここにds4drvのudevルールがあります: 50-ds4drv.rules KERNEL=="uinput", GROUP="users", MODE="0666" KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", GROUP="users", MODE="0 666" KERNEL=="hidraw*", SUBSYSTEM=="hidraw", KERNELS=="0005:054C:05C4.*", GROUP="users" MODE="0666" ACTION=="add", SUBSYSTEM="usb", ATTRS{idProduct}=="054c", RUN+="/home/user/scripts/ds4check.sh", GROUP="users" , MODE="0666" それはudevルールがそうあるべきであると私はかなり確信しています、それはGROUPユーザーのための読み書きなので、パーミッションは私にとって正しいようです。bashスクリプトが実行され、コントローラーデバイスが接続されたときにこのルールが自動的に実行されるように設定されると、コントローラーデバイスが接続されていない場合など、一部のゲームが応答しなくなるという問題のいくつかのインスタンスがあるようです作用することが/dev/js0なく、その代わりに作用する/dev/js1代わりに。特にrootとして実行されていない場合、このエラーを返すことがよくあります。 OSError: [Errno 13] Permission denied: '/dev/input/event17' そしてもちろんbashスクリプト。 ds4check.sh #!/bin/bash # DS4 Check Script pidfile=/tmp/ds4drv.pid # check if process is already running …

1
*非常に*長い行を少ない時間で回避
を使用してless(たとえば、Spaceおよびを使用してB)ログファイルをナビゲートすると、120,000文字のような非常に長い行に出くわすことがあります。これらをナビゲートするのは遅くなります。ターミナルで何ができるのか、どこに改行を入れるのかを理解する必要があるからです。 私のログファイルのその他の場所では、行が折り返されるのはせいぜい10回程度であり、1ページを超えることはありません。だから私はファイルをラップしないような大胆なことをしたくありません。 私がそれらをヒットしたときにこれらの行の最後に移動する方法はありますか?
8 less 

1
このfind -execdir {} +(プラス)を使用すると、なぜ3回ではなく4回の呼び出しで終了するのですか?
ここで、末尾までパイプすることでcommandin の呼び出し回数を数えることができることを読みました。-exec command {} +| wc -l 私はそれ-execdirが異なっていることを理解していますが、その中で、一致するすべてのサブディレクトリがfind検出さcommandれると、サブディレクトリに一致するファイルが複数ある場合、それが含まれているサブディレクトリからの呼び出しが実行されます。呼び出しの数が、一致するサブディレクトリの数と等しくなり、それらのサブディレクトリ内の一致するファイルの数と一致する呼び出しの数ではないのですか? 次を実行すると、最終的に後者になります。 $ find . -name "bob*" -execdir echo {} + | wc -l execdir command {} +前者がそうであるべきであると州のマニュアルページ: 同じように-exec行動、+の形は-execdirより1つのマッチファイルよりもプロセスへのコマンドラインが、任意の特定の呼び出し構築するcommand同じサブディレクトリに存在する唯一のリストファイル意志を。 すなわち 私は得ています: ./file1inDir1 ./file2inDir1 ./file3InDir2 ./file4InDir3 私がこれを期待しているとき、manページに基づいて: ./file1inDir1 ./file2inDir1 ./file3InDir2 ./file4InDir3
8 find 

3
関数内からメールコマンドを実行すると、「フォーク爆弾」が発生します。
mailbashスクリプトの関数内から実行しようとすると、フォーク爆弾のようなものが作成されます。明確にするために、これは問題を作成します: #!/bin/bash mail() { echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org" } mail exit 0 場合によっては、コマンドを強制終了するだけで子プロセスを強制終了することもありますが、強制する必要がある場合もありますkillall -9。 メールが送信されたかどうかは関係ありません。フォーク爆弾は、いずれかの方法で作成されます。そして、のような終了コードのチェックを追加することは役に立たないようですif ! [ "$?" = 0 ]。 ただし、以下のスクリプトは意図したとおりに機能し、エラーを出力するか、メールを送信します。 #!/bin/bash echo "Free of oxens" | mail -s "Do you want to play chicken with …

1
Emacsで完全にピクセルマップされたフォント
Ubuntuでは、IntelliJでは、PragmataPro Monoフォントは次のようになります。 完全にマッピングされたピクセルに注意してください。IntelliJ設定Appearance & Behavior > Appearance > Antialiasing > Editorはに設定されていNo antialiasingます。 Emacsでは、同じフォントがアンチエイリアスされています: ~/.Xresourcesを含むファイルを追加するEmacs.font: PragmataPro Mono-12:antialias=falseと、Emacsは次のようになります。 フォントは自動的にビットマップ化されますが、フォントの仕様に従っていません。 IntelliJのレンダリングをEmacsで再現するにはどうすればよいですか? Ubuntu–CinnamonとArch–Xfceでこの問題を再現しました。ありがとうございました。
8 x11  emacs  fonts 

3
Linuxがユーザーレベルのネットワークポートのアクセス許可を許可しないのはなぜですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 時々、Linuxでネットワークポートアクセスのユーザーレベルのアクセス許可を行う方法を検索し、かなり乾燥した状態にします。たとえば、ポート5080でリッスンする重要なプロセスを実行するマシンがある場合、信頼できるユーザーの特定のセットのみにそのポートへのアクセス権を与える方法が必要だと思います–他の正常なアクセス許可プロセスと同じようにファイルシステムのアクセス許可のように行われます。 しかし、ハイポートはすべてのユーザーが利用でき、ローポートはルートのみが利用でき、authbindやiptablesでの転送などの粗雑なハックだけで他のユーザーがローポートを使用できるようになっているようです。それは非常に奇妙な状況のように思われるので、なぜそれがそのように設計されたのか、そしてなぜ人々はその状況を変える必要を感じなかったのかと思います。

3
3つの単一引用符の間のテキストを抽出する
次のファイルを持っています description: ''' This rule forbids throwing string literals or interpolations. While JavaScript (and CoffeeScript by extension) allow any expression to be thrown, it is best to only throw <a href="https://developer.mozilla.org /en/JavaScript/Reference/Global_Objects/Error"> Error</a> objects, because they contain valuable debugging information like the stack trace. Because of JavaScript's dynamic nature, CoffeeLint …

3
独自のNvidiaドライバーで画面の明るさを100%
Steamゲームをプレイするために専用のNvidiaドライバーをDebian Jessieにインストールした後(現在は可能です)、明るさをまったく変更できません。明るさが最大で動かず、夜に目を刺激します。私はすでにDebian wikiのすべてのソリューションを試しました :そのような行を追加するなどOption "RegistryDwords" "EnableBrightnessControl=1;"に/etc/X11/xorg.confし、/etc/X11/xorg.conf.d/20-nvidia.conf しかし、Debianフォーラムでは機能しているようです(解決済みとマークされています)。 xbacklightがまったく機能せず、どうすればよいかわかりません。ターミナルコマンドの出力を投稿します。助けてください。

5
異なるパラメーターで同じコマンドを実行する
私は協力するのにそれほど寛容ではないプログラムを持っています。残念ながら、このプログラムは以下を許可していません "command -a -b -c" または "command -abc" だから私はいつも次のようにタイプしなければなりません command -a && command -b && command -c タイプするより効率的な方法があると確信していますが、それを理解することはできません。

1
プロセスのスワップされたすべてのメモリをスワップから引き出します
ディスクに書き込むことなく、プロセスのスワップされたすべてのメモリをスワップからすばやく引き出すにはどうすればよいでしょうか。 質問を必要とする体系的な問題は他の当事者によって処理されているため、この問題のコンテキストは取るに足らないものです。しかし、現在、OpenVZノードのスワップ領域を頻繁に解放しなければならないという問題があり、負荷とIO待機が非常に高くなっています。 多くの場合、スワップは主に、個々のコンテナーで実行されている少数のMySQLおよびclamdプロセスによって消費されます。これらのサービスを再起動すると、スワップが解放され、ノードの問題が解決されますが、明らかな理由により望ましくありません。 ノードが過負荷で現在の方法よりも速いものが必要なときに、これらのプロセスからスワップをすばやく解放する方法を探しています。 unswap(){ [[ $1 && $(ls /proc/$1/maps) ]] && ((gcore -o /tmp/deleteme $1 &>/dev/null; rm -fv /tmp/deleteme.$1)&) 2>/dev/null || echo "must provide valid pid";};unswap このコアダンプにより、すべてのRAMが強制的にアクセスされ、スワップから解放されますが、ファイルへの書き込みを回避する方法はまだ見つけていません。また、現在スワップされているアドレス範囲を分離してその部分を/ dev / nullにダンプできれば、プロセスはより高速になるようですが、それを行う方法はまだ見つけていません。 これは巨大なノードなので、通常のswapoff / swaponメソッドは非常に時間がかかります。また、ノードの構成は私の制御下にないため、根本原因の修正はこの質問の一部ではありません。ただし、何も殺したり、再起動したりせずに、スワップのかなりの部分をすばやく解放できる方法についての洞察は、高く評価されます。 環境:CentOS 6.7 / OpenVZ 後でこれにつまずくかもしれない人のための更新: Jlongの入力を使用して、次の関数を作成しました。 unswap(){ (awk -F'[ \t-]+' '/^[a-f0-9]*-[a-f0-9]* /{recent="0x"$1" 0x"$2}/Swap:/&&$2>0{print recent}' /proc/$1/smaps | …

2
ソートで「0」の後に非数値レコードが表示されるのはなぜですか?
ファイル名の番号に従ってファイルを並べ替えたいのですが。ここにファイルがあります: $ ls *.f 0.f 13.f 1.f 22.f 4.f abc.f ソート結果: $ ls *.f | sort -t. -k1n 0.f abc.f # note this file! 1.f 4.f 13.f 22.f 私が期待していたのは: $ ls *.f | sort -t. -k1n abc.f 0.f 1.f 4.f 13.f 22.f なぜされたabc.f直後にあった0.fとする前に1.f?で0数字として扱われないからsortでしょうか?私はウェブを検索しましたが、参照は見つかりませんでした。
8 sort 

1
bash:このシェルにはジョブ制御がありません
最小限のLinuxシステムを使用しています。 initは/bin/bash、の最小限のライブラリのみが静的に読み込まれ/lib/、/dev/デーモンは実行されていません(udevなどはありません)。 bashが起動すると、次のエラーが発生します。 bash: cannot set terminal process group (-1) inappropriate ioctl for device bash: no job control in this shell straceでbashを開始すると、次の出力が表示されます。 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address) ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 …
8 bash  terminal  tty  ioctl 

2
変数の割り当ては現在実行中のシェルに影響します
いくつかのコードを書いているとき、私はこの行を見つけました: $ TZ="America/Los_Angeles" date; echo "$TZ" Thu Dec 24 14:39:15 PST 2015 「ロサンゼルス」での実際の時間を正しく示し、変数の値がTZ保持されないこと。期待どおりすべて。 ただし、この行では、一部の形式を日付に展開し、基本的に同じことを実行するため、TZの値が保持されます。 TZ="America/Los_Angeles" eval date; echo "$TZ" Thu Dec 24 14:41:34 PST 2015 America/Los_Angeles さらにいくつかのテストを行った結果、これが一部のシェルでのみ発生することがわかりました。ダッシュ、kshでは発生しますが、bashやzshでは発生しません。 Q 質問は次のとおりです。 TZの値が現在のシェルで保持されているのはなぜですか? それをどのように回避/制御できますか(可能な場合)? 追加。 次の2行を使用して、いくつかのシェルでテストを実行しました。 myTZ="America/Los_Angeles" unset TZ; { TZ="$myTZ" date; } >/dev/null; echo -n " direct $TZ" unset TZ; { TZ="$myTZ" …

1
tune2fs-大規模なext4ファイルシステムで予約する容量
を使用してファイルシステムに予約する容量についていくつかの質問があることは承知していますtune2fs -mが、一部のアドバイスは矛盾しており、一部rootはマウントされているファイルシステムにのみ関連しているようで、特にに特化したものはないようですext4。 私が問い合わせているドライブは、3つのハイブリッドSSD /ハードディスクで、1つのパーティションを使用ext4してフォーマットされ、メディアファイルにのみ使用されます。Root、homeとswap私は一人も残されるSSDドライブに、独自のパーティション内のすべてのです。 現在、3 TBのext4ファイルシステムでは、ディスク領域の5%が予約されています(デフォルト)が、これはなんと150 GBです。安全であれば、これを1%、つまり30 GBに減らして、120 GBを解放します。ファイルシステムは92%使用されており、残りの5%は予約済みスペースであることに注意してください。 この回答のアドバイスではext3、断片化を回避するために、ほぼフルのファイルシステムで予約領域を5%に設定するのが賢明であると示唆されています。次に、それext4はより効率的であると明示し、「ext4のマルチブロックアロケーターは、より断片化に強い」と明記しています。その後、何パーセントが適切かをアドバイスすることはしませんext4。 ext4適切なファイルシステムの断片化保護を維持しながら、3 TBのファイルシステムで予約済みドライブスペースを1%に減らしても安全かどうか知りたいのですが。 1%の30 GBの予約領域では不十分な場合、どれだけ安全なのでしょうか? ありがとう。

7
X日より古いファイルを検索し、サイズ別に出力します
私は数日より古いファイルを取得し、すべての情報(サイズ、フルパスなど-によって提供されるものと同様のものls)を含むサイズに基づいて降順で一覧表示しようとしています。 私は古いファイルを見つけることができますが: find . -mtime +10 必要な情報を一覧表示できません。
8 files 

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