当登陆超算后,很多情况我们需要多个窗口去同时进行多个操作;或者是想要和之前的文件进行比较。这种时候,多个窗口就是很好的办法。但是利用iterm或者mac自带的terminal想要打开多个窗口,就必须重复输入多次密码。这里,可以在远程服务器安装tmux后,利用它来快捷的无需重复输入密码来分屏,从而达到我们想要的目的。下面简单介绍几个常用的tmux操作:
基本用法
启动与退出
tmux #直接输入tmux即刻启动
exit #输出exit或者按下ctrl+d来退出
会话管理
- 新建会话
第一个启动的会话名为0,后续是1,2以此类推。
也可以为会话起名以方便区分:
tmux new -s name
- 分离会话
如果我们想离开会话,但又不想关闭会话,有两种方式:
- 按下 ctrl+b d #更推荐
- 输入 tmux detach #要求当前会话没有正在运行但程序。
- 查看会话
tmux ls
- 接入会话
tmux attach -t name
- 杀死会话
tmux kill-session -t name
- 切换会话
tmux switch -t name
划分窗格
tmux split-window #划分上下两个窗格
tmux split-window -h #划分左右两个窗格
快捷键:在tmux中所有的快捷键都是以ctrl+b作为前缀
$ Ctrl+b %:划分左右两个窗格。
$ Ctrl+b “:划分上下两个窗格。
$ Ctrl+b :光标切换到其他窗格。是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓。
$ Ctrl+b ;:光标切换到上一个窗格。
$ Ctrl+b o:光标切换到下一个窗格。
$ Ctrl+b {:当前窗格左移。
$ Ctrl+b }:当前窗格右移。
$ Ctrl+b Ctrl+o:当前窗格上移。
$ Ctrl+b Alt+o:当前窗格下移。
$ Ctrl+b x:关闭当前窗格。
$ Ctrl+b !:将当前窗格拆分为一个独立窗口。
$ Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
$ Ctrl+b Ctrl+:按箭头方向调整窗格大小。
$ Ctrl+b q:显示窗格编号。
1. 登陆远程服务器,创建conda环境
利用ssh登陆远程服务器后,创建一个新的conda环境
conda create -n [name] python=[verson x.x]
- 激活这个conda环境
conda activate [name]
- 查看conda的环境
conda env list
2. 远程Linux服务器上:
利用Anaconda安装
conda install jupyter notebook
生成Jupyter notebook配置文件
jupyter notebook –generate-config
利用ipython配置Jupyter notebook密码
ipython
In [1]: from notebook.auth import password
In [2]: passwd()
Enter password: **(自定义)
Verify password: **
Out[2]: ‘argon2:xxxxx’ #保存这个生成的密钥,后面配置文件的时候需要用到
In [3]: exit()
配置jupyter_notebook_config.py文件
vim ~/.jupyter/jupyter_notebook_config.py
在最后一行加入下面信息:
c.NotebookApp.ip = ‘*’ # 允许访问此服务器的 IP,星号表示任意 IP
c.NotebookApp.password = u’argon2:xxxxx # 之前生成的密码 hash 字串, 粘贴进去
c.NotebookApp.open_browser = False # 运行时不打开本机浏览器
c.NotebookApp.port = 8890 # 使用的端口,随意设置,不建议使用默认的8888,感觉经常会被占用
c.NotebookApp.enable_mathjax = True # 启用 MathJax
c.NotebookApp.allow_remote_access = True # 允许远程访问
c.NotebookApp.notebook_dir = ‘/work/meng/DC1/sisl’ # 设置默认目录
3. 在远程服务器启动Jupyter notebook
在远程服务器输入:
jupyter notebook
出现下面信息则表示在远程服务器上启动成功:
[I 15:46:50.372 NotebookApp] Serving notebooks from local directory: /work/meng/DC1/siesta
[I 15:46:50.372 NotebookApp] Jupyter Notebook 6.4.8 is running at:
[I 15:46:50.372 NotebookApp] http://super2:8890/
[I 15:46:50.373 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
4. 本地连接远程服务器
ssh -N -f -L localhost:8890:localhost:8890 [用户名]@[服务器地址]
如果本地pc连接多个远程服务器,有多个key,在这里记得使用-i来指定想要用的key名称
检查本地端口是否被占用以及彻底kill的办法:
- 在terminal中输入:
lsof -i tcp:端口
- 如果此端口被占用,则会输出相应的PID号,用一下指令kill:
kill -9 PID号
Reference
https://www.coonote.com/jupyter-note/jupyter-passwd.html