「低レベル端末」(これがどのように呼び出されるかわからない)にいるとき、 Ctrl + Alt + F1、マウスがなく、コマンドラインでカーソルを移動できないため、そこで使用したコマンドの内容をコピーするにはどうすればよいですか?
>
または&>
を使用して出力をファイルにリダイレクトできます。コメントから回答に移動するように求められたので、ここにあります。
ところで、いくつかの注意事項:
>
をコマンドとファイル名の間に置くと、ファイルの現在の内容が標準出力で上書きされます。
>>
を追加すると、ファイルに追加されます。
リダイレクタの前に&
を置くと、標準エラーもキャッチされます(Bash> 4)。
最後に使用したコマンド履歴は、通常、historyファイルに保存されます(.bash_history
)。選択ファイルのエディターでこのファイルを開き、内容をコピーできます。
コンソールウィンドウのコマンドラインの操作に関しては、bashシェルのコマンドライン編集機能を使用できます。これらについては、Bashのマニュアルページ(man bash
)のREADLINEセクションで説明されています。ただし、コピーされたパーツをエディターに貼り付けることはできません。
これを回避する別の方法は、screenユーティリティを使用することです。 Webにはいくつかの入門 チュートリアル があります。画面にはコピー&ペースト機能があります:
コマンドの出力をファイルに送信するには、 redirection。 を使用できます
たとえば、次のコマンドでdmesg
コマンドをファイルに送信できます。
dmesg > ~/Documents/output.txt
次に、出力は画面ではなくそのファイルに書き込みます。 GUIに戻ると、ドキュメントフォルダーでファイルを検索し、コンテンツにアクセスできます。
これを回避するにはいくつかの方法があります。最も簡単なのはxclip
で、最後に保存しました。
hbdgafの答えは、リダイレクトという1つの解決策を示しています。テーマの2つのバリエーション-名前付きパイプとbyobu
を使用したリダイレクトです。最初に追加のソフトウェアをインストールする必要はありませんが、byobu
をインストールする必要があります。
オプション1:名前付きパイプ
コマンドを実行し、パイプライン|
を使用して、その出力を匿名パイプと呼ばれる別のコマンドにリダイレクトすると、一定時間存在します。一方、名前付きパイプは、データが入ってから出て行く特別な種類のファイルです。
動作させる手順は次のとおりです。
mkfifo /tmp/myPipe
で名前付きパイプを作成します
必要なコマンドを実行し、出力を/tmp/myPipe
にリダイレクトします。たとえば、Sudo apt-get install byobu > /tmp/myPipe
。コマンドは、myPipe
から出力を解放するまで待機することに注意してください。 &
を使用してバックグラウンドで待機させ、Sudo apt-get install byobu > /tmp/myPipe &
のように端末の使用を継続させます。また、stdoutはパイプに入りますが、stderrは画面に行きます。パイプでstderrとstdoutの両方が必要な場合は、&>
の代わりに>
を使用します
cat /tmp/myPipe
を使用してそのパイプからの出力を解放します。これで、マウスとキーボードを使用して出力をコピーできます。オプション2:byobuの共有セッション
byobu
に関しては、基本的な考え方は共有セッションを作成することです。 TTYとGUIターミナルでbyobuを起動すると、あちこちで同じ出力が表示されます。 TTYを最初に起動することをお勧めします。その方がクリーンだからです。 TTY2でbyobuを起動してdf;free
を実行し、GUIに移動してgnome-terminal
を起動してからbyobu
を呼び出して、出来上がった場合、TTYで見たのと同じ出力が表示されます。
オプション3:xclip、最も簡単な方法
df
コマンドの出力をコピーしたいとします。 xclip
に関係するのはこれだけです:
$ export DISPLAY=:0 ; df | xclip -sel clip
そして、それはすでにGUIクリップボードにあります!
ただし、ちょっとした落とし穴があります-xclip
はネイティブアプリではないため、Sudo apt-get install xclip
経由でインストールする必要があります
もちろん、すべてを入力すると繰り返しが得られるため、.bashrc
関数を作成してジョブを実行できます。以下の関数をコピーして.bashrc
ファイルに貼り付け、ファイルを保存します。ログインするたびに、出力をクリップボードにコピーする簡単なコマンドがあります。
function toClipboard
{
export DISPLAY=:0
"$@" | xclip -sel clip
}
そして、あなたはそれを$ toClipboard df -h
として実行するので、パラメーターを指定してコマンドを実行できることに注意してください。
オプション4:スクリプト
まさにその目的を持つscript
というコマンドが存在します-コマンドラインで見たものをファイルに記録します。最初に実行してから、シェルに出力を入力して終了できます。または、--command
フラグを使用してscreenを呼び出すことができます。たとえば、script --command "df -h"
ただし、欠点があります-出力ファイルには特殊文字が含まれる場合があります。 出力のクリーンアップ方法についてはこちらを参照してください
オプション5:/ dev/vcsX
Gilesが示すように U&Lサイトから、実際にttyの内容を別の端末の標準出力にダンプできます。 tty2をダンプしたいとします。そのためのコマンドは
cat /dev/vcs1
この方法の欠点は、端末が特定レベルのスクロールバック行に設定されている場合、部分的な出力しか取得できないことです。
Sudo apt-get install gpm
GPMはまさに必要なものであり、非常に便利です。コンソール(ctrl+alt+f1
)で、左マウスボタンをドラッグしてcopy
を、右マウスボタンをクリックしてpaste
を選択できます。