Unix & Linux

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

8
if条件に基づくケースのフォールスルー
私はbashのケース条件内のif条件に基づいてフォールスルーが発生する方法を探しています。例えば: input="foo" VAR="1" case $input in foo) if [ $VAR = "1" ]; then # perform fallthrough else # do not perform fallthrough fi ;; *) echo "fallthrough worked!" ;; esac 上記のコードで、変数VARが1の場合、ケース条件にフォールスルーを実行させたいと思います。

8
catコマンドで空白行を表示する
以下にfiles.txtのリストがあります。 -rw-rw-r-- 1 root dev 11 May 16 12:18 20_SumActive.txt -rw-rw-r-- 1 root dev 11 May 16 12:18 22_SumActive.txt -rw-rw-r-- 1 root dev 7 May 16 12:18 24_SumActive.txt -rw-rw-r-- 1 root dev 0 May 16 12:18 26_SumActive.txt -rw-rw-r-- 1 root dev 0 May 16 12:18 28_SumActive.txt 出力: kpgmeddev01> cat 2[0-8]_SumActive.txt …

2
暗号化されたシステムをリモートでオンにする
私のシステムは非常に機密性の高いデータでいっぱいなので、可能な限り暗号化する必要があります。 起動中に毎回長いパスワードを要求する暗号化されたDebianインストールがあります。パスワードをリモートで入力できるように設定する簡単な方法はありますか? 他のディストリビューションで実行できる場合は、Debianの代わりに他のディストリビューションをインストールしてもかまいません。
11 debian  remote  luks 


3
/ devディレクトリ以外のデバイスファイルからハードリンクを作成できないのはなぜですか?
ルートモードで/homeディレクトリにハードリンクを作成したい場合、Linuxは次のエラーメッセージを表示しました。 ln: failed to create hard link ‘my_sdb’ => ‘/dev/sda1’: Invalid cross-device link 上記のエラーメッセージを以下に示します。 # cd /home/user/ # ln /dev/sda1 my_sdb しかし、私は/devディレクトリにハードリンクを作成することしかできず、他のディレクトリでは作成できませんでした。 今、私sdb1は/homeディレクトリ(または他のディレクトリ)の既存のデバイスファイル(など)からハードリンクを作成する方法を知りたいですか?
11 linux  hard-link  ln 

2
パスの接頭辞として使用される〜(チルド)とは何ですか?
編集:これは/programming/998626/meaning-of-tilde-in-linux-bash-not-home-directory/の複製です。この質問を重複として閉じる評判はありません。 私は~ホームディレクトリのようにではなく、これを参照しています: $ ls ~foo/bar /some/mount/point/foo/bar ただし、別のマウントポイントで試してみると、たとえば: $ mount | ag "/dev " devfs on /dev (devfs, local, nobrowse) $ ls /dev/stdin /dev/stdin $ ls ~stdin zsh: no such user or named directory: stdin . # bash has a similar error message: ls: ~stdin: No such file or directory ~この文脈で何と呼ばれていますか?どのように機能しますか? …
11 command-line  osx 

3
grepを使用して、両方ではなく2つの単語のいずれかを含む行を検索する方法
テキストファイルで 'word1' XOR 'word2'の行を検索したい。したがって、word1、word2の行は出力されますが、これらの両方の単語の行は出力されません。XORを使用したかったのですが、LinuxコマンドラインでXORを記述する方法がわかりません。 私は試した: grep 'word1\|word2' text.txt grep word1 word2 text.txt grep word1 text.txt | grep word2 grep 'word1\^word2' text.txt その他多数ありますが、成功することはできませんでした。

13
区切られたアイテムの単一行を数値的にソートするにはどうすればよいですか?
任意の文字で区切られた数字の行(または多くの行)があります。区切り文字を保持したまま、各行の項目を数値的に並べ替えるために使用できるUNIXツールは何ですか? 例は次のとおりです。 番号のリスト; 入力:10 50 23 42; ソート済み:10 23 42 50 IPアドレス; 入力:10.1.200.42; ソート済み:1.10.42.200 CSV; 入力:1,100,330,42; ソート済み:1,42,100,330 パイプ区切り; 入力:400|500|404; ソート済み:400|404|500 区切り文字は任意なので、選択した1文字の区切り文字を使用して、回答を自由に提供(または拡張)してください。

2
wc <<<“ $ string”がprintf“ $ string”よりも1バイト長い長さを表示するのはなぜですか| トイレ?
偶然にも、wcそれがbashから入力を取得する方法に応じてカウントが異なることがわかりました。 $ s='hello' $ wc -m &lt;&lt;&lt;"$s" 6 $ wc -c &lt;&lt;&lt;"$s" 6 $ printf '%s' "$s" | wc -m 5 $ printf '%s' "$s" | wc -c 5 これは-私見が混乱する-どこかに文書化された行動ですか?wcここで何を数えますか?これは想定される改行ですか?

1
なぜ `strace`はこのプロセスが何かを待っていることを示さないのですか?
強大なstrace私を失望させた。これはどのようにして可能ですか? time fooこれは、foo実行に数秒かかる( "実際の")が、ユーザー空間( "user")とカーネル( "sys")の両方で無視できるCPU時間を使用することを示しています。好奇心のために、foo以下に定義されています。 そのため、CPU命令を実行するのではなく、他の何かを待つのにほとんどの時間を費やしています。通常、私はそれがどのように待っているかを見ることができますstrace-つまり、どのシステムコールが長期間ブロックしているのか。残念ながら、このアプローチは機能しませんでした。 strace -ttt -T -C -w fooは、システムコール、タイムスタンプ、およびシステムコールに費やされた(実際の)時間の概要を示しています。しかし、この特定のプロセスは、システムコールの内部で費やされる全体(実)時間はごくわずかであることを示しました。 fooですjournalctl -b -u dev-hugepages.mount。これを再現するために、毎回異なるsystemdユニットへの最後の引数を変更しなければならなかったことを除いて。つまり、調査対象の遅延は、あるsystemdユニットのログを取得しようとしたときに初めて発生しました。 編集:主な質問に答えた後、私はこの遅延を再現する問題が発生している理由にも気付きました。 このプロセスに費やされる時間は特定の問題であり、明らかにすべてのシステムで発生するわけではありません。https://github.com/systemd/systemd/issues/7963

5
バイナリファイルの内容を元に戻すには?
ファイル拡張子のないデータファイルを見つけたという課題を解決しました。fileそれは、コマンド・ショーdata file (application/octet-stream)。hdコマンドが表示さGNPを。最後の行に。したがって、このファイルを元に戻すと、.PNG形式のファイルが表示され、どこでも検索しましたが、バイナリファイルの内容を元に戻す方法を説明する解決策が見つかりませんでした。
11 binary 

1
OpenBSDでSpectreおよびMeltdownカーネルメモリリークのCPUバグを緩和するにはどうすればよいですか?
カーネルメモリリークのIntelプロセッサ設計の欠陥によりLinux、Windowsの再設計が強制される そして サイドチャネルで特権メモリを読み取る 最近のニュースでは、人々はカーネルメモリリークのCPUバグについて読むことができました。 OpenBSDを使用している場合、どうすれば自分を守ることができますか?または、OpenBSDは影響を受けませんか?

3
「/ bin / sh」が「/ bin / bash」を指しているときにシェルスクリプトを実行する
私はこの質問で次を読んだ: bashは--posixスイッチをサポートしているため、POSIXに準拠しています。また、shとして呼び出された場合、POSIXを模倣しようとします。 上記の引用は、それ/bin/shがを指すリンクであると仮定してい/bin/bashます。 しかし、「shとして呼び出された」という意味がよくわかりません。 「script.sh」と呼ばれる次のスクリプトがあるとします。 #!/bin/bash echo "Hello World" スクリプトが通常bashモードで実行されるのか、POSIXモードで実行されるのかを、次のそれぞれのケースで教えてください(実行中の端末で次のコマンドを実行したと想定していますbash)。 sh script.sh bash script.sh ./script.sh 「script.sh」と呼ばれる次のスクリプトがあるとしましょう(上記のスクリプトに似ていますが、シバンはありません)。 echo "Hello World" スクリプトが通常bashモードで実行されるのか、POSIXモードで実行されるのかを、次のそれぞれのケースで教えてください(実行中の端末で次のコマンドを実行したと想定していますbash)。 sh script2.sh bash script2.sh ./script2.sh
11 linux  bash  shell 

3
SSHリモートコマンドライン引数はどのように解析されますか
リモートsshコマンドへの引数を二重にエスケープする必要があるという質問と回答を見てきました。私の質問は次のとおりです。正確に、いつ、2番目の解析が行われますか? 次を実行すると: $ ssh otherhost pstree -a -p 次の出力が表示されます。 |-sshd,3736 | `-sshd,1102 | `-sshd,1109 | `-pstree,1112 -a -p リモートコマンド(pstree)の親プロセスはsshdであり、リモートコマンドへのコマンドライン引数を解析するシェルがないように見えるため、二重引用符またはエスケープが必要であるように見えません(しかし、それは間違いなくです)。代わりに最初にそこにsshし、ログインシェルを取得して実行するpstree -a -pと、出力に次のように表示されます。 ├─sshd,3736 │ └─sshd,3733 │ └─sshd,3735 │ └─bash,3737 │ └─pstree,4130 -a -p したがってbash、その場合にコマンドライン解析を実行するシェルがそこにあるのは明らかです。しかし、リモートコマンドを直接使用する場合、シェルがないように見えるので、なぜ二重引用符が必要なのでしょうか。
11 bash  shell  ssh  process  quoting 

3
シェルスクリプトでは、(1)バックグラウンドでコマンドを開始する方法(2)x秒待機する方法(3)そのコマンドの実行中に2番目のコマンドを実行する方法を教えてください。
これは私が起こる必要があるものです: バックグラウンドでプロセスAを開始 x秒待つ フォアグラウンドでプロセスBを開始 どうすれば待機を実現できますか? 「スリープ」はすべてを停止するように見えますが、実際にはプロセスAが完全に終了するのを「待機」したくありません。時間ベースのループをいくつか見てきましたが、もっときれいなものがあるかどうか疑問に思っています。

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