Unix & Linux

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

4
Dashでプロセス置換をエミュレートする方法は?
ではbash、Process Substitutionを使用して、プロセスの出力をディスクに保存されたファイルのように扱うことができます。 $ echo <(ls) /dev/fd/63 $ ls -lAhF <(ls) lr-x------ 1 root root 64 Sep 17 12:55 /dev/fd/63 -> pipe:[1652825] 残念ながら、プロセス置換はでサポートされていませんdash。 Process Substitutionダッシュでエミュレートする最良の方法は何でしょうか? 出力を一時ファイルとして保存したくない(/tmp/)ので、それを削除する必要があります。別の方法はありますか?

4
zshプロンプトでパスを短くする
BashPROMPT_DIRTRIMオプションがあります。たとえば、を設定するとPROMPT_DIRTRIM=3、次のような長いパスになります。 user@computer: /this/is/some/silly/path 代わりに次のように表示されます: user@computer: .../some/silly/path 同様のオプションが存在しzshますか?
18 zsh  prompt 

2
特定のユニットのみのjournalctlエントリをクリアするにはどうすればよいですか?
Pythonスクリプトを作成し、そのためのsystemdユニットファイルを作成するのに数日費やしました。テスト中、スクリプトは多くのエラーをjournaldに記録しました。完了したら、これらのエラーをjournaldからクリアしたいと思います。 ここで説明するように、ジャーナル全体をクリアする方法はいくつかあります: using journalctl --vacuum-time=2d、using journalctl --vacuum-size=500M、およびSystemMaxUse=/etc/systemd/journald.confを非常に低い値に一時的に設定するなど、journalctlをクリアする方法。 これらはすべて、ジャーナル全体をクリアするように見え、すべてのユニットに影響します。単一のユニットのエントリをクリアするだけです。これは可能ですか?

4
bashスクリプトからプロセスをデタッチするにはどうすればよいですか?
スクリプトを終了するときにSIGINTがプロセスに転送されないように、bashスクリプトからプロセスをデタッチしようとしています。 disownターミナルでコマンドを直接使用しましたが、bashではdisownSIGINTの転送を停止しません。このスクリプトの目的は、openocdを起動し、1回の呼び出しでgdbを起動することです。スクリプトは終了しない(gdbを実行している)ので、SIGINTはgdbからopenocdに転送されますが、これはSIGINTがgdbのhaltコマンドとして使用されるため問題です。 ターミナルでは、次のようになります。 $ openocd & # run openocd demonized $ disown $! # disown last pid $ gdb # invoke GDB 端末でこの順序で呼び出された場合、SIGINTはgdbからopenocdに渡されません。ただし、これと同じ呼び出しがbashスクリプトで行われた場合、SIGINTが渡されます。 どんな助けも大歓迎です。 psこの問題はOS Xにありますが、すべてのUnixツールにも移植可能なツールを使用しようとしています。
18 bash  disown 

1
iotopは1.5 MB / sのディスク書き込みを示しますが、すべてのプログラムには0.00 B / sがあります
iotop出力がわかりません。約1.5 MB / sのディスク書き込み(右上)が表示されますが、すべてのプログラムには0.00 B / sがあります。どうして? このビデオは、Kubuntu 14.04.3 LTS x64 で、数百万のファイルを 含むフォルダーのコンテンツをを使用して削除するときに撮影されましたperl -e 'for(<*>){((stat)[9]<(unlink))}'。 iotopを使用して起動されましたsudo iotop。
18 linux  process  monitoring  io 

1
プロセスをデーモン化するときにsetsid()を使用する理由
service(daemon)を作成するために、親をフォークし、を呼び出して子をセッションリーダーにしながら終了させsetsid()ます。さらに、setsid()を使用する理由は何ですか?孤立プロセスはinit(すべての場合ではありませんが)プロセスによって処理されます。 なぜstsid()を使用するのですか?信号setsid()と処理の間に関係はありますかSIGHUP。
18 daemon 


4
パスワードが設定されているかどうかを確認するにはどうすればよいですか?
私はこのサーバーを数ヶ月使用しています。最初に管理者に公開sshキーを送信し、彼がアカウントを設定しました。ログインにはsshキーのみを使用しました。最初はパスワードがありませんでした。 それ以来、を使用してパスワードを設定する場合と設定しない場合がありますpasswd。今使用している場合、passwdこれが表示されます。 $ passwd Changing password for user myusername. Changing password for myusername. (current) UNIX password: 私はパスワードを持っていることを示唆しているように見えますが、これを行ったことの記憶はありません。 パスワードが設定されているかどうかを最終的に判断するにはどうすればよいですか? 編集: パスワードが何であるかわからないため、ログインもパスワードの変更もできません(空白のパスワードは機能しません)。ディストリビューションはFedoraリリース20(Heisenbug)です。
18 password 

2
journalctlの選択可能なユニットのリスト
CentOS 7サーバーで、journalctlログを生成できる選択可能なユニットのリストを取得したい。これを達成するために次のコードを変更するにはどうすればよいですか? journalctl --output=json-pretty | grep -f UNIT | sort -u CentOS 7ターミナルでは、上記のコードはを生成しgrep: UNIT: No such file or directoryます。 編集: 次のJavaプログラムは、目的のgrepからの出力を出力せずに終了しています。ターミナルバージョンに加えてjavaプログラムが動作するように、どうすれば変更できますか? String s; Process p; String[] cmd = {"journalctl --output=json-pretty ","grep UNIT ","sort -u"}; try { p = Runtime.getRuntime().exec(cmd); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); while ((s = br.readLine()) != …
18 grep  systemd 


1
journalctlの変更をリッスンする
通常tail -f /var/log/messages、新しい行がある場合は更新を取得するために使用します。 どのようにのために同様の機能を持っていますかjournalctl?
18 logs  systemd 

4
パイプを使用したgrepがここで機能しないのはなぜですか?
次のコマンドがあります: find / -name libGL.so.1 「Permission denied」で多くの行を返します。そのような行を除外したいので、次を追加しました: find / -name libGL.so.1 | grep -v 'denied' しかし、出力は同じです-私grep -v 'denied'は行をフィルタリングしませんPermission denied。私は多くのバリエーションを試し、grepチュートリアルを調べましたが、問題を理解することはできません。助言がありますか?
18 shell  grep  pipe 

5
Iptables永続サービスが変更を保存しないのはなぜですか?
私は、その後、この Ubuntuの12.04でのIPルール設定するにはチュートリアルを。セットアップではすべて正常に機能しましたが、リブートしても持続しない変更をファイアウォールに加えました。その理由はわかりません。ここに、iptables-persistentをどのように使用しているかのデモがあります。何が間違っていますか? $ sudo service iptables-persistent start * Loading iptables rules... * IPv4... * IPv6... $ sudo iptables -L //shows a certain rule $ iptables -D INPUT ... //command successfully drops the rule $ sudo iptables -L //shows rule has been deleted $ sudo service iptables-persistent restart * Loading iptables …


4
キーバインディングテーブル?
キープレスを参照するさまざまな方法をすべて変換するキーバインディングテーブルはありますか?私はを使用しzshていますが、そのようなテーブルがあれば、どのシェルでも機能すると思います。 私が尋ねる理由は、いくつかのキーバインディングを割り当てたいので、それらを参照する方法を知る方法がないためです(すでに定義されているものを盗もうとしない限り)。 たとえば、「zbindkey」には次のようなものがあります。 [[ "$terminfo[kend]" == " O"* ]] && \ bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line ...そして、「ケンド」はこれがEndキーを指すことを意味すると推測できます。 bindkey次の行が表示されているクロスチェック: "^E" end-of-line "^[OF" end-of-line "^[[F" end-of-line ...そのため、これらの行の1つがEndキーを参照していると信じています。どれ? 「bindkey」ファイルにもこれがあります。 bindkey "\e[A" history-beginning-search-backward 今、私はたまたまそれがUp Arrow鍵であることを知っていますが、私が知らなかったならどうやって見つけることができますか? $ bindkey (at CLI) ...同じキーに対して異なる言語を提供します。 "^[[A" history-beginning-search-backward ...しかし、少なくとも今で ^[[Aは、bindkey-at-CLIで話すことは\e[Abindkey-in-zbindkeyで話すことと同じことを知っています。それは簡単です。DOSの古い時代には、Up Arrow だった0;72-あなたはすべての法的なキーストロークのスキャンコードを見つけることができる、唯一の言語がありました。 テーブルはありますか?またはterminfo[]、「bindkey-in-zbindkey」...「bindkey-at-CLI」および/または他の言語でキーストロークを選択し、それを参照する方法を知ることができる他の方法たまたま? 繰り返しますが、DOSにはscancodeプログラムがありました。キーストロークを入力すると、スキャンコードが表示されます。それは罪深いほど簡単でした。 私が推測する答えから、すべての可能なバインディングの表を印刷する方法はないと思いますか?とにかく「bindkey」はほとんど私が望むことをします: pts/2 HP-y5-10-Debian1 root /aWorking/Docs $ …

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