Linux命令大全(常用的命令解析)
Posted 测试小白的晋级之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令大全(常用的命令解析)相关的知识,希望对你有一定的参考价值。
Linux命令大全(超详细理解每个命令)
- 1.文件管理
- 2.文档编辑
- 3.系统管理
- 4.磁盘管理
- 5.文件传输
- 6.网络通信
- 7.设备管理
- 8.备份压缩
1.文件管理
1.1.ls命令 – 显示指定工作目录下的内容及属性信息
ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。
默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。作为最基础同时又是使用频率很高的命令,我们很有必要搞清楚ls命令的用法,那么接下来一起看看吧!
语法格式: ls [选项] [文件]
常用参数:
参数名 | 解释 |
---|---|
-a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
-l | 使用长格式列出文件及目录信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t | 根据最后的修改时间排序 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
参考实例
-
列出所有文件(包括隐藏文件):
[root@admin~]# ls -a
-
列出文件的详细信息:
[root@admin~]# ls -l
([root@admin~]# ll
简写) -
列出根目录(/)下的所有目录:
[root@admin~]# ls /
-
列出当前工作目录下所有名称是 “s” 开头的文件 :
[root@admin~]# ls -ltr s*
-
列出 /bin 目录下的所有目录及文件的详细信息 :
[root@admin~]# ls -lR /bin
-
列出当前工作目录下所有文件及目录并以文件的大小进行排序 :
[root@admin~]# ls -AS
1.2.cp命令 – 复制文件或目录
cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。
cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。
语法格式:cp [参数] [文件]
常用参数:
参数名 | 解释 |
---|---|
-f | 若目标文件已存在,则会直接覆盖原文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
-d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 |
-l | 对源文件建立硬连接,而非复制文件 |
-s | 对源文件建立符号连接,而非复制文件 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
-v | 详细显示cp命令执行的操作过程 |
-a | 等价于“dpr”选项 |
参考实例
-
复制目录:
[root@admin~]# cp -R dir1 dir2/
-
将文件test1改名为test2:
[root@admin~]# cp -f test1 test2
-
复制多个文件:
[root@admin~]# cp -r file1 file2 file3 dir
-
交互式地将目录 /usr/linuxcool 中的所有.c文件复制到目录 dir 中:
[root@admin~]# cp -r /usr/linuxcool/*.c dir
-
复制test目录下的file.txt文件到test1目录下
[root@localhost~]# cp /tmp/test/file.txt /tmp/test1
-
移动test目录下的file.txt文件到test1目录下
[root@localhost~]# mv test/file.txt test1
1.3.mkdir命令 – 创建目录
mkdir命令是“make directories”的缩写,用来创建目录。
注意:默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录,是不是很强大呢?
语法格式 : mkdir [参数] [目录]
常用参数:
参数名 | 解释 |
---|---|
-p | 递归创建多级目录 |
-m | 建立目录的同时设置目录的权限 |
-z | 设置安全上下文 |
-v | 显示目录的创建过程 |
-R | 强制创建目录 |
参考实例
- 在工作目录下,建立一个名为 dir 的子目录:
[root@admin~]# mkdir dir
- 在目录/usr/linuxcool下建立子目录dir,并且设置文件属主有读、写和执行权限,其他人无权访问
[root@admin~]# mkdir -m 700 /usr/linuxcool/dir
- 同时创建子目录dir1,dir2,dir3:
[root@admin~]# mkdir dir1 dir2 dir3
- 递归创建目录:
[root@admin~]# mkdir -p linuxcool/dir
- 当前目录下创建a1,a2,a5
[root@admin~]# mkdir a1..5
- 创建多层目录(没有父目录)
[root@admin~]# mkdir -R /tmp/h//d/b/d
1.4.mv命令 – 移动或改名文件
mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。
这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。
语法格式:mv [参数]
常用参数:
参数名 | 解释 |
---|---|
-i | 若存在同名文件,则向用户询问是否覆盖 |
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
参考实例
- 将文件file_1重命名为file_2:
[root@admin~]# mv file_1 file_2
- 将文件file移动到目录dir中 :
[root@admin~]# mv file /dir
- 将目录dir1移动目录dir2中(前提是目录dir2已存在,若不存在则改名):
[root@admin~]# mv /dir1 /dir2
- 将目录dir1下的文件移动到当前目录下:
[root@admin~]# mv /dir1/* .
1.5.pwd命令 – 显示当前路径
pwd命令是“print working directory”中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。
在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。
语法格式: pwd [参数]
常用参数:
参数名 | 解释 |
---|---|
-L | 显示逻辑路径 |
参考实例
- 查看当前工作目录路径:
[root@admin~]# pwd
/home/admin
1.6.head命令 - 输出文件数据
- 输出文件最前面的几行数据
[root@localhost~]# head -2 file.txt
1.7.more命令 - 显示文本文件内容
more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字。而对于内容较少的文本文件内容则推荐使用cat命令查看。
常用参数:
参数名 | 解释 |
---|---|
-num | 指定每屏显示的行数 |
-l | more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性 |
-f | 计算实际的行数,而非自动换行的行数 |
-p | 先清除屏幕再显示文本文件的剩余内容 |
-c | 与-p相似,不滚屏,先显示内容再清除旧内容 |
-s | 多个空行压缩成一行显示 |
-u | 禁止下划线 |
+/pattern | 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示 |
+num | 从第 num 行开始显示 |
命令内部操作:
- Space键:显示文本的下一屏内容
- Enter键:向下n行,需要定义,默认为1行
- 斜线符\\:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
- H键:显示帮助屏
- B键:显示上一屏内容
- Q键:退出more命令
- Ctrl+F、空格键:向下滚动一屏
- Ctrl+B:返回上一屏
- =: 输出当前的行号
- :f:输出文件名和当前的行号
- V:调用vi编辑器
- !:调用Shell,并执行命令
- 显示文件file的内容,显示之前先清屏,附已显示的百分比:
[root@admin~]# more -dc file
- 显示文件file的内容,每10行显示一次,而且在显示之前先清屏:
[root@admin~]# more -c -10 file
- 显示文件file的内容,每5行显示一次,而且在显示之后再清屏:
[root@admin~]# more -p -5 file
- 逐页显示 file 文档内容,如有连续两行以上空白行则以一行空白行显示 :
[root@admin~]# more -s file
- 从第 20 行开始显示 file 之文档内容 :
[root@admin~]# more +20 file
1.8.less命令 – 分页显示工具
浏览文字档案的内容,用less命令显示文件时,PageUp键向上翻页,PageDown键向下翻页,要退出less程序,应按Q键。
less的作用与more十分相似,不同点为less命令允许用户向前或向后浏览文件,而more命令只能向前浏览 。
常用参数:
参数名 | 解释 |
---|---|
-b | 置缓冲区的大小 |
-e | 当文件显示结束后,自动离开 |
-f | 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 |
-g | 只标志最后搜索的关键词 |
-i | 忽略搜索时的大小写 |
-m | 显示类似more命令的百分比 |
-N | 显示每行的行号 |
-o | 将less 输出的内容在指定文件中保存起来 |
-Q | 不使用警告音 |
-s | 显示连续空行为一行 |
-S | 在单行显示较长的内容,而不换行显示 |
-x | 将TAB字符显示为指定个数的空格字符 |
命令内部操作:
- b 向后翻一页
- d 向后翻半页
- h 显示帮助界面
- Q 退出less 命令
- u 向前滚动半页
- y 向前滚动一行
- 空格键 滚动一页
- 回车键 滚动一行
- 查看文件 :
[root@admin~]# less test.php
- ps查看进程信息并通过less分页显示:
[root@admin~]# ps -ef |less
- 查看命令历史使用记录并通过less分页显示:
[root@admin~]# history | less
22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft 23 cd ..
24 scp -r web root@192.168.120.203:/opt/
25 cd soft
……省略……
- 浏览多个文件 :
[root@admin~]# less log2018.log log2019.log
- 当正在浏览一个文件时,也可以使用 :e命令 打开另一个文件:
[root@admin~]# less file1
:e file2
2.文档编辑
2.1.cat命令 – 在终端设备上显示文件内容
Linux系统中有很多个用于查看文件内容的命令,每个命令又都有自己的特点,比如这个cat命令就是用于查看内容较少的纯文本文件的。cat这个命令也很好记,因为cat在英语中是“猫”的意思,小猫咪是不是给您一种娇小、可爱的感觉呢?
注意:当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!
**语法格式:**cat [参数] [文件]
常用参数:
参数名 | 解释 |
---|---|
-n | 显示行数(空行也编号) |
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
-E | 每行结束处显示$符号 |
-T | 将TAB字符显示为 ^I符号 |
-v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
-e | 等价于”-vE”组合 |
-t | 等价于”-vT”组合 |
-A | 等价于 -vET组合 |
–help | 显示帮助信息 |
–version | 显示版本信息 |
参考实例
- 查看文件的内容:
[root@admin~]# cat filename.txt
- 查看文件的内容,并显示行数编号:
[root@admin~]# cat -n filename.txt
- 查看文件的内容,并添加行数编号后输出到另外一个文件中:
[root@admin~]# cat -n linuxcool.log > linuxprobe.log
- 清空文件的内容:
[root@admin~]# cat /dev/null > /root/filename.txt
- 持续写入文件内容,碰到EOF符后结束并保存:
[root@admin~]# cat > filename.txt <<EOF
Hello, World Linux! EOF
- 将软盘设备制作成镜像文件:
[root@linuxcool ~]# cat /dev/fd0 > fdisk.iso
2.2.echo命令 – 输出字符串或提取Shell变量的值
echo命令用于在终端设备上输出字符串或变量提取后的值,这是在Linux系统中最常用的几个命令之一,但操作却非常简单。
人们一般使用在变量前加上 符 号 的 方 式 提 取 出 变 量 的 值 , 例 如 : 符号的方式提取出变量的值,例如: 符号的方式提取出变量的值,例如:PATH,然后再用echo命令予以输出。或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。
语法格式: echo [参数] [字符串]
常用参数:
参数名 | 解释 |
---|---|
-n | 不输出结尾的换行符 |
-e “\\a” | 发出警告音 |
-e “\\b” | 删除前面的一个字符 |
-e “\\c” | 结尾不加换行符 |
-e “\\f” | 换行,光标扔停留在原来的坐标位置 |
-e “\\n” | 换行,光标移至行首 |
-e “\\r” | 光标移至行首,但不换行 |
-E | 禁止反斜杠转移,与-e参数功能相反 |
—version | 查看版本信息 |
–help | 查看帮助信息 |
参考实例
- 输出一段字符串:
[root@admin~]# echo ’admin.com‘
LinuxCool.com - 输出变量提取后的值:
[root@admin~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin - 对内容进行转义,不让$符号的提取变量值功能生效:
[root@admin~]# echo \\$PATH
$PATH - 结合输出重定向符,将字符串信息导入文件中:
[root@admin~]# echo "It is a test" > admin
- 使用反引号符执行命令,并输出其结果到终端:
[root@admin~]# echo `date
- 输出带有换行符的内容:
[root@admin~]# echo -e "a\\nb\\nc"
a
b
c - 输出信息中删除某个字符,注意看数字3消失了:
[root@admin~]# echo -e "123\\b456"
12456
2.3.rm命令 – 移除文件或目录
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。 rm也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
语法格式: rm [参数] [文件]
常用参数:
参数名 | 解释 |
---|---|
-f | 忽略不存在的文件,不会出现警告信息 |
-i | 删除前会询问用户是否操作 |
-r/R | 递归删除 |
-v | 显示指令的详细执行过程 |
参考实例
- 删除前逐一询问确认:
[root@admin~]# rm -i test.txt.bz2
rm: remove regular file `test.txt.bz2’? - 直接删除,不会有任何提示:
[root@admin~]# rm -f test.txt.bz2
- 递归删除目录及目录下所有文件:
[root@admin~]# mkdir /data/log
[root@admin~]# rm -rf /data/log
- 删除当前目录下所有文件:
[root@admin~]# rm -rf *
- 清空系统中所有的文件(谨慎):
[root@admin~]# rm -rf /*
2.4.tail命令 – 查看文件尾部内容
tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
语法格式:tail [参数]
常用参数:
参数名 | 解释 |
---|---|
–retry | 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用 |
-c或——bytes= | 输出文件尾部的N(N为整数)个字节内容 |
-f<name/descriptor> --follow: | 显示文件最新追加的内容 |
-F | 与选项“-follow=name”和“–retry”连用时功能相同 |
-n< N>或——line=< N> | 输出文件的尾部N(N位数字)行内容 |
–pid=<进程号> | 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 |
-f | 循环读取 |
-q | 不显示文件名信息 |
-v | 显示文件名信息 |
–help | 显示指令的帮助信息 |
–version | 显示指令的版本信息 |
参考实例
- 显示文件file的最后10行:
[root@admin~ ] tail file
- 显示文件file的内容,从第20行至文件末尾:
[root@admin~ ] tail +20 file
- 显示文件file的最后10个字符:
[root@admin~ ] tail -c 10 file
- 一直变化的文件总是显示后10行:
[root@admin~ ] tail -f 10 file
- 显示帮助信息:
[root@admin~ ] tail --help
2.5.grep命令 – 强大的文本搜索工具
grep是“global search regular expression and print out the line”的简称,意思是全面搜索正则表达式,并将其打印出来。这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令。
grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:一当模式中包含了空格,务必要用双引号将其引起来。
linux系统支持三种形式的grep命令,大儿子就是grep,标准,模仿的代表。二儿子兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。小儿子跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。
语法格式: grep [参数]
常用参数:
参数名 | 解释 |
---|---|
-i | 搜索时,忽略大小写 |
-c | 只输出匹配行的数量 |
-l | 只列出符合匹配的文件名,不列出具体的匹配行 |
-n | 列出所有的匹配行,显示行号 |
-h | 查询多文件时不显示文件名 |
-s | 不显示不存在、没有匹配文本的错误信息 |
-v | 显示不包含匹配文本的所有行 |
-w | 匹配整词 |
-x | 匹配整行 |
-r | 递归搜索 |
-q | 禁止输出任何结果,已退出状态表示搜索是否成功 |
-b | 打印匹配行距文件头部的偏移量,以字节为单位 |
-o | 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位 |
参考实例
-
支持多文件查询并支持使用通配符:
[root@admin~]# grep zwx file_* /etc/hosts
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj -
输出匹配字符串行的数量:
[root@admin~]$ grep -c zwx file_*
file_1:2
file_2:1
file_3:0 -
列出所有的匹配行,并显示行号:
[root@admin~]# grep -n zwx file_*
file_1:1:zwx
file_1:4:zwx
file_1:10:zwxddkjflkdjfdlkfjlsdkj
file_2:2:zwx
file_4:3:dkfjlzwxejfkje
file_4:4:zwx djfkdjf
file_4:5:zwxedkfgj -
显示不包含模式的所有行:
[root@admin~]# grep -vc zwx file_*
file_1:7
file_2:4
file_3:5
file_4:2 -
不再显示文件名:
[root@admin~]# grep -h zwx file_*
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
zwx
dkfjlzwxejfkje
zwx djfkdjf
zwxedkfgj -
只列出符合匹配的文件名,不列出具体匹配的行:
[root@admin~]# grep -l zwx file_*
file_1
file_2
file_4 -
不显示不存在或无匹配的文本信息:
[root@admin~]# grep -s zwx file1 file_1
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
[root@admin~]# grep zwx file1 file_1
grep: file1: No such file or directory
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj -
递归搜索,不仅搜索当前目录,还搜索子目录:
[root@admin~]# grep -r zwx file_2 *
file_2:zwx
anaconda-ks.cfg:user --name=zwx --gecos=“zwx”
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
initial-setup-ks.cfg:user --name=zwx --gecos=“zwx” -
匹配整词,以字面意思去解释他,相当于精确匹配:
[root@admin~]# grep zw* file_1
zwx
zwx
zdkfjeld
zw
ze
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep -w zw* file_1
zw -
匹配整行,文件中的整行与模式匹配时,才打印出来:
[root@admin~]# grep -x zwx file_*
file_1:zwx
file_1:zwx
file_2:zwx -
不输出任何结果,已退出状态表示结果:
[root@admin~]# grep -q zwx file_1
[root@admin~]# echo $?
0
[root@admin~]# grep -q zwx file_5
[root@admin~]# echo $?
1
[root@admin~]# grep -q zwx file5
grep: file5: No such file or directory
[root@admin~]# echo $?
2 -
查找一个文件中的空行和非空行:
[root@admin~]# grep -c ^$ file_1
4
[root@admin~]# grep -c ^[^$] file_1
15 -
匹配任意或重复字符用“.”或“*”符号来实现:
[root@admin~]# grep ^z.x file_1
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
[root@admin~]# grep ^z* file_6
zwx
dfkjdzzdfjkd
zz dfdww
haha
2.6.touch命令-创建文件
使用指令touch时,如果指定的文件不存在,则将创建一个新的 空白文件
使用指令touch时,如果指定的文件存在,则变更文件的日期属 性
- 创建一个file文本文件
[root@localhost~]# touch file.txt
- 批量文件
[root@localhost~]# touch file1..5.txt
2.7. vi命令—编辑文本
vi是Linux系统上的第一个全屏模式编辑器,它用法简单,而且 所占空间不大,操作灵活无比。
- 打开或新建文件,并将光标置于第一行首
[root@localhost~]# vi filename
- 打开文件,并将光标置于第n行首
[root@localhost~]# vi +n filename
- 打开文件,并将光标置于最后一行首
[root@localhost~]# vi + filename
- 在上次正用vi编辑时发生系统崩溃,恢复 filename
[root@localhost~]# vi -r filename
vi在命令模式下的参数
i保存退出命令(末行模式用于保存内容、查找替换、设置行号等 功能性操作)
参数名 | 解释 |
---|---|
:q : | 退出 |
:wq | 保存并退出 |
:w | 保存编辑内容 |
:q! | 强制退出 |
:wq! | 强制保存并退出 |
:set number或:set nu | 显示行号 |
:set nonumber或:set nonu | 取消显示行号 |
-
复制粘贴 (命令模式下)
- yy复制一行
- p 粘贴
- [n] yy复制光标后n行
- p 粘贴
-
剪切与删除(命令模式下)
- dd删除一行
- [n] dd删除光标行的后n行
- p粘贴上面的内容
-
快捷操作(命令模式下)
- u撤销操作
- 重复上次操作
-
搜索
- 命令模式下,键入 / 后面按搜索的内容
- 按 n 向后搜索
- 按 N 向前搜索
- 命令模式下,键入 / 后面按搜索的内容
-
替换
- 末行模式下
- :%s/源/目标替换/g %指代整个文件内容 g代表全局替換
- :1,10s/源/目标替换/ 替换从第1行到10行中每行第一个目标内容
- :1,5s/源/目标替换/g 替换从第1行到5行中所有的目标内容
-
撤销
- 命令模式下,u 撤销至上一步
- crtl + r恢复至上一步撤销
-
其它命令
- 显示行号
- 末行模式:set nu!
- 显示当前文件名
- 末行模式:file
- 显示行号
3.系统管理
3.1.rpm命令 – RPM软件包管理器
rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写, 该命令用于管理Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过RPM 进行安装、卸载及管理等操作。
概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证
语法格式:rpm [参数] [软件包]
常用参数:
参数名 | 解释 |
---|---|
-a | 查询所有的软件包 |
-b或-t | 设置包装套件的完成阶段,并指定套件档的文件名称; |
-c | 只列出组态配置文件,本参数需配合”-l”参数使用 |
-d | 只列出文本文件,本参数需配合”-l”参数使用 |
-e或–erase | 卸载软件包 |
-f | 查询文件或命令属于哪个软件包 |
-h或–hash | 安装软件包时列出标记 |
-i | 显示软件包的相关信息 |
–install | 安装软件包 |
-l | 显示软件包的文件列表 |
-p | 查询指定的rpm软件包 |
-q | 查询软件包 |
-R | 显示软件包的依赖关系 |
-s | 显示文件状态,本参数需配合”-l”参数使用 |
-U或–upgrade | 升级软件包 |
-v | 显示命令执行过程 |
-vv | 详细显示指令执行过程 |
参考实例
- 直接安装软件包:
[root@admin~]# rpm -ivh packge.rpm
- 忽略报错,强制安装:
[root@admin~]# rpm --force -ivh package.rpm
- 列出所有安装过的包:
[root@admin~]# rpm -qa
- 查询rpm包中的文件安装的位置:
[root@admin~]# rpm -ql ls
- 卸载rpm包:
[root@admin~]# rpm -e package.rpm
- 升级软件包:
[root@admin~]# rpm -U file.rpm
3.2.find命令 – 查找和搜索文件
find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。
find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。
语法格式:find [参数] [路径] [查找和搜索范围]
常用参数:
参数名 | 解释 |
---|---|
-name | 按名称查找 |
-size | 按大小查找 |
-user | 按属性查找 |
-type | 按类型查找 |
-iname | 忽略大小写 |
参考实例
- 使用-name参数查看/etc目录下面所有的.conf结尾的配置文件:
[root@admin~]# find /etc -name "*.conf
- 使用-size参数查看/etc目录下面大于1M的文件:
[root@admin~]# find /etc -size +1M
- 查找当前用户主目录下的所有文件:
[root@admin~]# find $HOME -print
- 列出当前目录及子目录下所有文件和文件夹:
[root@admin~]# find .
- 在/home目录下查找以.txt结尾的文件名:
[root@admin~]# find /home -name "*.txt"
- 在/var/log目录下忽略大小写查找以.log结尾的文件名:
[root@admin~]# find /var/log -iname "*.log"
- 搜索超过七天内被访问过的所有文件:
[root@admin~]# find . -type f -atime +7
- 搜索访问时间超过10分钟的所有文件:
[root@admin~]# find . -type f -amin +10
- 找出/home下不是以.txt结尾的文件:
[root@admin~]# find /home ! -name "*.txt"
3.3.uname命令 – 显示系统信息
uname命令的英文全称即“Unix name”。
用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。
如果未指定任何选项,其效果相当于执行”uname -s”命令,即显示系统内核的名字。
语法格式:uname [参数]
常用参数:
参数名 | 解释 |
---|---|
-a | 显示系统所有相关信息 |
-m | 显示计算机硬件架构 |
-n | 显示主机名称 |
-r | 显示内核发行版本号 |
-s | 显示内核名称 |
-v | 显示内核版本 |
-p | 显示主机处理器类型 |
-o | 显示操作系统名称 |
-i | 显示硬件平台 |
参考实例
- 显示系统主机名、内核版本号、CPU类型等信息:
[root@admin~]# uname -a
Linux admin3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux - 仅显示系统主机名:
[root@admin~]# uname -n
admin - 显示当前系统的内核版本 :
[root@admin~]# uname -r
3.10.0-123.el7.x86_64 - 显示当前系统的硬件架构:
[root@admin~]# uname -i
x86_64
3.4.user*命令
3.4.1.useradd命令 – 创建新用户
useradd命令 用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐号资料,然后再交由真正建立帐号的useradd命令建立新用户,如此可方便管理员建立用户帐号。在Red Hat Linux中, adduser命令 则是useradd命令的符号连接,两者实际上是同一个指令。
语法
useradd(选项)(参数)
参数名 | 解释 |
---|---|
-c<备注> | 加上备注文字。备注文字会保存在passwd的备注栏位中; |
-d<登入目录> | 指定用户登入时的启始目录; |
-D | 变更预设值; |
-e<有效期限> | 指定帐号的有效期限; |
-f<缓冲天数> | 指定在密码过期后多少天即关闭该帐号; |
-g<群组> | 指定用户所属的群组; |
-G<群组> | 指定用户所属的附加群组; |
-m | 自动建立用户的登入目录; |
-M | 不要自动建立用户的登入目录; |
-n | 取消建立以用户名称为名的群组; |
-r | 建立系统帐号; |
-s | 指定用户登入后所使用的shell; |
-u | 指定用户id。 |
实例
- 新建用户加入组:
[root@admin~]# useradd –g sales jack –G company,employees
//-g:加入主要组、-G:加入次要组 - 建立 一个新用户账户,并设置ID:
[root@admin~]# useradd caojh -u 544
需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。
3.4.2.usermod命令 – 修改用户的基本信息
usermod命令 用于修改用户的基本信息。usermod 命令不允许你改变正在线上的使用者帐号名称。当 usermod 命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的 crontab 档。也需手动更改使用者的 at 工作档。采用 NIS server 须在server上更动相关的NIS设定。
语法
usermod(选项)(参数)
选项
参数名 | 解释 |
---|---|
-c<备注> | 修改用户帐号的备注文字; |
-d<登入目录> | 修改用户登入时的目录,只是修改/etc/passwd中用户的家目录配置信息,不会自动创建新的家目录,通常和-m一起使用; |
-m<移动用户家目录> | 移动用户家目录到新的位置,不能单独使用,一般与-d一起使用。 |
-e<有效期限> | 修改帐号的有效期限; |
-f<缓冲天数> | 修改在密码过期后多少天即关闭该帐号; |
-g<群组> | 修改用户所属的群组; |
-G<群组> | 修改用户所属的附加群组; |
-l<帐号名称> | 修改用户帐号名称; |
-L | 锁定用户密码,使密码无效; |
-s | 修改用户登入后所使用的shell; |
-u | 修改用户ID; |
-U | 解除密码锁定。 |
参数
登录名:指定要修改信息的用户登录名。
实例
- 将 newuser2 添加到组 staff 中:
usermod -G staff newuser2
- 修改newuser的用户名为newuser1:
usermod -l newuser1 newuser
- 锁定账号newuser1:
usermod -L newuser1
- 解除对newuser1的锁定:
usermod -U newuser1
- 增加用户到用户组中:
apk add shadow # 安装 shadow 包, usermod 命令包含在 usermod 中
usermod -aG group user # 添加用户到用户组中
- -a 参数表示附加,只和 -G 参数一同使用,表示将用户增加到组中。
修改用户家目录:
[root@node-1 ~]# useradd lutixiaya
[root@node-1 ~]# ls /home
lutixiaya
[root@node-1 ~]# usermod -md /data/new_home lutixiaya
[root@node-1 ~]# ls /home/
[root@node-1 ~]# ls /data/
new_home
3.4.3.userdel命令 – 删除给定的用户以及与用户相关的文件
userdel命令 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
语法
userdel(选项)(参数)
选项
参数名 | 解释 |
---|---|
-f | 强制删除用户,即使用户当前已登录; |
-r | 删除用户的同时,删除与用户相关的所有文件。 |
参数
用户名:要删除的用户名。
实例
userdel命令很简单,比如我们现在有个用户linuxde,其家目录位于/var目录中,现在我们来删除这个用户:
[root@node-1 ~]# userdel linuxde # 删除用户linuxde,但不删除其家目录及文件;
[root@node-1 ~]# userdel -r linuxde # 删除用户linuxde,其家目录及文件一并删除;
请不要轻易用-r选项;他会删除用户的同时删除用户所有的文件和目录,切记如果用户目录下有重要的文件,在删除前请备份。
其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录;但最好不要这样做,/etc/passwd是极为重要的文件,可能您一不小心会操作失误。
3.4.4.usernetctl命令 – 被允许时操作指定的网络接口
usernetctl命令在用于被允许时操作指定的网络接口。在使用上和”ifup”、”ifon”命令有些类似。
语法格式:usernetctl [参数] [网络接口]
常用参数:
参数名 | 解释 |
---|---|
up | 激活网络接口 |
down | 禁用网络接口 |
report | 报告网络接口 |
参考实例
- 激活网络接口:
[root@admin~]# usernetctl enp1s0 up
- 禁用网络接口:
[root@admin~]# usernetctl enp1s0 down
- 报告网络接口状态:
[root@admin~]# usernetctl enp1s0 report
3.5.ch*命令
3.5.1.chage命令 – 修改帐号和密码的有效期限
语法
chage [选项] 用户名
选项
参数名 | 解释 |
---|---|
-m | 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 |
-M | 密码保持有效的最大天数。 |
-w | 用户密码到期前,提前收到警告信息的天数。 |
-E | 帐号到期的日期。过了这天,此帐号将不可用。 |
-d | 上一次更改的日期。 |
-i | 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 |
-l | 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。 |
实例
- 可以编辑/etc/login.defs来设定几个参数,以后设置口令默认就按照参数设定为准:
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
- 当然在/etc/default/useradd可以找到如下2个参数进行设置:
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
- 通过修改配置文件,能对之后新建用户起作用,而目前系统已经存在的用户,则直接用chage来配置。
我的服务器root帐户密码策略信息如下:
[root@admin~]# chage -l root
最近一次密码修改时间 : 3月 12, 2013
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
- 我可以通过如下命令修改我的密码过期时间:
[root@admin~]# chage -M 60 root
[root@admin~]# chage -l root
最近一次密码修改时间 : 3月 12, 2013
密码过期时间 : 5月 11, 2013
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :60
在密码过期之前警告的天数 :9
- 然后通过如下命令设置密码失效时间:
[root@admin~]# chage -I 5 root
[root@admin~]# chage -l root
最近一次密码修改时间 : 3月 12, 2013
密码过期时间 : 5月 11, 2013
密码失效时间 : 5月 16, 2013
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :60
在密码过期之前警告的天数 :9
从上述命令可以看到,在密码过期后5天,密码自动失效,这个用户将无法登陆系统了。
3.5.2.chattr – 改变文件属性
语法
chattr(选项)
选项
参数名 | 解释 |
---|---|
a | 让文件或目录仅供附加用途; |
b | 不更新文件或目录的最后存取时间; |
c | 将文件或目录压缩后存放; |
d | 将文件或目录排除在倾倒操作之外; |
i | 不得任意更动文件或目录; |
s | 保密性删除文件或目录; |
S | 即时更新文件或目录; |
u | 预防意外删除。 |
-R | 递归处理,将指令目录下的所有文件及子目录一并处理; |
-v<版本编号> | 设置文件或目录版本; |
-V | 显示指令执行过程; |
+<属性> | 开启文件或目录的该项属性; |
-<属性> | 关闭文件或目录的该项属性; |
=<属性> | 指定文件或目录的该项属性。 |
实例
- 用chattr命令防止系统中某个关键文件被修改:
[root@admin~]# chattr +i /etc/fstab
- 然后试一下rm、mv、rename等命令操作于该文件,都是得到Operation not permitted的结果。
- 让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作:
[root@admin~]# chattr +a /data1/user_act.log
3.5.3.chown命令 – 变更文件或目录的拥有者或所属群组
chown命令 改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。
只有文件主和超级用户才可以便用该命令。
语法
chown(选项)(参数)
选Linux 命令大全
来自《跟老男孩学Linux运维:核心系统命令实战》一书
前言
第1章 Linux命令行简介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令帮助 / 4
1.3Linux shutdown reboot halt / 9
关机:
shutdown -h now
halt
init 0
第2章 文件和目录操作命令 / 13
2.1pwd:显示当前所在的位置 / 13
2.2cd:切换目录 / 16
2.3tree:以树形结构显示目录下的内容 / 18
2.4mkdir:创建目录 / 22
2.5touch:创建空文件或改变文件的时间戳属性 / 27
2.6ls:显示目录下的内容及相关属性信息 / 30
2.7cp:复制文件或目录 / 39
2.8mv:移动或重命名文件 / 42
2.9rm:删除文件或目录 / 45
2.10rmdir:删除空目录 / 48
2.11ln:硬链接与软链接 / 49
2.12readlink:查看符号链接文件的内容 / 54
2.13find:查找目录下的文件 / 55
2.14xargs:将标准输入转换成命令行参数 / 68
2.15rename:重命名文件 / 71
2.16basename:显示文件名或目录名 / 72
2.17dirname:显示文件或目录路径 / 72
2.18chattr:改变文件的扩展属性 / 73
2.19lsattr:查看文件扩展属性 / 75
2.20file:显示文件的类型 / 76
2.21md5sum:计算和校验文件的MD5值 / 77
2.22chown:改变文件或目录的用户和用户组 / 80
2.23chmod:改变文件或目录权限 / 81
2.24chgrp:更改文件用户组 / 85
2.25umask:显示或设置权限掩码 / 86
2.26老男孩从新手成为技术大牛的心法 / 90
第3章 文件过滤及内容编辑处理命令 / 91
3.1cat:合并文件或查看文件内容 / 91
3.2tac:反向显示文件内容 / 103
3.3more:分页显示文件内容 / 104
3.4less:分页显示文件内容 / 107
3.5head:显示文件内容头部 / 109
3.6tail:显示文件内容尾部 / 111
3.7tailf:跟踪日志文件 / 114
3.8cut:从文本中提取一段文字并输出 / 115
3.9split:分割文件 / 117
3.10paste:合并文件 / 118
3.11sort:文本排序 / 123
3.12join:按两个文件的相同字段合并 / 127
3.13uniq:去除重复行 / 129
3.14wc:统计文件的行数、单词数或字节数 / 131
3.15iconv:转换文件的编码格式 / 133
3.16dos2unix:将DOS格式文件转换成UNIX格式 / 134
3.17diff:比较两个文件的不同 / 135
3.18vimdiff:可视化比较工具 / 138
3.19rev:反向输出文件内容 / 139
3.20tr:替换或删除字符 / 140
3.21od:按不同进制显示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:纯文本编辑器 / 147
3.24老男孩逆袭思想:做Linux运维的多个好处 / 152
第4章 文本处理三剑客 / 153
4.1grep:文本过滤工具 / 153
4.2sed:字符流编辑器 / 159
4.3awk基础入门 / 165
第5章 Linux信息显示与搜索文件命令 / 176
5.1uname:显示系统信息 / 176
5.2hostname:显示或设置系统的主机名 / 178
5.3dmesg:系统启动异常诊断 / 179
5.4stat:显示文件或文件系统状态 / 181
5.5du:统计磁盘空间使用情况 / 183
5.6date:显示与设置系统时间 / 186
5.7echo:显示一行文本 / 190
5.8watch:监视命令执行情况 / 193
5.9which:显示命令的全路径 / 195
5.10whereis:显示命令及其相关文件全路径 / 196
5.11locate:快速定位文件路径 / 197
5.12updatedb:更新mlocate数据库 / 199
5.13老男孩逆袭思想:新手在工作中如何问问题不会被鄙视 / 200
第6章 文件备份与压缩命令 / 201
6.1tar:打包备份 / 201
6.2gzip:压缩或解压文件 / 208
6.3zip:打包和压缩文件 / 211
6.4unzip:解压zip文件 / 212
6.5scp:远程文件复制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆袭思想:新手如何高效地提问 / 220
第7章 Linux用户管理及用户信息查询命令 / 222
7.1 useradd:创建用户 / 222
7.2usermod:修改用户信息 / 227
7.3userdel:删除用户 / 229
7.4groupadd:创建新的用户组 / 230
7.5groupdel:删除用户组 / 231
7.6passwd:修改用户密码 / 232
7.7chage:修改用户密码有效期 / 237
7.8chpasswd:批量更新用户密码 / 238
7.9su:切换用户 / 240
7.10visudo:编辑sudoers文件 / 242
7.11sudo:以另一个用户身份执行命令 / 244
7.12id:显示用户与用户组的信息 / 248
7.13w:显示已登录用户信息 / 249
7.14who:显示已登录用户信息 / 250
7.15users:显示已登录用户 / 252
7.16whoami:显示当前登录的用户名 / 253
7.17last:显示用户登录列表 / 253
7.18lastb:显示用户登录失败的记录 / 254
7.19lastlog:显示所有用户的最近登录记录 / 255
第8章 Linux磁盘与文件系统管理命令 / 257
8.1fdisk:磁盘分区工具 / 257
8.2partprobe:更新内核的硬盘分区表信息 / 265
8.3tune2fs:调整ext2/ext3/ext4文件系统参数 / 266
8.4parted:磁盘分区工具 / 268
8.5mkfs:创建Linux文件系统 / 272
8.6dumpe2fs:导出ext2/ext3/ext4文件系统信息 / 274
8.7resize2fs:调整ext2/ext3/ext4文件系统大小 / 275
8.8fsck:检查并修复Linux文件系统 / 278
8.9dd:转换或复制文件 / 281
8.10mount:挂载文件系统 / 284
8.11umount:卸载文件系统 / 288
8.12df:报告文件系统磁盘空间的使用情况 / 289
8.13mkswap:创建交换分区 / 293
8.14swapon:激活交换分区 / 294
8.15swapoff:关闭交换分区 / 295
8.16sync:刷新文件系统缓冲区 / 296
第9章 Linux进程管理命令 / 298
9.1ps:查看进程 / 298
9.2pstree:显示进程状态树 / 305
9.3pgrep:查找匹配条件的进程 / 306
9.4kill:终止进程 / 307
9.5killall:通过进程名终止进程 / 310
9.6pkill:通过进程名终止进程 / 311
9.7top:实时显示系统中各个进程的资源占用状况 / 313
9.8nice:调整程序运行时的优先级 / 320
9.9renice:调整运行中的进程的优先级 / 323
9.10nohup:用户退出系统进程继续工作 / 324
9.11strace:跟踪进程的系统调用 / 325
9.12ltrace:跟踪进程调用库函数 / 332
9.13runlevel:输出当前运行级别 / 334
9.14init:初始化Linux进程 / 335
9.15service:管理系统服务 / 335
第10章 Linux网络管理命令 / 338
10.1ifconfig:配置或显示网络接口信息 / 338
10.2ifup:激活网络接口 / 343
ifup eth0
10.3ifdown:禁用网络接口 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整个网络,所有网卡。
10.4route:显示或管理路由表 / 344
10.5arp:管理系统的arp缓存 / 350
10.6ip:网络配置工具 / 351
10.7netstat:查看网络状态 / 358
10.8ss:查看网络状态 / 362
10.9ping:测试主机之间网络的连通性 / 363
10.10traceroute:追踪数据传输路由状况 / 366
10.11arping:发送arp请求 / 367
10.12telnet:远程登录主机 / 369
10.13nc:多功能网络工具 / 370
10.14ssh:安全地远程登录主机 / 373
10.15wget:命令行下载工具 / 376
10.16mailq:显示邮件传输队列 / 379
10.17mail:发送和接收邮件 / 381
10.18nslookup:域名查询工具 / 386
10.19dig:域名查询工具 / 389
10.20host:域名查询工具 / 393
10.21nmap:网络探测工具和安全/端口扫描器 / 394
10.22tcpdump:监听网络流量 / 398
第11章 Linux系统管理命令 / 407
11.1lsof:查看进程打开的文件 / 407
11.2uptime:显示系统的运行时间及负载 / 411
11.3free:查看系统内存信息 / 411
11.4iftop:动态显示网络接口流量信息 / 413
11.5vmstat:虚拟内存统计 / 415
11.6mpstat:CPU信息统计 / 419
11.7iostat:I/O信息统计 / 420
11.8iotop:动态显示磁盘I/O统计信息 / 423
11.9sar:收集系统信息 / 425
11.10chkconfig:管理开机服务 / 430
11.11ntsysv:管理开机服务 / 433
11.12 setup:系统管理工具 / 434
11.13ethtool:查询网卡参数 / 436
11.14mii-tool:管理网络接口的状态 / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自动化RPM包管理工具 / 446
top命令
第12章 Linux系统常用内置命令 / 450
12.1Linux内置命令概述 / 450
12.2Linux内置命令简介 / 450
12.3Linux常用内置命令实例 / 452 参考技术A linux上可用的命令分别是在/usr/bin,
/usr/sbin,
/bin,
/sbin这些目录当中,可以用man命令查看每一个命令的使用手册,用man查出来的,是最靠谱本回答被提问者采纳
以上是关于Linux命令大全(常用的命令解析)的主要内容,如果未能解决你的问题,请参考以下文章