/usr/local/bin
для программ, которые может запустить обычный пользователь.
/usr/local
иерархия для использования системным администратором при установке программного обеспечения локально. /usr
./usr/local
вместо/usr, если это не устанавливается на замене или программном обеспечении обновления в /usr
.Этот источник помогает объяснить стандарт иерархии файловой системы на более глубоком уровне.
Вы могли бы найти эту статью об использовании и злоупотреблении /usr/local/bin
интересный также.
При выполнении ssh с X передачами это прозрачно: удаленные команды (включая xclip
) имейте доступ к своему X-серверу (включая его клавиатуру). Удостоверьтесь, что Вы имеете ForwardX11 yes
в Вашем ~/.ssh/config
и X11Forwarding yes
в сервере sshd_config
(в зависимости от Ваших дистрибутивов эти опции могут идти или прочь по умолчанию).
<myconffile.conf sed {...} | xclip -i
Существуют другие способы работать над удаленными файлами, которые могут быть более удобными, например, монтируя удаленные каталоги на Вашей локальной машине с SSHfs, или открыв удаленные файлы в Emacs с Бродягой. Если у Вас есть ssh и настроенный FUSE и установленный SSHfs, SSHfs так же легок как mkdir ~/net/myserver; sshfs myserver:/ ~/net/myserver
. Если у Вас есть настроенный ssh и установленный Emacs, Бродяга так же легок как открытие /myserver:/path/to/file
.
Вам не нужно ничто специальное; с тех пор xclip
работы stdin
, просто
ssh remotehost xclip < myconf.conf
Почему это должно было бы быть изменено с sed
? ssh
очевидно для данных, когда он не используется в качестве терминала и наиболее часто используемый в конвейерах такой как
tar cfz - somedir | ssh remotehost 'cd destdir; tar xfz -'`
stdin
прежде, чем скопировать его в буфер обмена, я хотел бы ту опцию.
– Naftuli Kay
15.07.2011, 02:57
ssh
сессия (это не было бы очень безопасно, если Вы могли). Можно настроить ssh
ControlMaster
наполните для мультиплексирования дополнительных соединений по существующему, но это не действительно что-то для новичков, и Вы все еще делаете это тот же путь позже путем переключения на другой локальный терминал и выполнения команды выше (который не открывает новое окно терминала).
– geekosaur
15.07.2011, 03:03
У меня есть подобная проблема с LUbuntu's lxterminal
(протестированные различные терминалы) вставка буфера обмена к ssh
сессия. Если буфер обмена имеет больше, чем приблизительно 100 байтов тайм-ауты сессии и сбои.
Если я соединяюсь через ssh почти с каким-либо сервером CentOS 5.x и затем соединяюсь с целевым сервером, работами вставки буфера обмена без какой-либо проблемы для какого-либо разумного размера данных.
https://secure.wikimedia.org/wikipedia/en/wiki/Base64
Можно преобразовать данные буфера обмена с Base64 к тексту ASCII. Затем можно протолкнуть ту внутреннюю часть уже существующее соединение SSH.
Вот то, как Вы сделали бы это на OSX от Вашей локальной машины
ssh remotehost.com "<some/file.txt" | pbcopy
если на вашей локальной машине запущены windows(7+), то вы можете использовать их из командной строки:
ssh user@server cat /home/user/file | clip
~/.ssh/config:
Host REMOTEHOST
...
ForwardX11 yes
/etc/ssh/sshd_config:
X11Forwarding yes
bash:
$ xclip -o | ssh REMOTEHOST 'DISPLAY=:0 xclip -i'
Копирование с безголового сервера в локальный буфер обмена из вашего обычного сеанса SSH:
Установите ncat
на свой локальный и удаленный компьютер. (На вашей удаленной машине вы также можете сделать с nc
или простой telnet
, но на локальной машине нам нужны опции для выполнения команд(-c
/ -e
), которые недоступны в nc
в обычном дистрибутивы, такие как Debian и Ubuntu.)
apt install nmap
На локальном компьютере настройте сервер, прослушивающий локальный интерфейс, который будет копировать контент, поступающий через порт 10009, в буфер обмена X:
ncat --keep-open --listen --sh-exec "xclip -selection clipboard" localhost 10009
Или используйте эквивалентную сокращенную версию:
ncat -klc "xclip -sel c" localhost 10009
SSH на удаленную машину таким образом, чтобы был установлен обратный туннель от порта 10008 удаленной машины к порту 10009 на вашей локальной машине (, где ваш сервер прослушивает ). Вы можете использовать этот сеанс SSH для своей обычной работы.
ssh -R 10008:localhost:10009 user@example.com
Если вы хотите скопировать содержимое файла с удаленного компьютера в локальный буфер обмена, выполните в оболочке SSH:
ncat --send-only localhost 10008 < file.txt
И, конечно же, это лучше, если оно упаковано в виде ярлыка оболочки или сценария. Мы могли бы назвать его rclip
для «[копировать в] удаленный буфер обмена» по аналогии с хорошо известным -xclip
.
Преимущества
Нет необходимости открывать другой сеанс SSH для удаленного компьютера.
Нет необходимости в xclip
на удаленной машине, поэтому он работает, если вы не можете его установить или не можете использовать, потому что это безголовый сервер без X.
Безопасность
Мы делаем ncat -l localhost 10009
для сервера, что означает, что он слушает только на сетевом интерфейсе с IP-адресом localhost
. Этот интерфейс локальной петли позволяет подключаться только с вашей собственной машины (, включая, в данном случае, обратное туннелирование через SSH ). Таким образом, даже если вы не находитесь за брандмауэром, ваш порт 10009 никому не доступен в Интернете.
Источник
Адаптировано из gist dergachev/ssh -forward -clipboard.md для работы в Linux. Этот список также содержит инструкции о том, как сделать обратный туннель SSH туннелем по умолчанию.
Очень похоже на решение @d -raev и @william -casarin, но отличается, поэтому я делюсь тем, что помогло мне.
Команда
ssh user@host "cat <myconffile.conf" | xclip -sel clip
Пояснение
Это использование ssh
для создания безопасного туннеля, вход в user
@ host
или ip
, затем выполнение cat
, чтобы распечатать содержимое <myconffile.conf
в stdout
, а затем передать это в команду xclip -sel clip
на вашем локальном компьютере, которая помещает содержимое <myconffile.conf
в буфер обмена на вашем локальном компьютере.
Пример использования в реальном -мире
Я использую эту структуру команд для таких задач, как вставка ключей ssh в github (, что позволяет просто нажать Ctrl -V или вставить выделение после запуска команды )с помощью Bash в Ubuntu 16.04 и 18.04. Ознакомьтесь с man ssh
, man cat
и man xclip
, чтобы узнать о поведении и параметрах.
Порт Far Manager Linux поддерживает синхронизацию буфера обмена между локальным и удаленным хостом. Вы просто открываете локальный far2l, выполняете «ssh somehost» внутри, запускаете удаленный far2l в этом сеансе ssh и получаете удаленный far2l, работающий с вашим локальным буфером обмена.
Он поддерживает Linux, *BSD и OS X; Я сделал специальную сборку шпатлевки , чтобы использовать эту функциональность также и в Windows.