Unix & Linux

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

2
プログラムがSSHで実行され、実行されているマシンのPulseAudioにアクセスする
プログラムをリモートで(sshを介して)実行したいのですが、プログラムが実際に実行されているリモートマシンにオーディオが送信されます。これは通常ALSAで機能しますが、pulseaudioはクライアントからの接続を許可する前に、いくつかのセッション認証システムをチェックするようです。 このチェックをそれほど厳しくしない方法は? local: $ ssh remote # remote is running pulseaudio and has sound hardware remote:$ paplay something.wav Connection failure: Connection refused pa_context_connect() failed: Connection refused remote:$ audacious something.mp3 # opens on local's X11 display pulseaudio: Failed to connect to server: Connection refused pulseaudio: Failed to connect to server: Connection …
10 ssh  pulseaudio 

1
systemdサービスファイルの[SERVICE]セクションでSyslogIdentifierを空に設定する方法
サービスファイルのセクションをemptyに設定SyslogIdentifier して、ログにプレフィックスが付けられないようにします。私は以下のオプションを試しました:[SERVICE]systemd 1)何も言及されていない: SyslogIdentifier= >>>結果:デフォルトの動作と同様に、ログにはプロセス名が前に付けられます。 2)空の文字列: SyslogIdentifier="" >>>結果:二重引用符( "")を含む空の文字列がそのままプレフィックスとして追加されます。 3)エスケープ文字: SyslogIdentifier=\s >>>結果:\ sがログの先頭に追加されました。 4)空のスペース: SyslogIdentifier= (few blank spaces) >>>結果:デフォルトの動作と同様に、ログにはプロセス名のプレフィックスが付けられます。 5)一重引用符で囲まれたスペース: SyslogIdentifier=' ' >>>結果:一重引用符( '')がそのままプレフィックスとして追加されます。 ログの前に何も付けたくありません。 誰か私にそれを行う方法を教えてもらえますか? 参照: SyslogIdentifier= ロギングシステムまたはカーネルログバッファに送信されるログ行の先頭にプロセス名を設定します。設定されていない場合、デフォルトでは実行されたプロセスのプロセス名になります。このオプションは、StandardOutput=またはStandardError=がsyslog、journalまたはkmsg (またはと組み合わせた同じ設定+console)に設定されている場合にのみ役立ち ます。
10 systemd 

2
シンボリックリンクが存在しないファイルを一覧表示するにはどうすればよいですか?
その他のドキュメントでいっぱいの大きな「myfiles」ディレクトリがあり、その構造を変更したくありません。 したがって、ドキュメントのクラスごとに(いくつかの)他のディレクトリを作成しました。たとえば、「myfiles」ディレクトリ内の各ファイル.jpgまたは.cr2ファイルへのシンボリックリンクと、説明と他のメタデータを含む各シンボリックリンク(同じファイル名を持つ)の他の説明ファイルを持つ「images」ディレクトリがあります。/ imagesディレクトリのシンボリックリンクは、元のリンクされたファイルとは異なる名前を持つ場合があります。 「myfiles」ディレクトリ内のすべての画像ファイルに「images」ディレクトリへのシンボリックリンクがあることを確認する最も簡単な方法を見つけようとしています。 フォルダー構造の例を見る /myfiles/a.doc /myfiles/b.jpg /myfiles/c.cr2 /myfiles/d.mov 結果になるはずです /images/b_800x600.jpg /images/b_800x600.desc /images/c_3820x5640.cr2 /images/c_3820x5640.cr2

1
ブレースの拡張範囲が3つ(省略記号)ではなく2つのドットを使用するのはなぜですか?
ようやくbash(さらにはzsh)ブレースの拡張範囲を適切に使用できなかった理由を最後に理解/発見しました。構文は{1..10}、省略記号、つまりと想定したものではありません{1...10}。 3つのドットよりも2つのドットが選ばれた理由を教えてください。(Wikipedia)リンクに示されているように、コンピュータープログラミングでの省略記号の使用は一般的でよく理解されているため、これが私の好奇心を刺激しました。


2
zshのタブ補完と大文字と小文字を区別しないことの組み合わせ
大文字小文字を区別しないタブ補完を使用するようにzsh 5.0.7を構成しています zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 私が抱えている問題は、この場合の鈍感さは、しばしば私がTab余分な時間を押す必要につながるということです。たとえば、私のホームディレクトリには、「デスクトップ」、「ドキュメント」、「ダウンロード」というフォルダが含まれています。ホームフォルダーにいて、次のように入力した場合 cd D 次にを押すTabと、3つの可能性が表示されます。一方、入力すると cd d 次にTab「d」を押すと「D」に変わりますが、完了メニューが表示されません。Tabそのためには、もう一度押す必要があります。「d」が「D」に変更されると同時に完了メニューを取得する方法はありますか?
10 zsh  autocomplete 


2
bashがSIGTERMを無視するのはなぜですか?
時々私はすぐにログアウトしたいときはやりますkill -15 -1。bashがSIGTERMを無視していることに気づきました。 私はそのようなbashの振る舞いの根拠は何ですか? 正当な理由なしにSIGTERMを無視することは、UNIXではありませんよね。 更新: すべてに同じ(無)効果: $ kill -TERM $$ $ type kill kill is a shell builtin $ command kill -TERM $$ $ /bin/kill -TERM $$ UPDATE2: man bashから: bashが対話式の場合、トラップがない場合、SIGTERMは無視されます 故意に行われます。しかし、なぜ?
10 bash  signals 

3
画面でも、端末がサポートするUnicodeの量を検出します
ここに問題があります:私の端末がまともなユニコードに対応しているかどうかを確認できるようにしたいです。 どんな種類の仮想端末でもまともなフォントが得られるので動機が生まれますが、基本的なLinuxコンソールには256または512の同時記号の文字セットがあるため、完全なフォントサポートは期待できません。 最初は$TERM、またはttyを使用できると思っていましたが、ここが落とし穴です。私はbyobuも使用しているため$TERM、常に「screen.linux」を使用します。ttyの出力もあまりわかりません/dev/pts/<some number>。「実際の」用語と仮想の用語の両方で。 $BYOBU_TTYたとえば、それが可能で/dev/tty1あり、セッションがCtrl+ Alt+で開かれF1たときに文字が表示されないが、一部のX用語から同じセッションにアタッチすると、正しく表示され、$BYOBU_TTY変更されないためです。その上、屏風があるかどうかを推定せずにこれを検出できるようにしたいと思います。 また、ロケールはすべての場合にen_US.UTF-8を示します それでも、byobuの内部であっても、どういうわけか(私がこれを検出した特定のツールの名前を示すために)一見すると、byobuセッションに接続している端末に応じて異なる出力が使用されます。 端末とttyがあまりにも一般的な検索語のように見えるため、Googleで問題が発生しています。せいぜい$TERMttyを推奨するソリューションにたどり着きます。
10 linux  terminal  tty  unicode 

4
LinuxからのNETBIOS名の解決
ネットワーク上にSUSANというWindowsマシンがあります。LinuxボックスのWindows VMから、私は簡単に次のことができます。 C:\>ping susan Linuxボックス自体からNETBIOS名を解決するために、私はこのガイド(および他のいくつかの同様のガイドを参照)に従いました。 私はインストールsambaしましたsamba-winbind。私はこのhosts行を/etc/nsswitch.confから編集しました: hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname に hosts: files wins mdns4_minimal [NOTFOUND=return] dns myhostname どうやら私は今、彼女の名前でSUSANにpingできるはずです(すでに彼女のIPで彼女にpingできます)。しかし、私は得ています: user@localhost:~ $ ping susan ping: unknown host susan

2
ディレクトリを削除せずにすべてのファイルを再帰的に削除します
サブディレクトリ内のすべてのファイルを含むディレクトリのすべてのファイルを「整理」したいが、サブディレクトリはそのままにしたい。私の理解でrm -rは、サブディレクトリ自体も削除されます。 私はしていない隠れた(ドット)ファイルを削除します。 これはどのように行うことができますか?
10 command-line  find  rm 

4
bashスクリプト内でchown $ USER:$ USERを使用する
私が実行している小さなbashスクリプトで、作成された新しいディレクトリを変更しようとしています。私は追加しました: sudo chown $USER:$USER /var/www/$sitename sudo chmod 775 /var/www/$sitename mkdir(sudo mkdir /var/www/$sitename)の行の後。 何らかの理由で、chownが実行されていません。手動で実行できますが、ファイルに書き込んでも動作しません。「chown」が「mkdir」および「chmod」と同じ色で強調表示されていないことに気付きましたが、問題を理解できません。 ここでchownが機能しないのはなぜですか? それは問題$USER:$USERですか? 編集これ が完全なスクリプトです。root以外のユーザーがスクリプトを実行した場合、どのようにファイルを変更しますか? #!/bin/sh #!/bin/bash # New Site cd /etc/apache2/sites-available/ echo "New site name (test.my):" read sitename echo "<VirtualHost *:80> ServerAdmin admin@$sitename ServerName $sitename ServerAlias $sitename DocumentRoot /var/www/$sitename <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory …

5
ヘッドとテールを使用して異なる行のセットを取得し、同じファイルに保存する
これは宿題ですが、具体的な宿題については質問しません。 1つのファイルからさまざまな行のセットを取得するには、ヘッドとテールを使用する必要があります。6-11行目と19-24行目と同じように、両方を別のファイルに保存します。私は追加などを使用してこれを行うことができることを知っています head -11 file|tail -6 > file1; head -24 file| tail -6 >> file1. しかし、私たちはそうなるとは思いません。 headコマンドとtailコマンドを組み合わせてファイルに保存する特定の方法はありますか?
10 tail  head 

1
Linuxを2つのネットワークに同時に接続する
イーサネットと内蔵WiFiを使用して2つのネットワークに同時に接続するか、追加のWiFiアダプターをインストールして2つのWiFiネットワークに接続したい。 私の要件:2つのデバイスセット(グループAとグループB)があり、互いに通信する必要があるが、直接通信する必要はない。場所にはインターネットはありません。グループAのデバイスはWiFiルーターAに接続され、グループBのデバイスはWiFiルーターBに接続されます(同じルーターに接続されないようにする必要があります)。LinuxデバイスをルーターAとルーターBの両方に接続し、2つのグループ間の仲介者として機能させたい。Linuxデバイスは、グループA(ルーターA経由)からメッセージを受信し、情報を処理して、結果の通知をグループB(ルーターB経由)に送信する必要があります。 質問: Linuxをセットアップして2つのネットワークに同時に接続するにはどうすればよいですか? メッセージの送信元のネットワークを識別し、それに応じてメッセージを処理するにはどうすればよいですか? 通知のターゲットネットワークを指定して、そのネットワークに送信するにはどうすればよいですか?
10 linux  networking 

3
rootアクセスなしで、Xセッション内からキーボードLEDのステータスを変更する
私は導かれたcapslockを強制することを試みています。xsetは機能しませんsetleds。使用しようとしています。 グラフィカルコンソールでは、このコマンドは次を返します。 > LANG=C setleds -L +caps KDGKBLED: Inappropriate ioctl for device Error reading current flags setting. Maybe you are not on the console? 仮想端末では機能しますが、効果はその仮想端末に対してローカルです。私の理解から、走る > setleds -L +caps < /dev/tty1 仮想端末から(私のXサーバーはtty1に座っている)動作するはずです。ただし、これにはrootアクセスが必要です。 rootなしで、Xサーバーの基礎となるコンソールにコマンドを送信する方法はありますか? 編集:Mark Plotnikからの提案から、およびここで見つかったコードに基づいて、私は以下を記述してコンパイルしました: #include <X11/Xlib.h> #include <X11/XKBlib.h> #define SCROLLLOCK 1 #define CAPSLOCK 2 #define NUMLOCK 16 void setLeds(int …

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