Unix & Linux

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

3
yashシェルのprintfが組み込みコマンドであるかどうかについて少し混乱しています
yashシェルがありprintf、内蔵してそのマニュアルに従って。 しかし、これはyashデフォルト設定のシェルで見られるものです: kk@eeyore ~ $ command -v printf /usr/bin/printf kk@eeyore ~ $ type printf printf: a regular built-in at /usr/bin/printf されたprintfビルトインこのシェルではありませんか?結果は、外部コマンドとしても利用可能な、他の多くの組み込みユーティリティと同様です。 比較として、pdksh(kshOpenBSDでは、組み込みでprintfはありません): $ command -v printf /usr/bin/printf $ type printf printf is /usr/bin/printf そして中bash(ここprintf でビルトイン): $ command -v printf printf $ type printf printf is a shell builtin

1
Linux名前空間でchrootを実行する方法は?
Linuxの名前空間について読んだ後、他の多くの機能の中でも、chrootに代わるものであるという印象を受けました。たとえば、この記事では: [名前空間の]その他の用途には、単一ディレクトリ階層の一部へのプロセスの[...] chroot()スタイルの分離が含まれます。 ただし、たとえば次のコマンドを使用してマウント名前空間を複製すると、元のルートツリー全体が表示されたままになります。 unshare --mount -- /bin/bash 元のネームスペースと共有されていない新しいネームスペースで追加のマウントを実行できるようになったことを理解しているため、これにより分離が可能になりますが、ルート/etcは同じです。たとえば、両方のネームスペースで同じです。chrootルートを変更する必要がありますか、それとも代替手段がありますか? 私はこの質問が答えを提供することを期待していましたが、答えはchroot再びのみを使用します。 編集#1 に言及した削除済みのコメントがありましたpivot_root。これは実際にはの一部でlinux/fs/namespace.cあるため、実際には名前空間の実装の一部です。これはのみでルートディレクトリを変更することを示唆しているunshareとmount、より巧妙な- -のバージョンで可能ではありませんが、名前空間は自身を提供しますchroot。それでもchroot、ソースコードを読み取った後でも(セキュリティやより良い分離などの意味で)、それと根本的に異なるこのアプローチの主要なアイデアは得られません。 編集#2 これはこの質問の複製ではありません。回答からすべてのコマンドを実行した後、別の/tmp/tmp.vyM9IwnKuY(または同様の)がありますが、ルートディレクトリは同じままです。
14 chroot  namespace 

3
tail -f、ログが3秒間アイドルになった後に改行を挿入しますか?
を行うときにtail -f error.log、3秒間ファイルに何も適用されなかった後にプログラムで改行を挿入する方法は? (明らかに、1つの改行が追加されたら、テキストの他の行がログファイルに追加されるまで、他の改行は追加されません) たとえば、これらの行はerror.logに追加されます: foo bar boo [[wait 4 seconds]] 2far 2foo 2bar 2boo [[wait 40 seconds]] 2far これはコンソールの出力です: foo bar boo 2far 2foo 2bar 2boo 2far


4
bash(または他のシェル)スクリプトでスペースの数が問題になるケースは何ですか
bash他のシェルスクリプトではスペースが重要であると言われましたが、何をしているのかわからない限り、スペースの存在を変更しないでください。「存在を変える」と私はどちらかなどが変化する、二つの非空白文字の間にスペースを挿入するか、二つの非空白文字の間にスペースを取り除く意味var="$val"するvar ="$val"、またはその逆。聞きたい シェルスクリプトで単一のスペースを使用したり、複数の連続したスペースを使用したりすると、違いが生じる場合はありますか?。 (もちろん、引用符でスペースを挿入/削除すると違いが生じます。例えば、からecho "a b"、echo "a b"またはその逆に変更します。この些細な例以外の例を探しています。) 私はこの質問に出くわしましたが、その1つは2つの非スペース文字の間にスペースを追加および削除することです。 任意の助けをいただければ幸いです。可能であれば、より多くの種類のシェルを含めます。

1
条件正規表現エラー
string=123456 if [ $string == 123456 ]; then echo 123 fi これは正常に機能しますが、==を=〜に変更すると、このエラーが発生します。 ./test: line 3: [: =~: binary operator expected

1
tar-タイムスタンプを1秒以上の精度で保存する方法は?
tar多くのファイルをパッケージ化するために使用しています。ファイルのタイムスタンプを変更することは重要であり、高精度でなければなりません。を使用するとtar -cvf、タイムスタンプは保持されますが、最も近い秒に丸められstatます。つまり、ファイルで実行すると、.0で終わるタイムスタンプのみが表示されます。タイムスタンプをより正確に保持する方法はありますか、またはこの目的に使用できる別のアーカイブツールがありますか?

3
「tr」のように「sed」を使用して文字を翻訳できますか?
文字のセットを、次のような別のセットの対応する文字に置き換えたいと思います。 original set: ots "target" set: u.x foobartest → fuubar.ex. このような翻訳/音訳は、trコマンドの専門です: $ echo 'foobartest' | tr 'ots' 'u.x' fuubar.ex. 残念ながら、trファイルのインプレース変更はサポートしていませんsed。 使用したいsedので、一時ファイルをジャグリングするホイールを再発明する必要はありません。
14 sed  tr 

7
ファイルのすべての行が異なるファイルにあるかどうかを確認します
私は2つのファイルを取得しました。約1 000行のfile1と数百行のfile2です。file2のすべての行がfile1にあるかどうかを確認したい。つまり:∀lineℓ∈file2:ℓ∈file1 これらの記号の意味や「file1にfile2のすべての行が存在するかどうかを確認する」という意味が誰にもわからない場合:どちらのファイルのいくつかの同等の行も、ファイルが要件を満たしているかどうかをチェックが返すかどうかには影響しません。 どうすればいいですか?

1
ランダム「ローカル選択による認証解除(理由:3 = DEAUTH_LEAVING)」
私は走っている uname -r 4.10.6-1-ARCH デルXPS 13開発者向けエディション(2014)。現在、wifiで奇妙な問題が発生しています(nm-appletKDEでNetworkamangerを使用しています): 1)最も表面的なレベルで、私は時々それが完全に動作することを観察しました:私のPCを起動すると、すでにwifiに接続しており、時々接続しません(wifiは常に同じです); 2)NMを再起動しようとすると、問題が解決しません。3)時々、ラップトップを再起動すると再び動作しますが、時々動作しません。 4)使用しようとしました nmcli nmcli connection up My-WiFi それから私は観察します dmesg [ 250.165837] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready [ 250.255882] wlp2s0: Limiting TX power to 14 dBm as advertised by 00:3a:9a:32:62:d3 [ 272.004204] wlp2s0: deauthenticating from 00:3a:9a:32:62:d3 by local choice (Reason: 3=DEAUTH_LEAVING) [ 275.432861] …

2
単一のフォントのフォントヒントを無効にするために、Firefoxに私の設定を尊重させる方法は?
私が使用していますのDebian GNU / Linuxバージョン8でLXDEを。フォントに関しては、アンチエイリアス、サブピクセルレンダリング、およびフルヒントを使用するようにシステムを構成しています。ただし、Liberation Serifのヒントを無効にしたいのですが、Firefoxでは機能しません。Firefoxは、Liberation Serifのフルヒントを引き続き使用します。ただし、Liberation Serifは、他のプログラムではヒントなしとして正しく表示されます(Gucharmap、Leafpad、およびLibreOffice Writerで確認しました)。 FirefoxですべてのserifフォントまたはLiberation Serifのヒントを無効にするにはどうすればよいですか? LXDEに付属しているカスタマイザーと次のコードでフルに設定されたヒントが~/.config/fontconfig/fonts.confあります~/.fonts.conf(後者は前者へのシンボリックリンクです)。 <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font"> <edit mode="assign" name="lcdfilter"> <const>lcddefault</const> </edit> </match> <match target="pattern"> <test qual="any" name="family"><string>Liberation Serif</string></test> <edit name="hintstyle" mode="assign"> <const>hintnone</const> </edit> </match> </fontconfig> ありがとう。

1
「dnf history rollback」と「dnf history undo」の違いは何ですか?
公式ドキュメントを読みましょう: dnf history rollback <transaction-spec> 指定されたトランザクションの後に実行されたすべてのトランザクションを取り消します。RPMDBの現在の状態が原因でトランザクションを取り消すことができない場合は、トランザクションを取り消さないでください。 重点は私のものです。したがって、このコマンドはコマンドを指しundoます。さて、元に戻すに関するドキュメントを読んでみましょう: dnf history undo <transaction-spec> 指定されたトランザクションで実行されたすべての操作に対して、反対の操作を実行します。RPMDBの現在の状態が原因で操作を元に戻すことができない場合は、操作を元に戻さないでください。 前者はいくつかのトランザクションを取り消すことができ、後者はただ1つのトランザクションを取り消すことができることを除いて、これら2つのコマンドは同じことをするようです。 この理解は正しいですか?(マニュアルをどのように解釈するかという観点からではなく、実際の経験からの回答に感謝します。推測ではなく、事実に興味があります。) コンテキスト:dnf upgrade -yいくつかのテストを実行してから実行し、テストが失敗した場合にdnfの変更を元に戻すスクリプトを作成する必要があります。これを達成する最良の方法を探しています。


2
sudo -iがターゲットユーザーのXDG_RUNTIME_DIRを設定しないのはなぜですか?
XDG_RUNTIME_DIRsystemctl --user働くために必要です。 systemdユーザーセッションを実行するために、ubuntuサーバー16.04をセットアップしました。さて、それらを管理しようとすると、sudo -u $user -iまたはを介してユーザーを変更するsu - $userと、環境がXDG_RUNTIME_DIR設定されず、動作しなくなることがわかりsystemctl --userました。ただし、sshそのユーザーに直接アクセスすると、正しく設定されます。 ドキュメントを正しく理解していればlibpam-systemd、ユーザーセッションの作成時に設定する必要があります。XDG_RUNTIME_DIRpoint(/run/users/$uid)を指定するディレクトリが存在するため、ユーザースライスは正しく開始されます。たとえば、.bash_profileでハードコードするのはためらいます。なぜなら、PAMがそれを処理する必要があるとき、それは(動作しているとしても)ハッキーだと思われるからです。 もちろん、in に追加XDG_RUNTIME_DIRすることもできますが、それはsudoingユーザーの環境を維持するだけで、それは私が望んでいるものではありません。私がしたいターゲットユーザーの環境を。env_keepsudoers しかし、私が本当に不思議に思っているのは、どうしてセッションがで正しく設定されsshているのsuか、ではなく、またはであるのsudo -iか?
14 ssh  systemd  sudo  pam 

2
systemdサービスとしてssh-agentを起動して使用するには?
systemdサービスとしてssh-agentを起動する方法は?ネットにはいくつかの提案がありますが、完全ではありません。 ssh-agentサービスが正常に開始された場合、自動的に暗号化されていないキーを追加する方法は?おそらく、リストからキーを追加~/.ssh/.session-keysするのが良いでしょう。 SSH_AUTH_SOCKその後、ログインセッションで設定する方法は?最も正しい方法は、ssh-agentサービスからsystemd-logindサービスにプッシュすることです(それが可能かどうかわからない)。単純な単純な方法は、それをに追加するだけ/etc/profileです。

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