Unix & Linux

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

3
特定の引数を持つプロセスを見つけて強制終了するBashスクリプト?
ssh-D引数(ローカルプロキシのセットアップ)を使用して実行されるインスタンスを強制終了するスクリプトが必要です。 手動で、ps -A | grep -i ssh-Dを使用してインスタンスを検索し、各インスタンスを検索しますkill -9 {id}。 しかし、bashスクリプト形式ではどのように見えますか? (私はMac OS Xを使用していますが、必要なコマンドはを介してインストールしますport)
17 bash  process 

2
iノード(ext4)へのハードリンクを作成する方法は?
ファイルのインデックスノード(inode)は知っているが、そのパス(またはそのパス)がわからない場合、そのiノードへのハードリンクを直接作成することはできますか? を使用sudo find / -inum 123546してファイルを見つけてからハードリンクを作成できましたが、それは私のアプリケーションにとっては遅すぎるでしょう。 NB私はext4ファイルシステムを使用しています。
17 inode  hard-link 

1
Linuxコンテキストスイッチの頻度を変更する方法は?
Linux(linaro、ubuntu、debian)のコンテキスト切り替え頻度を変更するにはどうすればよいですか? 応答性の低いシステムをより効率的なシステムにトレードオフしても大丈夫です。 EDIT1:可能な限り高速に実行するメインプロセス(1秒あたりの最大クロックサイクル)があるため、コンテキストスイッチの頻度を減らす(=タイムスライスを増やす)と考えました。問題はそれをどのように行うかであり、重大な効果があるでしょう。コンテキストスイッチのコストを計算できますか?つまり、タイムスライスを2ずつ増やした場合、推定できるのは、関心のあるメインプロセスのパフォーマンスの向上(%)です。

4
パイプの優先順位(|)およびbashの論理および(&&)
演算子の優先順位を持つ古典的なシナリオには、次のような行があります。 (cd ~/screenshots/ && ls screenshot* | head -n 5) そして、それが解析されているの((A && B) | C)か、それとも(A && B | C)... ここにあるほぼ公式のドキュメントでは、リストにパイプがリストされていないため、単純にテーブルをチェックインすることはできません。 さらに、bashでは、(操作の順序を変更するだけでなく、サブシェルを作成するため、この行が前の行と同等であることを100%確信していません: ((cd ~/screenshots/ && ls screenshot*) | head -n 5) より一般的には、bash行のASTを知る方法は?pythonには、操作の順序を簡単に再確認できるように、ツリーを提供する関数があります。
17 bash 

3
chmod + wがother(o)に書き込み許可を与えないのはなぜですか
私は実行するとchmod +w filename、それはへの書き込み権限を与えるものではありませんother、それだけに書き込み権限を与えるuserとgroup。 このコマンドを実行した後 chmod +w testfile.txt ランニングls -l testfile.txtプリント -rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt しかし、の場合+r、+xそれは適切に動作します。 使いたくありませんchmod ugo+w filename。

1
CPUはIO保留中をどのように知るのですか?
iowait以下に示すように、トップユーティリティの出力に表示されるプロパティを調査しました。 top - 07:30:58 up 3:37, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st iowait 一般的に次のように定義されます。 「CPUがアイドル状態で、保留中のIOがある時間です。」 プロセスは単一のCPUで実行されることを理解しています。タイムスロットを使い果たしたためにスケジュールが解除された後、またはブロックされた後、いずれかのCPUで再びスケジュールすることができます。 IO要求の場合、プロセスを割り込み不可能なスリープ状態にするCPUがiowait時間を追跡します。他のCPUは、実際にアイドル状態であるため、それらの側でアイドル時間と同じ時間を報告します。この仮定は正しいですか? さらに、長いIOリクエストがあると仮定すると(プロセスがスケジュールされる機会がいくつかあったが、IOが完了しなかったためにスケジュールされなかった)、CPUは「保留中のIO」があることをどのように知るのでしょうか?そのような情報はどこから取得されますか?CPUのいずれかがそのプロセスをスリープ状態にした可能性があるため、CPUがIOが完了するまでに何らかのプロセスがスリープ状態になったことを単純に見つける方法はありますか。「保留中のIO」のこのステータスはどのように確認されますか?
17 linux  cpu  top  load-average 

6
端末に表示される現在のディレクトリパスを短縮するにはどうすればよいですか?
深いディレクトリにいる場合は、次のように言いましょう: ~/Desktop/Dropbox/School/2017/C/A3/ その後、端末を開くと、 bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$ そして、コマンドを書きます。これは非常に長く、ターミナルに書き込むすべての行は次の行に移動します。現在のディレクトリのみを表示する方法があるかどうかを知りたい。表示したい: bob@bob-ubuntu: A3/$ この方法は非常に明確で、いつでもpwdディレクトリ全体を見ることができます。ターミナルにディレクトリ全体が表示されたくないのは、スペースを取りすぎるためです。

1
スマートケースを使用して小文字の文字列に大文字と小文字を区別した検索を使用する
通常、smartcaseで有効にします.vimrc。 なしsmartcase: 大文字と小文字を区別しない検索が必要な場合は、大文字または小文字で書き(重要ではありません)\c、クエリの最後にa を追加します。 デフォルトでは、大文字と小文字を区別した検索が行われます。 でsmartcase: 大文字と小文字を区別しない検索が必要な場合は、すべて小文字で記述します。 大文字と小文字を区別して検索する場合は、大文字を大文字で書き込みます。 しかし、smartcase有効にすると、小文字のパターンの大文字と小文字を区別した検索が必要だと言うにはどうすればよいですか?を追加する\cと検索のタイプ​​が元に戻ると予想していました(したがって、すべて小文字で、つまり大文字と小文字を区別しない検索で記述した場合、大文字と小文字を区別する検索になります。文字、つまり大文字と小文字を区別する検索では、大文字と小文字を区別しない検索になりますが、そうではないようです(しゃれはありません)。
17 vim  search 

2
ネットワークのfstabマウント待機
システムの起動後にcifsデバイスをマウントしようとしました。 しかし、システムはネットワークが確立される前にシステムをマウントしようとするため、失敗します。 システムにログインした後、私はそれを使用して問題なくマウントできます sudo mount -a ネットワークが使用可能になるまで待機するようにArch(アーム)に指示するにはどうすればよいですか? 編集: systemdを使用します

2
SSHホストキーをロールオーバーする方法は?
推奨は2048ビットキーをすぐに段階的に廃止することなので、sshサーバーを2048ビットRSAキーからより大きなキーにアップグレードしようとしています。 次のように、新しいキーを生成し、それをsshd構成に追加しました。 HostKey / etc / ssh / ssh_host_rsa_key (古い2kビットのキーが最初) HostKey / etc / ssh / ssh_host_rsa4096_key (新しい大きなキー2番目) 再起動後sshd、ホストにsshしますが、IDが変更されたという警告は表示されませんが、新しいものはにキャッシュされません~/.ssh/known_hosts。行を逆の順序で配置すると、IDが変更されたという警告が表示されます。同様に、ed25519キーを追加するとき、どの順序で入力しても、クライアントは既知のホストファイルに新しいキーを追加しません。 これにより、SSHホストキーのロールオーバーが不可能になっているようです。しかし、セキュリティを考慮すると、キーのアップグレードが定期的に必要になるため、実際にはそうではないと考えるのは困難です。 キーを交換するだけで、すべてのクライアントを実行ssh-keygen -Rして古いキーを削除し、新しいキーを手動で確認して受け入れる必要があることはわかっています。しかし、特に多くのクライアントが接続している場合や管理していない場合すべてのクライアント。言うまでもなく、クライアントを管理しない場合、実際にホストキーを確認せず、代わりに単にYを押す可能性が非常に高いので、セキュリティを改善しようとすると、実際にman-in-代わりに中間攻撃。 SSHホストキーのアップグレードを機能させる方法はありますか?つまり、クライアントは新しいより安全なキーを学習する必要があります(また、できれば古いキーを学習しないでください)。また、ホストキーを変更せずに、中間者警告を変更しました。
17 ssh  openssh 

2
ext4lazyinitの進行状況を測定する方法はありますか?
ここで ext4lazyinitについて質問しました。私が読んで理解したすべてから、ファイルシステムのすべてのiノードを作成せずにhddの使用を開始することができます。 知っている、または測定できる唯一の方法は、で監視ext4lazyinitすることiotopです。進捗をパーセンテージで取得する方法はありますか?
17 debian  kernel  ext4 


3
純粋なBashでプログラムをどの程度複雑に書くことができますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 閉じた3年前。 いくつかの非常に迅速な調査の後、Bash はチューリング完全言語であるようです。 なぜBashは、比較的単純なスクリプトを書くためにほぼ排他的に使用されるのでしょうか?BashシェルにはLinuxが付属しているため、他の一般的なコンピューター言語に必要な外部インタープリターまたはコンパイラーなしでシェルスクリプトを実行できます。これは大きな利点であり、場合によっては言語自体の平凡さを補うことができます。 それで、そのようなプログラムがどれだけ複雑になるか制限はありますか?純粋なBashは複雑なプログラムの作成に使用されますか?たとえば、純粋なBashでファイルコンプレッサ/デコンプレッサを作成することはできますか?コンパイラ?シンプルなビデオゲーム? デバッグツールが非常に限られているという理由だけで、あまり使用されていませんか?


1
変数に格納された複数行の文字列を反復処理する
のようなものを書くのは悪いことだと読んでいfor line in $(command)ますが、代わりに正しい方法のようです: command | while IFS= read -r line; do echo $line; done これはうまく機能します。しかし、私が繰り返したいのは、コマンドの直接の結果ではなく、変数の内容だとしたらどうでしょうか? たとえば、次のファイルを作成するとしますquickfox。 The quick brown foxjumps\ over - the lazy , dog. 私はこのようなことをしたいと思います: # This is just for the example, # I could of course stream the contents to `read` variable=$(cat quickfox); while IFS= read …
17 bash  read 

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