tmux + Anaconda + 服务器

tmux

# 创建一个新会话
tmux new -s <name>

# 杀死一个会话
tmux kill-session -t <name>
# 杀死所有会话
tmux kill-server

# 连接到某个会话
tmux at -t <name>

# 重命名<num>号的session
tmux rename-session -t <num> <name>

# 向前、后置换当前面板
prefix + {
prefix + }


使用Anaconda创建虚拟环境

# 修改anaconda下载源(通过命令操作就可以)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
# 通过以上这两步操作,系统会自动生成一个Anaconda的配置文件:
~/.condarc
# 如果要删除旧的镜像源,可以通过以下命令来实现:
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

# 修改pip的下载源
# 需要修改~/.pip/pip.conf文件(如果没有,则需要创建)
mkdir ~/.pip
vim ~/.pip/pip.conf
# 然后在pip.conf配置文件中添加以下内容:
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
disable-pip-version-check=true
timeout=6000

# Windows端创建Anaconda环境要通过Anaconda Prompt进入命令行

# 检查conda是否安装以及查看当前conda的版本
conda --version

# 查看当前存在哪些虚拟环境
conda info -e
conda env list  # 这两个哪个都可以,效果一样

# 创建一个名为name的虚拟环境并指定python版本
# 这个虚拟环境对应的文件可以在Anaconda安装目录envs文件下找到
conda create -n name pip python=X.X   

# 查看当前环境下的python版本
python --version

# 激活创建的虚拟环境(这一操作可以将python的版本改变)
# 针对Linux
source activate name  # 激活后,终端将自动切换到新创建的虚拟环境下
conda activate name   # 针对conda4(我们的conda版本是4,所以要用这一条命令)
# 针对Windows
activate name        
# 激活后,可以再次使用python --version来检查python版本是否为想要的

# 退出环境
source deactivate
conda deactivate # 针对conda4

# 删除环境
conda remove -n <name> --all

# 安装第三方包
conda install package
pip install package
# 卸载第三方包
conda remove package
pip uninstall package
# 更新package包
conda update package

# 查看当前环境中已安装的包
conda list

# 查看cuda和cudnn版本
nvcc --version

# 导出当前环境的包信息
conda env export > environment.yaml
# 用配置文件创建新的虚拟环境
conda env create -f environment.yaml

# 复制某个环境
conda create -n env2 --clone env1


服务器

# 显示某个文件的首、尾5行内容
head -n 5 <file>
tail -n 5 <file>
# 联动:先取前10行,再取前10行的后3行
head -n 10 <file> | tail -n 3

# 过滤当前目录下所有后缀名为.py的文件
ls | grep .py

# makedir只能在父目录存在的情况下才能创建子目录,
# 如果想要递归地创建目录,需要添加-p参数
mkdir -p /dir1/dir2/dir3
# mkdir可以同时创建多个目录
mkdir dir1 dir2

# rm可以同时删除多个文件
rm -rf dir1 dir2

# 使用cp命令复制文件
# 注意复制文件实际上是将原文件的内容替换掉,而不是append
cp file1 file2
# 使用cp命令复制文件夹
# 注意复制文件夹执行的是append,因此不会影响到文件夹中的原有内容
# 复制文件夹时需要添加-r
cp -r folder1 folder2

其他:
1.压缩与解压缩命令:

(1)zipunzip

压缩文件:

zip target_file.zip original_file

压缩整个文件夹:

zip target_folder.zip -r original_folder

解压缩(对文件和文件夹均适用):

unzip file.zip

(2)tar

*.tar是打包文件:只是把很多小文件拼接在一起,速度快,不占用CPU。比如ImageNet数据集就是一个打包文件,解包的速度非常快。打包后的文件大小和原始文件夹的大小基本一致。

*.tar.gz是压缩文件:先打包成一个文件,然后再压缩一遍。如果原始文件是未压缩的格式,比如文本文件,则使用这个格式可以有很高的压缩比。但如果原始文件是压缩后的格式,比如jpg和png格式的文件,只打包就行,如果对ImageNet数据集先打包再压缩,就会有很长的耗时,并且文件不会明显变小。

打包文件夹:

tar -cvf folder1.tar folder2

解包:

tar -xvf folder.tar

注意以上这两个操作并不涉及压缩,下面这两个命令才涉及压缩及解压缩:

压缩文件夹:

tar -czvf folder1.tar.gz folder2

解压:

tar -xzvf folder.tar.gz

其中的字母的含义:

  • c:打包
  • x:解包
  • v:输出详细信息
  • f:指定打包文件
  • z:使用gzip压缩格式

2.权限管理

(1)sudo:以root权限执行命令。

(2)su:切换用户。

将当前用户切换到szw用户:

sudo su szw

(3)chmod:修改权限。

把train文件夹修改为任何人可以读写:

chmod -R 777 train

rwx分别对应421。

以d开头代表是目录,-开头代表是文件。

移除所有人的可执行权限:

chmod a-x train

(4)chown:修改所有权。

把test文件夹的所有权修改为szw:

sudo chown -R szw test

(5)passwd:修改密码。直接执行passwd可以修改当前用户密码。

强制修改szw用户的密码:

sudo passwd szw

3.进程管理:

(1)ps aux:列出所有进程的详细信息。

使用ps aux获取所有的进程信息,然后用grep python查找带有python的进程,最后使用grep -V grep过滤grep进程本身:

ps aux | grep python | grep -V grep

(2)kill:杀掉执行中的进程,常配合ps命令使用。

根据ps命令可以得到进程号,然后可以根据进程号删除该进程。例如:

kill 8339

(3)killall:通过进程名来杀掉所有跟该进程名有关的进程。

杀掉所有python进程:

killall python

4.磁盘管理:

(1)df:查看磁盘空间。

查看磁盘的容量及可用空间:

df -h

如果磁盘下有很多小文件,可以通过以下命令查看文件表是否用完了:

df -ih

(2)du:显示一个目录及该目录下的所有文件夹的大小。

如:

du -h train

(3)mount:挂载磁盘。

将磁盘nvme挂载到data目录下:

sudo mount -t ext4 /dev/nvme /data

5.系统管理:

(1)apt:包管理器,用于安装和卸载软件包。

# 安装
sudo apt install curl

# 卸载
sudo apt purge curl

(2)export:设置环境变量,一般写在.bashrc.zshrc文件中。

export PATH=/usr/local/cuda/bin:$PATH

的作用是把/usr/local/cuda/bin目录添加到PATH最前面,这样就可以直接在命令行使用/usr/local/cuda/bin目录下的nvcc命令。

(3)source:更新环境变量。

如szw用户更新了~/.zshrc后,可以使用如下命令更新环境变量:

source ~/.zshrc

(4)echo:输出环境变量。如:

echo $PATH

(5)service:开启或关闭服务。如:

sudo service network-manager restart

(6)reboot:重启。如:

sudo reboot

6.系统监测:

(1)uname:显示当前的系统信息。

显示全部的信息(如内核版本号、硬件架构、主机名称和操作系统类型等):

uname -a

(2)top:实时查看系统的运行状态(如CPU、内存、进程的信息)。

(3)ifconfig:查看当前网卡的ip地址。如:

ifconfig | grep inet

(4)free:查看内存使用情况。如:

free -h

7.网络通信:

(1)ping:测试主机网络的连通性。如:

ping baidu.com

(2)ssh

  • 连接远程服务器:

    ssh szw@166.111.77.32
    
  • 映射远程端口:

    ssh -L 本地端口:本地服务器:远程端口 远程服务器
    

    如:把服务器上的 Jupyter 监听的8888端口映射到本地的8888端口,然后只需要在浏览器里输入http://localhost:8888,就可以连接远程服务器的Jupyter了。

(3)wget:从指定的URL下载文件。

  • 下载单个文件:

    wget url
    
  • 下载并修改文件名:

    wget -O filename.zip url
    

(4)scp:远程复制文件。
复制文件/文件夹到远程服务器:

scp 文件 用户名@目标主机:目标主机上的路径

scp -r -P 8005 <路径> root@xxx:~

8..sh文件的运行方法:

bash xxx.sh

9.其他

# 查看自己主机的IP地址
ifconfig 或 ip addr
# windows下查看自己的ip地址
ipconfig

# 查看自己Ubuntu系统的用户名
whoami

# 修改配置文件
vi ~/.bash_profile 
# 使配置文件生效:
source ~/.bash_profile
# 配置环境变量
sudo gedit ~/.bashrc

# 显示当前GPU使用情况
nvidia-smi

# 显示当前路径下各文件大小并排序
du -sk * | sort -rn

# 登录服务器(p要小写)
ssh -p 8005 szw@166.111.77.32
# 登出服务器
Ctrl + d

# 从本机向服务器传文件
scp -P 8005 filename szw@166.111.77.32:~
# 从本机向服务器传一个文件夹
scp -P 8005 -r filename szw@166.111.77.32:~
# 从服务器5向服务器1传文件夹
scp -r filename root@192.168.233.68:~/train

# 从服务器上下载文件夹(下载文件时去掉-r)
scp -r username@servername:/home/train /home/linjunjie/remote_dir/

# 查找Linux历史命令中包含<command>的命令
history | grep <command>
# 每个历史命令前面都对应了一个编号,使用以下命令可以执行编号对应的命令:
!<command>

# 更改shell脚本的权限
chmod +x run.sh
# 递归地为.vim/文件及其目录下的所有子文件增加执行权限
chmod +x -R .vim/   # -R表示recursively

# 统计一个文件的行数、字数、字节数
wc file1 file2 file3  # 也可以同时统计多个文件的信息

# 查看当前文件夹及其子文件夹下有多少个.py文件
find . -name "*.py" | wc -l # 管道的作用相当于传递结果,wc -l可以统计行数

# 查看自己的Ubuntu版本号
cat /etc/issue

# Ubuntu处理.deb文件
sudo dpkg -i xxx.deb

# 每次修改完anaconda的配置文件后,都要输入以下命令使配置文件生效
source ~/.bashrc
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容