Linux基本操作命令指南
1. 搜索文件 - find命令
find命令用于搜索文件,一般形式为:
find pathname -options [-print -exec -ok ...]
使用方法举例如下:
| 参数 | 说明 | 
|---|
| pathname | 所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 | 
| -print | 将匹配的文件输出到标准输出。 | 
| -exec | 对匹配的文件执行该参数所给出的shell命令。相应命令的形式为command { } ;,注意{ }和;之间的空格。 | 
| -ok | 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 | 
2. 获取Linux系统信息
使用 uname -a 命令可以显示系统信息:
$ uname -a
Linux tc4600v4 3.10.0-693.11.1.el7.x86_64 #1 SMP Mon Dec 4 23:52:40 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
3. 文件打包压缩常用的命令
3.1 gzip命令
用gzip新建的压缩文件为*.gz的文件名,默认的状态下原本的文件被压缩为.gz的文件名,原文件就不存在了。
使用方法:gzip [-cdtv#] 文件名
| 参数 | 说明 | 
|---|
| -c | 将压缩过程中产生的数据输出到屏幕上,可通过数据流重定向来处理; | 
| -d | 解压缩操作的参数。 | 
| -t | 用来检验一个压缩文件的一致性,看看文件有无错误; | 
| -v | 显示出原文件/压缩文件的压缩比等信息; | 
| -# | 压缩登记,-1最快,但压缩比差,-9最慢,压缩比好。默认是-6。 | 
3.2 bzip2命令
用bzip2新建的压缩文件为.bz2的文件名,当压缩文件的名称为.bz、.bz2、.tbz、.tbz2等时,可用bzip2来解压缩。
使用方法:bzip2 [-cdkzv#] 文件名
| 参数 | 说明 | 
|---|
| -c | 将压缩过程中产生的数据输出到屏幕上; | 
| -d | 解压缩操作的参数; | 
| -k | 保留原文件,而不会删除原始的文件; | 
| -z | 压缩的参数; | 
| -v | 可以显示出原文件/压缩文件的压缩比等信息; | 
| -# | 与gzip相同,计算压缩比的参数,-9最佳,-1最快。 | 
3.3 tar命令
使用方法:
- 打包:tar [-j|-z] [cv] [-f 新建的文件名] filename
- 解包:tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录名]
| 参数 | 说明 | 
|---|
| -c | 新建打包文件,可搭配 -v来查看过程中被打包的文件名(filename); | 
| -t | 查看打包文件的内容含有哪些文件名,重点在查看文件名; | 
| -x | 解打包或解压缩的功能,可以搭配 -C在特定目录解开; | 
| -j | 通过 bzip2的支持进行压缩/解压缩,此时文件名最好为*.tar.bz2; | 
| -z | 通过 gzip的支持进行压缩/解压缩,此时文件名最好为*.tar.gz; | 
| -v | 在压缩/解压缩的过程中,将正在处理的文件名显示出来; | 
| -f | filename -f后边要接被处理的文件名,建议-f单独写一个参数; | 
| -C | 这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数。 | 
注意:-c、-t、-x不可同时出现在一串命令行中。
3.4 压缩格式比较
| 压缩格式 | 压缩率 | 压缩速度 | 解压速度 | 使用场景 | 
|---|
| .gz (gzip) | 中等 | 快 | 快 | 最常用的压缩格式,适合单个文件压缩 | 
| .bz2 (bzip2) | 高 | 慢 | 慢 | 追求高压缩率,适合文本文件 | 
| .xz | 最高 | 最慢 | 慢 | 追求极致压缩率,适合长期存储 | 
| .zip | 中等 | 快 | 快 | 跨平台压缩格式,适合与其他系统共享 | 
| .tar | 无压缩 | 最快 | 最快 | 仅打包,常与其他压缩格式组合 | 
| .tar.gz | 中等 | 快 | 快 | 最常用的打包压缩格式 | 
| .tar.bz2 | 高 | 慢 | 慢 | 追求高压缩率的打包格式 | 
选择建议:
  
- 临时压缩、快速传输:使用 .gz  
- 存储文本文件:使用 .bz2  
- 长期存储、节省空间:使用 .xz  
- 与其他系统共享:使用 .zip  
- 大量小文件打包:使用 .tar.gz
4. vim编辑器
vim共分为3个模式:
4.1 模式说明
- 一般模式(默认的模式) - 以vim打开一个文件就直接进入了一般模式
- 在这个模式中,用户可以使用上下左右按键来移动光标
- 可以删除字符或删除整行
- 也可以复制、粘贴文件数据
 
- 编辑模式 - 要编辑文件内容,需要按下"i,I,o,O,a,A,r,R"等任何一个字母来进入编辑模式
- 通常在Linux中,按下这些按键时,在界面的左下方出现INSERT或REPLACE的字样,此时才可以进行编辑
- 如果要回到一般模式,则必须按下ESC按键退出编辑模式
 
- 命令行模式 - 在一般模式中,输入":、/、?"3个中的任何一个按键,光标会移动到最下面一行
- 在此模式中,可以提供查找数据的操作
- 读取、保存、大量替换字符、离开vim、显示行号等操作均是在此模式中完成的
 
4.2 常用命令快捷键
- 进入编辑模式的按键 - i,- I,- a,- A:在本行当中输入新字符(出现- -Insert-)
- o,- O:在一个新的一行输入新字符
- r,- R:取代字符(左下角出现- -Replace-)
 
- 模式切换 
- 光标移动 - 若上下左右键无法使用时:h,j,k,l
- 若 [pagedown] [pageup] 在一般模式无法使用时:[Ctrl] + [f](向下翻页),[Ctrl] + [b](向上翻页)
- 文件首尾:G(最后一行),1G(第一行)
- 行首尾:0(第一个字符),$(最后一个字符)
 
- 编辑操作 - 删除:dd(一行),ndd(n行),x或X(单个字符),dG及d1G(分别表示删除到页尾及页首)
- 复制粘贴:yy(一行),nyy(n行),p或P(粘贴)
- 搜索string字符串:/string(往后搜寻),?string(往前搜寻)
- 替换::1,$s/word1/word2/g(全文将word1替换为word2)
- 替换并确认::1,$s/word1/word2/gc(需要使用者确认)
 
- 文件操作 - 读取文件::r filename
- 另存为::w newfilename
- 保存::w
- 退出::q
- 保存并退出::wq
- 强制保存退出::wq!
- 显示行号::set nu
- 取消行号::set nonu
 
注:类似的编辑修改文件命令还有:nano、vim、emacs等,请参考各软件相应的帮助手册。
5. 文件操作命令
5.1 ls命令(列出目录文件)
ls最常用的参数有三个:-a、-l、指定目录,参数可混合使用。
- ls -a:Linux上的文件以"."开头的文件被系统视为隐藏文件,仅用ls命令是看不到它们的,而用ls-a除了显示一般文件名外,连隐藏文件也会显示出来。超算中心用户经常需要操作的隐藏文件是~/.bashrc文件,用于设定使用程序的环境变量。
 
- ls -l:(这个参数是字母L的小写,不是数字1)以更加详细的信息方式显示目录下文件的属性。超算中心用户经常需要注意的是,查看需要调用的程序是否有可执行权限。
 
- 指定目录:- ls命令之后,指定一个目录,用于显示列出指定目录下的所有文件。
 
5.2 cat命令(查看文件内容)
cat是concatenate的简写,它的功能是显示或连结一般的ascii文本文件。cat会将文件里的内容全部显示出来。当文件内容过多,一个屏幕显示不全时,可使用类似功能的操作命令,head、less、more、tail等,区别是它们每次仅显示部分内容。
用法:
- cat text:显示text这个文件里的内容
- cat file1 file2:依顺序显示file1,file2的内容
- cat file1 file2 > file3:把file1,file2的内容结合起来,再"重定向(>)"到file3文件中。- >是往右重定向的意思,就是把左边的结果当成是输入,然后输入到file3这个文件中。这里要注意一点是file3是在重定向以前还未存在的文件,如果file3是已经存在的文件,那么它本身的内容被覆盖,而变成file1+file2的内容。
- cat > file1:如果- >左边没有文件的名称,而右边有文件名,结果是会"空出一行空白行",等待你输入文字,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会结束编辑,并产生file1这个文件,而file1的内容就是刚刚输入的内容。
- cat file1 >> file2:两个- >,这将变成将file1的文件内容"附加"到file2的文件后面,而file2的内容依然存在。
5.3 文件管理命令
- 重命名/移动:mv(重命名文件可以理解为对原文件进行移动,保存成另一个名称的新文件,并将原文件删除。移动文件则可以将文件移动到当前目录下,或指定的其他目录下)
- 新建文件:touch(也可以用cat、vi等命令完成)
- 新建目录:mkdir(make directory的缩写)
- 删除:rm(remove的缩写,执行此命令需要小心,删除后的文件将无法恢复)
- 复制:cp(copy的缩写,用于复制一个文件在当前目录下或指定的另一个目录下)
- 远程复制:scp(用于跨节点或远程服务器之间的复制操作)
5.4 帮助命令
获取命令帮助的方式:
- 命令名 -h或- --help:显示简要帮助信息
- man 命令名:显示详细的命令帮助手册
- info 命令名:显示详细帮助信息
- 使用baidu、google等搜索相关的帮助信息
例如命令ls的帮助信息:ls --help 或 man ls 或 info ls
6. 文件权限管理
6.1 chmod命令(修改文件权限)
chmod命令用于修改文件或目录的权限。权限分为读(r)、写(w)、执行(x)三种。
- 字母法:
chmod [ugoa][+-=][rwx] 文件或目录
 
- u:用户(user)
- g:组群(group)
- o:其他(other)
- a:所有(all)
- +:增加权限
- -:删除权限
- =:设置权限
示例:
- chmod u+x file:给文件所有者添加执行权限
 
- chmod go-rw file:删除群组和其他人的读写权限
 
- chmod a+x file:给所有人添加执行权限
 
- 数字法: - chmod xyz 文件或目录
 - 其中 x,y,z 各为一个数字,分别表示User、Group、Other的权限。 
- r = 4 
- w = 2 
- x = 1 
常用权限组合:
- 755:rwxr-xr-x(常用于可执行文件)
- 644:rw-r--r--(常用于普通文件)
- 777:rwxrwxrwx(所有权限,谨慎使用)
6.2 chown命令(修改文件所有者)
chown [选项] 所有者[:群组] 文件
常用选项:
示例:
- chown user1 file:将文件所有者改为user1
- chown user1:group1 file:同时修改所有者和群组
- chown -R user1 directory/:递归修改目录及其内容的所有者