Unix & Linux

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

3
色付きのdiff出力をlessにパイプするにはどうすればよいですか?
色付きの出力を生成するgit diffを使用しています。しかし、今では何かに通常のdiffを使用する必要があり、色が不足しているため読みにくい出力が大量に生成されています。diffで読みやすい色付きの出力を生成するにはどうすればよいですか?大きなファイルを簡単に確認できるように、パイプを少なくして理想的にします。
37 colors  diff  less 

5
検索を使用して複数のファイルの名前を変更する方法
コマンドfindコマンドを使用して複数のファイル(file1 ... filenからfile1_renamed ... filen_renamed)の名前を変更したい: find . -type f -name 'file*' -exec mv filename='{}' $(basename $filename)_renamed ';' しかし、このエラーが発生する: mv: cannot stat ‘filename=./file1’: No such file or directory ファイル名がシェル変数として解釈されないため、これは機能しません。
37 shell  find 

5
ArchにPythonパッケージをインストールする推奨方法
ArchにPythonパッケージをインストールする推奨される方法は何ですか?AURでそれらを検索してそこからインストールする(またはPKGBUILD自分でパッケージを作成するためのファイルを作成する)か、使用しpipますか? 私はpacmanとAURからのものをインストールすることから始めましたが、pipパッケージと混ぜることが賢明かどうかわかりません。

8
Vimを「tail -f」のように動作させるにはどうすればよいですか?
Vimを次のように動作させる方法があるかどうかを知りたいですtail -f。私がこれまでに見つけ た最高のVimプラグインでさえ、私が期待することをしません。 私は本当にリアルタイムでファイルの更新を見たいです。キーボードから離れていても、Vimにバッファーを常にリロードさせ、最後の行にジャンプしてほしい。 これを行う方法? (一部のログファイルは非常に大きいため、ファイル全体を再読み込みしたくありません。最善の方法は、最後の行のみを読み込むtail -fことです。)
36 vim  tail 


1
bash / shellスクリプトでlikeのようなUTF-8文字を使用する必要がありますか?
ここでの単純なコードは、次のコマンドで起動した場合、私のマシンで期待どおりに機能しbashます。 function ⏰(){ date } ⏰ これを使用している他の人に問題がありますか、それとも普遍的ですか? 私は今のところ他のソースコードでこのようなものを見たことがないので、疑問に思っています。 編集:無限の可能性があります。たとえば、機能の役割を絵文字の使用などですばやく区別するために使用できます。 ファイルを変更または削除できるものの場合は💣、進行中の作業の場合はinteractive、対話型メニューの場合は... そのすべての標準を作成する必要があると思いますが、興味深いアイデアのようです。 5文字までのランダムな行は、コードが何をしているのかを理解するのに役立ちます。(もちろん、それらの読み方を学ぶ必要があります。) さらなる編集:試してみる。今のところ、エディターですべての関数を折り畳むと(またはcat myscript.sh|grep function)このようになります。(私のユニコードはgeany、ここに比べて、または私の端末でずっと良く見えます。) function ⬚_1(){ function ⬚⬚_2(){ function ⬚⬚⬚_📃_D(){ function ⬚⬚⬚⬚_📃_X(){ function ⬚⬚⬚⬚⬚_📃_Y(){ function ⬚⬚⬚⬚⬚⬚_❓_P(){ function ⬚⬚⬚⬚_📃_Z(){ function ⬚⬚⬚⬚⬚_❓_U(){ function ⬚⬚⬚⬚⬚_❓_O(){ 奇妙なインデント⬚を使用して、関数の相互関係を示し、記号📃/❓を使用して、それぞれの役割を明確に区別しています。(もちろん、これらは私の実際の関数名ではありません。最後にランダムな文字を付けただけですが、それらがなくても関係を明確に見ることができます。)
36 bash  shell  unicode 

3
可変コンテンツを読み取るよりもファイルを開くのが速いのはなぜですか?
ではbashスクリプト私はからのさまざまな値必要な/proc/ファイルを。今までは、そのようにファイルを直接grepする数十行がありました。 grep -oP '^MemFree: *\K[0-9]+' /proc/meminfo それをより効率的にするために、ファイルの内容を変数に保存し、それをgrepしました: a=$(</proc/meminfo) echo "$a" | grep -oP '^MemFree: *\K[0-9]+' ファイルを複数回開くのではなく、一度開くだけで変数の内容をgrepする必要があります。 bash 4.4.19 $ time for i in {1..1000};do grep ^MemFree /proc/meminfo;done >/dev/null real 0m0.803s user 0m0.619s sys 0m0.232s bash 4.4.19 $ a=$(</proc/meminfo) bash 4.4.19 $ time for i in {1..1000};do echo "$a"|grep ^MemFree; done …

5
HiDPIディスプレイ用にi3ウィンドウマネージャーをスケーリングするにはどうすればよいですか?
3200x1800ピクセルの解像度のDell XPS 13 9343 2015があります。 私はそれにi3 windows managerを使用しようとしていますが、すべてが小さく、ほとんど読めません。 私はすべてのアプリケーション(firefox、ターミナルなど)を.Xresources次のように拡張することができました: ! Fonts {{{ Xft.antialias: true Xft.hinting: true Xft.rgba: rgb Xft.hintstyle: hintfull Xft.dpi: 220 ! }}} しかし、i3インターフェイスはまだスケーリングしません... 私はそれxrandr --dpi 220が問題を解決するかもしれないことを理解しました、しかし、私はそれをどのように/どこで使うかわかりません。 誰かがこの問題について私を啓発できますか?

3
パイプラインはメモリ使用量をどのように制限しますか?
ブライアン・カーニハンは、このビデオで、メモリ制限に基づいている小さな言語/プログラムに対する初期のベル研究所の魅力について説明しています 大きなマシンは64 Kバイト(MまたはGではなくK)であるため、個々のプログラムはあまり大きくできず、小さなプログラムを作成する傾向があり、次にパイプメカニズム、基本的に入出力のリダイレクトにより、あるプログラムを別のプログラムにリンクすることが可能になりました。 しかし、プログラム間でデータを転送するためにデータをRAMに保存する必要があるという事実を考慮すると、これがどのようにメモリ使用を制限するのか理解できません。 ウィキペディアから: ほとんどのUnixライクなシステムでは、パイプラインのすべてのプロセスが同時に開始されます[強調鉱山]、ストリームが適切に接続され、マシン上で実行されている他のすべてのプロセスとともにスケジューラーによって管理されます。これの重要な側面は、Unixパイプを他のパイプ実装とは別に設定することです。バッファリングの概念です。たとえば、送信プログラムは毎秒5000バイトを生成し、受信プログラムは毎秒100バイトしか受け入れられませんが、データが失われます。代わりに、送信プログラムの出力はバッファに保持されます。受信プログラムがデータを読み取る準備ができると、パイプラインの次のプログラムがバッファから読み取ります。Linuxでは、バッファーのサイズは65536バイト(64KB)です。必要に応じて、より大きなバッファを提供するために、bfrと呼ばれるサードパーティのオープンソースフィルターを使用できます。 これは小さなプログラムの目的を完全に無効にするため、さらに混乱します(ただし、それらは一定の規模までモジュール化されます)。 私の最初の質問(メモリの制限はサイズデータに依存する問題)の解決策として考えることができる唯一のことは、当時大きなデータセットが単に計算されておらず、実際の問題パイプラインは解決することでしたプログラム自体が必要とするメモリ量。しかし、Wikipediaの引用文の太字のテキストを考えると、これでも混乱します。1つのプログラムが一度に実装されないためです。 一時ファイルが使用されている場合、これは非常に理にかなっていますが、パイプがディスクに書き込まれないことは私の理解です(スワップが使用されない限り)。 例: sed 'simplesubstitution' file | sort | uniq > file2 sedファイルを読み込んで行ごとに吐き出しているのは明らかです。しかしsort、リンクされたビデオでBKが述べているように、完全に停止しているので、すべてのデータをメモリに読み込む必要がありますか(またはそれを行いますか?)、それはに渡されますuniq(私にとっては) -ラインアットアタイムプログラム。しかし、最初のパイプと2番目のパイプの間では、すべてのデータがメモリ内にある必要がありますか?
36 pipe  history 

6
進行状況を見ながらディレクトリから数十億のファイルを削除する
正式にはすべてJPEGファイルである数十億のファイルがある30 TBのディレクトリがあります。私はこのようなファイルの各フォルダーを削除しています: sudo rm -rf bolands-mills-mhcptz このコマンドは実行されるだけで、機能しているかどうかは表示されません。 ファイルを削除しているのか、コマンドの現在の状態を確認したいです。

2
sudoersでCmnd_Aliasでコマンド引数を使用するにはどうすればよいですか?
sudoersでコマンド引数を指定するにはどうすればよいですか?背景として、awsコマンドは実際にはサブシステムの束全体へのゲートウェイであり、ユーザーが実行するだけに制限したいaws s3 cp ...any other args... 私が以下を試してみると /etc/sudoers Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws s3 cp, /usr/local/aws/bin/aws s3 cp gbt1 ALL=(gbt-ops) NOPASSWD: AWSS3_CMD シェルは残念ながらパスワードの入力を求めます $ sudo -u gbt-ops aws s3 cp helloworld s3://my-bucket/hw.1 gbt-ops's password: Cmnd_Aliasのコマンドargsを削除すると、必要に応じて(パスワードプロンプトなしで)流れますが、認証が広すぎます。だから、コマンド呼び出しの唯一の特定の種類に制限する正しい方法は何ですか。 Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws, /usr/local/aws/bin/aws それから $ sudo -u gbt-ops aws s3 cp helloworld s3://my-bucket/hw.1 ...happy …
36 sudo 

2
bashスクリプトに.shまたは.bash拡張子を使用しますか?
(Ubuntu-OSXの互換性と使いやすさとPOSIXについては、#!/ bin / shまたは#!/ bin / bashを使用してください) スクリプトでbashシェルを使用する場合、.bash拡張子を使用すると実際にbashが呼び出されるのか、それともシステム構成/最初のシェバン行に依存するのか。両方が有効であるが異なる場合、どちらが優先されますか? スクリプトを.shで終了して「シェルスクリプト」を示すだけで、最初の行でbashシェルを選択する#!/usr/bin/env bashか(例)、または.bashで終了するだけでなく(行1の設定も) )。bashを呼び出したい。
36 bash  shell  shebang 

7
あるファイルを別のファイルにリダイレクトするのはUUOC(catの無駄な使用)ですか?
の内容をの内容とfile2一致させたい場合はfile1、明らかに実行するだけcp file1 file2です。 しかし、私が保存したい場合は、すべてについてfile2 除くなど、など、コンテンツ所有者、権限、拡張属性、ACLを、ハードリンクを、そして私が実行したいとは思わないでしょうcp。*その場合、私はちょうどウンチしたいです内容file1にfile2。 次のように実行されるようです。 < file1 > file2 しかし、それは機能しません。 file2何も切り捨てられず、書き込まれません。しかしながら、 cat < file1 > file2 動作します。 最初のバージョンが機能しないことに驚きました。 2番目のバージョンはUUOCですか?単にリダイレクトを使用して、コマンドを呼び出さずにこれを行う方法はありますか? 注:私は、UUOCが真のアンチパターンというよりも重要な点であることを認識しています。 * のようtniles09が発見された、cp 意志をこのケースでは、実際の仕事に。

6
RHEL / Fedora / CentOSシステムのupdate-grubと同等ですか?
Ubuntu(およびDebianでも同様です)には、grub構成ファイルの正しいパスupdate-grubで自動的に実行されるシステムスクリプトがありgrub-mkconfig -oます。 Red Hatベースのディストリビューションに類似したコマンドはありますか? そうでない場合、新しいカーネルバージョンがインストールされたときに更新するgrub構成ファイルの場所をシステムはどのように知るのですか?
36 centos  fedora  rhel  grub 

2
欠落している0はIPアドレスに自動的に追加されますか?(「ping 10.0.0.5」に相当する「ping 10.5」)
誤って入力した ssh 10.0.05 の代わりに ssh 10.0.0.5 そして、それが機能したことに非常に驚きました。私も試しましたが10.005、10.5それらも自動的にに拡張されました10.0.0.5。私も試しましたが192.168.1、それはに拡大しました192.168.0.1。これらはすべてでpingなくでもssh動作したため、ユーザーが指定した任意のホストに接続する他の多くのコマンドでも動作すると思います。 なぜこれが機能するのですか?この動作はどこかに文書化されていますか?この動作はPOSIXの一部ですか?それとも単に奇妙な実装ですか?(Ubuntu 13.10を使用して、その価値を高めます。)
36 ip  hostname 

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