Unix & Linux

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

3
sed-3番目の単語をすべて大文字にする方法
与えられた: main_east_library main_west_roof main_north_roof minor_south_roof 私が使用するにはどうすればよいsed(具体的には、いないawk、trなど)を作成します。 main_east_Library main_west_Roof main_north_Roof minor_south_Roof 何かのようなもの: $ echo "main_west_library main_west_roof main_north_roof minor_south_roof" | sed 's_\3_upcase(\3)_' それは与えるが: sed: -e expression #1, char 16: Invalid back reference
9 sed 

2
配列のループで、配列に要素を追加します
bashのforループに問題があります。例:配列があり("etc" "bin" "var")ます。そして、私はこの配列について繰り返します。しかし、ループでは、配列に値を追加したいと思います。例えば array=("etc" "bin" "var") for i in "${array[@]}" do echo $i done これは表示されますetc bin var(もちろん、別々の行に表示されます)。そして、私doがそのように追加した場合: array=("etc" "bin" "var") for i in "${array[@]}" do array+=("sbin") echo $i done 私は欲しい:(etc bin var sbinもちろん別々の行に)。 これは機能していません。どうすればできますか?
9 bash  array  for 

3
ファイルをtarすることで圧縮を改善できますか?
一連のファイルをまとめてtarで圧縮すると、標準ツール(gzip、bzip2、xzなど)で圧縮を改善できますか? 私は長い間これが事実であると思っていましたが、それを試したことはありません。ランダムなバイトの同じ20Mbファイルの2つのコピーが一緒にtarされている場合、これを実現する巧妙な圧縮プログラムは、tarball全体をほぼ20Mbに圧縮できる可能性があります。 私は、gzip、bzip2、およびxzを使用して、1)ランダムバイトのファイル、2)そのファイルの2つのコピーのtarball、および3)そのファイルの2つのコピーの猫を使用して、この実験を試しました。すべての場合において、圧縮によってファイルサイズが縮小されることはありませんでした。これはケース1で予想されますが、ケース2および3の場合、最適な結果は、40Mbファイルを約20Mbに縮小できることです。これは、特に冗長性が離れているため、圧縮プログラムにとっては難しい洞察です。完璧な結果を期待することはできませんが、ある程度の圧縮があるとは思っていました。 テスト: dd if=/dev/urandom of=random1.txt bs=1M count=20 cp random1.txt random2.txt cat random1.txt random2.txt > random_cat.txt tar -cf randoms.tar random1.txt random2.txt gzip -k random* & bzip2 -k random* & xz -k random* & wait du -sh random* 結果: 20+0 records in 20+0 records out 20971520 bytes (21 MB) copied, …

5
2つのファイルの代替行をマージする
ファイル1: .tid.setnr := 1123 .tid.setnr := 3345 .tid.setnr := 5431 .tid.setnr := 89323 ファイル2: .tid.info := 12 .tid.info := 3 .tid.info := 44 .tid.info := 60 出力ファイル: .tid.info := 12 .tid.setnr := 1123 .tid.info := 3 .tid.setnr := 3345 .tid.info := 44 .tid.setnr := 5431 .tid.info := 60 .tid.setnr := …

2
printfが予想より多くの引数を出力するのはなぜですか?
このシェルスクリプトが入力を2回出力するのはなぜですか? スクリプトが5以降の入力を無視することを期待していました。 脚本: #! /bin/bash echo "Enter 5 words : " read a b c d e printf "> %s %s %s %s %s <" $a $b $c $d $e 出力: user@linux:~$ pico ifs2.sh user@linux:~$ ./ifs2.sh Enter 5 words : 1 2 3 4 5 > 1 2 3 4 …

3
デスクトップにズームインするが、フォントなどの高解像度を維持するにはどうすればよいですか?
私は最近4K画面(正確にはUHD、つまり2160p)を購入し、Arch Linuxを実行している私のタワーでそれを使用します。この投稿で説明されているように、ウィンドウマネージャーとして私はティアフリー合成のためにcomptonの上で実行されるawesomeを使用します。 画面はかなり大きいですが、以前の画面よりもピクセル密度が高くなっています。したがって、デスクトップ全体を拡大(拡大)して、より快適なエクスペリエンスを実現したいと思います(小さなテキストを読むために画面に寄りかかる必要がなくなりました)。 スケーリングしながらも画面の高解像度を利用したいのですが(たとえば、フォントレンダリングがスムーズになる)、xrandrデスクトップをより低い解像度でレンダリングし、レンダリングされたラスターイメージを拡大するようなを使用したくありません。 GUIセットアップのどのレベル(awesome => compton => X)でこのような構成を適用する必要があるかを調べようとしましたが、まだ有用な情報が見つかりません。また、これがXまったく達成できるかどうかも疑問に思っていました。どうやら、WaylandコンポジターWestonは、デスクトップのズームインとズームアウトをサポートしています。必要な場合は、ウェイランドへの切り替えも選択肢の1つです。 実際、ウィンドウマネージャーから始めて、GUIレンダリングパイプラインが一般的にどのように機能するかについて、基本的な理解を深めているように感じます。誰かがいくつかの洞察に満ちた読書を私に向けていただければ幸いです。

7
Linuxのエントロピーのソース
/ dev / randomから1ギガバイト程度のランダムデータが必要で、1回限りのパッドに適しているとしましょう(/ dev / urandomはアウトです)。/dev / randomに十分なエントロピーをシードするにはどうすればよいですか?このための特定のコマンドとプログラムを探しています。何も買いたくない。Arch Linuxを使用しています。

3
履歴をbashに挿入する
デフォルトでは、bashは行~/.bash_historyを履歴にロードします。ロードするカスタムファイルを追加することはできますか?頻繁に使用するコマンドを含むファイルを挿入し、組み込みの検索を介してそれらにアクセスしたい。
9 bash 

2
要求されたIPアドレスが別の(無効な)インターフェースに関連付けられている場合、LinuxはARP要求メッセージに応答しません
私はPC(カーネル3.2.0-23-generic)を持ってい192.168.1.2/24ますが、これはeth0インターフェイスするように構成されて192.168.1.1おり192.168.1.2、tun0インターフェイスのアドレスを使用しています。 root@T42:~# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:16:41:54:01:93 brd ff:ff:ff:ff:ff:ff inet 192.168.1.2/24 scope global …

4
CLIを使用して日付でファイルを別のディレクトリに移動する
古いハードドライブから整理しようとしている写真がたくさんあります。を実行するとls -l、これらのすべてのファイルの作成日が2012年以前であることがわかります。理想的には、これらを自動的にマウントするように設定されていない私のコンピューターの2番目のハードドライブに移動したいと思います。できれば、いくつかのコマンドがリンクされたバッチとしてこれをすべて行うことができます。これまでのところ、ls -l | grep -i 2012によって提供された日付で2012のファイルのみを吐き出していますls -l。ここでの秘訣はcp、これらのファイルすべてを新しいディレクトリに配置することです。各ファイルをコピーする必要があるため、これで次にどこへ行くかわかりません。次のコマンドセットは何ですか?

1
サブシェルを引用し、結果をエコーに渡す最後に改行がないのはなぜですか?
ls | grep pnggrepの出力を行うと、次のようになります。 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (ファイル名、改行、ファイル名、改行) 次に、echo $(ls | grep png)出力: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (ファイル名、単語分割からのスペース、ファイル名、改行!!エコーから!!) これで問題ありませんが、単語の分割を防ぐためにこれを行うecho "$(ls | grep png)"と、出力は次のようになります。 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png そして私の質問は、2番目の改行はどこにあるのか(1つはgrepから、もう1つはechoから)ですか?

7
複数行のレコードを分割せずに大きなテキストファイルを効率的に分割する方法
私は大きなテキストファイルを持っています(gzしたとき〜50Gb)。ファイルには4*N行またはNレコードが含まれています。つまり、すべてのレコードは4行で構成されます。このファイルを、入力ファイルのおよそ25%のサイズの4つの小さなファイルに分割したいと思います。ファイルをレコード境界で分割するにはどうすればよいですか? 素朴なアプローチはzcat file | wc -l、行数を取得し、その数を4で除算してからを使用することsplit -l <number> fileです。ただし、これはファイルを2回超えるため、行カウントは非常に遅くなります(36分)。もっと良い方法はありますか? これは近いですが、私が探しているものではありません。受け入れられた回答も行数をカウントします。 編集: このファイルには、fastq形式のシーケンスデータが含まれています。2つのレコードは次のようになります(匿名化)。 @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTTTATGTTTTTAATTAATTCTGTTTCCTCAGATTGATGATGAAGTTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFFFFFFFFFAFFFFF#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<AFFFFFFFFFFAFFFFFFFFFFFFFFFFFFF<FFFFFFFFFAFFFAFFAFFAFFFFFFFFAFFFFFFAAFFF<FAFAFFFFA @NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCCCTCTGCTGGAACTGACACGCAGACATTCAGCGGCTCCGCCGCCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + AAAAA#FFFFF7FFFFFFAFFFFA#F7FFFFFFFFF7FFFFFAF<FFFFFFFFFFFFFFAFFF.F.FFFFF.FAFFF.FFFFFFFFFFFFFF.)F.FFA))FFF7)F7F<.FFFF.FFF7FF<.FFA<7FA.<.7FF.FFFAFF 各レコードの最初の行はで始まり@ます。 EDIT2: zcat file > /dev/null 31分かかります。 EDIT3: 最初の行のみがで始まり@ます。他の誰もこれまでしません。こちらをご覧ください。レコードは整理された状態である必要があります。結果のファイルに何かを追加することはできません。

2
外部ドライブにプログラムをインストールすることは可能ですか?
Croutonを使用して、東芝ChromebookでUbuntu 14.04を実行しています。私のOSがインストールされているドライブは小さく、空き容量はわずか3.6 GBです。sageシステムにインストールしたいのですが、システムにsage6 GBの空き容量が必要です。 ただし、SDカードは常にユニットに挿入したままにします。カードには175 GBの空き容量があります。sageSDカードにインストールできますか? sageコマンドでダウンロードしようとしている方法 apt-add-repository -y ppa:aims/sagemath apt-get update apt-get install sagemath-upstream-binary などが見つかりました。ここに。

1
「ls -Z」のセキュリティコンテキストを理解するにはどうすればよいですか?
「man ls」を参照した後、「ls -Z」がセキュリティコンテキストを表示できることを示します。 -Z, --context Display security context so it fits on most displays. Displays only mode, user, group, security context and file name. " ls -Z"コマンドを実行すると、出力は次のようになります。 [root@localhost ~]# ls -Z -rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg drwxrwxrwx. root root unconfined_u:object_r:admin_home_t:s0 backup セキュリティコンテキストを理解する方法:unconfined_u:object_r:admin_home_t:s0?「man ls」は情報を提供しません。
9 linux  ls  selinux 

1
ネットワーク待機はどこに「上」に行きますか?
topが高負荷を示しており、それを引き起こしているプロセスがプロセッサ時間を実行しているか、ネットワークI / O(ローカルI / Oではない)を実行しているかどうかがわからない場合、どのようにしてそれを見つけることができますか? 私たちのサーバーでは、負荷の値が高くなっていますが、アイドルが60%〜70%、ユーザーが約25%です。そのような値を調べる方法を知りたいのですが、インターネットでは、ほとんどの場合、iostatを使用してプロセスがディスクを破壊しているかどうかを確認できることを読んでいます。しかし、私はすでに確かに知っていますが、そうではありません。問題のプロセスもその仕事をするのに問題はありませんが、それでも負荷は高いです。 それで、どの部分がネットワーク待機によって引き起こされ、どの部分が実際のプロセッサ時間によって引き起こされているかをさらに調べる方法はありますか?そして、一番上の「アイドル」の意味は何ですか? 明確にするために:負荷とは、コアあたりの平均キュープロセスを示す3つの数値を意味します。このマシンには8つのコアがあり、数は最大25になるため、コアあたりの負荷は2.5になります。
9 networking  top 

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