Linux命令篇 - Linux系统下的常用命令

文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

1-前言

这是我三年来学习Linux操作系统命令的笔记,总结的可能不太全面,但是对于大多数人我觉得还是有帮助,里面我没有详细去介绍单个命令,我列出了一些常用的用法,如果想要透彻学习一个命令,我首先推荐man,它给出的解释十分详细,不过在Linux系统中,这部分默认是英文,其次可以度娘,很多博主都写这类文章,我觉得我的笔记收藏起来需要的时候查一下某些命令还是很好用的,因为我自己就是这么干的,喜欢的话点赞收藏,感谢各位看官老爷们~

2-Linux常用命令总结

2-1-Linux下常用命令

2-2-1-ls

作用:查看当前目录下有哪些文件(list)

语法:ls 目录/文件 ,如果什么也不加,那么查看的是当前目录下的内容

-l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等,长列表

   第一个字符文件类型中:

   d:目录文件

   l:链接文件

   b:块设备文件

   c:字符设备文件

   p:管道文件

   -: 表示普通文件

-a 列出目录下所有的文件,包括以“.“开头的隐藏文件(linux 下隐藏文件是以 . 开头的,如果存在 2 个点代表存在着父目录,1 个点表示当前目录)

-d 查看目录(不查看里面的内容)

-S 以文件的大小进行排序

2-1-2-cd

作用:切换目录(change directory)

语法:cd 目录

直接输入 cd 表示回到当前用户的家目录

cd ~表示返回根目录

cd .. 表示返回到上级目录位置,也就是父目录

cd . 表示进入到当前用户所在的目录

2-1-3-pwd

作用:显示当前目录

语法:什么也不加

2-1-4-history

作用:显示历史命令

技巧:

ctrl+r ->输入某条命令的关键字->找出来对应的命令,按右光标键

!数字 //执行历史命令中第 N 条命令

!字符串 //搜索历史命令中最近一个以 xxxx 字符开头的命令,例如!vim

!!执行最近执行过的的一条命令

2-2-时间管理命令

2-2-1-查看硬件时间:hwclock

[root@localhost ~]# hwclock
Thu 10 Aug 2023 06:37:02 PM CST  -0.867814 seconds

2-2-2-查看系统时间:date

UTC (Universal Time Coordinated):世界标准时间

GMT (Greenwich Mean Time):格林尼治时间

CST (China standard Time):中国标准时间

date 命令相关参数:

date --help

-s, --set=STRING 把时间设为字符串所描述的时间

#把时间设为字符串所描述的时间

date -s “2018-11-2 22:30”

#按指定格式显示时间

date “+参数”

参数:

%F 完整日期格式,等价于 %Y-%m-%d

%y 年份最后两位数位 (00-99)

%Y 年份

%m month (01..12)

%d 按月计的日期(例如:01)

%M minute (00..59)

%H 小时(00-23)

%S 秒(00-60)

2-3-帮助命令

遇到命令不知道添加哪个参数,可以使用命令帮助查看相关介绍,常用的查看帮助信息命令有如下几个

2-3-1-man命令

#查看手册页或命令描述

man find

man 命令查看帮助时,支持它支持上翻下翻,搜索(直接输入斜线),退出用 q

使用-h 或--help 查看命令选项

ls -h

find --help

2-4-init

作用:切换系统运行级别

语法:init 0-6

Linux 7 个启动级别:

0 系统停机模式,系统默认运行级别不能设置为 0,否则不能正常启动,机器关闭

1 单用户模式,root 权限,用于系统维护,禁止远程登陆,就像 Windows 下的安全模式登录

2 多用户模式,没有 NFS 和网络支持

3 完整的多用户文本模式,有 NFS 和网络,登陆后进入控制台命令行模式

4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置

5 图形化模式,登陆后进入图形 GUI 模式,X Window 系

6 重启模式,默认运行级别不能设为 6,否则不能正常启动。运行 init 6 机器就会重启

#查看默认的启动级别

systemctl get-default

#设置默认第三启动级别

systemctl set-default multi-user.target

#设置默认第五启动级别

systemctl set-default graphical.target

2-5-文件管理命令

创建/修改/移动/删除/复制: touch  mkdir  mv  vi  rm  cp

2-5-1-touch

作用:常用来创建空文件,如果文件存在,则修改这个文件的时间

语法:touch 文件名

2-5-2-mkdir

作用:创建目录

语法:mkdir (选项) 文件名

在创建一个目录的时候,如果这个目录的上一级不存在的话,要加参数-p

2-5-3-rm

作用:可以删除一个目录中的一个或多个文件或目录,对于链接文件,只是删除整个链接文件,而原文件保持不变的

语法:rm (选项) 处理对象

选项:

-f 强制删除,没有提示

-r 删除目录

2-5-4-cp

命令:cp 源文件/目录 目录文件/目录

选项:-R/r:递归处理,将指定目录下的所有文件与子目录一并处理

2-5-5-mv

语法:mv 源文件/目录 目标文件/目录

支持移动之后改目录或文件名

查看文件命令

2-5-6-cat

语法:cat 文件名

作用:查看文件内容,一次显示整个文件的内容

2-5-7-more

作用:以分页形式显示文件内容

语法:more + 文件名

说明: 按下回车刷新一行,按下空格刷新一屏,输入 q 键退出

2-5-8-less

作用:和 more 功能一样

语法:less +文件名

说明:linux 中 moreless 的区别

more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter 键是向下翻一行,在不需要后退的情况下比较方便

less:支持前后翻滚,既可以向上翻页(pageup 按键),也可以向下翻页(pagedown 按键)。,空格键是向下翻页,

Enter 键是向下翻一行

2-5-9-head

作用: 用于显示文件的开头的内容。在默认情况下,head 命令显示文件的头 10 行内容

语法:head(选项)文件名

参数: -n 显示从文件头开始的行数

2-5-10-tail

作用: 用于显示文件中的尾部内容。默认在屏幕上显示指定文件的末尾 10 行

语法:tail (选项)文件名

参数:

-n 显示文件尾部多少行的内容(n 为数字)

-f 动态显示数据(不关闭),常用来查看日志

2-5-11-diff

作用:比较两个文件的差异

语法:diff 文件1 文件2

2-6-用户管理命令

2-6-1-useradd

作用:添加用户
语法:useradd -d "家目录"-u “UID-g "初始组" -G "附加组" -s "登陆的 shell” 用户

-d: -d 用户主目录路径, 可以指定用户家目录
-M: 不创建用户的主目录
-g:设置用户初始组的名称或数字 ID;该组必须是存在的;如果没有设置该选项,useradd 会根据
    /etc/login.defs 文件中的 USERGROUPS_ENAB 环境变量进行设置。
    默认 USERGROUPS_ENAB yes 会用和用户名相同的名字创建群组,GID 等于 UID.
-G:用户要加入的附加组列表;使用逗号分隔多个组,不要添加空格;如果不设置,用户仅仅加入初始组。
    (一个用户只允许有一个主组,可以有多个附属组)
-s:用户默认登录 shell 的路径;启动过程结束后,默认启动的登录 shell 在此处设定;请确保使用的 shell                                   
    已经安装,默认是 Bash。有时候需要禁止某些用户执行登录动作,例如用来执行系统服务的用户。将          
    shell设置成 /sbin/nologin 就可以禁止用户登录。

2-6-2-userdel

作用:删除用户
语法:userdel [options] 用户名
选项:-r 删除的时候,会同时删除用户的家目录和/var/mail 下的目录

2-6-3-usermod

    -C =我们可以为useraccount添加注释字段。
    -d =要修改目录的任何现有的用户帐户。
    -e =使用此选项,我们可以在特定时期的帐户到期。
    -g =更改主组用户。
    -G =添加补充组。
    -a =要添加该组的任何一个次要组。
    -l =从howtoing更改登录名称howtoing_admin。
    -L =锁定用户帐户。 这将锁定密码,所以我们不能使用该帐户。
    -m =从现有的家目录到新的目录移动主目录的内容。
    -p =要为新密码使用未加密的口令。 (不是安全的)。
    -s =创建新帐户指定的外壳。
    -u =可用于为999 0之间的用户帐户分配UID-U =要解锁的用户帐户。 这将删除密码锁,并允许我们使用用户帐户。


向用户添加信息

在**‘-c’选项用来设置有关用户帐号的一个简短的评论(信息)。 例如,让我们添加上“howtoing’**用户信息,使用下面的命令。

# usermod -c "This is Howtoing" howtoing

添加的用户信息后,同样的评论可以在**/ etc / passwd**文件中查看。

# grep -E --color 'howtoing' /etc/passwd
howtoing:x:500:500:This is Howtoing:/home/howtoing:/bin/sh

更改用户主目录

从**/home/ howtoing变化home目录到/ var / WWW /**,改变后确认家目录位置。

# usermod -d /var/www/ howtoing
# grep -E --color '/var/www/' /etc/passwd
howtoing:x:500:500:This is Howtoing:/var/www:/bin/sh

设置用户帐户到期日期

选项**'-e’是用来设置到期日与日期格式YYYY-MM-DD**的用户帐户

# usermod -e 2014-11-01 howtoing
# chage -l howtoing
Last password change					: Nov 02, 2014
Password expires					: never
Password inactive					: never
Account expires						: Nov 01, 2014
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

更改用户主组

要设置或更改用户主组,我们使用选项**“-g”**与usermod命令

# usermod -g babin howtoing_test
# id howtoing_test
uid=501(howtoing_test) gid=502(babin) groups=502(howtoing_test)

向用户添加组

如果你想添加一个名为**“howtoing_test0”新组“howtoing’用户,可以使用选项’-G’**与usermod命令,如下图所示。

# usermod -G howtoing_test0 howtoing
# id howtoing

注意 :要小心,同时增加了一个新的群体单独**“-G”选项中的现有用户,将删除该用户所属的所有现有组。 因此,随时添加的“-a”(附加)以“-G”**选项,添加或追加新组。

更改用户登录名

要更改任何现有用户的登录名,我们可以用**“-L”(新登录)选项。 在下面的例子中,我们更改登录名称howtoinghowtoing_admin。** 因此,用户名howtoing已被重命名使用新的名称howtoing_admin。

# usermod -l howtoing_admin howtoing

锁定用户帐户

锁定任何系统用户账号,我们可以用**“-L”(锁定)选项,帐户被锁定后,我们不能使用密码登录,您将看到一个/ etc / shadow文件中**的加密密码前加入,表示禁用密码。

# usermod -L babin

检查锁定的帐户。

# grep -E --color 'babin' cat /etc/shadow

解锁用户帐户

'-U’选项用于解锁任何锁定的用户,这将加密的密码之前删除

# grep -E --color 'babin' /etc/shadow
# usermod -U babin

解锁后验证用户。

# grep -E --color 'babin' /etc/shadow

2-7-查看用户相关命令:

id       #用户和组的信息

whoami   #查看当前有效用户名

who      #显示目前登入系统的用户信息。

w        #w 命令用于显示已经登陆系统的用户列表

users    #用于显示当前登录系统的所有用户的用户列表

2-8-改变文件的所属关系用到命令:

chown:可以用来改变文件(或目录)的属主

chgrp:可以用来改变文件(或目录)的默认属组


如果你要对目录进行操作,加参数 -R

2-8-1-chown

语法:

chown user:group filename 
#比如:chown hr:san a.txt 把文件的属主和属组改为 hr,san

chown user filename 
#比如:chown san a.txt 把文件的属主改为 san 用户

chown :group filename 
#比如: chown :miao a.txt 把文件的属组改为 miao 这个组

chown user: filename 
#比如:chown san: a.txt 自动继承这个用户所有的组

chgrp hr filename 
#比如: chgrp hr f.txt

-R :递归(目录下的所有内容都更改,否则只修改目录)

2-8-2-chmod

作用:修改文件,目录的权限

语法:chmod [对谁操作] [操作符] [赋于什么权限] 文件名

对谁操作:

u----> 用户 user,表示文件或目录的所有者

g---->用户组 group,表示文件或目录所属的用户组

o---->其它用户 others

a---->所有用户 all

操作符:
+ #添加权限 ; 
- # 减少权限 ; 
= #直接给定一个权限

权限:r w x

八进制数字表示权限

权限二进制值八进制值描述
0000没有任何权限
–x0011只有执行权限
-w-0102只有写入权限
-wx0113有写入和执行权限
r–1004只有读取权限
r-x1015有读取和执行权限
rw-1106有读取和写入权限
rwx1117有全部权限

权限对文件和目录的影响

权限对文件的影响对目录的影响
r读取查看目录内容(目录内的文件名或子目录名)
w更改创建或删除目录下的文件或子目录
x执行访问目录内的文件内容(取决于目录下的文件的权限)

2-8-3-文件的特殊权限

1、SUID(set uid 设置用户 ID):限定:只能设置在二进制可执行程序上面。对目录设置无效
功能:程序运行时的权限从执行者变更成程序所有者的权限

2、SGID:限定:既可以给二进制可执行程序设置,也可以对目录设置
功能:在设置了 SGID 权限的目录下建立文件时,新创建的文件的所属组会,继承上级目录的所属组

3、Stickybit:粘滞位权限是针对目录的,对文件无效,也叫防删除位



这 3 个特殊权限对应的数值为

SUIDSGIDStickybit
u+s或u=4g+s或g=2o+t 或 o=1
SUID 属性一般用在可执行文件上,当用户执行该文件时,会临时拥有该执行文件的所有者权限。使用”ls -l” 或者”ll” 命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的”s”,就表明该执行文件拥有SUID 属性。

chmod u+s xxx.sh


SGID:

限定:既可以给二进制可执行程序设置,也可以给目录设置。

功能:在设置了 SGID 权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的权限。

chmod g+s /xx/xx


Stickybit

限定:只作用于目录

功能:目录下创建的文件只有 root、文件创建者、目录所有者才能删除。

chmod o+t /xxx/xxx


2-8-4-ACL权限

文件或目录的三个固有权限组: 属主, 属组, 其他组;

此外, 假设还有guest用户,则通过ACL权限来解决.
ACl权限主要功能是提供固有的的三组权限之外的其他用户权限的设置。ACL可以针对单一用户或用户组, 文件或目录来进行rwx的权限设置。

新建目录权限:目录最大权限777-022(默认umask值)=755

新建文件权限:文件最大权限666-022(默认umask值)=644

getfacl 文件或目录 
#查询文件(目录)的ACL权限

注释: 同时会查出3种传统权限, 如果未设置ACL权限则只显示传统权限)



setfacl [选项] 文件或目录   #设定单一文件或目录的ACL权限
    [-m                                     ]   #设定ACL权限
          [u: 用户名:权限模式(或数字)]  
          [g: 用户组:权限模式]
    [示例]:
        setfacl -m u:用户名:rwx或7(数字) 文件或目录   #对单一文件或目录的ACL权限设置
        setfacl -m g:组名:权限 文件或目录      #设置用户组的ACL权限

setfacl -m u:用户:权限 -R 父级目录/   #递归设置"父级目录及其内已存在的文件"的ACL权限.    -R 递归  
setfacl -m d:u:用户:权限 -R 父级目录/    "ACL默认递归设置权限。 注意:默认递归权限只能赋予目录且只对之后的新建文件生效."



[注意.如果给目录赋予ACL权限, 则一般情况下两条命令都要输入]:
也即 递归与默认的区别:
setfacl -m u:用户:rx -R 目录/ #对目录内已经存在的文件生效
setfacl -m d:u:用户:rwx -R 目录/ #对目录内以后新建的文件生效

[注意.递归会产生"权限溢出"的问题]: 当递归给目录x执行权限时, 同时会给目录内的文件和目录赋予x执行权限.
x执行权限对目录是可进入权限,但是对文件是可执行权限(属于非法操作),由此造成权限溢出.
解决办法是通过shell编程分别赋予目录和文件不同的权限模式.

删除ACL权限

setfacl -x u:用户 文件或目录/        #删除指定用户的ACL权限
setfacl -x g:用户组 文件或目录/        #删除指定用户组的ACL权限
setfacl -b 文件或目录/             #删除该文件或目录的所有ACL权限

2-8-5-chattr

Linux chattr命令用于改变文件属性。

这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

1. a:让文件或目录仅供附加用途。
2. b:不更新文件或目录的最后存取时间。
3. c:将文件或目录压缩后存放。
4. d:将文件或目录排除在倾倒操作之外。
5. i:不得任意更动文件或目录。
6. s:保密性删除文件或目录。
7. S:即时更新文件或目录。
8. u:预防意外删除。
用chattr命令防止系统中某个关键文件被修改:

chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf
会显示如下属性

----i-------- /etc/resolv.conf
让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:

chattr +a /var/log/messages

常见于messages文件的权限,清日志使用>messages命令

2-9-rpm相关命令

2-9-1-rpm包安装

命令格式:rpm [参数] 软件包

参数:

-iinstall 的意思, 安装软件包

-v 显示附加信息,提供更多详细信息

-V 校验,对已经安装的软件进行校验

-h --hash 安装时输出####标记

rpm -ivh 包全名

2-9-2-rpm 查询功能

用法:rpm -q(query) 常与下面参数组合使用

-a(all) 查询所有已安装的软件包

-f(file)系统文件名(查询系统文件所属哪个软件包),反向查询

-i 显示已经安装的 rpm 软件包信息,后面直接跟包名

-l(list) 查询软件包中文件安装的位置

-p 查询未安装软件包的相关信息,后面要跟软件的命名

-R 查询软件包的依赖性


查看软件包内容是否被修改

rpm -V 包名

rpm -Vf 文件路径

注:如果出现的全是点,表示测试通过
出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件
再后面的 c 文件名,它表示的是文件类型
c 配置文件
d 普通文件
g 不该出现的文件,意思就是这个文件不该被这个包所包含
l 授权文件(license file)
r 描述文件

2-9-3-rpm包卸载和升级

卸载
rpm -e 包名
-nocteps选项,即可以不检测依赖性直接卸载,但此方式不推荐大家使用,因为此操作很可能导致其他软件进程也无法使用。


升级
rpm -Uvh 包名
-U(大写)选项的含义是:如果该软件没安装过则直接安装;若没安装则升级至最新版本

在做RPM软件适配的时候,经常会出现需要自己安装额外的安装包,包名中的版本号不一致也会出现提示,要安装统一版本号的软件包,并且还会出现对更新软件包的依赖,在已经存在软件包的情况下,按需升级软件包,可以使用升级安装:

rpm -Uvh *.rpm

如果升级出错,可以执行强制安装实现对软件包的版本更新:

rpm -ivh --replacefiles --force --nodeps *.rpm

如果想要强制卸载某软件包,可以使用如下命令:

rpm -e *.rpm --nodeps

注意:在有很多依赖时,不推荐强制卸载,如果非要试一试,要做好系统备份啊~~

另外,一个使用的查看软件包安装脚本的命令:

rpm --script -qp *.rpm

2-10-配置yum源

2-10-1-本地配置yum源文件

vim /etc/yum.repos.d/centos7.repo
#必须以.repo结尾

[centos7]
name=CentOS7
baseurl=file:///mnt
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-CentOS-7


注释:
[centos7]              #yum 源名称,在本服务器上唯一的,用来区分不同的 yum 源
name= CentOS7          #对 yum 源描述信息
baseurl=file:///mnt    #yum 源的路径,提供方式包括 FTP(ftp://...)、HTTP(http://...)、
                       #本地(file:///...光盘挂载目录所在的位置)
enabled=1              #为 1,表示启用 yum 源;0 为禁用
gpgcheck=0             #为 1,使用公钥检验 rpm 包的正确性;0 为不校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    #指定进行 rpm 校验的公钥文件地址

2-10-2-网络配置yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


wget 下载文件 ,-O 将 wget 下载的文件,保存到指定的位置,保存时可以重新起一个名字,或者直接写
一个要保存的路径,这样还用原来的文件名

baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/

注:$releasever 系统的版本的值等于

cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)

$basearch 等于:x86_64

2-11-yum 使用

yum 常用操作:

yum install -y httpd   #安装软件包, -y 直接安装

yum -y update          #升级软件包,改变软件设置和系统设置,系统版本内核都升级

yum -y upgrade         #升级软件包,不改变软件设置和系统设置,系统版本升级,内核不改变

yum -y update          #不加任何包,表示整个系统进行升级

yum info httpd         #查询 rpm 包作用

yum provides /usr/bin/find      #查看命令是哪个软件包安装的

yum -y remove 包名      #卸载

yum search keyword     #按关键字搜索软件包

yum grouplist          #查看有哪些软件包组

2-12-tar

作用:打包、压缩文件

查看 man tar

用法:tar [OPTION...] [FILE]...

参数:

-c   create 创建文件

-x   -extract [ˈekstrækt] 提取 解压还原文件

-v   --verbose 显示执行详细过程

-f   --file 指定备份文件

-t   --list 列出压缩包中包括哪些文件,不解包,查看包中的内容

-C(大写)  --directory 指定解压位置

示例:
#指定解压位置
tar xvf grub.tar.bz2 -C /opt/

#将文件back/和/etc/passwd打包,名称伟back.tar,放在/boot/grub目录下
tar -cvf back.tar /boot/grub back/ /etc/passwd  

#不解包,查看包中的内容
tar -tvf grub.tar
tar -xf grub.tar


2-12-1-tar 归档+压缩:

语法:tar czvf newfile.tar.gz SOURCE

常用参数:

-z  --gzipgzip 方式压缩 扩展名: tar.gz

-j  以 bz2 方式压缩的 扩展名:tar.bz2

-J  以 xz 方式压缩 扩展名:tar.xz


例 1:创建.tar.gz 包

tar zcvf etc.tar.gz /etc    #归档,注意备份的名字后缀
tar zxvf etc.tar.gz         #解压缩2:创建.tar.bz2 包
语法: #tar jcvf newfile.tar.bz2 SOURCE

tar -jcvf etc.tar.bz2 /etc
tar -jxvf etc.tar.bz2 /etc    #解压缩
tar jxvf etc.tar.bz2 -C /opt  #解压到 opt 目录下3:创建.tar.xz 包
tar -Jcvf etc.tar.xz /etc
tar -xvf etc.tar.xz    #tar.xz 这类包,解压缩
或:
tar -Jxvf etc.tar.xz 

2-13-zip 管理压缩文件

zip 是压缩程序
unzip 是解压程序。
-d 目录  :解压到指定的目标

#压缩文件
zip a.zip /etc/passwd

#压缩目录
zip -r grub.zip /boot/grub

#解压缩
unzip grub.zip
unzip grub.zip -d /opt/ # -d 解压到指定的目标/opt

2-14-file

作用: file - determine file type #确定文件类型

用法: file /etc/passwd

注:linux 系统不根据后缀名识别文件类型

2-15-du

作用:查看目录大小

用法:
du /etc
du -sh * 查看目录下每个文件的大小

2-16-df

作用:查看分区大小

用法:df -h 快速查看磁盘大小和存储空间

2-17-sort

作用:排序

用法:sort [option] [filename]

参数:
-n 按数据排数,默认从小到大
-M 按月份排序
-r 反序排序
-t 指定一个用来区分键位置字符
-k 后面跟数字,指定按第几列进行排序

sort -t ":" -k3 -r /etc/passwd | more #按: 做分隔符,以第 3 列,也就是用户 UID,来从大到小排序

du -h /etc | sort -r | more #把 etc 目录下所有文件,按从大到小排序

2-18-使用 ps 查看进程工具

1、ps 查看进程工具

常用的参数:

a: 显示跟当前终端关联的所有进程

u: 基于用户的格式显示(U: 显示某用户 ID 所有的进程)

x: 显示所有进程,不以终端机来区分进程

ps aux 是用 BSD 的格式来显示进程。
ps -ef 是用标准的格式显示进程

常用的选项组合 ps -aux

USER: 启动这些进程的用户

PID: 进程的 ID

%CPU 进程占用的 CPU 百分比;

%MEM 占用内存的百分比;

VSZ:进程占用的虚拟内存大小(单位:KB)

RSS:进程占用的物理内存大小(单位:KB)

STAT:该程序目前的状态,Linux 进程有 5 种基本状态:
    R :该程序目前正在运作,或者是可被运作;
    S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。
    T :该程序目前正在侦测或者是停止了;
    Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
        D 不可中断状态.

START:该 process 被触发启动的时间;

TIME :该 process 实际使用 CPU 运作的时间。

COMMAND:该程序的实际指令

常用的选项组合 ps -ef

e 显示所有进程
-f 显示完整格式输出


UID: 启动这些进程的用户

PID: 进程的 ID

PPID: 父进程的进程号

C: 进程生命周期中的 CPU 利用率

STIME: 进程启动时的系统时间

TTY: 表明进程在哪个终端设备上运行。如果显示 ?表示与终端无关,这种进程一般是内核态进程。另外,
    tty1-tty6 是本机上面的登入者程序,若为 pts/0 等,则表示运行在虚拟终端上的进程。

TIME: 运行进程一共累计占用的 

CPU 时间

CMD: 启动的程序名称

2-19-uptime查看cpu负载工具

作用:查看 CPU 负载工具  

消息详解

例:13:22:30 up 20days, 2 users, load average: 0.06, 0.60, 0.48

消息解释
13:22:30当前时间
up 20days系统运行时间 ,说明此服务器连续运行 20 天了
2 users当前登录用户数
load average: 0.06, 0.60, 0.48系统负载,即任务队列的平均长度。 三个数值分别为 1

分钟、5 分钟、15 分钟前到现在的平均值。

2-20-top动态管理进程命令

第一行:和uptime弹出的内容相同

第二行、第三行:

字段含义
Tasks: 481 total进程总数
1 running正在运行的进程数
480 sleeping睡眠的进程数
0 stopped停止的进程数
0 zombie僵尸进程数
Cpu(s): 0.0% us系统用户进程使用 CPU 百分比。
0.0% sy内核中的进程占CPU的百分比
0.0% ni用户进程空间内改变过优先级的进程占用 CPU 百分比
98.7% id空闲CPU百分比
0.0% wacpu 等待 I/0 完成的时间总量
0.0% hi(了解)硬中断消耗时间:硬中断,占的 CPU 百分比。硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的 IRQ(中断请求)。基于 IRQ,CPU 可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)
0.0% si(了解)软中断消耗时间:软中断,占的 CPU 百分比。通常,软中断是一些对 I/O 的请求。这些请求会调用内核中可以调度 I/O 发生的程序。对于某些设备,I/O 请求需要被立即处理,而磁盘 I/O 请求通常可以排队并且可以稍后处理。根据 I/O 模型的不同,进程或许会被挂起直到 I/O 完成,此时内核调度器就会选择另一个进程去运行。I/O 可以在进程之间产生并且调度过程通常和磁盘 I/O 的方式是相同
0.0 st (steal 偷)st:虚拟机偷取物理的时间。比如:物理机已经运行了 KVM,XEN 虚拟机。KVM 虚拟机占用物理机的 cpu 时间

第四行、第五行:内存信息

字段含义
Mem: 2033552k total物理内存总量
340392k used使用的物理内存总量
1376636k free空闲内存总量
316524k buff/cache用作内核缓存的内存量。和 free -m 一个意思
Swap: 2017948k total交换区总量
0k used使用的交换区总量
192772k free空闲交换区总量
1518148 avail Mem总的可利用内存是多少

注:如果 swap 分区,被使用,那么你的内存不够用了。

第 七行进程信息

列名含义
PID进程id
USER进程所有者的用户名
PR优先级(由内核动态调整),用户不能
NI进程优先级。 nice 值。负值表示高优先级,正值表示低优先级,用户可以自己调整
VIRT(virtual memory usage)虚拟内存,是进程正在使用的所有内存(ps 中标为 VSZ)
VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请 100m 的内存,但实际只使用了 10m,那么它会增长
100m,而不是实际的使用量
RES(resident memory usage)是进程所使用的物理内存。实际实用内存(ps 中标为 RSS)RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括 swap out
2、包含其他进程的共享
3、如果申请 100m 的内存,实际使用 10m,它只增长 10m,与 VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

| SHR | 共享内存大小,单位 kb
SHR:shared memory 共享内存
1、除 M 了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out 后,它将会降下来
S 进程状态
D=不可中断的睡眠状态
R=运行中或可运行
S=睡眠中
T=已跟踪/已停止
Z=僵停 |
| %CPU | 上次更新到现在的 CPU 时间占用百分比 |
| %MEM | 进程使用的物理内存百分比 |
| TIME+ | 进程使用的 CPU 时间总计,单位 1/100 秒 |
| COMMAND | 命令名/命令行 |

top 快捷键:

默认 3s 刷新一次,按 s 修改刷新时间

按空格 :立即刷新。

q 退出

P:按 CPU 排序

M:按内存排序

T 按时间排序

p: 进程 IP,查看某个进程状态

数字键 1:显示每个内核的 CPU 使用率

u/U:指定显示的用户

h:帮助


2-21-lsof 命令

lsof 命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)

-i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )

-p<进程号>:列出指定进程号所打开的文件;

2-22-pstree工具

pstree:(display a tree of processes)以树状图显示进程,只显示进程的名字,且相同进程合并显示。
格式
pstree
pstree -p        #以树状图显示进程,还显示进程 PID。

2-23-系统任务相关的几个命令(了解)

& 用在一个命令的最后,可以把这个命令放到后台执行.

ctrl+z 将一个正在前台执行的命令放到后台,并且暂停.

jobs 查看当前有多少在后台运行的进程.它是一个作业控制命令

fg (foreground process) 将后台中的命令调至前台继续运行, 如果后台中有多个命令,可以用fg %jobnumber 将选中的命令调出,%jobnumber 是通过 jobs 命令查到的后台正在执行的命令的序号(不是 pid)

bg (background process) 将一个在后台暂停的命令,变成继续执行; 如果后台中有多个命令,可以用
bg %jobnumber 将选中的命令调出,%jobnumber 是通过 jobs 命令查到的后台正在执行的命令的序号(不是 pid)

2-24-kill 关闭进程

关闭进程 3 个命令:kill killall pkill

kill 关闭进程:kill 进程号 关闭单个进程

killallpkill 命令用于杀死指定名字的进程

通过信号的方式来控制进程的
kill -l =====> 列出所有支持的信号(了解) 用最多的是: 9 信号

信号编号信号名
1SIGHUP重新加载配置
2SIGINT键盘中断 crtl+c
3SIGQUIT退出
9SIGKILL强制终止
15SIGTERM终止(正常结束),缺省信号
18SIGCONT继续
19SIGSTOP停止
20SIGTSTP暂停 crtl+z

2-25-tee命令

功能:读取标准输入的数据,并将其内容输出成文件。

语法:tee [-a][--help][--version][文件...]

参数:

-a, --append

内容追加到给定的文件而非覆盖

--help 在线帮助

tee 指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件


例 1:将磁盘使用的信息写入文件

df -h | tee disk.log

例 2:将文件系统使用的信息追加到文件

df -h | tee -a disk.log

注: 可以使用来记录日志

2-26-查找文件命令

which 查看可执行文件的位置

whereis 查看可执行文件的位置及相关文件

locate 配合数据库缓存,快速查看文件位置

grep 过滤匹配,它是一个文件搜索工具

find 查找相关文件

2-26-1-locate

locate 命令和 find -name 功能差不多,是它的另外一种写法,但是这个要比 find 搜索快的多,因为 find命令查找的是具体目录文件,而 locate 它搜索的是一个数据库/var/lib/mlocate/mlocate.db,这个数据库中存

有本地所有的文件信息;这个数据库是 Linux 自动创建并每天自动更新维护。相关的配置信息在

/etc/updatedb.conf,查看定时任务信息在/etc/cron.daily/mlocate

touch /opt/xuegod.txt

locate xuegod.txt #发现找不到

updatedb #如果对当天文件查找,需要手动更新数据库 updatedb


2-26-2-grep 查找使用

作用:过滤,它能够使用正则表达式来搜索文本,并把结果打印出来

参数:

-v 取反

-i 忽略大小写

^# 以#开头

#$ 以#结尾

^$ 空行

-n 对过滤的内容加上行号

| 或者的意思


2-26-3-find 命令使用

格式:find pathname -options [-print]

命令字 路径名称 选项 输出

参数
:
pathname: find 命令所查找的目录路径,不输入代表当前目录例如用 . 来表示当前目录,用 / 来表示系
            统根目录。

find 命令选项:

-name 按照文件名查找文件。 “名称”

-perm 按照文件权限来查找文件。666 777-user 按照文件属主来查找文件

-group 按照文件所属的组来查找文件

-mtime -n / +n 按照文件的更改时间来查找文件,

- n 表示文件更改时间距现在 n 天以内

+ n 表示文件更改时间距现在 n 天以前

-type 查找某一类型的文件
    b - 块设备文件
    d - 目录
    c - 字符设备文件
    p - 管道文件
    l- 符号链接文件
    f - 普通文件

-size n 查找符合指定的文件大小的文件

-exec 对匹配的文件执行该参数所给出的其他 linux 命令, 相应命令的形式为' 命令 {} \;,注
        意{ }\;之间的空格,{}代表查到的内容

2-27-软链接和硬链接

2-27-1-软链接

语法:ln -s 源文件 软链接的名字
跨分区创建(源文件必须写绝对路径)

注:源文件被删除,链接文件失效

2-27-2-硬链接

语法格式:ln 源文件 目标文件

注意:源文件被删除,不影响链接文件的正常使用,不能跨分区创建

2-28-RAID磁盘阵列

RAID 的创建有两种方式:软 RAID(通过操作系统软件来实现)和硬 RAID(使用硬件阵列卡);在企业中用的最多的是:raid1、raid5 和 raid10。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-665LVUyK-1691634830317)(RAID磁盘阵列.png)]

RAID关键技术

镜像:提供了数据的安全性;

chunk条带(块大小也可以说是条带的粒度),它的存在的就是为了提高I/O,提供了数据并发性

数据的校验:提供了数据的安全

RAID-0工作原理

条带(strping),也是我们最早出现的RAID模式

需磁盘数量:2块以上(大小最好相同),是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可.

特点:成本低,可以提高整个磁盘的性能和吞吐量。RAID0没有提供冗余或错误修复能力,速度快.

任何一个磁盘的损坏将损坏全部数据;磁盘利用率为100%。

RAID-1工作原理

mirroring(镜像卷),需要磁盘两块以上

原理:是把一个磁盘的熟路镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件(同步)

RAID-1 mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好将分区的大小分为一样),数据有冗余,在存储时同时写入两块硬盘,实现了数据备份

RAID-5工作原理

需要三块以上硬盘,可以提供热备盘实现故障的恢复;只损坏一块,没有问题。但如果同时损坏两块磁盘,则数据将会损坏,空间利用率:(n-1)/n 2/3

2-28-1-硬RAID

需要raid卡,我们的磁盘是接在RAID卡的,由它统一管理和控制,数据也由它来进行分配和维护,它有自己的CPU,处理速度快

2-28-2-软RAID

通过操作系统实现,Linux内核中有一个md(multiple devices)模块在底层管理RAID设备,它会在应用层给我们提供一个应用程序的工具mdadm,mdadm是Linux下用于创建和管理软件RAID的命令

mdadm命令常见参数解释

参数命令
-C或–creat建立一个新阵列
-A激活磁盘阵列
-D或–detail打印磁盘阵列设备的详细信息
-s或–scan扫描配置文件或/proc/mdstat得到阵列缺失信息
-f将设备状态定为故障
-a或-add添加设备到阵列
-v–verbose显示详细信息
-r移除设备
-l或–level=设定磁盘阵列的级别
-n指定阵列成员(分区/磁盘)的数量
-x指定阵列中备用盘的数量
-c设定阵列的块chunk块大小,单位为KB
-G改变阵列大小或形态
-S停止阵列

2-29-LVM管理

LVM逻辑卷管理,就是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在餐盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越磁盘

物理存储介质(the physical media):LVM存储介质可以是磁盘分区,整个磁盘,RAID阵列或SAN磁盘,设备必须初始化为LVM物理卷,才能与LVM结合使用

物理卷PV(physical volume):物理卷就是LVM的基本存储介质(如分区,磁盘等)比较,却包含有与LVM相关的管理参数,创建物理卷它可以用硬盘分区,也可以用硬盘本身

卷组VG(volume group):一个LVM卷组由一个或多个物理卷组成

逻辑卷LV(logical volume):LV建立在VG之上建立文件系统

PE(physical extents):PV物理卷中可以分配的最小存储单元,PE的大小是可以指定的,默认为4MB

LE(logical extent):LV逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE的大小和PE是相同且一一对应的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CeLVYeVF-1691634830320)(LVM示意图.png)]

创建并使用LVM卷示例:

创建pv
添加一个sdb磁盘
fdisk /dev/sdb  #创建主分区
ls /dev/sdb*  #查看分区列表
fdisk /dev/sdb
	t
	选择分区号
	8e
	w
pvcreate /dev/sdb{1,2,3,4}  #创建pv
pvdisplay /dev/sdb1  #查看物理卷信息



创建vg卷组
#语法: vgcreate vg名字 pv的名字 可以跟多个pv
vgcreat vg01 /dev/sdb1
vgs
vgdisplay vg01



创建lv
#lvcreate -n 指定新逻辑卷的名称 -L 指定lv大小的size(M,G)vgname 
lvcreate -n lv02 -l 4 vg01
lvs
pvdisplay /dev/sdb1
vgdisplay vg01



文件系统格式与挂载
mkdir /vg01
ls /dev/vg01/  #查看逻辑卷
mkfs.ext4/dev/vg01/lv01
mount /dev/vg01/lv01 /lv01
df -Th /lv01



指定PE大小
#指定PE大小用的参数 -s
vgcreate -s 16M vg02 /dev/sdb2
vgdisplay vg02



LV扩容
vgs  #确认是否有可用的扩容空间,因为空间是从VG里面创建的,并且LV不能跨VG扩容




扩容逻辑卷
vextend -L +30m /dev/vg01/lv01
注意:扩容30m和扩容到30m是不一样的写法
扩容30m:-L +30m
扩容到30m:-L 30m
lvs  #查看LV是否扩容成功
df -Th /lv01




扩容文件系统
#ext4文件系统扩容使用命令语法:resize2f 逻辑卷名称
#xfs文件系统扩容使用命令语法:xfs_growfs 挂载点




vg卷组扩容
vgs
pvcreate /dev/sda3  #创建pv
vgexted vg01 /dev/sdb3 #扩容
vgs




LVM删除
umount卸载 > lvremove lv移除卷组中所有逻辑卷 > vgremove vg 移除卷组 > pvremove 移除pv
umount /lv01
lvremove /dev/vg01/lv01
lvs
vgremove vg01
vgs
pvs
pvremove /dev/sdb1
pvs

2-30-计划任务

分类:

周期性计划任务

临时性计划任务

at

处理仅执行一次就结束的任务

systemctl start atd
~]# at 20:46 #注意:如果是上午时间,后面加上 am,比如 9:20am
at> mkdir /tmp/xuegod #输入你要执行的命令
at> touch /tmp/xuegod/a.txt
at> <EOT> #结束:ctrl+d
~]# at -l #查看计划任务
~]# atq #查看计划任务
检查 at 计划任务运行结果
~]# ls /tmp/xuegod/
a.txt


这个查看,只能看到还没有执行的。如果这个任务已经开始执行或者执行完成了,是看不到的
~]# at -l


~]# at -c 5 #-c 打印任务的内容到标准输出, 查看 5 号计划任务具体内容
查看定时任务内容


删除 at 计划任务
语法: atrm 任务编号
~]# at -l
3 Tue May 22 08:43:00 2018 a root
5 Mon May 21 23:00:00 2018 a root
~]# atrm 5
~]# at -l
3 Tue May 22 08:43:00 2018 a root

crontab

处理周期性任务

crontab 的参数:

crontab -u hr #指定 hr 用户的 cron 服务

crontab -l

#列出当前用户下的 cron 服务的详细内容

crontab -u mk -l #列出指定用户 mk 下的 cron 服务的详细内容

crontab -r #删除 cron 服务

crontab -e #编辑 cron 服务

符号含义示例
*代表取值范围内的数字任意/每
/指定时间的间隔频率*/10
-代表从某个数字到某个数字9-15
,分开几个离散的数字3,6-13,17

2-31-日志服务

在 centos7 中,系统日志消息由两个服务负责处理:systemd-journald 和 rsyslog

/var/log 目录保管由 rsyslog 维护的,里面存放的一些特定于系统和服务的日志文件

日志目录用途
/var/log/message大多数系统日志消息记录在此处。有也例外的:如与身份验证,电子邮件处理相关的定期作业任务等
/var/log/secure安全和身份验证相关的消息和登录失败的日志文件。 ssh 远程连接产生的日志
/var/log/maillog与邮件服务相关的消息日志文件
/var/log/cron与定期执行任务相关的日志文件
/var/log/boot.log与系统启动相关的消息记录
/var/log/dmesg与系统启动相关的消息记录

清除日志:

~]# > /var/log/message

一般不建议清,更不建议使用rm -rf /var/log/message清除,如果使用这条命令,需要重启rsyslog服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FOX8sdsR-1691634830320)(日志优先级.png)]

日志切割配置文件:

**/etc/logrotate.conf 以及 /etc/logrotate.d/ **

logrotate 的执行由 crond 服务调用的。

~]# vim /etc/cron.daily/logrotate #查看 logrotate 脚本内容

日志强制轮询

logcreate -vf 日志文件名(/var/log/mmessage)
-v 显示指令执行过程
-f 强制执行

2-32-Linux网络管理

centos7以上版本默认使用NetworkManager进行网络管理,主要的配置方式有两种nmtui(图形化配置)nmcli(命令行配置)

nmcli命令行配置介绍

nmcli是NetworkManager的一个命令行工具,它提供了使用命令行配置由NetworkManager管理网络连接的方法

nmcli命令的基本格式为:
nmcli [OPTIONS] OBJECT { COMMAND | help }

OBJECT选项可以是general、networking、radio、connection或device等。在日常使用中,最常使用的是-
t, --terse(用于脚本)、-p, --pretty选项(用于用户)及-h, --help选项。用户可以使用“ nmcli help”获取更多
参数及使用信息。

nmcli常用命令

显示NetworkManager状态:
$ nmcli general status

显示所有连接状态:
$ nmcli connection show

只显示当前活动连接,如下所示添加 -a, --active:
$ nmcli connection show --active

显示由NetworkManager识别到设备及其状态:
$ nmcli device status

使用nmcli工具启动和停止网络接口,在root权限下执行如下命令:
nmcli connection up id em1
nmcli device disconnect em1

设备管理
使用如下命令,NetworkManager将连接到对应网络设备,尝试找到合适的连接配置,并激活配置。

$nmcli device connect "$IFNAME"

说明: 如果不存在相应的配置连接,NetworkManager将创建并激活具有默认设置的新配置文件。
使用如下命令,NetworkManager将断开设备连接,并防止设备自动激活。

$nmcli device disconnect "$IFNAME"

说明: 如果不存在相应的配置连接,NetworkManager将创建并激活具有默认设置的新配置文件。
使用如下命令,NetworkManager将断开设备连接,并防止设备自动激活。

配置动态IP连接

要使用 DHCP 分配网络时,可以使用动态IP配置添加网络配置文件,命令格式如下:

nmcli connection add type ethernet con-name connection-name ifname interface-name

要例如创建名为net-test的动态连接配置文件,在root权限下使用以下命令:

要例如创建名为net-test的动态连接配置文件,在root权限下使用以下命令:

nmcli connection add type ethernet con-name net-test ifname enp3s0

Connection 'net-test' (a771baa0-5064-4296-ac40-5dc8973967ab) successfully added

在root权限下使用以下命令激活网络连接:

nmcli con up net-test

检查这些设备及连接的状态,使用以下命令:

$ nmcli device status

添加静态 IPv4 配置的网络连接,可使用以下命令:

nmcli connection add type ethernet con-name connection-name ifname interface-name ip4 address gw4 address

例如创建名为 net-static的静态连接配置文件,在root权限下使用以下命令:

例如创建名为 net-static的静态连接配置文件,在root权限下使用以下命令:

nmcli con add type ethernet con-name net-static ifname enp3s0 ip4 192.168.0.10/24 gw4 192.168.0.254

激活新的网络连接,在root权限下使用以下命令:

nmcli con up net-static ifname enp3s0

检查这些设备及连接的状态,使用以下命令:

$ nmcli device status

查看配置的连接详情,使用以下命令(使用 -p, --pretty 选项在输出结果中添加标题和分段):

$ nmcli -p con show net-static

使用nmcli命令为网络连接配置静态路由,使用命令如下:

$ nmcli connection modify enp3s0 +ipv4.routes "192.168.122.0/24 10.10.10.1"

在root权限下使用 ip route 命令显示当前的 IP 路由表

# ip route

启动关闭指定网卡:

 ~]# ifconfig ens38 down
 ~]# ifconfig
 ~]# ifconfig ens38 up

2-33-查看端口的监听状态

netstat 命令: 查看系统中网络连接状态信息,

常用的参数格式 : netstat -anutp
  -a, --all 显示本机所有连接和监听的端口
  -n, --numeric don't resolve names 以数字形式显示当前建立的有效连接和端口
  -u 显示 udp 协议连接
  -t 显示 tcp 协议连接
  -p, --programs 显示连接对应的 PID 与程序名

2-34-路由信息

查看路由信息

route -n

注:0.0.0.0 192.168.1.1 0.0.0.0 #0.0.0.0 是 32 位二进制转换成十进制的写法。32 位子
网掩码都为 0。表示 IP 地址 32 位都是主机位。如果 IP 地址是 0.0.0.0,子网掩码也是0.0.0.0,则表示所有的 IP地址,或者是没有 IP 地址。

添加/删除路由条目

# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
# route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]

增加 (add) 与删除 (del) 路由的相关参数:
-net :表示后面接的路由为一个网域;
-host :表示后面接的为连接到单部主机的路由;
netmask :与网域有关,可以设定 netmask 决定网域的大小;
gw :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等

例:
route add -net 192.168.2.0 netmask 255.255.255.0 dev ens38

2-35-Linux文本三剑客

grep更适合单纯地查找或匹配文本;sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。

grep

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并将匹配的行打印出来(匹配到的标红)。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看做是文件名。搜索的结果被送到标准输出,不影响原文件内容

grep可用于shell脚本,因为grep通过一个返回状态值来说明搜索的状态,如果模板搜索成功,则返回0;如果搜索不成功,则返回1;如果搜索的文件不存在,则返回2。可利用这些返回值进行一些自动化的文本处理工作。

egrep等同于grep -E:扩展的正则表达式(除了<,>,\b之外,使用其他正则都可以去掉\)

命令格式:

grep [option] pattern file

命令用途:用于过滤/搜索特定字符。可配合正则表达式来进行使用,使用上十分灵活。

命令参数:

    -A<显示行数>:除了显示符合样式的那一行之外,并显示该行之后的内容。
    -B<显示行数>:除了显示符合样式的那一行之外,并显示该行之前的内容。
    -C<显示行数>:除了显示符合样式的那一行之外,并显示该行之前后的内容。
    -c:统计匹配的行数
    -e:实现多个选项间的逻辑or关系
    -E:扩展的正则表达式
    -f file:从file获取pattern匹配
    -F:相当于fgrep
    -i --ignore-case:忽略字符大小写的差别
    -n:显示匹配的行号
    -o:仅显示匹配到的字符串
    -q:静默模式,不输出任何信息
    -s:不显示错误信息
    -v:显示不被pattern匹配到的行,相当于[^]反向匹配
    -w:匹配整个单词


grep搭配正则表达式使用:

grep -n "" test.txt  #""内什么都没有,默认匹配全文件的内容,因此会显示整个文件的内容

grep -n "^$" text.txt  #^$表示空行

grep -n ".n" text.txt  #.表示匹配任意一个字符

grep -n "\." text.txt  #\.转义之后仅代表字符.

grep -n "n*" text.txt  #匹配前一个字符0个或多个,假如匹配0个的时候,实际上就等于空,这种情况默认就匹配全文件的内容,匹配的字符大于0,默认输出匹配的行

grep -n ".*" text.txt  #匹配任意字符

grep -n "[abc]" text.txt  #匹配a或b或c

grep -n "[^abc]" text.txt  #匹配不是a或b或c的任意字符

grep搭配扩展正则表达式使用:

egrep "^[abc]+" text.txt  #查找以括号里的任意字符开头且重复前一个字符一次或多次的行

egrep "^[abc]?" text.txt  #?匹配前面的字符0次或一次,如果匹配0次,就默认为空,显示全文

netstat -antup | egrep "1137 | 1056"  #|表示或,查找多个字符

sed

sed基础

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为**“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下一行,执行下一个循环。如果没有使用诸如“D”的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间**。这样不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出或-i。

功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作。

命令格式

sed [选项] [command] 文件名

常用选项

  • -n:不输出模式空间内容到屏幕,即不自动打印,只打印匹配到的行
  • -e:多点编辑,对每行处理时,可以有多个script
  • -f:把script写到文档中,在执行sed时,-f指定文件路径;如果有多个script,换行写入
  • -r:支持扩展的正则表达式
  • -i:直接将处理的结果写入文件
  • -i.bak:在将处理的结果写入文件之前备份一份

地址定界

  • 不给地址:对全文进行处理
  • 单地址:
    • #: 指定的行
    • /pattern/:被此处模式所能够匹配到的每一行
  • 地址范围:
    • #,#
    • #,+#
    • /pat1/,/pat2/
    • #,/pat1/
  • ~:步进
    • sed -n ‘1~2p’ 只打印奇数行 (1~2 从第1行,一次加2行)
    • sed -n ‘2~2p’ 只打印偶数行

编辑命令

  • d:删除模式空间匹配的行,并立即启用下一轮循环
  • p:打印当前模式空间内容,追加到默认输出之后
  • a:在指定行后面追加文本,支持使用\n实现多行追加
  • i:在行前面插入文本,支持使用\n实现多行追加
  • c替换行为单行或多行文本,支持使用\n实现多行追加
  • w:保存模式匹配的行至指定文件
  • r:读取指定文件的文本至模式空间中匹配到的行后
  • =:为模式空间中的行打印行号
  • !:模式空间中匹配行取反处理
  • s///:查找替换,支持使用其它分隔符,如:s@@@,s###;
    • 加g表示行内全局替换;
    • 在替换时,可以加一下命令,实现大小写转换
    • \l:把下个字符转换成小写。
    • \L:把replacement字母转换成小写,直到\U或\E出现。
    • \u:把下个字符转换成大写。
    • \U:把replacement字母转换成大写,直到\L或\E出现。
    • \E:停止以\L或\U开始的大小写转换

常用格式:

sed "/aaa/p" demo 		#匹配到的行会打印一遍,不匹配的行也会打印

sed -n "/aaa/p" demo 	#仅打印匹配的行,-n,不显示没匹配的行

sed -e "s/a/A/" -e "s/b/B/" demo 	#-e多点编辑

cat sedscript.sed 
s/a/A/g
sed -f sedscript.sed demo 		#-f 使用文件处理

 sed -i.bak "s/a/A/g" demo 		#-i.bak直接对文本进行处理,同时将原文本备份为.bak文件
 
  sed -i "s/a/A/g" demo 		#-i直接对文本进行处理

地址界定示例:

sed -n "p" demo 	#不指定行,打印全部内容

 sed "2s/b/B/g" demo	#替换第2行的b为B
 
 sed -n "1,2p" demo		#打印1-2行
 
 sed -n "/aaa/,/DD/p" demo	#打印aaa-DD行
 
 sed -n "2,/DD/p" demo		#打印2-DD行
 
 sed "1~2s/[aA]/E/g" demo	#将奇数行的a或A替换为E

编辑命令示例:

[root@aliyun shell]# cat demo 
aaa
bbbb
AABBCCDD
[root@aliyun shell]# sed "2d" demo	#删除第2行
aaa
AABBCCDD
[root@aliyun shell]# sed -n "2p" demo	#打印第二行
bbbb
[root@aliyun shell]# sed "2a123" demo	#将123添加到第二行后面
aaa
bbbb
123
AABBCCDD
[root@aliyun shell]# sed "1i123" demo	#将123添加到第一行前面
123
aaa
bbbb
AABBCCDD
[root@aliyun shell]# sed "3c123\n456" demo 	#将123\n456替换第三行
aaa
bbbb
123
456
[root@aliyun shell]# sed -n "3w/home/shell/demo3" demo	#将第三行写到/home/shell/demo3文件中
[root@aliyun shell]# cat demo3
AABBCCDD
[root@aliyun shell]# sed "1r/home/shell/demo3" demo		#将/home/shell/demo3文件中内容读取到第一行后面
aaa
AABBCCDD
bbbb
AABBCCDD
[root@aliyun shell]# sed -n "=" demo	#打印行号
1
2
3
[root@aliyun shell]# sed "s@[a-z]@\u&@g" demo	#将所有小写字母转换为大写
AAA
BBBB
AABBCCDD
[root@aliyun shell]# sed -n '2!p' demo			#除第二行内容外,全部打印
aaa
AABBCCDD

sed高级编辑命令

格式

  • h:将模式空间中的内容覆盖至保持空间中
  • H:将模式空间中的内容追加至保持空间中
  • g:从保持空间取出数据覆盖至模式空间
  • G:从保持空间取出数据追加至模式空间
  • x:将模式空间中的内容与保持空间中的内容进行互换
  • n:读取匹配到的行的下一行覆盖至模式空间
  • N:读取匹配到的行的下一行追加至模式空间
  • d:删除模式空间中的行
  • D:删除当前模式空间开端到\n的内容(不再传至标准输出),放弃之后的命令,但是对剩余模式空间重新执行sed

awk

awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自于标准输入、一个或多个文件、或其他命令的输出。它支持用户自定义函数和动态正则表达式等功能,是linux/unix下的一个强大的编程工具。它在命令行中使用,但更多是作为脚本使用。awk有很多内建的功能,比如数组、函数等。

语法

awk [选项] '脚本命令' 文件名

常用命令选项

  • -F fs:指定以fs作为输入行的分隔符,awk命令默认分隔符为空格或制表符
  • -v var=value:在执行处理过程之前,设置一个变量var,并给其设置初始值
  • -f scriptfile:从脚本文件中读取awk命令,以取代直接在命令行中输入指令

awk的强大之处在于脚本命令,它由两部分组成,分别为匹配规则和执行命令,如下所示:

'匹配规则{执行命令}'

这里的匹配规则,用来指定脚本命令中可以作用到文本内容中的具体行,可以使用字符串(比如/demo/,表示查看含有demo字符串的行)或正则表达式指定。

注:整个脚本命令是用单引号括起来,而其中的执行命令部分需要用大括号括起来

变量描述
FS输入字符分隔符,默认为空白字符
OFS输出字段分隔符,默认为空白字符
RS输入记录分隔符,指定输入时的换行符,原换行符仍有效
ORS输出记录分隔符,输出时用指定符号代替换行符
NF字符数量,共有多少个字段, N F 引用最后一列, NF引用最后一列, NF引用最后一列,(NF-1)引用倒数第二列
NR行号,后可跟多个文件,第二个文件行号则继续从第一个文件最后行号开始
FNR各文件分别计数,行号;后跟一个文件和NR一样,跟多个文件,第二个文件行号从1开始
FILENAME当前文件名
ARGC命令行参数的个数
ARGV数组,保存的是命令行所给定的各参数,查看参数

示例:

[root@aliyun shell]# cat awkdemo 
hello:world
linux:redhat:lalala:hahaha
along:love:you
[root@aliyun shell]# awk -v FS=":" '{print $1,$2}' awkdemo  #FS指定输入分隔符
hello world
linux redhat
along love
[root@aliyun shell]# awk -v FS=":" -v OFS="---" '{print $1,$2}' awkdemo  #OFS指定输出分隔符
hello---world
linux---redhat
along---love
[root@aliyun shell]# awk -v RS=":" '{print $1,$2}' awkdemo
hello 
world linux
redhat 
lalala 
hahaha along
love 
you 
[root@aliyun shell]# awk -v FS=":" -v ORS="---" '{print $1,$2}' awkdemo 
hello world---linux redhat---along love---
[root@aliyun shell]# awk -F: '{print NF}' awkdemo
2
4
3
[root@aliyun shell]# awk -F: '{print $(NF-1)}' awkdemo 
hello
lalala
love
[root@aliyun shell]# awk END'{print NR}' awkdemo
3

自定义变量

1、先定义变量,后执行动作

[root@aliyun shell]# cat awkdemo 
hello:world
linux:redhat:lalala:hahaha
along:love:you

[root@aliyun shell]# awk -v name="along" -F: '{print name":"$0}' awkdemo
along:hello:world
along:linux:redhat:lalala:hahaha
along:along:love:you

2、先执行动作,后定义变量

[root@aliyun shell]# awk -F: '{print name":"$0;name="along"}' awkdemo
:hello:world
along:linux:redhat:lalala:hahaha
along:along:love:you

3、调用脚本进行定义

[root@aliyun shell]# cat awk.txt 
{name="along";print name,$1}

[root@aliyun shell]# awk -F: -f awk.txt awkdemo
along hello
along linux
along along
[root@aliyun shell]# 

2-36-正则表达式

分类

POSIX规范将正则表达式分为了两种

  • 基本正则表达式(BRE,basic regular expression)
  • 高级功能:扩展正则表达式(ERE,extended regular expression)

RE和ERE的区别仅仅是元字符的不同

  • BRE只承认的元字符有 ^ $ . [] * 其他字符识别为普通字符;
  • ERE则添加了 () {} ? + | 等
  • 只用在用反斜杠“\”进行转义的情况下,字符串(){}才会在BRE被当做元字符处理,而在BRE中,任何元字符前面加上反斜杠反而会使其被当做普通字符来处理。

基本正则表达式

字符描述
^^word:搜索以word开头的内容
$word$:搜索以word结尾的内容
^$表示空行,不是空格
.代表且只能代表任意一个字符(不匹配空行)
\转义字符,让有特殊含义的字符脱掉马甲,现出原形,如 \. 只表示小数点
*匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
.*任意长度的任意字符,不包括0次
^.*以任意多个字符串开头,.*尽可能多,有多少算多少,贪婪性
[^abc]匹配不包含^后的任意字符a或b或c,是对[abc]的取反
a\重复前面a字符至少n次,至多m次(如使用egrep或sed -r可去掉斜线)
[abc]匹配包含字符a或b或c

扩展正则表达式

特殊字符描述
+重复前一个字符一次或多次
重复前一个字符0次或1次(.是有且只有一个)
|表示或,查找多个字符串
()分组过滤,被括起来的东西表示一个整体(一个字符)

基础正则表达式和扩展正则表达式的区别

所谓基础正则,实际上就是得需要转义字符配合表达的正则,而扩展正则就是让命令扩展它的权限让其直接就认识正则表达符号

补充说明

预定义
正则表达式描述示例
[:alnum:][a-zA-Z0-9]匹配任意一个字母或数字字符[[:alnum:]]+
[:alpha:]匹配任意一个字母字符(包括大小写字母)[[:alpha:]]
[:blank:]空格与制表符(横向纵向)[[:blank:]]*
[:digit:]匹配任意一个数字字符[[:digit:]]?
[:lower:]匹配小写字母[[:lower:]]
[:upper:]匹配大写字母([[:upper:]]+)?
[:punct:]匹配标点符号[[:punct:]]
[:space:]匹配一个包括换行符,回车等在内的所有空白符[[:space:]]+
[:graph:]匹配任何一个可以看得见的且可以打印的字符[[:graph:]]
[:xdigit:]任何一个十六进制数[[:xdigit:]]+
[:cntrl:]任何一个控制字符(ASCII字符集中的前32个字符)[[:cntrl:]]
[:print:]任何一个可以打印的字符[[:print:]]
元字符

元字符是一种Perl风格的正则表达式,只有一部分文本处理工具支持它,并不是所有的文本处理工具都支持。

正则表达式描述示例
\b单词边界\bcool\b匹配cool,不匹配coolant
\B非单词边界cool\B匹配coolant不匹配cool
\d单个数字字符b\db匹配b2b,不匹配bcb
\D单个非数字字符b\Db匹配bcb不匹配b2b
\w单个单词字符(字母,数字与_)\w匹配1或a,不匹配&
\W单个非单词字符\W匹配&,不匹配1或a
\n换行符\n匹配一个新行
\s单个空白字符x\sx匹配xx,不匹配xx
\S单个非空白字符x\S\x匹配xkx,不匹配xx
\r回车\r匹配回车
\t横向制表符\t匹配一个横向制表符
\v垂直制表符\v匹配一个垂直制表符
\f换页符\f匹配一个换页符

2-37-sosreport诊断数据打包命令

sosreport命令从正在运行的系统生成配置和诊断信息存档,存档文件可以存储在本地或集中,命令来源于sos

语法格式

sosreport [命令参数]

一般生成的打包文件保存在/var/tmp目录下

常用参数:

参数介绍
-l列出所有可用的插件及选项
-n禁用指定的插件
-e启用指定的插件
-a对于所有的插件都启用,将所有布尔值都设置为Ture
-v增加日志报告的详细程度
–no-report禁用HTML报告写入
–config-file CONFIG指定备用配置文件

示例:

列出所有可用的插件及其选项:

[root@linuxcool ~]# sosreport -l

使用-e参数,启用指定apache.log插件:

[root@linuxcool ~]# sosreport -e apache.log

使用-n参数,禁用指定yum.yumlist插件:

[root@linuxcool ~]# sosreport -n yum.yumlist

使用-a参数,启用所有列出来的插件:

[root@linuxcool ~]# sosreport -a

使用批处理模式(不在屏幕输出信息)

]# sosreport --batch

2-38-xsos

xsos是一个帮助用户轻松读取 Linux 系统上的 sosreport 的工具。另一方面,我们可以说它是 sosreport 考官。

它可以立即从 sosreport 或正在运行的系统中汇总系统信息。

xsos 将尝试简化、解析、计算并格式化来自数十个文件(和命令)的数据,以便为你提供有关系统的详细概述。

你可以通过运行以下命令立即汇总系统信息。

# curl -Lo ./xsos bit.ly/xsos-direct; chmod +x ./xsos; ./xsos -ya

两种方法轻松安装 xsos

如果你正在寻找最新的前沿版本。使用以下步骤:

# curl -Lo /usr/local/bin/xsos bit.ly/xsos-direct# chmod +x /usr/local/bin/xsos

下面是安装 xsos 的推荐方法。它将从 rpm 文件安装 xsos

# yum install http://people.redhat.com/rsawhill/rpms/latest-rsawaroha-release.rpm
# yum install xsos

如何在 Linux 上使用 xsos

一旦通过上述方法之一安装了 xsos。只需运行 xsos 命令,不带任何选项,它们会显示有关系统的基本信息。

我们需要份 SOSReport 以使用 xsos 命令进一步阅读。

是的,我已经生成了一个 SOSReport,文件如下。

# ls -lh /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa.tar.xz
9.8M -rw-------. 1 root root 9.8M May 12 10:13 /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa.tar.xz

运行如下命令解开它。

# tar xf sosreport-CentOS7-01-1005-2019-05-12-pomeqsa.tar.xz

要查看全部信息,带上 -a--all 开关运行 xsos

# xsos --all /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa

要查看 BIOS 信息,带上 -b--bios 开关运行 xsos

# xsos --bios /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa
DMIDECODE
BIOS:
	Vend: innotek GmbH
    Vers: VirtualBox
    Date: 12/01/2006
    BIOS Rev:
    FW Rev:
    System:
    Mfr:  innotek GmbH
    Prod: VirtualBox
    Vers: 1.2
    Ser:  0
    UUID: 002f47b8-2af2-48f5-be1d-67b67e03514c
    CPU:    0 of 0 CPU sockets populated, 0 cores/0 threads per CPU    0 total cores, 0 total threads
    Mfr:
    Fam:
    Freq:
    Vers:
    Memory:
    Total: 0 MiB (0 GiB)
    DIMMs: 0 of 0 populated
    MaxCapacity: 0 MiB (0 GiB / 0.00 TiB)

要查看系统基本信息,如主机名、发行版、SELinux、内核信息、正常运行时间等,请使用 -o--os 开关运行 xsos

# xsos --os /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa
OS
	Hostname: CentOS7.2daygeek.com
    Distro:   [redhat-release] CentOS Linux release 7.6.1810 (Core)
    		  [centos-release] CentOS Linux release 7.6.1810 (Core)
              [os-release] CentOS Linux 7 (Core) 7 (Core)
    RHN:      (missing)
    RHSM:     (missing)
    YUM:      2 enabled plugins: fastestmirror, langpacks
    SELinux:  enforcing  (default enforcing)
    Arch:     mach=x86_64  cpu=x86_64  platform=x86_64
    Kernel:
    	Booted kernel:  3.10.0-957.el7.x86_64
        GRUB default:   3.10.0-957.el7.x86_64
        Build version:
        	Linux version 3.10.0-957.el7.x86_64 ([email protected]) (gcc version 4.8.5 			   20150623 (Red      Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018
            Booted kernel cmdline:
            	root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet
                LANG=en_US.UTF-8
            GRUB default kernel cmdline:
            	root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet
                LANG=en_US.UTF-8
            Taint-check: 536870912  (see https://access.redhat.com/solutions/40594)      				29  TECH_PREVIEW: Technology Preview code is loaded
 - - - - - - - - - - - - - - - - - - - 
 Sys time:  Sun May 12 10:12:22 CDT 2019
 Boot time: Sun May 12 09:50:20 CDT 2019  (epoch: 1557672620)
 Time Zone: America/Chicago  Uptime:    22 min,  1 user
 LoadAvg:   [1 CPU] 1.19 (119%), 0.27 (27%), 0.14 (14%)
 /proc/stat:
 	procs_running: 8   procs_blocked: 2    processes [Since boot]: 9005
    cpu [Utilization since boot]:
    	us 1%, ni 0%, sys 1%, idle 99%, iowait 0%, irq 0%, sftirq 0%, steal 0%

要查看 kdump 配置,请使用 -k--kdump 开关运行 xsos

# xsos --kdump /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa
KDUMP CONFIG
	kexec-tools rpm version:
    	kexec-tools-2.0.15-21.el7.x86_64
    Service enablement:
    	UNIT           STATE
        kdump.service  enabled 
    kdump initrd/initramfs:
    	13585734 Feb 19 05:51 initramfs-3.10.0-957.el7.x86_64kdump.img
    Memory reservation config:
    	/proc/cmdline { crashkernel=auto } 
        GRUB default  { crashkernel=auto }
    Actual memory reservation per /proc/iomem: 
    	2a000000-340fffff : Crash kernel
    kdump.conf:
    	path /var/crash
        core_collector makedumpfile -l --message-level 1 -d 31 
    kdump.conf "path" available space:
    	System MemTotal (uncompressed core size) { 1.80 GiB }
        Available free space on target path's fs { 22.68 GiB }  (fs=/) 
    Panic sysctls:
    	kernel.sysrq [bitmask] =  "16"  (see proc man page)
        kernel.panic [secs] =  0  (no autoreboot on panic)
        kernel.hung_task_panic =  0
        kernel.panic_on_oops =  1 
        kernel.panic_on_io_nmi =  0   
        kernel.panic_on_unrecovered_nmi =  0 
        kernel.panic_on_stackoverflow =  0  
        kernel.softlockup_panic =  0 
        kernel.unknown_nmi_panic =  0 
        kernel.nmi_watchdog =  1  
        vm.panic_on_oom [0-2] =  0  (no panic)

要查看有关 CPU 的信息,请使用 -c--cpu 开关运行 xsos

# xsos --cpu /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa
CPU 
	1 logical processors 
    1 Intel Core i7-6700HQ CPU @ 2.60GHz (flags: aes,constant_tsc,ht,lm,nx,pae,rdrand)

要查看内存利用情况,请使用 -m--mem 开关运行 xsos

# xsos --mem /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa
MEMORY
	Stats graphed as percent of MemTotal:   
    	MemUsed    ▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊.....................  58.8%  
        Buffers    ..................................................   0.6%   
        Cached     ▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊...................................  29.9%    			HugePages  ..................................................   0.0% 
        Dirty      ..................................................   0.7% 
    RAM:
    	1.8 GiB total ram
      	1.1 GiB (59%) used
        0.5 GiB (28%) used excluding Buffers/Cached
        0.01 GiB (1%) dirty
    HugePages:  
    	No ram pre-allocated to HugePages
    LowMem/Slab/PageTables/Shmem: 
    	0.09 GiB (5%) of total ram used for Slab
        0.02 GiB (1%) of total ram used for PageTables
        0.01 GiB (1%) of total ram used for Shmem 
    Swap: 
    	0 GiB (0%) used of 2 GiB total

要查看添加的磁盘信息,请使用 -d-disks 开关运行 xsos

# xsos --disks /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa
STORAGE
	Whole Disks from /proc/partitions: 
    	2 disks, totaling 40 GiB (0.04 TiB)
		- - - - - - - - - - - - - - - - - - - - - 
		Disk    Size in GiB  	
		----    -----------
		sda     30   
		sdb     10

要查看网络接口配置,请使用 -e--ethtool 开关运行 xsos

# xsos --ethtool /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa
ETHTOOL 
	Interface Status:
    	enp0s10     0000:00:0a.0  link=up 1000Mb/s full (autoneg=Y)  rx ring 256/4096  drv e1000 v7.3.21-k8-NAPI / fw UNKNOWN  
        enp0s9      0000:00:09.0  link=up 1000Mb/s full (autoneg=Y)  rx ring 256/4096  drv e1000 v7.3.21-k8-NAPI / fw UNKNOWN 
        virbr0      N/A           link=DOWN                          rx ring UNKNOWN   drv bridge v2.3 / fw N/A  
        virbr0-nic  tap           link=DOWN                          rx ring UNKNOWN   drv tun v1.6 / fw UNKNOWN

要查看有关 IP 地址的信息,请使用 -i--ip 开关运行 xsos

# xsos --ip /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa
IP4 
	Interface   Master IF  MAC Address        MTU     State  IPv4 Address
    =========   =========  =================  ======  =====  ================== 
    lo          -          -                  65536   up     127.0.0.1/8 
    enp0s9      -          08:00:27:0b:bc:e9  1500    up     192.168.1.8/24 
    enp0s10     -          08:00:27:b2:08:91  1500    up     192.168.1.9/24 
    virbr0      -          52:54:00:ae:01:94  1500    up     192.168.122.1/24
    virbr0-nic  virbr0     52:54:00:ae:01:94  1500    DOWN   -


要通过 ps 查看正在运行的进程,请使用 -p--ps 开关运行 xsos

# xsos --ps /var/tmp/sosreport-CentOS7-01-1005-2019-05-12-pomeqsa


总结

不足之处还请指正,如有侵权私信本人修改,希望大家可以一起学习,共同进步~

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秣宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值