Unix & Linux

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

4
bash caseステートメントの最後の「esac」とはどういう意味ですか?必要ですか?
bashのcaseステートメントの最後に「esac」の例が複数あるのを見つけましたが、その使用に関する明確なドキュメントは見つかりませんでした。マニュアルページはそれを使用しており、単語(https://www.gnu.org/software/bash/manual/bashref.html#index-esac)のインデックスさえ持っていますが、その使用を定義していません。ケースステートメント、ベストプラクティス、または純粋なテクニックを終了するために必要な方法ですか?
55 bash  case 

13
ディレクトリ内のファイル数を数える最もリソース効率の良い方法は何ですか?
CentOS 5.9 先日、ディレクトリに多くのファイルがある問題に遭遇しました。それを数えるために、私は走ったls -l /foo/foo2/ | wc -l 1つのディレクトリに100万を超えるファイルがあったことがわかります(長い話-根本的な原因は修正されつつあります)。 私の質問は次のとおりです。カウントを行うより速い方法はありますか?カウントを取得する最も効率的な方法は何でしょうか?
55 bash  shell  directory  ls 

3
新しいエイリアスと関数を定義した後、エイリアスと関数を更新しますか?
.bash_aliasesファイルに新しいエイリアスまたはファイルに新しい関数を定義するとき.bashrc、ターミナルを閉じることなく新しいエイリアスまたは関数をすぐに使用できるリフレッシュコマンドがあります(私の場合、いくつかのタブが開いているxfce4-terminal、多くのファイルが開いていますそして仕事の途中で)?

4
Windowsマネージャー対ログインマネージャー対ディスプレイマネージャー対デスクトップ環境
私は質問を投稿し、人々がこれらの多くのことを正しく区別していないことに気付きました:Windowsマネージャー対ログインマネージャー対ディスプレイマネージャー対デスクトップ環境。誰かがこれをクリアしてください、つまり、それらの違いと、おそらくどのように関係しているのか教えてください。 Xorgはどのカテゴリに分類されますか?Gdm / Kdm / Xdmはどうですか?人々はXについても話します。Xとは何ですか?

5
コメント(#で始まる行)を無視してファイルを比較する方法は?
パッケージマネージャーのオリジナルと、自分で変更したカスタマイズされたファイルの2つの構成ファイルがあります。動作を説明するコメントを追加しました。 diffコメントをスキップして構成ファイルを実行するにはどうすればよいですか?コメント付きの行は、次によって定義されます。 オプションの先頭の空白(タブとスペース) ハッシュ記号(#) 他のキャラクター 最初の要件をスキップする(最も単純な)正規表現はになります#.*。GNU diff 3.0 の--ignore-matching-lines=RE(-I RE)オプションを試しましたが、そのREで動作させることができませんでした。私も試してみましたが.*#.*、.*\#.*運はありませんでした。文字通り行(Port 631)を置くと、RE何にも一致しません。また、スラッシュの間にREを置くことも役立ちません。 「diff」ツールで提案されている正規表現のフレーバーが欠けているように見えますか?、私は試しましたgrep -G: grep -G '#.*' file これはコメントと一致するようですが、では機能しませんdiff -I '#.*' file1 file2。 それでは、このオプションはどのように使用すべきでしょうか?diff特定の行をスキップするにはどうすればよいですか(私の場合はコメント)?grepファイルを作成して一時ファイルを比較することはお勧めしません。

7
論理的に切断されたUSBデバイスを再接続する方法
USBストレージデバイスが論理的に切断される可能性があります。デバイスはまだ接続されていますが、オペレーティングシステムからは見えません(たとえば、下にリストされていません/proc/bus/usb)。これは、他の種類のUSBやその他のリムーバブルデバイスでも発生する可能性があります。これは、たとえば次のように発生する可能性があります。 NautilusがUSBストレージデバイスをアンマウントした後。 VirtualBoxがUSBストレージデバイスを要求した後(デバイスはゲストに接続されるとLinuxホストから消え、ゲストから切り離されると自動的に再表示されません)。 ドライバーまたはハードウェアで何が起こっているのか、そして最も重要なことは、(物理的にプラグインおよびプラグインせずに)デバイスを(どのように)論理的に再接続できるのか? この質問はマウントに関するものではないことに注意してください。「論理的に切断された」状態では、カーネルはUSBバス上に何も存在しないと考えます(したがって、もちろんの下にエントリはありません/dev)。
55 linux  usb  usb-drive 

5
現在の日付を変数からファイル名に追加する
私はこのようなファイル名の最後に現在の日付を追加しようとしています: TheFile.log.2012-02-11 ここに私がこれまでに持っているものがあります: set today = 'date +%Y' mkdir -p The_Logs & find . -name The_Logs -atime -1 -type d -exec mv \{} "The_Logs_+$today" \; & ただし、ファイルの名前のみが取得され、何も追加されません。現在の日付をファイル名に追加するにはどうすればよいですか?
55 bash  shell  rename  date 

6
rsyncを使用してディレクトリ間でファイルを移動(コピーではなく)しますか?
しばらくの間、rsyncを使用してファイルをコピーしてきました。私の理解では、転送するファイルの一部がすでに宛先ディレクトリにあり、差分の差分(「デルタ」)のみを転送する場合、rsyncはcpより高速です。 これが正しい場合、フォルダーAの内容を移動するためにrsyncを使用することには、たとえばBが空のフォルダーBに利点がありますか? フォルダーAには1TB近くのデータ(およびその中の数百万のファイル)があります。転送はローカルネットワーク(AとBは異なるファイルシステム上にあり、両方ともスーパーコンピューターにマウントされています。たとえば、AはNFSで、Bは光沢です)。 それとは別に、rsyncにファイルをAからBに移動(コピーではなく)する(つまり、転送が正常に終了したときにAを削除する)よう要求するには、どのフラグを使用する必要がありますか?
55 rsync  cp 

4
Linux:引数に基づいてプロセスを強制終了する
コマンドライン引数に基づいてプロセスを強制終了するにはどうすればよいですか? killall、pgrep、およびpkillプロセス名に基づいてのみ動作するようです。 これjavaは、Java仮想マシン内で実行されている多数のアプリケーションを区別できるようにするために必要です。すべてのアプリケーションのプロセス名と実際のアプリケーション名は、コマンドライン引数を調べることで確認できます。 これは手動で行うことができps aux | grep myapp.jar、出力からpidを手動で強制終了することもできますが、同等のコマンドを自動的に実行したいのですが。
55 linux  kill 

6
pipefailと同様の方法でバックティックの失敗時にbashを終了させるにはどうすればよいですか?
したがって、エラーがキャッチされないように、できる限り(およびPython / Rubyのような言語に委任できない場合)にbashスクリプトを強化するのが好きです。 その流れには、次のようなものを含むstrict.shがあります。 set -e set -u set -o pipefail そして、他のスクリプトでそれを入手します。ただし、pipefailは次のことを認識します。 false | echo it kept going | true それは拾いません: echo The output is '`false; echo something else`' 出力は次のようになります 出力は '' Falseは、ゼロ以外のステータスとno-stdoutを返します。パイプでは失敗しますが、ここではエラーはキャッチされません。これが実際に後で変数に保存される計算であり、値が空白に設定されている場合、これはその後の問題を引き起こす可能性があります。 だから-バックティック内のゼロ以外のリターンコードを終了するのに十分な理由としてbashを取得する方法はありますか?


3
フォークボムでシステムをクラッシュできないのはなぜですか?
最近、GNU / Linuxのプロセスに関する情報を掘り下げて、悪名高いfork bombに出会いました。 :(){ : | :& }; : 理論的には、システムがリソースを使い果たすまで無限に複製することになっています... ただし、CLI DebianとGUI Mintディストリビューションの両方でテストしてみましたが、システムに大きな影響は与えないようです。はい、大量のプロセスが作成されます。しばらくすると、次のようなコンソールメッセージを読みました。 bash:fork:リソースは一時的に利用できません bash:fork:retry:子プロセスはありません しかし、しばらくすると、すべてのプロセスが強制終了され、すべてが正常に戻ります。ulimitがユーザーごとのプロセスの最大量を設定したことを読んだことがありますが、それを実際に上げることはできないようです。 フォークボムに対するシステム保護とは何ですか?すべてがフリーズするか、少なくとも大幅に遅れるまで、なぜ自己複製しないのですか?フォークボムでシステムを本当にクラッシュさせる方法はありますか?
54 linux  process  fork  ulimit 

2
なぜprintfは「縮小」ウムラウトですか?
次の簡単なスクリプトを実行すると: #!/bin/bash printf "%-20s %s\n" "Früchte und Gemüse" "foo" printf "%-20s %s\n" "Milchprodukte" "bar" printf "%-20s %s\n" "12345678901234567890" "baz" 以下を印刷します: Früchte und Gemüse foo Milchprodukte bar 12345678901234567890 baz つまり、ウムラウト付きのテキスト(などü)は、ウムラウトごとに1文字ずつ「縮小」されます。 確かに、どこかに間違った設定がありますが、どの設定が可能なのかわかりません。 これは、ファイルのエンコードがUTF-8の場合に発生します。 エンコーディングをlatin-1に変更すると、配置は正しくなりますが、ウムラウトは正しくレンダリングされません。 Fr�chte und Gem�se foo Milchprodukte bar 12345678901234567890 baz
54 bash  unicode  printf 

6
トップの並べ替えをCPUに戻す
元同僚はtop、rootとして実行するたびに、デフォルトのCPU使用率の代わりにMEM使用率によってデータがソートされるようにしました。複数の検索、manページ、およびトップコンソール自体のオプション(O)によると、押すだけでkCPUごとにソートする必要がありますが、ヒットkするとpidを殺すように求められます。 では、デフォルトのソートをCPUに戻すにはどうすればよいですか?
54 top 

7
sshdログの「接続がxxx [preauth]によって閉じられました」の意味
PLINK(putty)を介してLinuxサーバーに自動的に接続するWindowsバッチスクリプトがあります。公開秘密鍵認証はありません。ユーザーとパスワードはスクリプトに含まれています。 Linuxサーバーには、いくつかのsshdログエントリ(/ var / log / messages)があります。 sshd[7645]: Connection closed by xxx [preauth] そのようなメッセージの原因は何でしょうか? 「preauth」はおそらく「pre authentication」を意味しますか? エントリでは、「closed by」にWindowsクライアントのIPアドレスが含まれている場合があります。また、「closed by」にLinuxサーバーのIPアドレスがある場合もあります。メッセージ内のクライアントIPアドレスとホストIPアドレスの違いを知っている人はいますか?

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