Unix & Linux

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

2
kill、pkill、killallの違いは何ですか
私はkillコマンドに精通していて、ほとんどの場合kill -9を使用してプロセスを強制的に強制終了しますが、他にも使用できる多くのシグナルがありますkill。しかし、すでにkillコマンドがある場合、pkillとのユースケースは何だろうと思いkillallます。 やるpkillとkillall使用しkill、その実施にコマンドを?単なるラッパーであるkillか、独自の実装を持っているのですか? また、pgrepコマンドがプロセス名からプロセスIDを取得する方法を知りたいです。 これらのコマンドはすべて、同じ基になるシステムコールを使用しますか?パフォーマンスの観点からの違いはありますか、どちらが速いですか?



1
PS2、PS3、PS4はどの状況でプロンプトとして使用されますか?
シェルにログオンすると、PS1に値が保存されているプロンプトが表示されます。 また、ヒアドキュメントの構文を使用すると、別のプロンプトが表示されます(ただし、どのプロンプトが表示されるかはわかりません)。 bc << HERE > しかし、それはすべての種類のプロンプトです。これまでに出会ったことがあります。どのような状況でさまざまな種類のプロンプトが呼び出されますか?

2
find(1):いくつかのファイル名で失敗するスターワイルドカードはどのように実装されますか?
ファイル名がUTF-8のファイルシステムでは、ファイル名に誤りがあります。それはD�sinstaller、として表示されます。zsh:による実際の名前 D$'\351'sinstaller、Latin1はDésinstaller、それ自体は「アンインストール」のフランス語の野barです。Zshはそれとは一致しません[[ $file =~ '^.*$' ]]が、グロビングと一致*します。これは私が期待する動作です。 今でも、実行時にそれを見つけることを期待しています。find . -name '*'実際のところ、ファイル名がこのテストに失敗することは決してありません。ただし、LANG=en_US.utf8では、ファイルは表示されず、動作するように設定LANG=C(またはen_US、または'')する必要があります。 質問: 背後にある実装とは何ですか?また、その結果をどのように予測できましたか? 情報:Arch Linux 3.14.37-1-lts、find(GNU findutils)4.4.2

1
GPGエージェントはどのように機能しますか?
私のgpg.confファイルには、という行がありますuse-agent。 これはデーモンであるgpg-agentを指すことを理解しています。マニュアルページには、「gpg-agentは、プロトコルから独立して秘密(プライベート)キーを管理するデーモンです。これは、gpgおよびgpgsmのバックエンドとして、および他のいくつかのユーティリティで使用されます。」 誰もこれがgpgのコンテキストで何を意味するのか説明できますか?gpg-agentのポイントは何ですか? 現在、GPG 1.4を使用しています。 エージェントが実行されているかどうかを確認するにはどうすればよいですか?実際には、gpg-agentが基本的なGPG 1.4パッケージと共にインストールされているかどうかすらわかりません。 実行されていない場合、どのように開始できますか? 実行中の場合、どうすれば停止できますか?
31 gpg  gpg-agent 

5
「ヤムロック」の手間を回避するには?
アプリをインストールしようとすると、「別のアプリが現在yumロックを保持しています。終了を待っています...」というメッセージが頻繁に表示され、yumを手動で強制終了する必要があります。どうすればそれを回避できますか?yumのロックを解除する簡単な方法はありますか? yumの1つのインスタンスのみを実行できるようです。他のパッケージマネージャー(apt-get、pacman)と同じですか?
31 centos  yum 

5
複数のグループをディレクトリ所有者として設定する
私のサーバーにはディレクトリがあり/srv/svnます。 例えば、複数のグループ所有権を持っているために、このディレクトリを設定することが可能であるdevFirmA、devFirmBとdevFirmC? ポイントは、subversion複数のリポジトリにまたがる複数のユーザーをバージョン管理したいのですが /srv/svn、マージの方法、リポジトリのルートディレクトリ、アクセス許可がわからないことです。たとえば、3つの会社FirmAがFirmBありFirmCます。今、内部の/srv/svn私は3つのディレクトリを作成しました、FirmA、FirmB、FirmCおよびそれらの内側に、私はプロジェクトごとにリポジトリを作成しましたし、今私は内のすべてのelementesがあるため、許可制度を確立する方法がわからない/srv/svnが所有しているroot:root[OK]をされていない、または私は違う?

1
「E:サブプロセス/ usr / bin / dpkgがエラーコード(1)を返しました」これはどういう意味ですか?
誰かがソフトウェアのインストール、アップグレード、または削除に問題があるたびにこのメッセージを何度か見ましたが、それはどういう意味ですか? (Reading database ... 81657 files and directories currently installed.) Removing mongodb-10gen ... arg: remove invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found. dpkg: error processing mongodb-10gen (--remove): subprocess installed pre-removal script returned error exit status 100 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found. dpkg: error while cleaning up: subprocess installed post-installation script …
31 apt  dpkg 

2
「export var = value」はどこで利用できませんか?
おそらく1990年代半ばのUsenetで(!) export var=value バシズムであり、携帯式は var=value export var 私はこれを長年擁護してきましたが、最近、誰かが私にそれについて異議を唱えました。 Googling for "export: command not found"は、誰かが実際にこの問題を抱えているケースを引き起こさないようです。 (私が得るヒットは、句読点をコピー/貼り付けして、最終的に、'export: command not foundまたはそのようなもので使用exportしたり、Bourneシェル構文を使用しようsudoとしている初心者cshユーザーであるようです。) OS X、およびshis を含むさまざまなLinuxディストリビューションで動作することは確かにわかりますdash。 sh$ export var=value sh$ echo "$var" value sh$ sh -c 'echo "$var"' # see that it really is exported value 今日の世界では、それexport var=valueが安全に使用できると言っても安全ですか? 結果が何であるかを理解したいと思います。v7 "Bourne classic"に移植できない場合、それは雑学以上のものではありません。シェルが実際にこの構文に対応できない実稼働システムがある場合は、知っておくと便利です。

1
宛先なしでrsyncを実行するとどうなりますか?
話を短くするために、rsyncを実行しました。 rsync -avP user@exampleserver.com:/tmp/ そして、ソースディレクトリに置くのを忘れました... 私は本当に実行するつもりでした: rsync -avP /tmp/ user@exampleserver.com:/tmp/ 大量のファイルを印刷しましたが、宛先を指定しなかったため、どこでコピーしたかわかりません。誰が何が起こったのか知っていますか?私はls現在のフォルダーで行いましたが、何も見つかりませんでした。
31 linux  rsync  file-copy 

2
悪い `rm`でファイルを保存した後、マシンの電源を切るのはなぜですか?
古典的な状況:私は悪い実行し、rmすぐに間違ったファイルを削除したことを実現しました。(重要なことは何もありませんでしたが、最近のバックアップは許容範囲内でしたが、まだ迷惑です。) extundeleteまたはそのようなツールを使用してファイルを回復したい場合、さらなるディスクアクティビティが敵であることがわかったので、すぐに物理的にマシンの電源を切りました(つまり、haltコマンドではなく、電源ボタンで)。これは重要なタスクが実行されていない、または何も開いていないラップトップであるため、許容できる操作でした。(ところで、そのような状況で最初にすることは、プロセスhttps://unix.stackexchange.com/a/101247によって見つからないファイルがまだ開かれている可能性がある場合、最初に推定することであることをその後学びました-存在する場合、マシンの電源を切るのではなく、この方法で回復する必要があります。) それでも、マシンの電源を切った後、しばらく考えて、ファイルが適切なフォレンジックのためにライブシステムを起動する時間投資に見合わないと判断しました。そこで、マシンの電源を入れました。そして、ファイルがまだディスクに残っていることを発見しましrmた。電源を切る前にファイルがディスクに伝播されていませんでした。私は少しダンスをし、システム管理者の神に彼の予期せぬ許しに感謝しました。 私の質問は、これがどのように可能だったか、そしてrm実際にディスクに伝播されるまでの典型的な遅延とは何かを理解することです。ディスクIOはすぐにはフラッシュされず、しばらくの間メモリ内に置かれることはわかっていますが、ディスクジャーナルにより、保留中の操作が完全に失われないようにすばやく確認できると考えました。https://unix.stackexchange.com/a/78766は、ダーティページをフラッシュし、ジャーナル操作をフラッシュする別のメカニズムを示唆しているように見えますが、ジャーナルがa rmにどのように関与するかについての十分な詳細と、操作がフラッシュされます。 いくつかの詳細:データはLUKSボリューム内のext4パーティションにあり、マシンを起動してバックアップしたとき、次のことがわかりましたsyslog: Sep 24 10:24:58 gamma kernel: [ 11.457007] EXT4-fs (dm-0): 1 orphan inode deleted Sep 24 10:24:58 gamma kernel: [ 11.458393] EXT4-fs (dm-0): recovery complete Sep 24 10:24:58 gamma kernel: [ 11.482475] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null) しかし、私はそれがに関連していると確信していませんrm。 別の質問は、マシンの電源を落とすのではなく、保留中のディスク操作を実行しないようにカーネルに指示する方法があるかどうかです(ただし、どこかにダンプするなど)。(もちろん、保留中の操作を実行しないのは危険に思えますが、これはとにかくマシンの電源を切ったときに起こることであり、場合によってはそれがあなたを救う可能性があります。)たとえば、物理的な電源切断が簡単なオプションではないリモートサーバーの場合。

2
すべてのキーストロークを記録し、ファイルに保存します
すべてのキーストロークを記録し、ユーザーディレクトリのファイルに保存する必要があります。アカウントを使用する場合、私はsudoerではなく、プログラム(logKeysなど)をインストールできません。ターミナルを使用してどのようにできますか? 注:この質問は、他の言及の質問の複製ではありません。この質問では、すべてのキーストロークについて質問していますが、質問者はターミナルセッションでキーストロークについて質問しました。
31 x11  logs  keyboard  input 

3
中括弧を使用したBashサブシェルの作成
よれば、この、中括弧の間のコマンドのリストを確定すると、リストは、現在のシェルのコンテキスト内で実行されるようにします。サブシェルは作成されません。 psこれを実際に使用して見る これは、コマンドラインで直接実行されるプロセスパイプラインのプロセス階層です。4398は、ログインシェルのPIDです。 sleep 2 | ps -H; PID TTY TIME CMD 4398 pts/23 00:00:00 bash 29696 pts/23 00:00:00 sleep 29697 pts/23 00:00:00 ps コマンドラインで直接実行される中括弧間のプロセスパイプラインのプロセス階層に従います。4398は、ログインシェルのPIDです。これは、すべてが現在のシェルコンテキストで実行されることを証明する上記の階層に似ています。 { sleep 2 | ps -H; } PID TTY TIME CMD 4398 pts/23 00:00:00 bash 29588 pts/23 00:00:00 sleep 29589 pts/23 00:00:00 ps これは、sleepパイプライン自体が中かっこ内に配置されている場合のプロセス階層です(つまり、2レベルのかっこ) { …
31 bash  subshell 

7
プロセスをだましてファイルが存在しないと考えるにはどうすればよいですか?
設定を保存するプログラムがあります ~/.config/myprogramインタラクティブに使用することもバッチキューシステムで使用することもできます。対話的に実行する場合、このプログラムで構成ファイルを使用する(および使用する)必要があります。ただし、バッチモードで実行する場合は、関連するすべての設定を上書きするコマンドラインオプションを指定するため、構成ファイルは必要ありません。さらに、ネットワーク経由で構成ファイルにアクセスすると、プログラムの起動時間が数秒長くなります。ファイルが存在しない場合、プログラムは非常に高速に起動します(各ジョブには約1分しかかからないため、バッチジョブのスループットに大きな影響があります)。しかし、私はプログラムを対話的にも使用するため、構成ファイルを常に移動/削除したくありません。クラスターでバッチジョブがスケジュールされるタイミング(他のユーザーの使用状況に基づく)に応じて、 (さておき、ネットワークファイルのパフォーマンスが非常に遅いことはおそらくバグですが、私はクラスターの単なるユーザーであるため、修正することはできず、回避することしかできません。) バッチ用に構成ファイルを読み取らない(またはコマンドラインオプションを持たない)バージョンのプログラムをビルドできましたが、このプログラムのビルド環境は設計が不十分でセットアップが困難です。システムのパッケージマネージャーからインストールされたバイナリを使用したいです。 このプログラムの特定のインスタンスをだまして構成ファイルが存在しないふりをするにはどうすればよいですか(プログラムを変更せずに)。フォームのラッパーを期待していますが、 pretendfiledoesntexist ~/.config/myprogram -- myprogram --various-options...他のソリューションにもオープンです。
31 files 

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