Unix & Linux

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

2
日付出力から先行ゼロを削除する
dateコマンドのエイリアスを作成して、次の形式で日付を表示しました。 2013.06.14.12.10.02 このコマンドを使用して: alias date = date +"%Y.%m.%d.%H.%M.%S" 出力から先行ゼロを削除することを除いて、すべてがうまく機能します。 フォーマットを変更してそれを実現する方法はありません。私はそれをsed、やなどの他のコマンドに出力をパイプすることによってのみ行うことができると思いますawk。 私が実行しているOSはUbuntu 12.04.2 LTSです。
40 sed  awk  date 

7
bashのみを使用して(curl、wget、perlなどを使用しない)ファイルをダウンロードする方法
ファイルをダウンロードするためのコマンドラインユーティリティを持たない最小限のヘッドレス* nixがあります(例:curl、wgetなど)。私にはbashしかありません。 ファイルをダウンロードするにはどうすればよいですか? 理想的には、幅広い* nixで機能するソリューションが欲しいです。
40 bash  command-line  web 

12
大きなファイル(〜20 GB)をコピーするためのcpの高速な代替手段はありますか?
私は大学院生であり、私が働いているグループはLinuxクラスターを維持しています。クラスターの各ノードには独自のローカルディスクがありますが、これらのローカルディスクは比較的小さく、自動バックアップは装備されていません。そのため、グループは多くのTBのストレージスペースを持つファイルサーバーを所有しています。私は比較的Linuxに慣れていないので、速度、ネットワーク機能などの点でファイルサーバーの仕様がわからない。ローカルディスクがI / Oの点でファイルサーバーよりもかなり高速であることは経験から知っている。約十数人がファイルサーバーを使用しています。 cp〜20 GBのファイルをファイルサーバーからローカルディスクの1つにコピーするために使用するには、平均で約11.5分かかります(によればtime)。cp(1)timeそのようなコピーのシステム時間は約45秒であるため、この操作はあまり効率的ではないことを知っています。(2)topコピー中に調べると、%CPUは非常に低いため(検査により、平均で約0〜10%)。 cpローカルディスク上の1つのフォルダーから同じローカルディスク上の別のフォルダーに同じ〜20 GBのファイルをコピーするために使用すると、時間がかかりません-リアルタイムで約9分(システム時間では〜51秒time)。そのため、ファイルサーバーは予想どおりローカルディスクよりも多少遅くなりますが、おそらくそれほど遅くありません。ローカルから同じローカルへのコピーが9分より速くないことに驚いています。 ファイルサーバーからローカルディスクの1つに、最大200個の大きなファイル(それぞれ20 GB以下)をコピーする必要があります。だから、私の質問は次のとおりですcp。Linuxで大きなファイルをコピーするためのより高速な代替手段はありますか? (または、cpコピーを高速化するために使用できるフラグがありますか?)このコピー時間を何らかの形で削ることができたとしても、それは非常に役立ちます。 新しい高速のハードウェアディスクを購入することは確かですが、そのようなリソースにアクセスすることはできません。私はシステム管理者でもありません-私は(初心者)ユーザーでしかありません-そのため、ディスクの負荷に関するより詳細な情報にアクセスすることはできません。毎日約12人がファイルサーバーを使用していますが、この特定のノード/ローカルディスクを使用しているのは私だけです。
40 cp  file-copy 

3
bash履歴から最後のN行を削除します
誤ってファイルをシェルに貼り付けると、大量のいナンセンスエントリがbash履歴に追加されます。これらのエントリを削除するクリーンな方法はありますか?明らかに、シェルを閉じて.bash_historyファイルを手動で編集できますが、現在のシェルの履歴を変更するために利用可能なAPIがあるのでしょうか?

5
ハードリンクを保持してディレクトリをコピーする方法は?
共通のファイルがあるディレクトリを別のパーティションに移動する方法は? /mnt/Xハードリンクでファイルを共有するディレクトリでパーティションがマウントされていると仮定しましょう。そのようなディレクトリを別のパーティションに移動する方法は、/mnt/Yそれらのハードリンクを保存することです。 「ハードリンクとファイルを共有するディレクトリ」とはどういう意味ですか? # let's create three of directories and files mkdir -p a/{b,c,d}/{x,y,z} touch a/{b,c,d}/{x,y,z}/f{1,2,3,4,5} # and copy it with hardlinks cp -r -l a hardlinks_of_a 具体的には、ファイルの合計サイズが10Gで、各ファイルに10個のハードリンクがあると仮定します。問題は、10Gを使用して宛先に移動する方法です(100Gでコピーしてから重複排除を実行することについて誰かが言うかもしれません-私が尋ねているものではありません)
40 files  cp  hard-link 

2
duとdfの違いを覚えるには?
duそして、dfかなり似たことを行う、と私はいつも自分が間違ったものを入力して検索します。 「du」と「df」の意味がわかっていれば、どちらを使用するかを覚えやすくなると思います。 これら2つを区別する方法は何ですか?どちらがどのアクションを実行するのか覚えていますか?
40 disk-usage  df 

2
bashの逆検索内をナビゲートする方法は?
Bashは、Ctrl+ を介して逆検索する機能を提供しますR。次に、コマンドの一部を入力すると、履歴から適切なエントリが表示されます。 これが私の歴史だと仮定します。 vim foo1 vim foo2 # I want to go here vim foo3 # this is where I land, how to go back? を検索しfooます。打撃Ctrl+ R再びと、次のフィッティングの検索エントリを示しています。多くの場合、私は速すぎて、意図した結果を過ぎてナビゲートvim foo3されて表示され、今すぐに戻りたいと思いvim foo2ます。 したがって、私の質問は、逆検索内でどのようにナビゲートするのですか?

4
OGVビデオをGIFアニメーションに変換しますか?
gtk-recordmydesktopスクリーンキャスティングプログラムでOGVビデオを作成し、X上のブルートフォースでこの問題に取り組みました。VLCでビデオを見ることができます。 ここでのタスクは、OGVビデオをGIFアニメーションに変換してSEで表示できるようにする方法を見つけることです。どうやってやるの?

11
「sed」による追加
で数学演算を実行しようとしていますsedが、変数を文字列として扱い続けます。入力は次の種類です。 $ echo 12 | sed 's/[0-9]*/&+3/' $ 12+3 出力として15が欲しいです。Pythonデーモンとしてプログラムを実行しているため、操作を実行して数学的な結果を置き換える必要がありstdoutます。ファイルのリダイレクト、それらのファイルを開く、操作の実行、結果の抽出、交換。私にsedは、すべてを1行で実行するのが最善のようです。 私はさまざまな方法で入力と出力の両方をキャストしようとしました $ echo 12 | sed 's/[0-9]*/int(&+3)/' $ echo 12 | sed 's/[0-9]*/\int(&+3)/' $ echo 12 | sed 's/[0-9]*/\int(&+3)/' しかし、結果は常に2番目のフィールドの印刷でした。
40 sed  math 


5
テキスト文字列を含まないすべてのファイルを見つけるにはどうすればよいですか?
テキスト文字列を含まないすべてのファイルを見つけるために使用できる簡潔なコマンドは何ですか? 私はこれを試してみました(-vを使用してgrepのパラメーターを反転させました)。 find . -exec grep -v -l shared.php {} \; 誰かがこれがうまくいくと言った: find . ! -exec grep -l shared.php {} \; しかし、それは私にはうまくいかないようです。 このページには次の例があります。 find ./logs -size +1c > t._tmp while read filename do grep -q "Process Complete" $filename if [ $? -ne 0 ] ; then echo $filename fi done …
40 grep  find  recursive 


1
サイドバイサイドモードでdiffが全端子幅を使用するようにする
ほとんどのアプリケーションは、利用可能な端末の全幅を使用することに優れています。私のシェルはscreen、vimなどを実行します。ただし、diffサイドバイサイドモード(-y)では実行しません。これは私を怒らせます。126文字幅を使用しますが、これは270ブロック幅の端末の半分でもありません。 マニュアルページを調べても、幅を自動的に調整することに関する特別なことは明らかにせず、を介して手動で指定するだけ-Wです。 おそらくdiff、ターミナルの幅全体に自動的に拡張できるようにするための「隠し機能」がありますか?または; -W <terminalsize>diffコマンドを実行するたびに自動的に挿入する最も簡単な方法は何ですか? -Wをすべてに自動的に追加しても何も害はないという仮定の下にあります。これは、「$ x列を使用する」ことを意味するためです。もしくはそうでないか。
40 terminal  diff 

4
データを並べ替えずに一意の結果のみを取得する方法は?
$ cat data.txt aaaaaa aaaaaa cccccc aaaaaa aaaaaa bbbbbb $ cat data.txt | uniq aaaaaa cccccc aaaaaa bbbbbb $ cat data.txt | sort | uniq aaaaaa bbbbbb cccccc $ 必要な結果は、元のファイルのすべての行を表示して、ファイル内のステートメントの元の順序を維持しながら、(連続したものだけでなく)すべての重複を削除することです。 ここで、この例では、実際に探していた結果は aaaaaa cccccc bbbbbb uniq一般的にこの一般化された操作を実行するにはどうすればよいですか?


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