Linux操作系统命令
# RPM
- 定义
RPM(Redhat Package Manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。被众多 Linux发行版所采用,建立统一的数据文件,详细记录软件包的安装,卸载等变化信息,能够自动分析软件包的依赖关系。
- 命名格式

- 查询已经安装的 RPM 包的信息
格式:rpm -q [子选项] 软件名
用法:
-qa:查询系统中已安装的所有 rpm 软件包的列表
-qi:查询指定软件的详情信息
-ql:查询指定软件包所安装的目录,文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
1
2
3
4
5
6
7
2
3
4
5
6
7
- 查询文件/目录属于哪个 rpm 软件
格式:rpm -qf 文件或目录名
[root@swarm-manger ~]# rpm -qf /bin/python
python-2.7.5-90.el7.x86_64
1
2
2
# Linux 网络配置
- ifconfig:查看网卡 ip 相关信息。
网卡信息如下所示:
ens33:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 //最大传输单元是1500字节
//ip4
inet 192.168.190.128 netmask 255.255.255.0 broadcast 192.168.190.255
//ip6
inet6 fe80::46c7:89f:dc03:d1c7 prefixlen 64 scopeid 0x20<link>
//ether 连接类型为以太网 ,txqueuelen 传输队列长度
ether 00:0c:29:4b:52:f0 txqueuelen 1000 (Ethernet)
//接收包数据和错误
RX packets 1048 bytes 279451 (272.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
//发送包数据和错误
TX packets 225 bytes 23097 (22.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
关于 ens33: (指虚拟机上 CentOS 系统的网卡)
en: 表示的是 ethernet 以太网,就是咱们现在使用的局域网。
enX:
X = o 主板板载网卡,集成设备的索引号;
X = p 独立网卡,PCI网卡;
X = s 热插拔网卡,usb,扩展槽的索引号之类;
X = 数字, MAC 地址 + 主板信息计算出来的唯一编号。
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
ifconfig ens33 192.168.190.220 重启系统后临时 ip 失效。
临时修改 ip 地址
ifconfig ens33:0 192.168.190.221
ifconfig ens33:1 192.168.191.121
临时给一个网卡配多个 ip 地址
ifconfig ens33:0 del 192.168.190.221
临时删除一个 ip 地址
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- 永久修改 ip 地址
方法一:
nmtui
配置完 ip 后重启服务, systemctl restart network。
1
2
3
2
3



方法二:
vim 修改配置文件,vim /etc/sysconfig/network-scripts/ifcfg-ens33。
注意:centOS 7 修改了网卡命名规则,不再是 eth0 了,而是 ifcfg-eno + 数字。
1
2
3
2
3


- 显示系统网络管理器信息
systemctl status NetworkManager
注意:CentOS 7 使用 NetworkManager 来管理网络相关的操作。
1
2
2

- 其他网络相关
ls /etc/sysconfig/network-scripts/ifcfg-ens33 ip地址,子网掩码等信息
ls /etc/sysconfig/network-scripts/ifcfg-lo 网卡回环地址
cat /etc/resolv.conf DNS服务地址
cat /etc/hosts 设置主机和IP绑定信息
cat /etc/hostname 设置主机名
1
2
3
4
5
2
3
4
5
- ping 命令
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
用来检测网络的连通情况和分析网络速度。
根据域名得到服务器 ip。
根据 ping 返回的 TTL 值来判断对方所使用的操作系统及数据包经过路由器数量。
1
2
3
2
3
ping ip 地址或网关 作用:验证网络畅通和速度。 例如:ping www.baidu.com ping 192.168.1.1
1
64 bytes from 10.10.49.18: icmp_seq=214 ttl=63 time=0.380 ms
bytes值:数据包大小,也就是字节。
time值:响应时间,这个时间越小,说明你连接这个地址速度越快。
TTL值:Time To Live,
表示 DNS 记录在 DNS 服务器上存在的时间,
它是 IP 协议包的一个值,告诉路由器该数据包何时需要被丢弃。
可以通过 Ping 返回的 TTL 值大小,
粗略地判断目标系统类型是 Windows 系列还是 UNIX/Linux 系列。
默认情况下,
Windows98 系统的 TTL 值为32,
WindowsNT/2000/XP系统的 TTL 值为128,
Linux 系统的 TTL 值为64或255,
UNIX 主机的 TTL 值为255。
因此一般TTL值:
100~130ms之间,Windows系统,
240~255ms之间,UNIX/Linux系统。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

ping -c 数字 ip 地址或网关 作用:-c指定接收包的次数,达到次数后主动退出。
1

ping -i 3 -s 1024 -t 255 地址或网关 作用:-i 3 发送周期为 3秒 -s 设置发送包的大小 -t 设置TTL值为 255。
1

- 模拟网站登录
curl http://www.baidu.com/
返回一个网页格式的内容说明成功
1
2
3
2
3
- 网络相关概念
ip地址
子网掩码
网关
DNS服务器
1
2
3
4
2
3
4
- VMWare 三种网络类型
桥接模式:
NAT模式:
仅主机模式:
1
2
3
2
3
配置静态IP
网络防火墙设置
systemctl status firewalld
显示系统防火墙信息
systemctl stop firewalld.service
停止防火墙服务
systemctl start firewalld.service
启动防火墙服务
systemctl disable firewalld.service
开机不启动防火墙服务
systemctl enable firewalld.service
开机自动启动防火墙服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14

临时和永久关闭Selinux
getenforce
查看Selinux开机是否启动
setenforce 0
临时关闭selinux
永久关闭selinux
vim /etc/selinux/config
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10

- 端口号查看
yum -y install net-tools
netstat -naop|grep 8080
1
2
2
# 进程管理
查看进程: ps -ef|grep 进程名。
杀死进程: kill -9 进程 pid -9 表示强制终止。
1
2
2
# 服务管理
# 基本命令
su [xxx]:切换用户,如果直接写 su 表示换成 root 用户 (su 是 Switch User 的缩写)。
pwd:打印当前所在的路径 (pwd 是 print working directory 的缩写)。
cd xx:进入指定的文件夹 (cd 是 change directory 的缩写)。
cd ..:返回上一级文件夹目录。
cd /:返回到根目录。
ll:打印当前文件夹下的所有子文件和子文件夹的详细信息。
ls:打印当前文件夹下的所有子文件和子文件夹名称。
clear:清空命令行。
df:查看磁盘文件系统情况。
du -sh xxx文件:查看一个文件的使用情况。
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 文件和文件夹命令
mkdir xxx:在当前路径下创建xxx文件夹。
mv xxx.xxx 目标路径/xxxx.xxx:移动文件到指定的目标文件夹中并修改名称为xxxx.xxx。
rm xxx.xxx 删除文件xxx.xxx。
rm -r xxx目录:删除xxx目录及其子文件。
rm -rf xxx目录:强制删除xxx目录及其内部的文件或文件夹。 rm -rf /* 删除根目录下所有文件。大杀器呀。
rm -f xxx.xxx:强制删除xxx.xxx文件。
cp xxx.xxx 目标路径:拷贝xxx.xxx文件到指定的目标文件夹中。
1
2
3
4
5
6
7
2
3
4
5
6
7
# 文件内容操作命令
touch xxx.xxx:创建一个xxx.xxx文件。
vim xxx.xxx:创建一个空白文件。或者 vi xxx.xxx。
cat -n xxx :查看文件中所有内容 -n是显示行号。
tail -f xxx:动态查看日志。就是说如果文本里一直写入数据,那么这个命令看到的内容也是一直刷新的。
more xxx:查看大文件一页页往下翻。空格键 看下一页内容,退出时按 q。
nl (-ba 或 -bt) xxx:从最后一行开始展示行号。-ba表示不论是否为空行也展示行号;-bt如果是空行那么这一行不列出行号。
/内容 :搜索,按n继续往下找。
1
2
3
4
5
6
7
2
3
4
5
6
7
vim 一般模式
yy 光标所在行复制;
p 复制刚才复制的行到新行;
G 跳到最后一行;
gg 跳到文件的第一行;
u 撤销命令;
ctrl+r 反向撤销命令;
dd 删除光标所在行;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
vim 编辑模式
i 当前光标处编辑;
a 当前光后一格进入编辑模式;
o 当前光标后一行进入编辑模式;
esc 退出编辑模式;
1
2
3
4
5
2
3
4
5
vim 行底模式
:n 定位到第n行;
:wq 保存并退出;
:q! 不保存退出命令;
:set number 设置行号;
:set nonumber 取消行号;
:noh 关闭高亮提示;
:n,$s/旧内容/新内容/g;n表示起始行,$s表示最后一行, g表示全局替换;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 文件压缩和解压缩
tar格式的压缩包:
tar [-zcvf] 压缩包名.tar.gz 文件1 文件2 :打包文件1 文件2 为压缩包名.tar.gz
tar [-zxvf] 需要解压的文件.tar.gz
xz -d 需要解压的文件.tar.xz
tar -xvf data.tar
c 创建一个打包文件
x 解开一个打包文件
z 使用gzip压缩文件
j 使用bzip2压缩文件
v 压缩过程显示
f 使用文档名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
zip格式的压缩包:
yum -y install zip
yum -y install unzip
unzip 压缩包名称
zip 压缩包名称 文件1 文件2 文件3
1
2
3
4
5
6
7
2
3
4
5
6
7
# Linux 用户的分类
- 超级用户:root uid=0;
- 普通用户:uid= 500-60000;
- 伪用户:uid=1-499;伪用户不能登录系统,也不会在/home下创建响应的文件夹,主要是执行一些系统命令。
每个用户组包含多个用户,每个用户至少属于一个用户组。
用户相关的配置信息。
/etc/passwd:用户信息文件。
/etc/shadow:保存密码信息。
/etc/group:用户组信息。
/etc/gshadow:用户组密码信息。
1
2
3
4
5
6
2
3
4
5
6
# Linux 用户组的操作
创建用户组 groupadd 组名。
重命名组名 groupmod -n 新组名 旧组名。
删除组名 groupdel 组名。
显示用户当前所在的组 groups。
1
2
3
4
2
3
4
# Linux 用户操作
添加用户 useradd [选项] 用户名。
修改用户 usermod [选项] 用户名。
删除用户 userdel [选项] 用户名。
设置用户密码 passwd 用户名。
1
2
3
4
2
3
4
# 权限操作
授权必须切换到 root 目录上才能。
d rwx rwx rwx
文件类型区: d 表示这是一个文件夹; - 表示这是一个文件。
用户权限区: u 表示当前用户所拥有的权限。
组权限区: g 表示同组用户所拥有的权限。
其他权限区: o 表示其他非同组用户所拥有的权限。
1
2
3
4
5
2
3
4
5
理解rwx权限
r 表示可读权限。
w 表示可写权限。
x 表示可执行权限。
- 表示无权限。
1
2
3
4
5
2
3
4
5
修改文件的权限
字符表示法:
chmod u|g|o+r|w|x 文件名或文件夹。
u - 所属用户权限。
g - 同组权限。
o - 非同组用户权限。
+ 添加权限。
- 移除权限。
= 覆盖当前权限。
chmod u-x,g+r,o=rwx ./a.txt。
数字表示法:
chmod 700 文件名或文件夹 | 700 三位数代表三个用户组, 7 = 4+2+1 代表拥有所有权限。0 代表无权限。
r - 4
w - 2
x - 1
-R 代表递归授权,就是某个目录下的所有文件都获得权限。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 其他命令
poweroff: 关机。
reboot: 重启系统。
不同终端之间的通信:
echo "输入内容" > /dev/pts/1 将输入内容显示到终端/dev/pts/1
1
2
3
4
2
3
4
- Shell:
俗称壳,它提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行。
实际上一个命令解释器,它公国解释用户输入的命令并把它传输给系统内核去执行。
有自己的编程语言用于对命令的编辑,它允许用户编写有shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
# Linux 进程睡眠解决办法
Another app is currently holding the yum lock; waiting for it to exit...
另一个应用程序是:PackageKit
内存: 31 M RSS (451 MB VSZ)
已启动: Wed Aug 17 09:08:40 2022 - 00:59之前
状态 :睡眠中,进程ID:2833
1
2
3
4
5
2
3
4
5
解决办法:
rm -f /var/run/yum.pid
然后重新运行yun命令即可
1
2
3
4
2
3
4
# Linux 系统不休眠设置
[root@localhost ~]# vi /etc/X11/xorg.conf
Section "ServerFlags"
Option "BlankTime" "0" #关闭黑屏
Option "StandbyTime" "0" #关闭待机
Option "SuspendTime" "0" #关闭睡眠
Option "OffTime" "0"
EndSection
Section "Monitor"
Option "DPMS" "false"
EndSection
[root@localhost ~]# reboot
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# Linux 安装AMD显卡驱动
[root@localhost aaron]# amdgpu-install
1
编辑 (opens new window)
上次更新: 2025/02/15, 13:42:25