常用系统工作命令
Tips
- 如果我们在系统终端中执行一个命令后想立即停止它,可以同时按下Ctrl + C 组合
键(生产环境中比较常用的一个快捷键),这样将立即终止该命令的进程。或者,如果
有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则可以在执
行命令时在末尾添加上一个&符号,这样命令将进入系统后台来执行。
- 如前面所提到的,在Linux 系统中的命令参数有长短格式之分,长格式和长格式之
间不能合并,长格式和短格式之间也不能合并,但短格式和短格式之间是可以合并的,
合并后仅保留一个-(减号)即可。另外ps 命令可允许参数不加减号(-),因此可直接
写成ps aux 的样子
- echo 命令
[root@bogon ~]# echo Linux-learning
Linux-learning
[root@bogon ~]# echo $SHELL
/bin/bash
- date命令
-
date
跟上+
开头的可以输出格式化日期
[root@bogon ~]# date "+%Y-%m-%d %H:%M:%S"
2020-06-17 09:01:11
-
%j
输出一年中的第多少天
[root@bogon ~]# date +%j
169
-
-s
设置当前时间
[root@bogon ~]# date -s "20170901 8:30:00"
Fri Sep 1 08:30:00 CST 2017
-
wget
wget
命令用于在终端中下载网络文件,格式为wget [参数] 下载地址
。
参数 |
作用 |
-b |
后台下载模式 |
-P |
下载到指定目录 |
-t |
最大尝试次数 |
-c |
端点续传 |
-p |
下载页面内所有的资源,包括图片,视频 |
-r |
递归下载 |
-
ps
ps
命令用于查看系统中的进程状态,格式为ps [参数]
通常会将ps 命令与管道符技术搭配使用,用来抓取与某
个指定服务进程相对应的PID 号码。
参数 |
作用 |
-a |
显示所有进程(包括其他用户的进程) |
-u |
用户以及其他详细信息 |
-x |
显示没有控制终端的进程 |
-
top
top
命令用于动态地监视进程活动与系统负载等信息。
top
命令相当强大,能够动态地查看系统运维状态,完全将它看作Linux 中的“强化版的
Windows 任务管理器”
-
pidof
pidof
命令用于查询某个指定服务进程的PID 值,格式为pidof [参数] [服务名称]
。
每个进程的进程号码值(PID)是唯一的,因此可以通过PID 来区分不同的进程。例如,
可以使用如下命令来查询本机上sshd 服务程序的PID:
[root@bogon ~]# pidof sshd
-
kill
kill
命令用于终止某个指定PID 的服务进程,格式为kill [参数] [进程PID]
。
接下来,我们使用kill 命令把上面用pidof 命令查询到的PID 所代表的进程终止掉,其命
令如下所示。-9
一般强制停止服务。
[root@bogon ~]# kill -9 123456
-
killall
killall
命令用于终止某个指定名称的服务所对应的全部进程,格式为:killall [参数] [进 程名称]
[root@linuxprobe ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[root@linuxprobe ~]# killall httpd
[root@linuxprobe ~]# pidof httpd
[root@linuxprobe ~]#
系统状态检测命令
-
ifconfig
ifconfig
命令用于获取网卡配置与网络状态等信息,格式为ifconfig [网络设备] [参数]
。
-
uname
uname
命令用于查看系统内核与系统版本等信息,格式为uname [-a]
。
-
free
free
用于显示当前系统中内存的使用量信息,格式为free [-h]
。
-
history
history
命令用于显示历史执行过的命令,格式为history [-c]
。
工作目录切换命令
-
pwd
pwd
命令用于显示用户当前所处的工作目录,格式为pwd [选项]
-
cd
cd
命令用于切换工作路径,格式为cd [目录名称]
-
ls
ls
命令用于显示目录中的文件信息,格式为ls [选项] [文件]
参数 |
作用 |
-a |
显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) |
-l |
除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 |
-r |
将文件以相反次序显示(原定依英文字母次序) |
-t |
将文件依建立时间之先后次序列出 |
-A |
同 -a ,但不列出 "." (目前目录) 及 ".." (父目录) |
-F |
在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/" |
-R |
若目录下有文件,则以下之文件亦皆依序列出 |
文本文件编辑命令
-
cat
cat
命令用于查看纯文本文件(内容较少的),格式为cat [选项] [文件]
如果在查看文本内容时还想顺便显示行号的话,不妨在 cat 命令后面追加一个-n
参数
-
more
more
命令会在最下面使用百分比的形式来提示您已经阅读了多少内容。您还可以使用空格键或回
车键向下翻页
-
head
head
命令用于查看纯文本文档的前N 行,格式为head [选项] [文件]
。
-
tail
tail
命令用于查看纯文本文档的后N 行或持续刷新内容,格式为tail [选项] [文件]
tail
命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时
查看最新日志文件时,这特别有用,此时的命令格式为tail -f
-
tr
tr
命令用于替换文本文件中的字符,格式为tr [原始字符] [目标字符]
在很多时候,我们想要快速地替换文本中的一些词汇,又或者把整个文本内容都进行替
换,如果进行手工替换,难免工作量太大,尤其是需要处理大批量的内容时,进行手工替换
更是不现实。这时,就可以先使用cat 命令读取待处理的文本,然后通过管道符(详见第3
章)把这些文本内容传递给tr 命令进行替换操作即可。例如,把某个文本内容中的英文全部
替换为大写:
[root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]
-
wc
wc
命令用于统计指定文本的行数、字数、字节数,格式为wc [参数] 文本
参数 |
作用 |
-l |
只显示行数 |
-w |
只显示单词数 |
-c |
只显示字节数 |
-
stat
stat
命令用于查看文件的具体存储信息和时间等信息,格式为stat 文件名称
。
stat
命令可以用于查看文件的存储信息和时间等信息,命令stat anaconda-ks.cfg
会显示出
文件的三种时间状态(已加粗):Access、Modify、Change。这三种时间的区别将在下面的touch
命令中详细详解
[root@bogon ~]# stat anaconda-ks.cfg
File: anaconda-ks.cfg
Size: 1414 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 34629661 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2020-05-06 18:34:53.219332111 -0400
Modify: 2020-05-06 18:32:57.371012781 -0400
Change: 2020-05-06 18:32:57.371012781 -0400
Birth: -
-
cut
cut
命令用于按“列”提取文本字符,格式为cut [参数] 文本
在 Linux 系统中,如何准确地提取出最想要的数据,这也是我们应该重点学习的内容。一般
而言,按基于“行”的方式来提取数据是比较简单的,只需要设置好要搜索的关键词即可。但是
如果按列搜索,不仅要使用-f 参数来设置需要看的列数,还需要使用-d 参数来设置间隔符号。
passwd 在保存用户数据信息时,用户信息的每一项值之间是采用冒号来间隔的,接下来我们使用
下述命令尝试提取出passwd 文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容:
[root@linuxprobe ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@linuxprobe ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
文件目录管理命令
-
touch
touch
命令用于创建空白文件或设置文件的时间,格式为touch [选项] [文件]
参数 |
作用 |
-a |
仅修改“读取时间”(atime) |
-m |
仅修改“修改时间”(mtime) |
-d |
同时修改atime 与mtime |
-
mkdir 命令
mkdir
命令用于创建空白的目录,格式为mkdir [选项] 目录
。
在 Linux 系统中,文件夹是最常见的文件类型之一。除了能创建单个空白目录外,mkdir
命令还可以结合-p
参数来递归创建出具有嵌套叠层关系的文件目录。
[root@linuxprobe ~]# mkdir linuxprobe
[root@linuxprobe ~]# cd linuxprobe
[root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e
[root@linuxprobe linuxprobe]# cd a
[root@linuxprobe a]# cd b
[root@linuxprobe b]#
-
cp
cp
命令用于复制文件或目录,格式为cp [选项] 源文件目标文件
。
大家对文件复制操作应该不陌生,在 Linux 系统中,复制操作具体分为3 种情况:
- 如果目标文件是目录,则会把源文件复制到该目录中
- 如果目标文件也是普通文件,则会询问是否要覆盖它
- 如果目标文件不存在,则执行正常的复制操作
参数 |
作用 |
-p |
保留原始文件的属性 |
-d |
若对象为“链接文件”,则保留该“链接文件”的属性 |
-r |
递归持续复制(用于目录) |
-i |
若目标文件存在则询问是否覆盖 |
-a |
相当于-pdr(p、d、r 为上述参数) |
-f |
覆盖已经存在的目标文件而不给出提示 |
4.mv
mv
命令用于剪切文件或将文件重命名,格式为mv [选项] 源文件 [目标路径|目标文件名]
。
剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。如果
在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名
参数 |
作用 |
-i |
若目标文件存在则询问是否覆盖 |
-f |
覆盖已经存在的目标文件而不给出提示 |
5.rm
rm
命令用于删除文件或目录,格式为rm [选项] 文件
。
在 Linux 系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是
看到这种反复的确认信息,可在rm 命令后跟上-f
参数来强制删除。另外,想要删除一个目录,
需要在rm 命令后面一个-r
参数才可以,否则删除不掉
-
file
file
命令用于查看文件的类型,格式为file 文件名
打包压缩与搜索命令
-
tar
tar
命令用于对文件进行打包压缩或解压,格式为tar [选项] [文件]
参数 |
作用 |
-c |
创建压缩文件 |
-x |
解开压缩文件 |
-t |
查看压缩包内有哪些文件 |
-z |
用Gzip 压缩或解压 |
-j |
用bzip2 压缩或解压 |
-v |
显示压缩或解压的过程 |
-f |
目标文件名 |
-p |
保留原始的权限与属性 |
-P |
使用绝对路径来压缩 |
-C |
指定解压到的目录 |
首先,-c
参数用于创建压缩文件,-x
参数用于解压文件,因此这两个参数不能同时使用。
其次,-z
参数指定使用Gzip 格式来压缩或解压文件,-j
参数指定使用bzip2 格式来压缩或解
压文件。用户使用时则是根据文件的后缀来决定应使用何种格式参数进行解压。在执行某些
压缩或解压操作时,可能需要花费数个小时,如果屏幕一直没有输出,您一方面不好判断打
包的进度情况,另一方面也会怀疑电脑死机了,因此非常推荐使用-v
参数向用户不断显示压
缩或解压的过程。-C
参数用于指定要解压到哪个指定的目录。-f 参数特别重要,它必须放到
参数的最后一位,代表要压缩或解压的软件包名称。刘遄老师一般使用tar -czvf
压缩包名
称.tar.gz 要打包的目录”命令把指定的文件进行打包压缩;相应的解压命令为tar -xzvf
压
缩包名称.tar.gz”。下面我们来逐个演示下打包压缩与解压的操作。
[root@linuxprobe ~]# tar -czvf etc.tar.gz /etc
[root@linuxprobe ~]# tar -xzvf etc.tar.gz -C /root/etc
-
grep
grep
命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为grep [选项] [文件]
参数 |
作用 |
-b |
将可执行文件(binary)当作文本文件(text)来搜索 |
-c |
仅显示找到的行数 |
-i |
忽略大小写 |
-n |
显示行号 |
-v |
反向选择—仅列出没有“关键词”的行 |
两个最最常用的参数:-n 参数用来显示搜索到信息的行号;-v 参数用于反选信息
-
find
find
命令用于按照指定条件来查找文件,格式为find [查找路径] 寻找条件操作