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/
:递归修改目录及其内容的所有者