Unix & Linux

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

5
現在のVirtualenvの名前を表示する方法は?
私が使用していますvirtualenv、virtualenvwrapper、zsh、oh-my-zshCrunchbangに、ターミネータを、。 私はそのvirtualenvように現在の名前を表示しようとしています workon example (example)... 私はどれもうまくいかないように多くの解決策を試しました、ここに私の.zshrcファイルがあります、それを修正することは大したことではないことを知っていますが、正しい解決策を見つけることができません。前回Djangoの開発にLinuxを使用してからずっと経ちましたが、以前は何をしていたか忘れていました。 今、私が見ているusername@crunchbang、私はどのvirtualenvを使用しているかわかりません。

3
.svn /ディレクトリを無視して、残りを除く特定のファイルを再帰的にrsync
rsync一部のファイルを共有から別のファイルにコピーするために使用しています。 再帰的に、私はする必要があります: コピー元から削除されたコピー先のファイルを削除する 同期.phpと.jsファイルのみ 他のすべてのファイルタイプを除外する .svn/宛先のディレクトリを削除しないでください これを使用する場合: rsync -zavC --delete --include='*.php' --include='*.js' --exclude="*" \ /origin /destination その後、フォルダーだけでなくすべてのファイルが除外されるrsyncためexclude="*"、再帰的ではありません。 追加する--include="*/"と、.svn/ディレクトリが削除されます(これも含まれます)。 このマインドブラストのジレンマをどのように解決できますか? uname -a: Linux tux 3.9.2-1-ARCH#1 SMP PREEMPT Sat May 11 20:31:08 CEST 2013 x86_64 GNU / Linux rsync バージョン: rsync 3.0.9-6


2
ヌル合体方式でのシェル変数の設定
私は、「ヌル合体」が本当に好きです。そこでは、変数を、物事のリストの最初の「非ヌル」値に設定できます。たとえば、多くの言語がこれをサポートしています。 C#: String myStr = string1 ?? string2 ?? "default"; JavaScript: var myStr = string1 || string2 || "default"; ...等。変数を設定するためにこれをBashで実行できるかどうか興味がありますか? 擬似: MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";
19 bash  shell  variable 

6
標準コマンドのエイリアスが推奨されないのはなぜですか?
たとえば、~/.bashrcファイル(または同等のもの)で見た一般的なエイリアスは alias rm='rm -i' しかし、私は人々がこれに対して推奨するのを見てきました エイリアスは別のシステムに存在しない可能性がありrm、で不注意になったため、重要なものをうっかり削除してしまいます。[1] このエイリアスを使用することにより、実質的にすべてのコマンドを入力yまたは実行するようにトレーニングします。yesrm これに対して推奨する他の理由はありますか?一部のプログラムは、のrm代わりにを呼び出すだけで\rm、それに対するエイリアスは問題を引き起こす可能性がありますか? 私が使用してrm単に一例として、私はのような他のコマンドを見てきましたcpかmvだけでなく、別名でカバー。個人的に、私はゆっくりとこのようなエイリアスを使用するように自分自身を訓練していますrm -i: alias trash=`mv -v -t $HOME/.Trash`

8
スリープコマンドなしで、bashでビジーな待機を避ける
次のことを行うことで、bashでtrueになる条件を待つことができます。 while true; do test_condition && break sleep 1 done ただし、反復(スリープ)ごとに1つのサブプロセスを作成します。私はそれらを避けることができます: while true; do test_condition && break done ただし、多くのCPUを使用します(ビジー待機)。サブプロセスと忙しい待機を避けるために、私は以下の解決策を思いつきましたが、それはいです: my_tmp_dir=$(mktemp -d --tmpdir=/tmp) # Create a unique tmp dir for the fifo. mkfifo $my_tmp_dir/fifo # Create an empty fifo for sleep by read. exec 3<> $my_tmp_dir/fifo # Open the fifo for …

4
letまたはexprが0と評価されると、bash -eは終了します
-eを設定するbashスクリプトがあるので、スクリプトは終了ステータス!= 0で終了します。 変数に割り当てられた基本的なシェル算術演算を実行しようとしていますが、式が0に等しい場合があり、letまたはexprコマンドの終了ステータスが「1」になります。 以下に例を示します。 #!/bin/bash -ex echo "Test 1" Z=`expr 1 - 1` || true echo "Z will print" let "A=4 - 4" echo "A WILL NEVER PRINT $A" Y=`expr 1 - 1` echo "Y WILL NEVER PRINT $Y" X=$(expr 2 - 2) echo "X WILL NEVER PRINT $X" 出力は次のとおりです。 …

2
このデーモン/ initを非rootユーザーとして実行するにはどうすればよいですか?
デーモンを開始するための初期化スクリプトがあります。問題は、rootとして実行されることです。「デプロイ」というユーザーとして実行したいと思います。Ubuntu 12.04 #! /bin/sh # File: /etc/init.d/unicorn ### BEGIN INIT INFO # Provides: unicorn # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the unicorn web server # Description: starts unicorn ### END …

5
ヘッダーを保持しながら大きなデータファイルをスクロールする方法
大きなデータファイルがあり、画面が垂直方向と水平方向の両方でオーバーフローするとします。ヘッダー行が画面に表示されたまま、このファイルを参照するにはどうすればよいですか? 今のところ、less -Sファイルを水平および垂直にうまくスクロールできるように、を使用しています。ただし、下にスクロールすると、ヘッダー行は明らかに消えます。これらをより少なく使用する方法はありますか? 別の方法はvim、分割画面モードでを使用すること:set nowrapです。ただし、水平方向にスクロールすると、上部ウィンドウは同じようにスクロールしません(:windo set scrollbind私が知る限り、垂直方向のスクロールでのみ機能します)。
19 vim  less  scrolling  pager 

2
これまでの入力形式をどのように指定しますか?
で認識されない形式の日付と時刻が与えられたdate場合、どのようにしdateて日付と時刻を認識することができますか? 例えば: $ date -d "09SEP2012:23:58:46" date: invalid date `09SEP2012:23:58:46' $ date -d "09SEP2012:23:58:46" --magic-option "ddMMMYYY:hh:mm:ss" Sun Sep 9 23:58:46 MDT 2012 ない--magic-option存在?そうでない場合sed、入力を整形式の日付文字列に変換するのではなく、これを解決するよりエレガントな方法がありますか?
19 date 

1
「リアルタイム」の時間が「ユーザー」と「sys」の時間を合わせたよりもはるかに長いのはなぜですか?
私はtime多くのコマンドを実行し(つまりnslookup)SSH、暗黙的なサービスが完了するのに必要な合計時間(つまりDNS)を収集します。私が集めてuserとsysとして時間をreal私のプロセスは私が必要としないブロックされたときの時間数時間...私は推測します。 しかし、私のテストのいくつかにはそのような結果がありました: real 3m22.033s user 0m0.009s sys 0m0.014s 私はこれらのテストを限られたリソースのLinuxボックスで実行しますが、それでもreal時間が非常に長くなります。これは、ボックスが異なるプロセスの実行で非常にビジーであることを示すだけでしょうか?サービスの所要時間を知るためuserにsys時間と時間を合計することはまだ正しいですか?

7
patchとdiffを使用して2つのファイルをマージし、競合を自動的に解決する方法
diffとパッチについて読んだことがありますが、必要なものを適用する方法がわかりません。私はかなり簡単だと思うので、私の問題を示すためにこれらの2つのファイルを取ります: a.xml <resources> <color name="same_in_b">#AAABBB</color> <color name="not_in_b">#AAAAAA</color> <color name="in_b_but_different_val">#AAAAAA</color> <color name="not_in_b_too">#AAAAAA</color> </resources> b.xml <resources> <color name="same_in_b">#AAABBB</color> <color name="in_b_but_different_val">#BBBBBB</color> <color name="not_in_a">#AAAAAA</color> </resources> 次のような出力が必要です(順序は関係ありません)。 <resources> <color name="same_in_b">#AAABBB</color> <color name="not_in_b">#AAAAAA</color> <color name="in_b_but_different_val">#BBBBBB</color> <color name="not_in_b_too">#AAAAAA</color> <color name="not_in_a">#AAAAAA</color> </resources> マージには、次の単純なルールに沿ったすべての行が含まれている必要があります。 ファイルの1つにのみある任意の行 行の名前タグが同じで値が異なる場合、2番目の値を取得します 私はこのタスクをbashスクリプト内に適用したいので、別のプログラムがより適している場合は、diffとパッチを完全に行う必要はありません

2
emacsで現在のバッファのファイル名を取得する方法は?
Vimで私が見逃している主な機能の1つは、現在のファイルのファイル名を常に%バッファーに保存することです(詳細)。次のようなコマンドを簡単に起動できます。 ;; compile current file :! gcc % ;; source current file (useful when I'm editing .vimrc :source % ;; get the size of current file :! du -sh % ;; etc, etc... 同様の機能emacs(バージョン24、違いがあれば)、つまり、現在のバッファーで開かれているファイルの名前を簡単に挿入できるようにしたいと思います。 私がやりたいことの例 ここでは、そのようなショートカットの必要性を感じたときに、より適切に説明するために、いくつかの基本的な使用例を説明します コンパイル:M-x compileemacs と入力すると、コンパイルコマンドを要求されます。gcc (current-buffer)簡単に入りたいです。 ロードファイル:.emacsファイルを編集しているときに、すぐにロードして変更をテストしたいと思います。私のやり方はそうです。M-x load-fileそれから私はいつも名前をつづり. e m a c sます。ショートカットが欲しいです。 外部プロセスを起動する:du -sh例として、シェルコマンドを実行するときにショートカットも使用できるようにしたいことを示すためだけに挙げました。M-! これまでに見つけたもの …
19 emacs  function 

2
英語の動詞の活用をチェックする標準的なUnixコマンドはありますか?
最近遭遇した単語リストとWordNetのシンプルな場合は、自分の上に2つの偉大な発見を、私は今、動詞の裸不定詞を取るとシンプルな過去と過去分詞を返すよう、似たようなツールを探しています。例: $ verbteacher throw Simple past: threw Past participle: thrown 誰がどこで見つけるverbteacher(1)か知っていますか?

3
ソースからインストールします。パッケージマネージャーを破壊せずに依存関係を解決する方法
ソフトウェアのコンパイルとインストールは、私が克服できない痛みと問題です。私は次のレベルに到達するために私の心をクリアするために、より知識のある誰かとこのプロセスの私の理解を駆け抜けたいです。 私が必要とする多くの科学ソフトウェアはパッケージとして配布されていません。「./configure」がコンパイル変数を設定し、依存関係を確認すると「make」がコンパイルを行い、「sudo make install」がすべてのライブラリとビンをその場所に配置することを理解しています。しかし、それは決して機能しません。私はめったにa)「./configure」ステージから抜け出て依存関係の地獄に入ることはなく、もしそうすれば、b)「sudo make install」はおそらく私の箱を壊します。 a)依存関係の地獄は非常にイライラします。時々私はライブラリを持っていますが、それは好きではありません。または、ライブラリがインストールされません。または、「構成」が見つかりません。または、私のディストリビューションは、あるべきではない場所にそれを置きました。または、私のシステムには2つのバージョンがあります。問題は、診断方法を理解できないため、これらの問題を修正できないことです。プログラマーになる必要のない人のために学ぶための良い参考資料は何ですか? b)私の理解では、「make install」はいくつかのライブラリを置き換え、パッケージマネージャーがこれを認識せずに設定を変更します。そのため、一部のプログラムは実行されず、他のプログラムは更新できません。したがって、「make install」を使用せずに、PATHに追加されたシンボリックリンクを使用して、コンパイル済みのバイナリをユーザーディレクトリに保持するだけでよいのでしょうか。 私のボックスはシングルユーザーで、無料のHDがたくさんあるので、問題が解決する場合、ライブラリのコピーを複数(数十)持つことはあまり気にしません。スペースは安いです。

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