ubuntu/linux服务器与本地传输文件,Screen 远程登录,conda环境常用指令
1.GPU指令查看
nvidia-smi ## 查看GPU整体情况
nvidia-smi -l ## 查看几个GPU在运行
top ## 查看gpu使用占比
2.服务器上新建conda环境
-
创建新环境
conda create -n 文件夹 python=3.7(指定python的版本)
-
激活创建好的新环境
conda activate 文件夹
-
删除创建好的新环境
conda remove -n 文件夹 --all
-
进入env_mcl7环境
source activate env_mcl7
3.conda常用指令
-
查看虚拟环境
conda env list conda info --envs
-
退出虚拟环境
conda deactivate
-
增加源
conda config --add channels 源的地址
-
删除源
conda config --remove channels 源的地址
-
查看源
conda config --show channels
-
添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes
-
豆瓣源
pip install -r requirement.txt -i https://pypi.douban.com/simple
4.本地与服务器交互
-
## 将本地文件上传至服务器 (需在本地环境中,且目录是该文件的上级目录,否则需要带路径) scp 文件名 [email protected]:/data3/private/mcl
-
## 将本地文件夹上传至服务器 scp -r 文件夹名 [email protected]:/data3/private/mcl
-
## 将服务器中的文件下载至本地 scp [email protected]:/data3/private/mcl/test.txt /Users/clmeng/realmadrid
-
## 将服务器中的文件夹下载至本地 scp -r [email protected]:/data3/private/mcl/test /Users/clmeng/realmadrid
-
## 显示光标 echo -e "\033[?25h" ## 更改sh为shell,解决inux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题 chsh -s /bin/bash username 或者使用 usermod -s /bin/bash username
5.常用操作
-
## 删除文件夹(-i代表询问是否确定删除该文件夹) rm -rf -i test111/ #删除文件(多个) rm -i 文件1 文件2 #删除以x开头的文件 rm -rf -i x* #删除.log类型的文件 rm -rf -i *.log
-
## 在linux命令行(终端)不依赖jupyter执行ipynb 文件 pip install runipy runipy <YourNotebookName>.ipynb
-
将conda环境服务器中所有函数、库的版本打包为txt
pip freeze > requirements.txt
-
查看某个包、库、函数的版本
pip list | grep -i xxx
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MuFtSES4-1681121775380)(/Users/clmeng/Downloads/1_A包/6_日常插图/截屏2022-04-01 下午7.50.08.png)]
6. Screen 远程登录
-
背景
系统管理员经常需要SSH或者telent远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
screen命令可以很好的解决这个问题。实现在断开SSH的情况下,在服务器上继续执行程序。 -
定义
Screen被称之为一个全屏窗口管理器, 用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
注意有会话(session)和窗口(window)两个概念。 进入screen会话后,可在会话中创建多个窗口(window) -
相关概念
- 默认窗口
所谓默认窗口就是我们没有用screen命令时的那个干干净净的窗口,不能使用等会介绍的screen命令下的任何快捷键。 - screen会话
screen会话就是当我们进入screen空间下的,占用了一个进程pid的一个界面。这个界面有他自己的名字,有他自己内部交互的快捷键,能够拥有很多不同的子终端的界面。也可以理解成独立于默认窗口之外的窗口。注意,是每一个screen会话都能拥有很多的子窗口,而我们的电脑能同时拥有很多不同的screen会话。 - 子窗口window
每一个子窗口都是附属与一个screen会话下的,他们互不影响,能够分别执行不同的命令,这是整个screen命令的精华所在。对窗口进行管理,管理命令以ctrl + a开头。 工作时,我们需要做的就是选定某一个screen会话,并且选定一个子窗口。这样如果我们需要换一个界面的话,我们就只需要更换另一个子窗口就行了。
- 默认窗口
-
三个特点
- 会话恢复
只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令dettach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。 - 多窗口
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。 - 会话共享
Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。
- 会话恢复
-
优势
新建一个会话,然后在会话中开展training,即使在先断网的情况下,服务器中的模型也还是会继续跑的。
-
常用指令
screen -S new_name ## 新建会话 ## 退出当前会话 screen窗口键入C-a d,Screen会给出dettached提示 exit ## 远程dettach某个会话 (dettach 表示中断) screen -d session_name #session_name也可以是对应的session id ## 进入dettached的会话 screen -r session_name #session_name也可以是对应的session id ## 进入attached的会话 ## 如果一个会话的状态是Attached的,而你并不在其中,我们就要输入 screen -d <screen的pid> ,来使他”Dettached”, 然后再输入 screen -r <screen的pid>,来进入这个screen。 ## 显示当前所属会话id.name echo $STY ## 列出当前所有的session screen -ls ## 关闭会话 ## 保持会话退出,这样退出的话,以后还可以通过screen -r (name)恢复会话,快捷命令 ctrl A D exit ## 删除会话 screen -X -S session_name quit ## 清理会话 screen -wipe #清理那些dead的会话