Unix & Linux

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

3
バッシュグロビングの歴史
Bashの「グロビング」と正規表現が同一でない歴史的な理由はありますか?たとえば、Bash [1-2]*では1または2で始まり、その後に何かが続くものに一致すると思いますが、正規表現[1-2]*は1と2のシーケンスのみに一致します。私のBashスクリプトとREGEX fooはどちらも非常に弱く、私はこれらの違いに関連する問題に定期的に遭遇しました。

2
Linuxでネットワークコマンドラインを使用せずに、開いているポートのリストとそれらを所有するプロセスを知る方法は?
embedded-linuxのどのプロセスがどのポートを使用しているかを知りたい。シンプルなembedded-linuxなので、netstat、lsofなどのネットワークコマンドラインはありません。(cat、cp、echoなどの基本的なコマンドラインのみが存在します)。 部分的な解決策は、「cat / proc / net / tcp」および「cat / proc / net / udp」コマンドラインを使用することです。ただし、これらのコマンドラインから出力されたリストに使用中のすべてのポートが表示されているかどうか、またどのリストが特定のポートにバインドされているかは表示されません。 コメントをいただければ幸いです。

5
複数のサーバーからローカルシステムにファイルをコピーするにはどうすればよいですか?
app00、app01などのサーバーにアプリケーションを複数デプロイしています。これらすべてのサーバーからローカルMacに1つのログファイルをコピーする必要があるので、いくつかのgreppingとcutを実行できます。 このファイルの表示にcsshXを使用しましたが、scpに相当するものを見つけることができません。私は基本的に2つのことを望みます。 n台のそのようなサーバーに接続してファイルをコピーする機能 ログファイルの先頭にサーバーホスト名を付けることにより、ローカルで名前の競合を回避します。 どうすればいいですか?
11 scp  file-copy 

2
$ BASH_COMMANDを評価しても安全ですか?
私は変数から複雑なコマンドを構築するシェルスクリプトに取り組んでいます。たとえば、次のようにします(Bash FAQから学んだテクニックを使用)。 #!/bin/bash SOME_ARG="abc" ANOTHER_ARG="def" some_complex_command \ ${SOME_ARG:+--do-something "$SOME_ARG"} \ ${ANOTHER_ARG:+--with "$ANOTHER_ARG"} このスクリプトはパラメーター--do-something "$SOME_ARG"を動的に追加--with "$ANOTHER_ARG"しsome_complex_command、これらの変数が定義されているかどうかを確認します。これまでのところ、これは正常に動作しています。 しかし、コマンドを実行しているとき(たとえば、スクリプトがデバッグモードで実行されているとき)に、コマンドを印刷またはログに記録できるようにしたいと思っています。そのため、スクリプトを実行するときに、some_complex_command --do-something abc --with defこのコマンドを変数に含めて、syslogに記録できるようにしたいと考えています。 Bash FAQは、この目的でトラップと変数(たとえば、デバッグ目的)を使用DEBUG$BASH_COMMANDする手法を示しています。私は次のコードでそれを試しました: #!/bin/bash ARG="test string" trap 'COMMAND="$BASH_COMMAND"; trap - DEBUG' DEBUG echo "$ARG" echo "Command was: ${COMMAND}" これは機能しますが、コマンドの変数は展開されません。 host ~ # ./test.sh test string Command was: echo "$ARG" 展開echo "$ARG"するにはevalを使用する必要があると思いますecho …
11 bash 

2
LinuxカーネルがセカンダリHDDをスリープ解除しないようにする方法
システムのスリープ/ウェイクアップサイクル後にセカンダリLinuxをウェイクアップしないように(Linux)カーネルに指示する方法はありますか?私のラップトップには、システムルートを含むプライマリドライブとしてSSDがあり、バックアップシステムと散発的にアクセスするファイルを保持するセカンダリHDDがあるので、私は尋ねています。ラップトップは通常、何日間も毎日多くのスリープ/ウェイクアップサイクル(休止状態ではなくRAMへのサスペンド)を実行するため、セカンダリHDDを手動でスリープ状態にし、カーネルがシステムスリープ全体でスリープ状態を維持するように指示します/ウェイクアップサイクル。


1
iptablesのaddrtypeの定義は何ですか?
私はいくつかのbogon ipsを削除するために、フィルターチェーンの1つで原則addrtypeとし-srcてと組み合わせて使用することに熱心です。 -A INPUT -p tcp --dport 80 -m addrtype --src-type UNICAST ! -s 127.0.0.0/8 -j WEB マニュアルページには次のように書かれています addrtype このモジュールは、アドレスタイプに基づいてパケットを照合します。アドレスタイプはカーネルネットワーキングスタック内で使用され、アドレスをさまざまなグループに分類します。そのグループの正確な定義は、特定のレイヤー3プロトコルによって異なります。 次のアドレスタイプが可能です。 未指定のアドレス(つまり0.0.0.0)をUNSPEC ユニキャストアドレスのユニキャスト LOCALローカルアドレス ブロードキャストアドレスをブロードキャストする エニーキャストパケットのANYCAST マルチキャストアドレスのマルチキャスト ブラックホールブラックホールアドレス 到達不能なアドレスに到達できません 禁止されている住所を禁止する スローフィックス NAT FIXME XRESOLVE 正確な定義は明確ではなく、特定のレイヤー3プロトコルに依存すると述べています。これは私が思うことです: ユニキャスト(!BROADCAST、!MULTICAST、!ANYCAST) ローカル(127.0.0.0/8) 放送(*.*.*.255) エニーキャスト(*.*.*.*) マルチキャスト(224.0.0.0/4) 誰もがそれが何を意味するのか、それがiptablesによってどのように実装されているのか(たとえば、地獄がBLACKHOLEであるかをどのようにして知るのか)を明確に知っていますか?
11 iptables 

4
常に同じUIDとGIDのペアがありますか?
ファイル/ディレクトリの所有権をchmod.I を使用して変更する必要があります。所有者のユーザー名しか知りませんが、デフォルトのグループ名を同時に変更します。この段階ではグループ名が決まっていないので、ユーザー名と同じにしています chown -R username:username path_to_dir コマンドはさまざまなシステム/ユーザーに対して実行される可能性があるので、私の懸念は、Linuxには常にユーザー名(ユーザー):ユーザー名(グループ)のペアがあるか、ある時点でこのデフォルトのグループ名がエラーになる可能性があることです。 所属するユーザーからGIDを探し始めましたが id username | tr '(=)' ':' | awk -F: '{print $3} しかし、私は知りたい知識について。これまで/etc/passwd /etc/groups、「shutdown、halt、sync、opeartor」のような一部のユーザーを除いて、すべてのユーザーがグループにリストされている分析も行われていました。 編集1:id -gnユーザー名も良いオプションです
11 linux  chown  passwd 

2
「。」を使用しても大丈夫ですか?ソースの代わりにファイルを実行するには-UbuntuとOS Xの.bashrcで?
OK、そのsource現在のシェルでスクリプトを実行し、.別途、で詳述するように「」とし、 『ソース』でスクリプトを実行している私には、具体的には、例えば、しかし、.bashrcファイル、私が持っています: [ -f ~/.bash_aliases ] && source ~/.bash_aliases [ -f ~/.git-completion.bash ] && source ~/.git-completion.bash [ -s ~/.autojump/etc/profile.d/autojump.sh ] && source ~/.autojump/etc/profile.d/autojump.sh これを次のように置き換えることはできますか? [ -f ~/.bash_aliases ] && . ~/.bash_aliases [ -f ~/.git-completion.bash ] && . ~/.git-completion.bash [ -s ~/.autojump/etc/profile.d/autojump.sh ] && . ~/.autojump/etc/profile.d/autojump.sh OS Xで動作しますか-それは「POSIX」の問題ですか? 私はそれを試しましたが、上記はまだUbuntuで動作するようです(したがって、実際には両方sourceで動作し.、つまり、シェルで必要な機能が得られます)。どちらを選ぶべきですか、それとも何か不足していますか? FWIW、OS Xでは、自分のを.bashrcから調達してい.bash_profileます。
11 osx  bashrc  posix 

2
カスタムbash関数とエイリアスを文書化する方法は?
問題: 複数のbash関数とエイリアスがあります。頭の上にあるものすべてを覚えているわけではないので、たいていの場合.bash_functions、.bash_aliasesファイルを開いて必要なものを見つけます。 質問: bashプロンプトから使用できる関数/エイリアスを一覧表示するにはどうすればよいですか? コメント(PHPDocのようなもの)を使用してbash関数/エイリアスを文書化することは可能ですか? ファイルを開かずに、利用できるものを出力する簡単で便利な方法が欲しいのですが。コマンドを実行して、関数/エイリアスの動的リストを吐き出させると便利です(使用例はプラスです)。:)

2
Docker / LXCのAppArmorプロファイル
MySQLを実行するDockerコンテナー(LXC)があります。Dockerの背後にあるアイデアは一般に「コンテナごとに1つの実行プロセス」であるので、MySQLバイナリをターゲットとするAppArmorプロファイルを定義すると、それらは適用されますか?これをテストする方法はありますか?
11 lxc  apparmor  docker 

2
すべてのディレクトリで使用できるシンボリックリンクを定義する方法
たとえばproject、ディレクトリをポイントするために使用できるようにシンボリックリンクを設定することは可能home/me/projectですか?これは、ファイルシステム内の場所とは無関係である必要があります。 私のようなコマンドを使用したいのですがcd project、nano project/file1.texなどを。 すべてのディレクトリへのシンボリックリンクを記述する必要がありますか?
11 bash  symlink 

3
btrfs send / receiveを使用して、低速で信頼性の低いネットワーク接続を介してバックアップスナップショットを送信する方法
btrfsの送信/受信機能を使用して、バックアップスナップショットをかなり低速(初期シードは約50〜100GB、アップストリームバンドは約1〜2MBit / s)で信頼できない(両端で毎日強制的に中断)接続で送信したいと思います。 次の要件が表示されます。 暗号化された転送(通常はSSHトンネルを使用して実現されます) 中断された接続に対する堅牢性 そうですZFSは自動的に中断された転送を再開することができます rsyncはないかと同様に、。これはBTRFSにも適用されますか?センド/ wikiページは受信中断した転送に関して有用ではありません。btrfsが中断された転送を再開する場合、私がしなければならないことは、SSHトンネルを使用して、中断された場合に再開することだけです。 そうでない場合は、中間でバッファを使用して、btrfs-connectionが割り込みに耐えることを確認するか、シードのために両方のサーバーを互いに近くに配置する必要があります(これは、毎日の送信に優れた追加ファイルに関して問題になります)容量とスナップショットの送信)。 シードとスナップショットを送信するために何を考慮する必要がありますか?
11 linux  backup  btrfs 

9
文字列で最も長い数値を出力するにはどうすればよいですか?
文字列で最も長い数値を出力する方法を探しています。 例:文字列がある場合 212334123434test233 どうやって印刷できますか 212334123434 ? 注:数値的に大きな値ではなく、最も長い連続した数列を探しています。 編集:皆さん、答えてくれてありがとう。この質問への回答は非常に圧倒されています。@HaukeLagingの投稿は、私の特定のケースに非常に適しているため、承認済みの回答としてマークしましたが、すべての回答が等しく有効であることを指摘しておきます。問題を解決するためのいくつかの異なるオプションがあることは常に素晴らしいことです。

3
GPTディスクパーティションのマウントに関する問題
GPTディスクにパーティションをマウントしようとしていますが、次のエラーが発生します。 $ sudo mount -t ext4 /dev/sda1 disk/ mount: special device /dev/sda1 does not exist dmesgを見ると、/ dev / sdaにエラーはありません。 $ dmesg | grep sda [ 1.367508] sd 0:0:0:0: [sda] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB) [ 1.367514] sd 0:0:0:0: [sda] 4096-byte physical blocks [ 1.367607] sd 0:0:0:0: [sda] Write …

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