远程连接服务器
远程连接服务器
连接方式
终端连接
cmd/powershell/terminal
ssh ACCOUNT@REMOTE_IP # eg: ssh leng@10.16.0.42
# 第一次连接可能需要验证 key,输入‘yes’后回车
# 输入密码时没有显示,输完后直接回车
VSCode 连接(推荐👍)
地址:https://code.visualstudio.com/
教育版 PyCharm 连接
Pycharm-学生免费专业版安装 - 知乎 (zhihu.com)
社区版PyCharm没有远程连接功能,专业版和教育版的才有。
配置项目环境
创建项目文件夹
cd YOUR_ROOT_PATH # 一般为PycharmProjects或者桌面
mkdir YOUR_PROJECT_DIR
打开 Terminal 新建环境
conda create -n YOUR_NAME python=3.x # 创建环境
conda activate YOUR_NAME # 激活环境
conda deactivate # 退出当前环境
conda env list 或 $ conda info -e # 查看当前环境列表
conda remove -n YOUR_NAME --all # 删除虚拟环境
装库
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge
pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
运行文件
(1) 右键run, 然后去configurations里删除ip地址
# 过程略
(2) 终端运行
python xxx.py
(3) screen 运行(离线)tmux 更好用,所以换了
$ tmux new -s SESSION_NAME
$ tmux ls
$ tmux a -t SESSION_NAME
$ tmux kill-session -t SESSION_NAME
# 分离窗口
# 第一步:输入组合键 Ctrl+B,然后松开。
# 第二步:输入字母 d。
# 复制窗口
# 第一步:按 Ctrl+B 组合键,然后松开。
# 第二步:再单独按一下 c 键。
# 切换窗口
# 第一步:按 Ctrl-B 组合键,然后松开。
# 第二步:按数字 0 键。
按完前缀ctrl+B后,再按冒号:进入命令行模式,
输入以下命令:
$ set -g mouse on
ctrl+B + [ the 'Page Up/Down' 翻页
$ sudo apt-get install screen 或 $ sudo yum install screen
$ screen -S name # 新建窗口并进入
$ screen -ls # 列出窗口
There is a screen on:
2637.count (12/17/2015/10:00:32 AM) (Detached)
$ screen -r 2637 # 进入2637线程,恢复count会话窗口
会话分离 我们在一个窗口运行某个程序之后,想退出登录关闭terminal干点别的事,让程序在后台运行。这时就需要和窗口会话分离,有2种方式:
- 快捷键
Ctrl a
表示进入命令模式 在当前会话窗口中按Ctrl a
+d
快捷键可以实现分离,这时窗口会弹出[detached]的提示,并回到主窗口。screen -d name
# 远程detach某个session,前提是已经跳出了name窗口
杀死会话窗口 如果想关掉一个多余的窗口,有3种方法:
kill -9 threadnum
例如在上面的2637,kill -9 2637
即可杀死线程,并杀死窗口使用
Ctrl a
+k
杀死当前窗口和窗口中运行的程序使用
Ctrl a
然后输入quit
命令退出Screen会话。需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序清除死去的窗口 当窗口被杀死后,再用
screen -ls
可以看到该窗口后面的(??? dead)字样,说明窗口死了,但是仍在占用空间。这时需要清除窗口$ screen -wipe #自动清除死去的窗口
2.5.3使用screen进行任务管理 当程序运行时间较长时,我们在当前Linux窗口直接运行程序,程序或许会因为网络问题异常终止。我们可以使用screen来解决本地突然离线的问题,因为screen相当于创建一个后台窗口在服务器,本地连接中断并不会影响正在运行的程序。我们在命令行敲入screen –ls命令,效果如图 2.21所示。
1. # 常用的screen命令
2. screen –S name # 创建一个窗口
3. screen –ls # 查看当前已经创建的窗口
4. screen –d –r name # 回到名字为name的窗口
5. screen –X –S name quit # 关闭名字为name的窗口
远程连接服务器
VSCode更好用
安装教育版 PyCharm
创建项目文件夹
cd YOUR_ROOT_PATH # 一般为PycharmProjects或者桌面
mkdir YOUR_PROJECT_DIR
打开 Terminal 新建环境
conda create -n YOUR_NAME python=3.x # 创建环境
conda activate YOUR_NAME # 激活环境
conda deactivate # 退出当前环境
conda env list 或 $ conda info -e # 查看当前环境列表
conda remove -n YOUR_NAME --all # 删除虚拟环境
装库
conda install pytorch torchvision torchaudio cudatoolkit=10.1 -c pytorch
新建/打开 项目,选择python解释器
Interpreter Settings 里修改解释器与mapping
1.本地创建项目
File-》New Project...
du -sh * # 查看每一个占了空间
df # 显示磁盘相关信息
ls # 列出当前文件夹内容
cd YOUR_DIR_PATH # 进入路径
mkdir YOUR_DIR_NAME # 创建文件夹
Root ssh 远程连接
$ apt-get install -y openssh-server
$ sudo vim /etc/ssh/sshd_config
> PermitRootLogin yes
> PermitEmptyPasswords no
$ service ssh restart
免密链接
# 本地终端
$ ssh-keygen -t rsa -C "mo1031@live.com" # 一路 Enter
$ vim /Users/tiumo/.ssh/id_rsa.pub # 打开密钥,手动复制
# 远程终端
$ mkdir .ssh
$ cd .ssh
$ touch authorized_keys
$ vim authorized_keys
在 /home/leng/.ssh/authorized_keys # 手动粘贴
校外连接
配置ssh监控端口
$ sudo vim /etc/ssh/sshd_config
'add' ListenAddress 0.0.0.0:5122(YOUR_PORT)
# 例如:
ListenAddress 0.0.0.0:5122
ListenAddress 0.0.0.0:22
$ service sshd restart # (如果selinux不设置为disabled,则无法生效)
$ sudo netstat -anp|grep sshd # 查看端口号
# 如果系统升级过ssh,即使修改配置文件/etc/ssh/sshd_config也不会生效,
# 升级openssh后,配置文件被修改到/usr/local/etc/sshd_config,
# 所以修改这个/usr/local/etc/sshd_config
本机操作
1.安装VPN软件EasyConnect -> https://vpn.cqupt.edu.cn/
2.安装lemon -> https://lemon.qq.com(App Store版无此功能)
3.开机启动项中开启两个守护进程
a."com.sangfor.ECAgentProxy.plist"
b."com.sangfor.EasyMonitor"
$ ssh -p 5122 myName@hostname
命令行启动向日葵
$ sudo /usr/local/sunlogin/bin/sunloginclient # 一般会报错
# 所以换个方式, 开机加载项中去改吧
改变文件用户权限
$ mv /home/guest/Documents/nemo /home/nemo
$ sudo cp /home/guest/.bashrc /home/nemo/.bashrc
$ sudo chown nemo.nemo -R nemo # chown runoob:runoobgroup file1.txt
# -R 表示当前前目录下的所有文件与子目录
$ sudo chmod 600 ××× (只有所有者有读和写的权限)
$ sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
$ sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
$ sudo chmod 666 ××× (每个人都有读和写的权限)
$ sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
# 其中×××指文件名(也可以是文件夹名,不过要在chmod后加-ld)