CentOS8教程
  • 更新时间:2020-07-06

一、系统管理


1.1、systemctl 主要用于向系统发出查询或者管理命令


#通过如下命令查看我们可管理的服务。
systemctl list-unit-files


通过使用 systemctl 管理防火墙的例子,systemctl 可以设置开机启动、停止、重启、查看状态等操作。

#示例,启动防火墙,.service可以省略。
systemctl start firewalld.service
#示例,停止防火墙。
systemctl stop firewalld
#示例,重启防火墙。
systemctl restart firewalld
#示例,查看防火墙状态。
systemctl status firewalld
#示例,设置开机启动防火墙。
systemctl enable firewalld
#示例,取消开机启动防火墙。
systemctl disable firewalld


1.2、date 显示或设定系统的日期与时间


其中参数 -d <字符串> ,显示字符串所指的日期与时间,字符串前后必须加上双引号。


#显示今天的日期
date +%Y%m%d
#显示明天的日期
date +%Y%m%d --date="+1 day"
#-d 参数使用
date -d "nov 22"


1.3、free 命令用于显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存


其中参数 -b 以 Byte 为单位显示内存使用情况,-k 以KB为单位来显示内存的信息,-m 以MB为单位来显示内存的信息,-g 以GB为单位来显示内存的信息,-h 人性化显示。返回参数详细解析如下。


  • total: 内存总数;
  • used: 已经使用内存数;
  • free: 完全空闲内存;
  • shared: 多个进程共享的内存;
  • buffers: 用于块设备数据缓冲,记录文件系统metadata(目录,权限,属性等);
  • cached: 用于文件内容的缓冲;
  • available:真正剩余的可被程序应用的内存数。


#显示内存
free
#以总和的形式显示全部内存的使用信息
free -t
#使用易读的人性化方式显示
free -h


1.4、kill 命令用于删除执行中的程序或工作


参数 -l 信号,列出全部的信号名称。一般使用 ps 命令可以查看进程号,然后使用 kill 命令进行相关操作。


#查看 firewalld 的进程号,例如防火墙的进程返回1147
ps -ef | grep firewalld
#停止进程1147
kill 1147
#强制彻底干掉进程
kill -9 1147
#显示所有的信号,其中 参数 -9 代表的是SIGKILL
kill -l


1.5、ps 用来查看当前运行的进程状态,英文为 process status


了解 ps 命令前,首先了解下 CentOS8 的五种进程状态。


  1. 运行(正在运行或在运行队列中等待);
  2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号);
  3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生);
  4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放);
  5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)。


#显示当前所有进程环境变量及进程间关系
ps -ef
#显示当前所有进程
ps -A
#配合 grep 命令查找某个进程
ps -ef | grep firewalld


1.6、rpm 命令用于管理套件


其中参数 -i 显示套件的相关信息,-v 显示指令执行过程,-h列出标记。


#安装软件包,并显示安装进度
rpm -hvi xxx.noarch.rpm 
#升级软件包
rpm -Uvh xxx.noarch.rpm 
#列出RPM软件包内的文件信息
rpm -qpl xxx.noarch.rpm 
#校验所有的RPM软件包,查找丢失的文件
rpm -Va xxx.noarch.rpm 
#删除包
rpm -e xxx.noarch.rpm 


1.7、top 显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等


其中常用的参数 -c 显示完整的进程命令。返回结果详细解析。


1.7.1、第一行,任务队列


  • 16:54:21 #当前系统时间;
  • up 9 days, 1:05, #系统已经连续运行了9天1小时5分钟;
  • 1 users #当前有1个用户登录系统;
  • load average: 0.00, 0.00, 0.00 #后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average 数据是每隔5秒钟检查一次活跃的进程数,如果这个数除逻辑CPU的数量后结果高于5的时候就表明系统在超负荷运转了。


1.7.2、第二行,进程信息


返回结果:Tasks: 203 total,  1 running, 202 sleeping,  0 stopped,  0 zombie。一共203个进程,其中处于运行中的有1个,202个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸进程)的有0个。


1.7.3、第三行,CPU信息


返回结果:%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st。


  • us 用户空间占用CPU百分比;
  • sy 内核空间占用CPU百分比;
  • ni 用户进程空间内改变过优先级的进程占用CPU百分比;
  • id 空闲CPU百分比;
  • wa 等待输入输出的CPU时间百分比;
  • hi 硬件中断;
  • si 软件中断 ;
  • st: 实时。


1.7.4、第四行,内存信息


返回结果:MiB Mem :  3757.5 total,  2979.7 free,  286.4 used,  491.4 buff/cache。


1.7.5、第五行,交换分区


返回结果:MiB Swap:   0.0 total,   0.0 free,   0.0 used.  3180.1 avail Mem。


1.7.6、第六行,空行用于分割,第七行和以下行,进程状态


  • PR:进程优先级;
  • NI:负值表示高优先级,正值表示低优先级;
  • VIRT:Virtual memory usage 虚拟内存;
  • RES:Resident memory usage 常驻内存;
  • SHR:Shared memory 共享内存;
  • S : Process status 进程状态。 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程;
  • %CPU:上次更新到现在的CPU时间占用百分比;
  •  %MEM:进程使用的物理内存百分比;
  • TIME+:进程使用的CPU时间总计,单位1/100秒;
  • COMMAN:进程名称(命令名/命令行)。


1.8、dnf 命令用于 CentOS8 发行版软件包的管理


#安装软件xxx
dnf install xxx
#升级软件xxx
dnf update xxx
#卸载软件xxx
dnf remove xxx


二、文件管理


2.1、cat 命令用于连接文件并打印到标准输出设备上


#示例,try8 为根目录下的文件夹,此处打印一个文件。
cat /try8/test.log
#示例,创建一个文件,不能编辑。
cat > /try8/test.log
#示例,合并多个文件,中间用空格隔开,例如将 test1.log 合并到 test.log 中,并自动添加行号。
cat -n /try8/test1.log /try8/test.log


2.2、chmod 用于改变 linux 系统文件或目录的访问权限


#示例,为文件夹 try8 设置权限 777
chmod -R 777 /try8


2.3、chown 将指定文件的拥有者改为指定的用户或组


如果加上参数 -c 显示更改的部分信息,-R 递归子目录。


chown -cR test:test /try8


2.4、cp 将源文件复制至目标文件,或将多个源文件复制至目标目录


如果加上参数,-a 是递归拷贝, -i 系统提醒,下面展示复制到 data 文件夹。

cp -ai try8/test.log /data


2.5、find 用于在文件树中查找文件,并作出相应的处理


格式为:find pathname -options [-name -print -exec -ok ...]。pathname 是 find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-name 按照文件名查找文件。-exec 后面跟的是 command 命令,它的终止是以 ; 为结束标志,这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面 find 查找出来的文件名。


#在当前目录查找 以 .log 结尾的文件。
find ./ -name '*.log'
#查看 try8 目录下为 755 权限的文件。
find /try8 -perm 755
#查找当前目录下大于100M的文件。
find ./ -type f -size +100M -exec ls -lh {} \; | awk '{ print $9 ":" $5 }';


2.5、head 用来显示输出档案的开头,默认 head 命令打印文件的前十行。


格式为:head -n 行数,其中参数 -n 后面紧跟行数,如果行数为负数表示从最后向前数。


#输出显示 test.log 文件的前十行。
head /try8/test.log -n 10
#输出显示 test.log 文件的后十行。
head -n -10 /try8/test.log


2.6、tail 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用查看日志文件


参数 -f 循环读取,常用于查看递增的日志文件。


tail -f /try8/test.log


2.7、less 用来随意浏览文件,less 在查看之前不会加载整个文件


切换多个文件时,先输入冒号等待命令,然后使用 n 键来查看下一个,使用 p 键查看前一个,按键 q 退出。


#查看一个文件
less /try8/test.log
#查看多个文件
less /try8/test.log test1.log


2.8、more 分页显示,方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示


参数 +n 从笫 n 行开始显示。


#显示输出文件,从第二行开始。
more +2 /try8/test.log


2.9、ln 命令是为了创建软件链接及硬链接


ln 功能是为文件在另外一个位置建立一个同步的链接,当在不同目录需要时,就不需要为每一个目录创建同样的文件,通过 ln 创建的链接(link)减少磁盘占用量。ln的链接又分软链接和硬链接两种,软链接格式为:ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接格式为:ln 源文件 目标文件,没有参数 -s, 它会在你选定的位置上生成一个和源文件大小相同的文件,硬链接不支持给目录创建,无论是软链接还是硬链接,文件都保持同步变化,其中参数 -b 删除,覆盖以前建立的链接,参数 -v 显示操作信息。


#给文件创建软链接,新增的文件 test.link.log 相当于 windows 里面的快捷方式,并不会实际占用磁盘空间。
ln -sv /try8/test.log /try8/test.link.log
#给文件创建硬链接,并显示详细信息。
ln -v /try8/test.log /try8/test.link.log
#给目录创建软链接,并显示详细信息。
ln -sv /try8/test /try8/test_link


2.10、mv 是移动文件或修改文件名,根据第二参数类型,如果是目录则移动文件,如果为文件则重命令该文件。


#将文件 test.log 重命名为 test.txt
mv /try8/test.log /try8/test.txt
#将文件 test.log,test.txt 移动到 test 目录中。
mv /try8/test.log /try8/test.txt /try8/test
#移动当前文件夹下的所有文件到上一级目录
mv * ../


2.11、rm 命令删除一个目录中的一个或多个文件或目录


如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。


#删除所有以 .log结尾的文件,删除前系统会逐一询问确认该操作。
rm -i /try8/*.log
#直接删除 test 子目录及子目录中所有文件删除,不用挨个确认。
rm -rf /try8/test


2.12、 touch 命令用于修改文件或者目录的时间属性,包括存取时间和更改时间


若文件不存在,系统会建立一个新的空白文件。


#创建一个名为“file”的新的空白文件
touch /try8/test.log


2.13、whereis 命令只能用于程序名的搜索


参数 -b 只搜索二进制文件、参数 -m 只搜索man说明文件、参数 -s 搜索源代码文件,如果省略参数,则返回所有信息。


#查找 locate 程序相关文件
whereis locate
#查找 locate 的源码文件
whereis -s locate
#查找 lcoate 的帮助文件
whereis -m locate


2.14、which 命令用于查找文件,但是不知道放在哪了


which 是在 PATH 指定的路径中,搜索系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。


#查看 which 命令本身
which which 


三、文档编辑


3.1、grep 是文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索


#查找指定的进程
ps -ef | grep firewalld
#查找指定进程个数
ps -ef | grep firewalld -c
#在 test.log 中显示包含 insert 或者 update 字符的内容行
grep -E 'insert|update' /try8/test.log


3.2、wc 命令统计指定的文件中字节数、字数、行数,并将统计结果输出


格式为:wc [option] file..,参数 -c 统计字节数。


#查找文件的 行数 单词数 字节数 文件名
wc /try8/test.log


四、磁盘管理


4.1、cd 命令用于切换目录


#进入根目录
cd /
#进入 home 目录
cd ~
#进入上一个目录
cd -
#把上个命令的参数作为cd参数使用
cd cd !$


4.2、df 命令用于显示磁盘使用情况


-a 全部文件系统列表。


#显示磁盘使用
df -l
#人性化显示
df -hT


4.3、du 命令是对文件和目录磁盘使用的空间的查看


格式为:du [选项] [文件],其中参数 -a 显示目录中所有文件的大小。


#以易读方式显示文件夹内及子文件夹大小
du -h /try8
#以易读方式显示文件夹内及所有子文件夹大小
du -ah /try8
#显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
du -hc /data /try8
#输出 try8 目录下各个子目录所使用的空间
du -hc --max-depth=1 /try8


4.4、list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,还可以查看文件权限、目录信息等。


#列出目录所有文件,包含以.开始的隐藏文件
ls -a 
#按大小反序显示文件详细信息
ls -lrS
#按易读方式按时间反序排序,并显示文件详细信息
ls -lhrt
#列出当前目录中所有以 try8 开头的目录的详细内容
ls -l try8*


4.5、mkdir 命令用于创建文件夹


参数 -m::对新建目录设置存取权限。 -p: 可以是一个路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。


#在根目录下创建名为 try8.cn 的文件夹。
mkdir try8.cn
#在 try8.cn 目录下创建路径为 try8.cn/test/ 的目录,若不存在,则创建。
mkdir -p try8.cn/test


4.6、pwd 命令用于查看当前工作目录路径


#查看当前路径
pwd
#查看软链接的实际路径
pwd -P


4.7、从一个目录中删除一个或多个子目录项


不能删除非空目录,删除某目录时也必须具有对其父目录的写权限。


#try8.cn 子目录 test 被删除后使它也成为空目录的话,则一并删除
rmdir -p try8.cn/test


五、其它


本章为 试试吧 推出的 CentOS8 命令汇总教程,主要包含常见的操作命令集合。通过本章的学习,你应该能轻松在 CentOS8 下使用各种命令。本教程欢迎转载,转载请注明出处,谢谢。