Unix & Linux

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

2
bashスクリプトで引数をループする方法
引数の量が不明なbashスクリプトを書きたいと思います。 これらの議論をどのように歩き、それらで何かをすることができますか? 間違った試みは次のようになります。 #!/bin/bash for i in $args; do echo $i done
16 bash  shell  arguments 

2
パイプコマンドの並列実行
次のシナリオを検討してください。2つのプログラムAとBがあります。プログラムAは文字列の標準出力行に出力し、プログラムBは標準入力からの行を処理します。これらの2つのプログラムを使用する方法は、もちろん次のとおりです。 foo @ bar:〜$ A | B 今、私はこれが1つのコアのみを消費することに気付きました。したがって、私は疑問に思っています: プログラムAとBは同じ計算リソースを共有していますか?その場合、AとBを同時に実行する方法はありますか? 私が気づいたもう1つのことは、AがBよりもはるかに高速に実行されることです。したがって、どういうわけかより多くのBプログラムを実行して、Aが出力する行を並行して処理できるかどうか疑問に思っています。 つまり、Aはその行を出力し、プログラムBのN個のインスタンスがあり、これらの行を(最初に読み取る人は誰でも)読み取り、処理してstdoutに出力します。 私の最後の質問は: 潜在的に発生する可能性のある競合状態やその他の矛盾を気にすることなく、いくつかのBプロセス間でAに出力をパイプする方法はありますか?

5
数千のファイルに対するchmod再帰的許可
これは、「chmoding」に関する再帰的な一般的な質問です。 このスクリプトは、数十万個のファイルがあるフォルダーで、ある時点で再帰的にアクセス許可を変更する必要があるスクリプトです。そのフォルダーには毎日新しいファイルが追加されますが、既に存在するファイルには既にアクセス許可が設定されており、変更されません。 私の質問は...私が電話するときです chmod 775。-R すでに適切な権限が設定されているファイルに権限を設定しようとしていますか、または適切な権限が設定されていない新しいファイルにのみ権限を設定しようとしていますか? 「新しい」ファイルはほんの数千であり、許可をかなり迅速に行う必要がありますが、スクリプトでこのコマンドを通過するには常に時間がかかるようです。 chmodのマニュアルページを見ましたが、このケースについては何も言及していないようです。 chmodが事前に権限をチェックしない場合、「find」と「chmod」の組み合わせを検討する必要がありますか?

2
systemdサービスでの起動中にパスワードを要求する
これはArch Linux(およびおそらくを使用する他のディストリビューション)に関連していsystemdます。ブート時にTrueCryptパーティションをマウントしたい。古いものではsysvinit、これはによって呼ばれるスクリプトでかなり簡単でしたrc.local。 私はArchフォーラムスレッドをハイジャックすることで現在に達しました。別のありますスレッドこのsystemdに-develのスレッドがしかし、それが実際にあるものを私には明らかではありません、そしてOPは彼が彼の目標を達成することができなかったことを示す最後のポストを持っている「ソリューションを持つ」との話されては。 その見た目から、この人はそれをやっていますが、パスワードを入力している間、継続的なブートメッセージをオフにする方法を探していました。私はそこに投稿し、彼に実際の.serviceファイルを投稿するように頼みました。 かなりの検索で、人々は成功している、または可能であると述べていますが、解決策が何であったかを正確に述べてはいけません。 systemdサービスを介してコマンドラインからパーティションのロックを解除できる限り(これにより、シャットダウン/再起動時に自動的にマウントを解除できるようになります)、ログイン後に手動で行う必要があります。 dブートプロセスが一時停止してパスワードを要求されるのが本当に好きです。 現在のスクリプトは次のとおりです。 [Unit] Description=Truecrypt Setup for vault #DefaultDependencies=no #Conflicts=umount.target #Before=umount.target #After=systemd-readahead-collect.service systemd-readahead-replay.service #After=cryptsetup.target [Service] Type=oneshot RemainAfterExit=yes #StandardInput=tty-force ExecStart=/bin/sh -c '/usr/bin/truecrypt -t --protect-hidden=no -k "" --filesystem=none --slot=1 -p `systemd-ask-password "Enter password for truecrypt volume: "` /dev/sda4' ExecStop=/usr/bin/truecrypt --filesystem=none -d /dev/sda4 [Install] WantedBy=multi-user.target [Unit]ある時点で、そこにあるべきだという提案に出くわしたので、コメントを残しましたが、問題がありました。上記は、起動/ログイン後でも正常に動作するようです...

1
Gnomeシェル拡張はどのように管理されるべきですか?
Gnomeシェル拡張の管理方法を理解するのに苦労しています。 それを行うための適切なプログラムがDashに見つかりません。拡張機能を実際に管理できる唯一の方法は、extensions.gnome.orgを使用することですです。 このページが拡張機能を管理するためのツールであることは不可能です-まったく意味がありません(1つはUXを破壊します)。 これらの便利な拡張機能の管理を目的としたネイティブアプリケーションの計画があることを教えてください。

2
ローカル電子メールストレージとimapの同期-muttフレンドリー
概要 私の問題:クライアントを選択してオフラインでメールを読みたい(mutt)が、メールの移動などのアクションをimapサーバーとの双方向sncに保持したい 私の質問:まだのような標準ツール使用中にこれを行うための簡単な方法がありfetchmail、procmailなどは、? 詳細 Gmailアカウントを持っています。さまざまな理由-いくつかの制度-私はメールクライアントからこのメールを読むことができる必要があります。従来のローカルメール設定で保管するのと同じように、「受信箱」をきれいにして、「アーカイブ」を検索できるようにします。Webクライアントのフォルダーにメールを移動する場合、ローカル受信ボックスでこれを考慮したいです。 可能であれば、このメールをから読みたいと思いmuttます。以前はmuttのネイティブimap機能を使用していましたが、muttは実行するたびにサーバーに接続する必要があります。メールを読んでいるときに接続が切断されることが多く、バックでmuttが開いています。メッセージヘッダーのキャッシュのみを保持し、新しいメッセージの読み込みにはサーバーへの往復が必要です。メッセージを送信する場合、他のメッセージを見る前に、STMPを介して確認されるまで待機する必要があります。 これを回避する方法はありますか?Thunderbirdのようなファットクライアントをソリューションとは考えていません。端末へのアクセスが必要で、メールをgrepできるようにしたい、procmailのフィルタリング機能をうまく利用し、分離したシステムを好みます。 前述したように、fetchmail、procmailとsendmail私を得る ほとんどが-ではなく、かなりのクライアント間の同期に私の活動を維持することができることに。 何か不足していますか?私はFreeBSDハンドブックの電子メールに関するセクションと多くのブログ投稿を見てきましたが、この方法ですべてをまとめるものは何もありません。 ところで、私はArch LinuxとDebianを実行しています。
16 email  mutt  fetchmail  imap 

3
破壊されたRAIDシステムからディスクをマウントする方法は?
Debian Linuxのレスキューで、損傷したRAIDシステムからデータを復元しなければならないという恐ろしい状況があります。VMWare GSXイメージを別のマシンにコピーし、後でそれらをESXiに移行できるように、すべてを読み取り専用モードで/ mnt / rescueにマウントしたいだけです。関連コマンドの出力は次のとおりです。 fdisk -l Disk /dev/sda: 1500.3 GB, 1500301910016 bytes 255 heads, 63 sectors/track, 182401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0005e687 Device …
16 debian  raid  rescue  data 


6
bashスクリプト(.bashrcなど)でXセッションを検出する
最近xset b off、.bashrc に置きました。今、私はttyまたはssh経由、つまりXセッション外でログインするとthetがポップアップするエラーに悩まされています。 私が最初に思いついたのは、[[ -z "$SOME_VAR" ]] && xset b off(変数の設定と空のテストは別の質問であることが判明したことです)。しかし、どのSOME_VARが正しいのでしょうか? そこで、ttyのset出力とurxvtのset出力を比較して、どの変数がXに設定されており、ttyにないかを確認しました。予想どおり、非常に多くの違いがありました(自分に関連があると思われるもののみをリストします)。 DESKTOP_SESSION DISPLAY GDMSESSION SESSION_MANAGER WINDOWID WINDOWPATH XAUTHORITY XDG_SESSION_COOKIE XDG_CONFIG_DIRS XDG_DATA_DIRS XDG_MENU_PREFIX Xセッションに参加しているかどうかを検出するためにテストするのに最も適切で普遍的なものはどれですか?できるだけ多くのディストリビューション、プラットフォーム、デスクトップ環境で機能するものはありますか? または、環境変数をテストするよりも良い方法はありますか?

5
Okular PDF注釈とメタデータをPDF自体に保存する
PDFビューアーOkular(KDEデスクトップの一部)には多くの素晴らしい機能があり、多くのファイル形式をサポートしています。私がそれについて気に入っていることの1つは、コメントと注釈です。残念ながら、すべてのコメントとメタデータ(最後に表示したページなど)はローカルに保存されます: 〜/ .kde / share / apps / okular / docdata OkularでPDF自体に保存する方法はありますか?
16 kde  pdf  okular 

3
ファイル記述子を移動するための実用
bashのmanページによると: リダイレクト演算子 [n]<&digit- ファイル記述子digitをfile descriptor nに移動するか、n指定されていない場合は標準入力(ファイル記述子0)に移動します 。digitに複製された後に閉じられnます。 ファイル記述子を別の記述子に「移動する」とはどういう意味ですか?そのような実践の典型的な状況は何ですか?

4
シェルに多くのコマンドを送信し、コマンドの終了を待つ方法[終了]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 2年前に閉店しました。 約20個のコマンドがあり、これらすべてをUnixシェルに送信して結果をコピーする必要がありますが、その方法はわかりません。 これはモバイルネットワーク管理に接続された小さなプログラムであり、この小さなプログラムではコマンドを行で送信し、結果を悲鳴で受信するためのアクセス権があるため、私が持っているシェルについてはわかりません。そのため、スクリプトを使用することはできませんコマンドを送信します。 コマンド1-サーバーに接続します。 コマンド1が終了するまで待つ コマンド2-サーバー1からのすべての情報を更新する 待つ。 コマンド3。パラメータを取得します。 ...などのコマンド。 私が試したとcmd1 | cmd2 | cmd3 し、 cmd1 & cmd2 & cmd3そしてcmd1;cmd2 問題はcmd1、RNC(ネットワーク要素)に接続されていることにcmd2あり、それが理にかなってから15秒ほどかかります。ただし、最初のcmdでのみ機能します。手がかり、これを実行する方法?

6
1つのJavaプロセスのみを強制終了する
私は通常、いくつかのJavaアプリケーションを実行します。1つはローカルで実行されるサーバー用で、もう1つはNetBeansなどのIDE用です。そして、何度も再デプロイした後、サーバーがOutOfMemoryExceptionでスタックするため、再起動するにはJavaプロセスを強制終了する必要があります。 だから私はやるpkill -9 javaが、これはまた実行したくないIDEを殺す。他のサーバーではなく、実行中のサーバーにリンクされているアプリケーションのみを強制終了するにはどうすればよいですか?
16 process  java  kill 

1
dpkgによるカーネル更新のブロック
最近私に起こった厄介なことが原因で、配布されたすべてのカーネル更新をブロックしたいと思います。(Ubuntu 12.04 amd64派生製品を使用しています。) 私はへのマイナーバージョン3.2のインストールカーネルにすべての更新をブロックしたいのですがlinux-headers、linux-headers-generic、linux-image、およびlinux-image-extraパッケージ。私が遭遇している問題は、これらにはすべてバージョンがあり、特定のバージョンをブロックすると、新しいバージョンがインストールされるため何も得られないことです(たとえばlinux-image-3.2.0-35、ブロックした場合、ブロックlinux-image-3.2.0-36されず、dist-upgradefrom でインストールされる可能性がありますapt)
16 kernel  apt 

2
rsync:権限のないファイルをスキップします
rsync -rlptD別のユーザーからディレクトリをコピーするために使用しています。コピーする権限がないファイルがいくつかあります(これらを事前に知る方法はありません)。rsyncがこれらを無視する方法はありますか?問題は、rsyncがゼロ以外を返すと、bash -xスクリプトが終了することです。

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