web-dev-qa-db-ja.com

端末からコンテンツを選択してコピーする方法(ATL + CTRL + F1)

「低レベル端末」(これがどのように呼び出されるかわからない)にいるとき、 Ctrl + Alt + F1、マウスがなく、コマンドラインでカーソルを移動できないため、そこで使用したコマンドの内容をコピーするにはどうすればよいですか?

4
silkAdmin

>または&>を使用して出力をファイルにリダイレクトできます。コメントから回答に移動するように求められたので、ここにあります。

ところで、いくつかの注意事項:

>をコマンドとファイル名の間に置くと、ファイルの現在の内容が標準出力で上書きされます。

>>を追加すると、ファイルに追加されます。

リダイレクタの前に&を置くと、標準エラーもキャッチされます(Bash> 4)。

9
RobotHumans

最後に使用したコマンド履歴は、通常、historyファイルに保存されます.bash_history)。選択ファイルのエディターでこのファイルを開き、内容をコピーできます。

コンソールウィンドウのコマンドラインの操作に関しては、bashシェルのコマンドライン編集機能を使用できます。これらについては、Bashのマニュアルページ(man bash)のREADLINEセクションで説明されています。ただし、コピーされたパーツをエディターに貼り付けることはできません。

これを回避する別の方法は、screenユーティリティを使用することです。 Webにはいくつかの入門 チュートリアル があります。画面にはコピー&ペースト機能があります:

  1. 押す CTRL+A それから ESC コピーモードに入る。
  2. カーソルキーの周りを移動することにより、選択した領域の最初の文字に移動してから、 Space。これで最初のマークが設定されました。
  3. 選択するテキストの末尾にカーソルを移動して押します Space。これで、選択した領域がバッファにコピーされました。
  4. バッファープレスを貼り付けるには CTRL+A その後 ]
5
lgarzo

コマンドの出力をファイルに送信するには、 redirection。 を使用できます

たとえば、次のコマンドでdmesgコマンドをファイルに送信できます。

dmesg > ~/Documents/output.txt

次に、出力は画面ではなくそのファイルに書き込みます。 GUIに戻ると、ドキュメントフォルダーでファイルを検索し、コンテンツにアクセスできます。

4
Kris Harper

これを回避するにはいくつかの方法があります。最も簡単なのはxclipで、最後に保存しました。

hbdgafの答えは、リダイレクトという1つの解決策を示しています。テーマの2つのバリエーション-名前付きパイプとbyobuを使用したリダイレクトです。最初に追加のソフトウェアをインストールする必要はありませんが、byobuをインストールする必要があります。

オプション1:名前付きパイプ

コマンドを実行し、パイプライン|を使用して、その出力を匿名パイプと呼ばれる別のコマンドにリダイレクトすると、一定時間存在します。一方、名前付きパイプは、データが入ってから出て行く特別な種類のファイルです。

動作させる手順は次のとおりです。

  1. mkfifo /tmp/myPipeで名前付きパイプを作成します

  2. 必要なコマンドを実行し、出力を/tmp/myPipeにリダイレクトします。たとえば、Sudo apt-get install byobu > /tmp/myPipe。コマンドは、myPipeから出力を解放するまで待機することに注意してください。 &を使用してバックグラウンドで待機させ、Sudo apt-get install byobu > /tmp/myPipe &のように端末の使用を継続させます。また、stdoutはパイプに入りますが、stderrは画面に行きます。パイプでstderrとstdoutの両方が必要な場合は、&>の代わりに>を使用します

    1. gUIに戻り、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

この方法の欠点は、端末が特定レベルのスクロールバック行に設定されている場合、部分的な出力しか取得できないことです。

3
Sudo apt-get install gpm

GPMはまさに必要なものであり、非常に便利です。コンソール(ctrl+alt+f1)で、左マウスボタンをドラッグしてcopyを、右マウスボタンをクリックしてpasteを選択できます。

3
Pad