在服务器上训练深度学习模型时不可避免地需要进行大量的命令行操作,熟练使用命令行已经成为了一项程序员必备的技能,本文对常用的linux命令进行整理,以加深印象和方便后续查询。
文件管理
cat
: 用于连接文件并打印到标准输出设备上- 使用权限: 所有使用者
- 语法格式:
cat [-AbeEnstTuv] [--help] [--version] fileName
- 参数说明:
- -n/—number: 由1开始对所有输出的行号编号
- -b: 与-n类似,只是对空白行不编号
cat file1 > file2 #将file1的内容拷贝到file2中(覆盖)
chmod
: 控制用户对文件的权限- 使用权限: 只有文件所有者和超级用户可以修改文件或者目录的权限
- 说明: Linux/unix的文件调用权限分为三级: 文件所有者、用户组、其他用户
用户创建一个新文件时,默认权限是-rw-r--r--
可以通过使用绝对模式(八进制数字模式)指定文件的权限 - 语法:
chmod [-cfvR] [--help] [--version] mode file...
- 参数说明:
- mode: 权限设定字串
符号模式: [ugoa...][[+-=][rwxX]...][,...] 八进制模式: 777
- mode: 权限设定字串
- 使用示例:
chmod a+rwx file #符号模式向三类用户开放读写执行权限 chmod 777 file #八进制数字模式,功能与上面等价
chown
: change owner, 将文件的拥有者改为指定的用户或组- 使用权限: 超级用户
- 语法:
chown [-cfhvR] [--help] [--version] user[:group] file...
- 参数说明:
- user: 新的文件拥有者或用户id
- group: 新的文件拥有者的使用者组
- -c: 显示更改的部分的信息
- -R: 处理指定目录以及其子目录下的所有文件
- 使用示例:
chown -R root dir #将文件夹dir及其子目录的所有者设定为root chown -R xuejianye dir #将文件夹dir及其子目录的所有者设定为xuejianye
diff
: 比较文本文件的异同,若相同则没有输出,有差异则会输出差异位置及内容diff file1 file2
find
: 在指定目录下查找文件- 语法:
find path -option [ -print ] [ -exec -ok command ] {} \;
- 使用示例:
find . -name "*.txt" #在当前目录下找到所有txt文件
- 语法:
mv
: 将文件或目录移入其他位置/修改文件或目录的名称- 语法:
mv [options] source dest mv [options] source... directory
- 参数:
- -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份
- -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
- -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
- -n: 不要覆盖任何已存在的文件或目录。
- 使用示例:
mv source_file(文件) dest_file(文件) #将源文件名 source_file 改为目标文件名 dest_file mv source_file(文件) dest_directory(目录) #将文件 source_file 移动到目标目录 dest_directory 中 mv source_directory(目录) dest_directory(目录) #目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory mv aaa bbb #将文件aaa改名为bbb
- 语法:
paste
: 合并文件的列icarus@DESKTOP-7Q4C11S ~ cat test.txt copy.txt 123 456 123 456 icarus@DESKTOP-7Q4C11S ~ cat test.txt copy.txt > new.txt icarus@DESKTOP-7Q4C11S ~ cat new.txt 123 456 123 456 icarus@DESKTOP-7Q4C11S ~ paste test.txt copy.txt 123 123 456 456
rm
: 用于删除一个文件或目录- 语法
rm [options] name...
- 参数 -r: 递归删除目录内所有文件
- 语法
touch
: 修改文件或者目录的时间属性,若文件不存在则会创建一个新文件
-语法:
-使用示例:touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
touch file #若文件不存在则创建文件,文件存在则修改文件的事件属性
which
: 查找文件,会在环境变量$PATH设置的目录里查找符合条件的文件which conda which pip
cp
: 用于复制文件或者目录- 语法:
cp [options] source dest cp [options] source... directory
- 参数说明:
- -r: 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- 使用示例
cp –r test/ newtest #用户使用该指令复制目录时,必须使用参数 -r 或者 -R
- 语法:
scp
: 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令- 语法:
scp [可选参数] file_source file_target
- 使用示例:
#从本机复制到远程 scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip:remote_folder 或者 scp local_file remote_ip:remote_file #从远程复制到本地 scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 scp -r www.runoob.com:/home/root/others/ /home/space/music/
- 语法:
文档编辑
grep
: 用于查找文件里符合条件的字符串grep "被查找的字符串" 文件名
文件传输
磁盘管理
cd
: 切换当前工作目录df
: 显示目前在linux系统上的文件系统磁盘使用情况统计- 语法:
df [选项]... [FILE]...
- 使用示例:
icarus@DESKTOP-7Q4C11S /home df icarus Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdc 263174212 35268580 214467476 15% /
- 语法:
du
: 用于显示目录或文件的大小du -s icarus/ #显示该文件夹中所有文件所占的内存和 du -a icarus/ #显示目录中个别文件的大小
mkdir
: 用于创建目录- 参数说明: -p 确保目录名称存在,不存在就新建一个
- 使用示例:
mkdir -p /home/projects
tree
: 以树状图列出目录的内容ls
: 显示指定工作目录下的内容- 参数
- -a: 显示所有文件及目录
- -l: 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
- 参数
磁盘维护
网络通讯
ifconfig
: 用于显示或设置网络设备,查看ip/mac地址ping
: 用于检测主机,
系统管理
kill
: 用于删除执行中的程序或工作- 语法:
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
- 常用参数:
- -HUP: 重新加载进程
- -KILL: 杀死一个进程
- -TERM: 正常停止一个进程
- 使用示例:
kill 12345 kill -KILL 123456 #强制杀死进程
- 语法:
ps
: 显示当前进程的状态,类似于windows的任务管理器- 语法:
ps [options] [--help]
- 参数
- -a: 列出所有的进程
- 使用示例:
ps -ef | grep 进程关键字
- 语法:
系统设置
clear
: 用于清除屏幕export
: 用于设置或者显示环境变量,效力仅限于该次登陆操作- 语法:
export [-fnp][变量名称]=[变量设置值]
- 参数名称
- -n: 删除指定的变量
- -p: 列出所有的shell赋予程序的环境变量
- 使用示例:
export CUDA_VISIBLE_DEVICES=0,3
- 语法: