タグ付けされた質問 「command-line」

コマンドラインは、シェルへのインタラクティブなインターフェースです。

4
スクリプトからマウント解除されたパーティションのファイルシステムを見つける
AIF(Arch Installation Framework)を使用してカスタム自動インストールを作成していますが、パーティションを指定してパーティション上のファイルシステムを見つける必要があります。 これまでのところ私はこれを持っています: grok_partitions () { local partitions= for label in `ls /dev/disk/by-label | grep "Arch"` do if [ $label == "Arch" ] then mount_point="/" else IFS="-" read base mount <<< "${label}" mount_point="/${mount}" fi local partition=$(readlink -f /dev/disk/by-label/${label}) local part_no=$(echo ${partition} | grep -Po '\d+') local fs=$(parted -mls | …

6
実行中のすべてのXディスプレイに通知を表示します
コマンドラインを使用して、実行中のすべてのXディスプレイに通知を表示したいと思います。(および実行中のコンソール) 何かのようなもの: notify-send-all 'Warning' 'Nuclear launch in 5 minutes, please evacuate' これを行うプログラムはありますか?そうでない場合、これはbashで実装できますか?

6
前のコマンドの出力からのテキストを使用する
編集2015年4月:これと同じ質問がある場合は、http://xiki.org/も確認することをお勧めします 私はこれが端末の仕組みではないことを知っていますが、以前のコマンド出力から端末ウィンドウの履歴にすでにあるテキストを使用する簡単な方法(コピー、変更など)が欲しいと思うことがよくあります。 私はこのように想像しました: 私はbashシェルでコマンドを入力しようとしていますが、数行上の画面にすでにあるものを入力する必要があることに気付きました。マウスに手を伸ばして選択することはできますが、それは嫌いです。現時点で私が本当に望むのは、端末全体が巨大なVimバッファーになったことです。そのすべてが、プロンプト、入力したコマンド、およびそれらのコマンドからの出力です。すべて。そして、数行上にジャンプし、少し編集して、テキストをヤンクすることができました。次に、bashシェルモードに戻り、ヤンクしたものを現在のコマンドラインに貼り付けます。 私はいくつかのオプションがあることを知っています: 当然、必要なテキストをいくつかのコマンドの出力から直接ファイルにパイプするか、次のコマンドに直接パイプします。ただし、そのためには、事前に計画するか、履歴からコマンドを再実行する必要があります(呼び出し間で出力が変更されないと仮定します)。 マウスに手を伸ばして、コピーするテキストを選択するには。ラメ、迷惑な、私はそれをやらなかったらよかったのに(これはGUIスタック交換サイトではありませんか?=) (Mac OS X)ターミナルアプリケーションの[テキストをエクスポート...]オプションを使用して、ターミナルテキストをファイルに保存するには。次に、ファイルを開いて操作します。ほとんど、しかし、なぜディスク上のファイルに保存するステップを経るのですか? 質問は次のとおりです。この状況で何をしますか?このシナリオで役立つトリック、ツール、シェル機能はありますか?マウスを使用するために自分を辞任するか、入力する必要があるものを再入力しますか? 問題は、「Unixの方法」ではないことですが、これは2010年であり、カーソルから数行離れたテキストを簡単にコピーできないことでしょうか?

7
トレントを1回ダウンロードするためのコマンドラインツール(wgetやcurlなど)
トレントのコンテンツをダウンロードする単一のコマンドに興味があります(ダウンロードを停止するまで、ダウンロードに続くシードとして参加する可能性があります)。 通常、事前に個別に起動する必要のあるtorrent-clientデーモンと、制御するクライアント(などtransmission-remote)があります。 しかし、私はwgetor のシンプルさを探していcurlます:1つのコマンドを与え、しばらくして結果を取得します。

2
update-alternativesを使用して代替を追加するより良い方法は?
update-alternatives何回かマニュアルを調べましたが、特定の代替を指す現在のリンクを表示する方法を見つけることができず、新しい代替を追加するときにその情報が必要です。 update-alternativesマニュアルから: --install <link> <name> <path> <priority> Java Runtime Editionの新しいバージョンを追加したいとしますが、代替(<link>パラメーター)にリンクする現在のシンボリックリンクがわかりません。私が現在していることは: sudo update-alternatives --install /tmp/randomStuff java /usr/local/java/jre1.7.0_25/bin/java 0 そのコマンドは出力します: update-alternatives: renaming java link from /usr/local/bin/java to /tmp/randomStuff. 私は最終的に右で再び私のコマンドを実行することができますので、私が代わりに指していた古いリンクを見つけるの出力を読む<link>パラメータ変更、/tmp/randomStuffに/usr/local/bin/java: sudo update-alternatives --install /usr/local/bin/java java /usr/local/java/jre1.7.0_25/bin/java 0 それは問題なく動作しますが、ご覧のとおり、コマンドをパラメーター/tmp/randomStuffとして実行するの<link>は非常に厄介です。 そこで、質問があります:(1)update-alternative特定の代替を指している現在のリンクを出力できる引数がありますか、または(2)新しいパラメーターを提供せずに新しい代替をインストールする方法がありますか?電流を維持する<link>?

2
ls --hide =およびls --ignore =の構文
ls --hideパーツのls --ignore後に設定された正規表現で定義されたファイルを除外する可能性を提供します--ignore=。後者は、このオプションがを介してオフにされないようにし-a, -Aます。コマンドmanおよびinfoページには、正規表現が記載されています。 質問:ls --hide=およびでサポートされているワイルドカードまたは正規表現ls --ignore=。 * $ ?POSIXブラケット式と同様に、サポートされているようだとわかりました。しかし、これは常に適切に機能するとは限らず、私にとっては試行錯誤のゲームです。ここで重要なものを見逃しましたか?


8
内容に100%NUL文字を含むファイルを見つける方法は?
そのようなファイルを識別できるLinuxコマンドラインコマンドとは何ですか? 私の知る限り、findコマンド(またはgrep)はテキストファイル内の特定の文字列にのみ一致します。しかし、コンテンツ全体を一致させたい、つまり、行末文字を無視して\0+、どのファイルが正規表現に一致するかを確認したい。おそらくこのイディオムは機能するかもしれませんが、行を無視してgrepを作成する(そしてファイルをバイナリとして扱う)方法がわかりません。find . cat | grep 背景:ラップトップがフリーズすると、数日ごとにbtrfsパーティションの情報が失われます。書き込み用に開かれたファイルの内容はゼロに置き換えられます(ファイルのサイズはほぼそのままです)。私は同期を使用しますが、これらの偽のファイルを伝播させたくありません。バックアップから取得できるようにそれらを識別する方法が必要です。

1
典型的なシェル「fork bomb」は、どのくらい正確に自分自身を2回呼び出しますか?
Askubuntuや他の多くのStack Exchangeサイトで有名なFork Bombの質問を読んだ後、誰もが言っていることは明らかだとはわかりません。 多くの答え(最良の例)はこう言います: 「{:|: &}関数:を実行し、その出力を:再度関数に送信することを意味します」 さて、出力は正確に何:ですか?他に何が渡されてい:ますか? そしてまた: 基本的には、呼び出しごとに自分自身を2回呼び出す関数を作成し、自分自身を終了する方法はありません。 それはどのくらい正確に2回実行されますか?私の意見では:、最初のもの:が実行を終了するまで何も渡されず、実際には終了しません。 ではC例えば、 foo() { foo(); foo(); // never executed } foo()最初のものfoo()が終了しないという理由だけで、2番目のものはまったく実行されません。 同じ論理が当てはまると思います :(){ :|: & };:、 :(){ : & };: と同じ仕事をする :(){ :|: & };: ロジックを理解してください。



5
大量のファイルを結合する
±10,000個のファイル(res.1- res.10000)があり、すべて1つの列と同じ数の行で構成されています。私が欲しいのは、本質的にはシンプルです。すべてのファイルを列ごとに新しいファイルにマージしますfinal.res。私は使用してみました: paste res.* ただし(これは結果ファイルの小さなサブセットで機能するようですが、セット全体で実行すると次のエラーが発生します:Too many open files。 これを実行するための「簡単な」方法が必要ですが、残念ながら私はunixを初めて使用します。前もって感謝します! PS:(私の)データファイルがどのように見えるかを知るため: 0.5 0.5 0.03825 0.5 10211.0457 10227.8469 -5102.5228 0.0742 3.0944 ...


1
スクリプトからバックグラウンドプロセスを開始し、スクリプトの終了時に管理します
スクリプトからデーモンに似たプロセスを実行および構成したいと思います。 私のシェルはCygwinでエミュレートされたzshであり、デーモンは基本的なFTPサーバーであるSFKです。 ここで重要なのは、スクリプトstartserv.shを次のように作成できることです。 #!/bin/sh read -s -p "Enter Password: " pw user=testuser share=/fshare cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share" $cmd & スクリプトを実行した後startserv.sh、プロンプトを表示せずに停止(終了?)します: CTRL+ Cスクリプトとバックグラウンドジョブプロセスの両方を終了します。 叩くEnterスクリプトは、プロセスがバックグラウンドに残って終わります。 とにかく私はのみを経由して、それを見ることができpsないjobs私は、プロセスを閉じたいとき、そう、私は残忍送信する必要がありkill -9、私は賛成で避けたいのですが何かある信号、 CTRL+をC。 別の方法 は、スクリプト全体をバックグラウンドで実行することです。「Would be」ですがread、スクリプトがとして実行される場合、コマンドはユーザー入力を取得できませんstartserv.sh &。 真のデーモンではなく、一時サーバーが必要なことに注意してください。つまり、スクリプトが終了した後、サーバープロセスをバックグラウンドで実行して、(仮想マシンゲストで)簡単なインタラクティブシェルタスクを実行する必要がありますが、シェルを生き残るためのプロセスが必要です。したがって、nohup適切ではないようです。

5
シェル変数からスペースを削除するにはどうすればよいですか?
コマンドラインで次のことを行いました。 $ text="name with space" $ echo $text name with space 私はtr -d ' 'スペースを削除するために使用しようとしていますが、結果は次のとおりです: namewithspace 私は次のようないくつかのことを試しました: text=echo $text | tr -d ' ' これまでのところ運が悪いので、うまくいけば素晴らしい人々が助けることができます!
15 shell  command-line  tr 

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