Unix & Linux

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

4
並行して作成された他の3つのストリームから単一の出力ストリームを作成する
異なるフォーマットの3種類のデータがあります。データ型ごとに、それを単一の統一フォーマットに変換するPythonスクリプトがあります。 このPythonスクリプトは遅く、CPUにバインドされている(マルチコアマシンのシングルコアに)ため、スクリプトの3つのインスタンスを実行し(データタイプごとに1つ)、それらの出力を組み合わせてに渡しsortます。基本的に、これと同等です: { ./handle_1.py; ./handle_2.py; ./handle_3.py } | sort -n しかし、3つのスクリプトが並行して実行されます。 ストリームを処理するスクリプトのn個のインスタンス間で、いくつかのstdoutストリームをラウンドロビンするためにGNU が使用されているこの質問を見つけましたsplit。 分割されたmanページから: -n, --number=CHUNKS generate CHUNKS output files. See below CHUNKS may be: N split into N files based on size of input K/N output Kth of N to stdout l/N split into N files without splitting lines …

2
epelとrpmforgeを同時に使用することは安定していますか?
したがって、Scientific Linux 6.3デスクトップを新しくインストールした後、次のことを行います。 yum install rpmforge-release && yum update そして yum install epel-release.noarch 次に: yum install wine gparted cups-pdf && echo 'includepkgs=nss-mdns wine* gparted cups-pdf' >> /etc/yum.repos.d/epel.repo OK!この後私: vi /etc/yum.repos.d/epel.repo includepkgs=nss-mdns wine* gparted cups-pdf これが、私がフレッシュワイン(+ cups-pdf)をインストールしてgpartedする方法です。 Q:これは安定したことですか?これは将来的に問題を引き起こす可能性があるのですか?(いくつかのepelパッケージがインストールされていますが、安定性を高めるために、言及されたいくつかのパッケージをインストールした後、ホワイトリストを使用します-gparted / wine / cups-pdfのいくつかのものだけにepelが必要なためです)。これらのステップは将来問題を引き起こしますか?


4
変数を計算し、別の変数に出力します
私が知っている唯一の計算機はbcです。1変数に追加して、別の変数に出力したい。 nextnumファイル内の文字列をカウントして変数を取得しました。 nextnum=`grep -o stringtocount file.tpl.php | wc -w` nextnum値がであるとしましょう1。で追加1するとになり2ます。計算するには、次を実行します。 rownum=`$nextnum+1 | bc` エラーが発生しました: 1+1: command not found 計算に失敗しました。バックティックを変更しようとしましたが、まだ機能しません。変数を計算して別の変数に出力する方法がわかりません。

4
bashスクリプトでの論理AND
私が持っているif2つのファイルのいずれかが存在する場合、彼らはそれが試合をエコーすべき存在しない場合は、チェックする必要が私のbashスクリプトで。 私が持っているコード: if [[ ! -f /etc/benchmarking/code ]] && [[ ! -f /etc/benchmarking/code.class ]]; then echo "match" fi しかし、これは何らかの理由で機能しないようです。 これら2つのファイルが存在しないことを110%確信しています。エラーは発生しませんが、に入りませんif。 私はbashスクリプトを初めて使用するので、何が問題なのかわかりません。

3
root権限を持つユーザーとしてVimを起動します
にカスタムVimファイル~/.vimと設定があります~/.vimrc。しかし、時々私はいくつかのファイル/etcなどを編集しなければなりません。 次のようにVimを起動すると、 $ sudo vim /etc/rc.conf Vimはデフォルトの設定を使用しているため、設定が失われます。それで、どうすればroot権限でVimを実行して、ユーザーの設定(ホームディレクトリにある)を失うことなくファイルを編集できますか? 私が試してみました: $ su username -c "vim /usr/lib/python2.7/setuptools/dist.py" しかし、バッシュは私にくれPermission deniedます。ただし、上記のコマンドは、たとえば次の場合に機能します/etc/acpi/handler.sh。何故ですか? 注:ユーザー名はrootではありません。

2
ファイル名から接頭辞を削除する
次のようなファイルがたくさんあります。 04602635_b0294.DAT20120807164534 04602637_b0297.DAT20120807164713 04602638_b0296.DAT20120807164637 04602639_b0299.DAT20120807164819 04602640_b0298.DAT20120807164748 04602641_b0300.DAT20120807164849 04602650_b0301.DAT20120807164921 04602652_b0302.DAT20120807164956 プレフィックスを除外するには、名前を変更する必要があります。このように見える必要があります。 b0294.DAT20120807164534 b0297.DAT20120807164713 b0296.DAT20120807164637 b0299.DAT20120807164819 b0298.DAT20120807164748 b0300.DAT20120807164849 b0301.DAT20120807164921 b0302.DAT20120807164956 編集 Solarisを使用していることを忘れてしまいました。

2
未使用スペースをゼロでクリア(btrfs)
未使用のスペースをゼロでクリアするにはどうすればよいですか?(私はbtrfsファイルシステム用のツールを求めています) 私はもっ​​と賢いものを探しています cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero FSArchiverが「使用済みスペース」を探しているように、未使用だが反対側のサイトを無視します。 目的:パーティションイメージを圧縮したいので、未使用のスペースをゼロで埋めることを強くお勧めします。 ところで ext3、ext4の場合:未使用のスペースをゼロでクリアします(ext3、ext4)。ここでbtrfsを要求します 「よりスマートなアルゴリズム」の明確化:「よりスマートなアルゴリズム」は混乱を招くことがわかるので、ここで最終的にそれについて行を追加することにしました。読者の皆さん、ファイルシステムをデータ構造として考えてください。簡単にするために、関連付けキー->値の配列として使用される、赤と黒のツリーを保持する自己バランスを考えます。値は整数です。目標は、すべての負の値をゼロでクリアすることです。「スマートでない」アルゴリズムはそれを反復し、key:valueペアを新しいマップに追加します(最終的には負の値をゼロに変更します)。スマートアルゴリズムは、負の値が格納されている場所を検出し、それらをインプレースでクリアします。

7
一度に複数のファイルを暗号化する
特定のバージョンを保存し、暗号化されたバックアップを保持しやすくするために、プロジェクトアーカイブを作成し、それらの7zアーカイブを作成するスクリプトを書いています。 アーカイブを生成して暗号化フェーズに到達しgpgたら、可能であれば1回の呼び出しでファイルを暗号化し、ユーザーにパスフレーズを1回だけ入力させるようにします。それ以外の場合は、ユーザーのパスフレーズをメモリにキャッシュするか(私は本当にしたくない)、アーカイブするすべてのプロジェクトのパスフレーズを入力して確認する必要があります(これは悪いことです)。 複数のファイル名を渡してgpgすべてを一度に暗号化する方法はありますか? 私がこれを試した場合: $ gpg --cipher-algo AES256 --compression-algo BZIP2 -c project1.7z project2.7z ...シェルに次のエラーが表示されます。 usage: gpg [options] --symmetric [filename] 私が達成したいことをする方法はありますか?
10 gpg 


3
不足しているディレクトリを作成するには、 `ln`を使用します
だから私は小さなパッケージマネージャーを書いていて、私が遭遇した問題はファイルへのシンボリックリンクを作ることです。 パッケージをにインストールし/usr/pkg/name-version、ファイルを読み取って、作成するシンボリックリンクを決定します。lnリンクの作成に使用していますが、Linux APIヘッダーをインストールしようとすると問題が発生します。ヘッダーファイルをリンクする必要があります。ヘッダーファイルを含むフォルダーではなく、リンクする必要があります(したがって、2つのパッケージがインクルードの同じサブディレクトリにファイルを配置する必要がある場合、1つのパッケージをねじ込むことなくそれらを行うことができます)。 その問題は解決しましたがln、パスが不完全な場合は単にエラーが表示されます。これは、パッケージがインストールされるまでこれらのディレクトリが存在してはならないため、厄介です。 ln不足しているディレクトリを作成するフラグがありますか、それとも複雑なbashスクリプトを使用する必要がありますか?

6
どうすればディレクトリのみの検索を使用できますか
これにより、「Dropnot」のさまざまなサブディレクトリの下にある多数のファイルが見つかります $ locate Dropnot でディレクトリの場所だけを見つけることはできますlocateか?(「Dropnot」がどのディレクトリにあるか) したがって、Dropnotがにある場合/home/me/、それが返される唯一のエントリです。 もしそうなら、最も簡単な/最短の方法は何ですか? できれば、それを手探りで模索するのではなく、フラグまたはシンボルを使用するのが望ましいですが、私はオプションとして何でも取ります。 行末にある種のDropnot $を使用しているのでしょうか?(しかし動作しませんでした)。
10 directory  locate 

5
シェルスクリプトのプロファイルを作成するにはどうすればよいですか?
シェルスクリプトで実行しているプログラムがいくつかあります。 ./myprogram1 ./myprogram2 ... ソースコードを編集して個々のプログラムをプロファイリングできることはわかっていますが、スクリプト自体をプロファイリングすることによって実行された合計時間を測定できる方法があるかどうかを知りたいと思いました。この目的に使用できるタイマープログラムはありますか?もしそうなら、その測定はどのくらい正確ですか?


7
mogrifyを使用して小さなファイルを無視しながら大きなファイルのサイズを変更する
次のコマンドを実行しています。 mogrify -resize '400x400>' *.png 「>」に注意してください。おそらくそれは小さなファイルを無視しますが、それらはサイズ変更されませんが、それらを編集します(変更日とファイルサイズが変更されます)。 実際に小さいファイルをそのままにしておく方法はありますか?数千の不要な書き込み操作を回避したいと思います。
10 find  mogrify 

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