Unix & Linux

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

4
UNIX / POSIXシステムコールの命名がなぜ読みにくいのですか?
Unix やの場合、and やorのようなtimeandのcreat代わりに、多分もっと適切な、そのようなアンテリングシステムコール名を使用する理由は何ですか。それは次の点に私を連れて行きます:なぜ誰かがそれを読みやすくするためにキャメルケースや少なくともアンダースコアなしのようなものが欲しいのですか?もちろん、呼び出しにはより多くの文字が含まれますが、コードの可読性がより重要であることは誰でも知っていますか?getCurrentTimeSecscreateFileget_current_time_secscreate_filecfsetospeed

4
プロセスからコマンドライン全体を取得する方法は?
プロセス名を使用して実行中のプロセスからコマンド引数またはコマンドライン全体を取得するにはどうすればよいですか? たとえば、このプロセス: # ps PID USER TIME COMMAND 1452 root 0:00 /sbin/udhcpc -b -T 1 -A 12 -i eth0 -p /var/run/udhcpc.eth0.pid そして、私が欲しいのは/sbin/udhcpc -b -T 1 -A 12 -i eth0 -p /var/run/udhcpc.eth0.pid、議論です。プロセス名を知っており、その引数が必要です。SliTazでBusyboxを使用しています。

2
linux + g ++:コマンドが見つかりません
Linux red-hatマシンにインストールしたいgettext-0.19.1.tar.xz。 最初に次のことを行います cd gettext-0.19.1 ./configure make 中にmakeそれが上の失敗しますg++: command not found libtool: compile: g++ -DIN_LIBASPRINTF -DHAVE_CONFIG_H -I. -c autosprintf.cc - o .libs/autosprintf.o ./libtool: line 1128: g++: command not found make[5]: *** [autosprintf.lo] Error 1 make[5]: Leaving directory `/var/tmp/gettext-0.19.1/gettext-runtime/libasprintf' make[4]: *** [all] Error 2 make[4]: Leaving directory `/var/tmp/gettext-0.19.1/gettext-runtime/libasprintf' make[3]: *** [all-recursive] …
43 linux  g++ 

4
仮想アドレス空間でページサイズはどのように決定されますか?
Linuxは、すべてのアドレスが仮想アドレスであり、物理アドレスではない仮想メモリシステムを使用します。これらの仮想アドレスは、プロセッサによって物理アドレスに変換されます。 この変換を容易にするために、仮想メモリと物理メモリはページに分割されます。これらの各ページには一意の番号が付けられています。ページフレーム番号。 一部のページサイズは2 KB、4 KBなどです。しかし、このページサイズの数値はどのように決定されますか?アーキテクチャのサイズに影響されますか?たとえば、32ビットバスには4 GBのアドレス空間があります。

1
rsyncが新しいファイルであっても宛先のファイルを強制的に上書きする
実行したrsyncバックアップスクリプトがあります。これは、要求したときに元のファイルを復元します。しかし、復元しようとしたときに、宛先のファイルがバックアップのファイルよりも新しい場合、それらは置き換えられません。新しいファイルをバックアップ内のファイルで置き換えたいのですが、rsyncでこれを行う方法がわかりません。 tldr:宛先のファイルをrsyncに強制的に上書きする方法はありますか? 編集:私は実行しているrsync -avhpバックアップを復元したいときは、「to」と「from」を交換して同じコマンドを使用します。そのため、バックアップドライブから自分のコンピューター上の場所にファイルをコピーしようとします。



3
execを使用して後続のすべてのコマンドのstderrをリダイレクトします
すべての出力を1つのファイル、デバッグログ、およびターミナルにリダイレクトする必要があるbashファイルがあります。stdoutとstderrの両方をデバッグにリダイレクトし、スクリプト内のすべてのコマンドのログを記録する必要があります。 2>&1 | tee -a $DEBUGファイル内のすべてのコマンドに追加する必要はありません。私は一緒に暮らすことができました| tee -a $DEBUG。 私のようなものでそれをする方法があったことを覚えていますexec 2>&1。 現在、私は次のようなものを使用しています: #!/bin/bash DEBUGLOG=/tmp/debug exec 2>&1 somecommand | tee -a $DEBUGLOG somecommand2 | tee -a $DEBUGLOG somecommand3 | tee -a $DEBUGLOG しかし、それは機能しません。誰かが解決策を持っていますか/原因を説明できますか?





3
x265(HEVC)でビデオライブラリを再エンコードして品質を損なうことはありません
ビデオライブラリをHEVC形式に変換してスペースを確保しようとしています。ライブラリ内のすべてのビデオファイルで次のコマンドを実行しました。 #!/bin/bash for i in *.mp4; do #Output new files by prepending "X265" to the names avconv -i "$i" -c:v libx265 -c:a copy X265_"$i" done 現在、ほとんどのビデオは正常に変換され、品質は以前と同じです。ただし、非常に高品質のいくつかのビデオ(5GBの1つのムービープリントなど)は品質を失います。ビデオはすべてピクセル化されています。 この場合、何をすべきかわかりません。crfコマンドラインでパラメーターを変更する必要がありますか?または、他の何か? 問題は、私が一括変換を行っていることです。したがって、avconvビデオごとに調整が必要なパラメーターを自動的に調整する方法が必要です。 更新-1 それcrfが私が調整する必要があるノブだとわかりました。デフォルトのCRFは28です。品質を向上させるために、28未満の値を使用できます。次に例を示します。 avconv -i input.mp4 -c:v libx265 -x265-params crf=23 -c:a copy output.mp4 ただし、問題は、一部のビデオでは28のCRF値で十分であり、一部のビデオではより低いCRFが必要なことです。これは、大きなビデオの小さなセクションを変換して手動で確認する必要があるものです。しかし、一括変換では、各ビデオを手動で確認するにはどうすればよいですか?avconv入力ビデオに応じてインテリジェントにCRFを調整できる方法はありますか? 更新-2 私はそこにあることが判明--lossless:x265でオプションhttp://x265.readthedocs.org/en/default/lossless.html。 しかし、私はそれを正しく使用する方法を知りません。私はそれを次の方法で使用しようとしましたが、反対の結果が得られました(ビデオはさらにピクセル化されていました): avconv -i input.mp4 -c:v libx265 -x265-params …

5
USBデバイスを静的な名前でバインドする方法は?
私はArduinoを持っていますが、時々Arduinoにバインドされ/dev/ttyUSB0たり、にバインドされたりし/dev/ttyUSB1て、スクリプトが失敗します。 私は自分のデバイスが存在する可能性のあるすべての可能性を列挙したくはありませんが、静的な場所にバインドしたい/dev/arduinoです。 どうすればそれを達成できますか?


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