Unix & Linux

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

5
重複を削除しながら2つのリストをマージする
Busybox(OpenWRT)を使用した組み込みLinuxシステムがあるため、コマンドが制限されています。次のような2つのファイルがあります。 最初のファイル aaaaaa bbbbbb cccccc mmmmmm nnnnnn 2番目のファイル mmmmmm nnnnnn yyyyyy zzzzzz これら2つのリストを1つのファイルにマージし、重複を削除する必要があります。 私たちは偉大なを使用して取得して(スペースが限られている)の差分を持っていないawk、sedとgrep(または標準Busyboxのインスタンスに含まれている場合があります他のツール)。次のようなマージファイルに移動します。 command1 > mylist.merge command2 mylist.merge > originallist 大丈夫です。単一行のコマンドである必要はありません。 私が使用しているBusyboxのインスタンスで現在定義されている関数(デフォルトOpenWRT):[、[[、arping、ash、awk、basename、brctl、bunzip2、bzcat、cat、chgrp、chmod、chown、chroot、clear、cmp、 cp、crond、crontab、cut、date、dd、df、dirname、dmesg、du、echo、egrep、env、expr、false、fgrep、find、free、fsync、grep、gunzip、gzip、halt、head、hexdump、 hostid、hwclock、id、ifconfig、init、insmod、kill、killall、klogd、less、ln、lock、logger、logread、ls、lsmod、md5sum、mkdir、mkfifo、mknod、mktemp、mount、mv、nc、netmsg、 netstat、nice、nslookup、ntpd、passwd、pgrep、pidof、ping、ping6、pivot_root、pkill、poweroff、printf、ps、pwd、reboot、reset、rm、rmdir、rmmod、route、sed、seq、sh、sleep、 sort、start-stop-daemon、strings、switch_root、sync、sysctl、syslogd、tail、tar、tee、telnet、telnetd、test、time、top、touch、tr、traceroute、true、udhcpc、umount、uname、uniq、uptime、vconfig、vi、watchdog、wc、wget、which、xargs、yes、zcat
18 bash  grep  sed  awk  busybox 

3
管理者権限がない場合、GNOMEログアウト中にスクリプトを実行するにはどうすればよいですか?
GNOMEセッションからログアウトする前にスクリプトを実行して、マシンに接続されたペンドライブを忘れた場合に自分自身に警告したい。 しかし、私が見つけたすべての解決策は私にとって十分ではありませんでした: この同様の質問は、/etc/gdm/PostSession/Defaultファイルの編集を示唆していますが、それを行う権限がありません。(そして、私のマシンでは現在ファイルが空なので、利用する既存のフックはありません) 私も見つけ、このポストは回避策を示唆したが、最初の回答によると、それは動作しません私のシャットダウン場合、コンピュータだけではなく、ログオフの。
18 gnome  logout 

1
/ etc / groupで、2番目のフィールドの意味は何ですか?
サンプル/etc/groupファイルには、次のエントリが含まれています。 root:*:0: adm:!:4:logcheck antoine:x:1000: 私が読んだmanページ(DebianとOSX)は、2番目のフィールドはグループパスワードを保存することだと言っています。まれにしか使用されないため、アスタリスク*またはa xは通常、空白のままではなく、その中に配置されます。 また、shadowマニュアルページには、この2番目のフィールドにcrypt関数の結果を格納する必要があると書かれています。また、無効な結果(*またはなど!)が保存されている場合、パスワードを認証方法として使用できないことを意味します。 それはgroupファイルにも当てはまりますか?groupファイル内で3つの異なる文字がすべて同じ意味になるのはなぜですか?すべてを安全に変更できます*か?
18 users  password  group 

7
不要なファイルをクリーンアップする方法
すべてを通常の状態(一時的に)に戻すためにクリーニングできる特定の不要なファイルを提案してください。(つまり、ログまたはアーカイブなど)。私のvar / logには40MBしかなく、ホームディレクトリには3GBのスペースがあります(したがって、それは問題ではないと思います)。それ以外は、スペースを作るためにクリーンアップできるもの。 [user@host]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_inamivm-lv_root 18G 17G 0 100% / tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/sda1 485M 71M 389M 16% /boot 私はdebianマシンにいます。 更新1: の出力 cd /; du -sxh * 6.1M bin 61M boot 156K dev 22M etc 3.3G home 306M …


2
(端末ベースの)vimでメニューを作成して使用できますか?
私は主にWindowsベースの会社の開発者向けに仮想化されたLinuxボックスを(ローカル開発サーバーとして)設定しています。(彼らはLinux / Unixをなんらかの形で表現し、環境が使いづらいほど難しいことを証明しているようです)。学習曲線なので、私はやや同情的です。私は、それらを紹介するのではなくnano(おそらく彼らは決して通り抜けることはないでしょう)、vimにナノのようなメニューを設定して移行を容易にすることができるかもしれないと思いました。(それらを提供するために非常に初心者に優しい.vimrcファイルを見つけましたが、nanoスタイルのメニューのようなものはありません。) 唯一の問題は、vim(gvimではない)でメニューをセットアップすることが可能であると主張している唯一の問題であり、問​​題を修正しようとしても、解決すべき別の問題が残っています。たくさんの時間を無駄にする前に、それが実際に可能であるかどうかを知りたいと思います。
18 vim  vimrc 


3
Linuxソートのデフォルトの順序は何ですか?
長い間、sortプログラムのデフォルトの動作はASCII順序を使用していると考えていました。ただし、sort引数なしで次の行を入力すると: # @ 私が得た: @ # しかし、ASCIIテーブルによると、#35と@64です。別の例は次のとおりです。 A a 出力は次のとおりです。 a A 誰もこれを説明できますか?ところで、使用する場合の「辞書順」とは何sort -dですか?
18 linux  sort  locale 

2
fc-matchがどのように一致するかを調べる方法は?
私が実行するときfc-mach Sans、それは戻りますDejaVuSans.ttf: "DejaVu Sans" "Book"が、それのように実行されるfc-match "Sans "か、またはfc-match "Sans 9"それは戻りますunifont.ttf: "unifont" "Medium"。私は常にDejaVu Sansを使用することを好みますが、fontconfigがunifontを選択する理由がわかりません。グローバル設定もローカル設定もunifontに言及していgrep -ri unifont /etc/fonts/ ~/.fonts.confないようです(何も返しません)。LC_DEBUGで遊んでも助けにはなりませんでした。fontconfigがこのように動作する理由に関する情報を取得する方法はありますか?
18 linux  fonts 

3
検索をgrep -vにパイプする
特定の種類で、特定の文字列を含まないすべてのファイルを検索しようとしています。findをgrep -vにパイプすることでそれを試みています 例: find -type f -name '*.java' | xargs grep -v "something something" これは機能しないようです。findコマンドで見つかったすべてのファイルを返すだけのようです。私がやろうとしているのは、基本的に特定のファイル名に一致するすべての.javaファイル(たとえば、SessionPb.javaのように「Pb」で終わる)を見つけ、その中に「extends SomethingSomething」がないことです。 私の疑いは、私がそれを間違っているということです。では、コマンドはどのように見えるのでしょうか?
18 grep  find  pipe 

2
sedを使用して文字<>を削除します
次のような行を含むファイルがあります。 ... ... &lt;230948203[234]&gt;, ... ... &lt;234[24]&gt;, ... .. 私は文字を削除するsedを使用したい&lt; ,と&gt;すべての行から 使用してみましたsed 's/&lt;&gt;,//g'が、機能しませんでした(何も変更しませんでした)。これらの特殊文字をエスケープする必要がありますか。単一のsedコマンドを使用して複数の文字を削除することは可能ですか?
18 sed 

3
カーネルソケット構造とTCP_DIAG
(TCPを使用して)リアルタイムデータサーバーに接続するソフトウェアに取り組んでいますが、いくつかの接続が切断されています。私の推測では、クライアントはサーバーからのデータを十分な速度で読み取っていません。したがって、TCPソケットを監視したいと思います。このために、私は「ss」ツールを見つけました。 このツールを使用すると、すべてのソケットの状態を確認できます。コマンドの出力の例を次に示します ss -inm 'src *:50000' ESTAB 0 0 184.7.60.2:50000 184.92.35.104:1105 mem:(r0,w0,f0,t0) sack rto:204 rtt:1.875/0.75 ato:40 私の質問は次のとおりです。記憶部とはどういう意味ですか?私は、データがカーネル構造(から来ていることがわかったツールのソースコードを見てみるとsock中sock.h)。より正確には、フィールドから来ます: r = sk-&gt;sk_rmem_alloc w = sk-&gt;sk_wmem_queued; f = sk-&gt;sk_forward_alloc; t = sk-&gt;sk_wmem_alloc; 誰かがその意味を知っていますか?私の推測は次のとおりです。 rmem_alloc :インバウンドバッファのサイズ wmem_alloc :アウトバウンドバッファのサイズ sk_forward_alloc :??? sk-&gt;sk_wmem_queued :??? バッファサイズは次のとおりです。 net.ipv4.tcp_rmem = 4096 87380 174760 net.ipv4.tcp_wmem = 4096 16384 131072 net.ipv4.tcp_mem …
18 linux  tcp  socket 

7
別のマシンへのSSHリモートロギング後の端末タイトルを修正
現在、1行のperlコードを使用して、ターミナルバーのタイトルを変更しています。 print("\e]0;@ARGV\7"); しかし、別のリモートマシンにsshするたびに、ホストによってタイトルが変更されます(これにより、特に気にする必要はありません)。しかし、接続を終了した後、変更されたタイトルは残ります。これを修正する方法はありますか?基本的に、ローカルで操作するとき、端末のタイトルを固定したいです。 私は主にCentOSまたはDebianでxfceターミナルとターミネーターを使用します。ありがとう。 編集 別の微妙な点は、すべての端末に同じ名前を付けるのではなく、その場でタイトルを編集する自由を持ちたいが、SSHセッションで編集内容を変更することだけを禁止することです。

2
zsh:パターンからファイルを除外する
次のファイルがあるとします。 |-- bar `-- foo |-- type_A_1 |-- type_A_2 |-- type_B_1 |-- type_B_2 |-- type_B_xx |-- type_B_xx `-- something_else 私は次のコマンドを考えました print -l foo/*~{type_B*} で始まるものを除くすべての下にすべてを印刷しますが、そうではなく、fooの下にすべてを印刷します:foo type_B foo/type_A_1 foo/type_A_2 foo/type_B_1 foo/type_B_2 foo/type_B_xx foo/something_else 私もprint -l foo/*~type_B同じことを試してみました。 ~zshで例外ワイルドカードはどのように機能しますか?


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