linux 下一些省时间提升效率的小技巧(一)

作者 张旭 日期 2017-02-22
linux 下一些省时间提升效率的小技巧(一)

SSH 相关

SSH加密过程原理
请参考 http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
在登录linux ,每天都要熟一大堆命令,很麻烦。那么我们就来配置一下,做到免密码登录,给机器配置别名。

SSH 免密码登录

1. 生成自己的秘钥

cd ~
ssh-keygen

遇到要输入信息,一路回车就可以了

2. 为远程机器配置别名

  1. 打开 ~/.ssh/config文件 (或者/etc/ssh/config),如果不存在 config 就创建一个,输入如下格式的远程计算机的信息
host 116 #这是远程主机的别名
HostName 192.168.1.116 #远程主机的IP
User finance_datascience #登录远程主机的用户名
host 7062
HostName 192.180.70.62
User datascience

完成以上操作后,运行

ssh 116

就相当于 运行

ssh finance_datascience@192.168.1.116
```
### 3. 传送本地公钥到远程主机
```bash
ssh-copy-id finance_datascience@192.168.1.116

相当于

ssh finance_datascience@192.168.1.116 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

SSH 转发

SSH 可以将网络上发送到电脑上的数据转发, 不分协议,这可以在一些受限制的情境(例如有防火墙)下作一些操作。例如 HostA:(192.170.3.63), HostB (192.168.1.116), HostC(192.180.70.62)
HostA 需要访问HostC ,由于防火墙限制,HostC 只能和HostB 通信,HostA 只能和HostB 通信,那么我们可以让hostB 转发AC的数据,从而实现访问

方法1(本地转发):

在hostA 上建立本地转发:
命令的格式如下:

ssh -l <user_name> -L <hostAPort>:<hostC>:<hostCPort> <hostB>

例如:

ssh -l finance_datascience -L 8080:192.180.70.62:8080 192.168.1.116

这命令通过访问 本地的8080端口,经过192.168.1.116 的代理,间接访问了192.180.70.62的8080端口

方法二(远程转发):

登录hostB, 在HostB 上建立远程转发,命令格式如下:

ssh -g -L <hostBPort>:<hostC>:<hostCPort> <hostB>

例如:

ssh -g -L 8080:192.180.70.62:8080 192.168.1.116

这命令监听本地的8080端口(并不区分是否是本地流量),将8080端口的数据转发给192.180.70.62:8080,间接访问了192.180.70.62的8080端口

参考: http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

Jupyter远程技术和插件优化

jupyter notebook 是一款很方便的Python(也有其他的语言)代码调试,开发工具,在网页中运行。

Jupyter远程

一般使用 jupyter notebook 命令打开的ipynb ,外界并不能访问,那么如何在远程主机建立ipynb,在本地操作呢?
为 jupyter notebook

添加子命令 –ip 即可在其他机器访问本地建立的notebook server;

添加 –no-browser 即可不打开浏览器,仅仅打开server。

一般命令如下:

jupyter notebook --ip=192.168.1.116 --no-browser &


nohup jupyter notebook --ip=192.168.1.116 --no-browser &

jupyter 密码

jupyter notebook list
可以查看 当前运行的notebookServer ,以及密码

Jupyter notebook 插件技术

Jupyter 插件可以极大增强 Notebook 功能

安装

pip install jupyter_contrib_nbextensions

jupyter contrib nbextension install –user

打开

extension.png

2. 在相应条目打钩,在相应页面下作配置

常用插件

  1. Table of Contents 自动抽取标题
  2. Skip-Traceback 收起大长串错误信息
  3. ScrollDown 常常输出信息自动收起
  4. Toggle all line numbers 自动添加行号
  5. Tree-filter 文件搜索
  6. Codefolding 代码折叠
  7. zenmode 加背景图,更大的视野
  8. ExecuteTime 执行时间显示