首页
社区
课程
招聘
[分享] SSH远程操作部分常用工具和命令汇总
发表于: 2019-3-29 22:31 2274

[分享] SSH远程操作部分常用工具和命令汇总

2019-3-29 22:31
2274

根据个人经验总结,多有疏漏。本地主机与远程服务器全部Ubuntu系统,图片来自网络。本篇涉及工具和命令有:scp,tmux,sublime text(远程编辑),X11(远程显示图片),jupyter notebook(远程浏览器)。

本地准备

俗话说,善其事先利其器嘛。在介绍通过SSH操作远程服务器的常用命令之前,先推荐几个好用的软件。

1. tmux

类似于GNU Screen的一个多窗口终端,可以根据自己的喜好对窗口进行分割,便于查看和操作。

 

tmux图例

  • 源码及安装:Github
  • 常用命令:(命令前缀快捷键默认为 ctrl+b

    $ tmux new -s [name]          // 创建一个新session
    

    每个session内,使用 ctrl+b 前缀,并加上:

    c : 创建一个新窗口
    , : 重命名一个窗口
    " : 分割当前窗口为上下窗格
    % : 分割当前窗口为左右窗格
    [ : 浏览当前窗格历史记录,按 q 退出浏览
    x : 删除当前窗格
    : 移动到指定窗格
    0~9 : 跳转到指定号码的窗口
    & : 删除当前窗口

其它还有类似 lsattach-session等命令,可参考 tmux cheatsheet

2. sublime text

不谈编辑器之争,简单介绍一下sublime text,这个软件不是开源de。

 

Sublime Text 3.0图例

 

原始的sublime text是个光杆司令,没有左边目录也没有高亮,一切的一切都要从安装package开始。

装了package control之后,就可以愉快的 Shift+Ctrl+P,然后开始 Package Control: Install package之路。常用的包有:

  • Side​Bar​Enhancements: 左边文件目录,可直接在目录中增删改查

  • Sublime​Linter:代码错误提示

  • Bracket​Highlighter: 括号匹配标注

  • Evernote:本地访问印象笔记或evernote,支持markdown编辑笔记并保存到笔记本,需访问权限配置。

  • Doc​Blockr:代码注释工具

  • Alignment: 多行选择

其它还有各种语言、框架相关工具,可直接在package control中搜索。当需要使用sublime(通过ssh)本地编辑远程服务器上的文件时,还需要安装:

  • rsub: 远程编辑文件(同rmate,默认使用端口52698)

SSH常用交互命令

一般ssh连接远程服务器之后,基本命令行能完成的功能都可以顺利执行,但偶尔免不了要传个文件、提高下用户体验之类的。这里介绍几个本地和远程交互中几个简单常用的功能。

1. 远程复制文件

$ scp 源地址 目的地址     //在本地运行
$ scp 1.txt username@remotehost:/remote/directory   //本地文件复制到服务器

2. 远程显示图片

有时候在服务器上运行的程序要输出图片,例如python的image或者matplotlib包中常用到的 image.show()plt.show(),通过X11在本地也可以显示。这需要在建立ssh连接时使用:

$ ssh -X username@remotehost

或者使用 -Y 和 eog:

$ ssh -Y username@remotehost
$ eog /remote/directory/pic.png

3. 远程编辑文本

其实使用vim等编辑器在命令行也可完成,但配合前面介绍的sublime text,在本地sublime上编辑保存远程文件,也不失为一种选择。

 

这里除了本地需要安装sublime text和rsub之外,还需要在服务器端预安装 rmate,然后建立ssh连接时需转发52698端口:

$ ssh -R 52698:localhost:52698 username@remotehost

之后使用rsub或rmate命令即可在本地sublime text打开文件:

$ rsub /file/1.txt

4. 远程浏览器

本地浏览器连接服务器浏览器的内容,类似地是将服务器8080端口转发到本地8080端口,建立ssh连接时使用:

$ ssh -N -L 8080:localhost:8080 username@remotehost

例如,如果使用jupyter notebook编辑运行python程序,可在建立上述连接后使用

$ jupyter notebook --no-browser --port=8080

 

:如果觉得多种不同的ssh连接选项粘贴起来也很麻烦,当然可以通过编辑~/.ssh/config 保存服务器和连接信息,这样每次就可以直接

$ ssh hostname

另外,很多人也喜欢用teamviewer这类远程桌面软件,当然也很方便,这里仅提供多一种选择,供喜欢命令行操作的朋友取用。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//