web-dev-qa-db-ja.com

xselまたはxclipの代わりに、X11を*インストールせずに?

WindowsボックスからLinux(X11がインストールされていない状態)でPuTTYを使用する場合、xselまたはxclipに代わるものはありますか? xclip/xselにはX11が必要です。シェルコマンドの出力全体をクリップボードにパイプして、Windowsボックスのアプリケーションに貼り付けます。これらのLinuxサーバーに必要なすべてのX11依存関係xselおよびxclipをインストールする必要はありません。これは可能ですか?ダン

10
I grok it

クリップボード自体はX11の機能であるため、X11サーバーインスタンスがどこでも実行されていないと、クリップボードを使用できません。詳しくは以下をご覧ください。

ただし、xclip/xselには依存関係としてX11サーバーがなく、クライアントライブラリをいくつかインストールするだけで済みます。ただし、パッケージをできるだけ少なくしたい場合は、xselよりも依存関係が大幅に少ないため、xclipをインストールする必要があります(apt depends --recurse --important xselapt depends --recurse --important xclipの出力を比較してください)。

X11サーバーに戻ります。ヘッドレスUbuntuサーバーに完全なグラフィカルX11サーバースタックをインストールする必要はないと言っていましたが、これは必要ありません。ただし、クリップボードなどの機能を使用する場合は、ローカルクライアントでX11サーバーを実行する必要があります。

Linuxデスクトップクライアントでは、通常X11がすでに実行されているため、これは問題ありませんが、Windowsではそうではありません。幸いにも、Windows用の小さなX11サーバーバージョン Xming があるようです。

これを実行して構成したら、ローカルのX11セッションをSSH(PuTTYを使用)経由でヘッドレスサーバーに転送できるはずです。そこで、たとえば、 xselを操作して、ローカルクリップボードにアクセスします。

Xming、PuTTY、SSHサーバーをX11転送用に設定する方法の詳細については、以下の投稿を参照してください。

7
Byte Commander

変更されたPuTTYの使用がオプションである場合、Windowsクリップボードにコピーして貼り付けるカスタムエスケープシーケンスを追加する このPuTTYへのパッチ を確認することをお勧めします。また、ターゲットのLinux/UnixホストからWindowsクリップボードにアクセスするために使用できる小さなwinclipシェルスクリプトも付属しています。

パッチはPuTTY 0.53b(10年以上前)用で、PuTTY 0.60 here へのリベースがありますが、それでもまだ古いバージョンです。最新のPuTTY(この記事の執筆時点では0.70)に適合させるには多少の作業が必要かもしれませんが、現時点ではPuTTYコードベースはほとんど安定しているため、変更なしで適用できる場合があります。おそらくこれはあなたにとって役に立つかもしれません。

エスケープシーケンスはカスタムであり、実際には標準の一部ではないため、公式のPuTTYでパッチが受け入れられる可能性は低く、公式ディストリビューションでPuTTYによって正式にサポートされる可能性は低いです。

1
filbranden

scriptは、ダイアログ全体を記録します

コンパイルされたプログラムscriptは、Ubuntuのリポジトリ「main」にあるパッケージbsdutilsのプログラムです。テキスト画面、端末ウィンドウ、またはリモート接続でダイアログ全体を保存します。サーバーでscriptを実行できます。

ログファイルのデフォルトの名前は、TypeScriptを開始するディレクトリのscriptですが、scriptをパラメーター(エイリアス引数)で開始する場合は、別の名前を選択できます。

script my-script.log

デモ例

scriptを起動して、いくつかのコマンドを実行します。

sudodus@bionic64 ~/test $ LANG=C script my-script.log
Script started, file is my-script.log
sudodus@bionic64 ~/test $ echo 'Hello World'
Hello World
sudodus@bionic64 ~/test $ pwd
/home/sudodus/test
sudodus@bionic64 ~/test $ ls
my-script.log
sudodus@bionic64 ~/test $ exit
exit
Script done, file is my-script.log

ログファイルを確認します。

sudodus@bionic64 ~/test $ cat my-script.log 
Script started on 2019-01-21 19:50:22+0100
sudodus@bionic64 ~/test $ echo 'Hello World'
Hello World
sudodus@bionic64 ~/test $ pwd
/home/sudodus/test
sudodus@bionic64 ~/test $ ls
my-script.log
sudodus@bionic64 ~/test $ exit
exit

Script done on 2019-01-21 19:50:52+0100
sudodus@bionic64 ~/test $ 
1
sudodus

Windows側のPuTTYでは、画面上のテキストをコピーできます ショートカットセット経由 。コマンドの出力が大きすぎる場合は、Ubuntuサーバーではncを、Windowsクライアントではncatを使用することを検討してください( nmap.orgから入手可能 )。

Ubuntuで実行

$ command > output.txt
# port 1234 is just an example, you can use your own port of choice
$ nc -N -l 1234 < output.txt

Windowsでは、ncatを使用します。

PS C:\Users\Admin> & 'C:\Program Files (x86)\Nmap\ncat.exe' <ip of the server> 1234 --output foo.txt

サーバーに保存された出力は、クライアントのfoo.txtに転送されます。

0