[TOC]
CentOS/RHEL命令学习笔记
Linux命令
简单指令
history
查看终端执行命令的历史记录
软件包与软件源
软件的安装方式
yum
软件包管理器- 底层是
rpm
- 自动解决依赖问题
- 安装完成会自动清理软件包文缓存
安装分为
远程安装
和本地安装
本地yum源
file://本地yum源路径
远程yum源
http://xxx
ftp://xxx
用法:yum [参数] 包名 参数介绍: 常用指令参数组合: yum install 软件名 安装软件包 yum repolist 查询yum源信息 yum install epel-release 增加拓展源 示例: 1. yum安装软件包 yum install 包名
- 底层是
rpm
软件包管理器,较少使用- 无法自动解决依赖关系,需要手动解决
适用于依赖较少或已知依赖关系的情况
用法:rpm [参数] 包名 - 资源路径可以是本地路径,也可以是网络链接 1. 查找rpm包 2. wget 网络资源路径 - wget需要手动安装 3. 使用 rpm -ivh xxx.rpm 从本地安装 4. 使用 rpm -ivh url链接 从网络安装(与上面的步骤二选一) 参数介绍: -i 安装 -v 显示安装信息 -h 显示安装进度 -U 安装时检测安装包版本是否最新,如不是则先升级再安装 -a 查看所有已安装的软件包 -q 查询所有已安装的软件包 -l 显示软件包的文件列表 -e 卸载指定的软件包 -f 软件包中的文件 常用指令参数组合: -ivh 安装指定软件包并显示进度 -qa 查询所有已安装的软件包 -qi 查询软件包的安装信息 示例: 5. 查询指定软件包 rpm -qa | grep 包名 6. 显示软件包的安装文件 rpm -ql 包名 7. 查询某个文件属于哪个软件包 rpm -qf 软件安装路径 # 只能查看已安装好的软件包 rpm软件包查找网站: - rpm find https://www.rpmfind.net/ - pkgs.org https://pkgs.org/
源码安装
CentOS7换源
/etc/yum.repos.d
源的存放位置http://mirrors.aliyun.com/repo/Centos-7.repo
Ali Mirror
https://mirrors.163.com/.help/CentOS7-Base-163.repo
wangyi Mirror
备份源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载
Ali Mirror
源curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
更新镜像源
yum clean all # 清理缓存 yum makecache # 重新建立缓存
系统别名
alias
查看系统指令别名alias 别名='实际命令名'
为某个命令起别名type -a 别名
查看指定别名对应的命令unalias 别名
取消某个别名
用户相关
whoami
查看当前用户logout
退出当前用户/etc/passwd
保存用户相关信息/etc/group
保存用户组相关信息/etc/shadow
保存用户密码信息
用户
用户
UID
用户唯一ID,等同于身份证GID
用户组唯一ID,等同于户口本root
用户- root账户的
UID
是0
- root账户的
GID
是0
- root账户的
普通
用户UID
从1000
开始,由超级管理员创建- 普通用户在被创建时,会在系统中创建一个同名的组(
主属组
) GID
虚拟
用户(系统用户)UID
1~999
创建用户
useradd 创建用户,默认从1000开始递增(或者从当前最大值开始递增)
用法:useradd [参数] 用户名 - 新建用户的同时会自动构建一个属组(组名和用户名一样,主属组) - 家目录位于`/home`目录下 参数介绍: -u UID 指定UID,不允许重复值 -s Shell 指定解释器版本 -G 组名或GID 指定副属组,副属组需已存在 -g 组名或GID 指定主属组,主属组需已存在
修改用户
``
用法: [参数] 用户名 参数介绍:
删除用户
``
用法: [参数] 用户名 参数介绍:
查看用户
id
查看用户ID信息[uid,uname,gid,副属组]
用户组
用户组
方便管理同一组用户GID
组与组之间区分用户与组的关系
一对一
一个用户存在一个组里,一个组里只有一个用户一对多
一个用户可以加入多个组多对一
多个用户可以加入一个组多对多
多个用户可以存在多个组中
创建组
groupadd
创建组,默认从1000开始递增(或者从当前最大值开始递增)用法:groupadd [参数] 组名 参数介绍: -g GID 指定GID,不允许重复值
修改组
groupmod
修改组信息用法:groupmod [参数] 组名 参数介绍: -g 新UID 修改GID,不允许重复值,不允许小于1000 -n 新组名 修改组名
删除组
groupdel
删除组,需要该组未充当用户的主属组才可以删除用法:groupdel 组名 - 用户的主属组不能删除[创建用户时,会自动分配主属组(主属组和用户名相同)] - 若组内存在用户,该组不可删除 示例: 1. 创建test组 groupadd test 2. 创建demo组并设置gid groupadd -g 1002 demo 3. 将test组的gid修改为1003 groupmod -g 1003 test 4. 将demo组的名字修改为DEMO groupmod -n DEMO demo 5. 删除DEMO组 groupdel DEMO 练习: 1. 新建用户组group01 groupadd group01 2. 新建用户组group02并指定gid为1111 groupadd group02 -g 1111 3. 将group01的组名修改为group11 groupmod -n group11 group01 4. 删除用户组group02 groupdel group02 5. 基于root用户新建文件/dir2/demo.txt练习vi编辑器指令 6. 新建用户并指定shell解释器版本为/sbin/nologin useradd user01 -s /sbin/nologin 7. 新建用户并指定主属组为user02副属组为 group11 useradd user03 -g user02 -G group11
主机相关
hostname
查看当前主机名hostnamectl set-hostname 新主机名
修改当前主机名,重启生效
网络相关
ip a
或ip addr
查看主机IP地址wget
文件下载器- 默认将文件下载到当前目录下 参数介绍: -O 路径 将文件保存到指定路径
curl
文件下载器参数介绍: -o 路径 将文件保存到指定路径
硬件相关
init 0
切换运行级别为0,此级别代表关机init 6
切换运行级别为6,此级别代表重启shutdown -r [参数]
重启shutdown -r 10
10分钟后重启shutdown -r 0
立即重启shutdown -r now
立即重启
shutdown -h [参数]
关机shutdown -h 10
10分钟后关机shutdown -h 0
立即关机shutdown -h now
立即关机
reboot
重启poweroff
关机,立即关闭系统并切断电源halt
关机,立即关闭系统,但需要手动切断电源
Init等级
0:停机或者关机(千万不能将initdefault设置为0)
1:单用户模式,只root用户进行维护
2:多用户模式,不能使用NFS(Net File System)
3:完全多用户模式(标准的运行级别)
4:安全模式
5:图形化(即图形界面)
6:重启(千万不要把initdefault设置为6)
时间相关
date
查看当前时间用法:date '+参数' 参数介绍: %F 只查看当前日期的年月日 %X 只显示当前时间的时分秒 %s 从1970年1月1日0时0分0秒到 现在 过了多少秒 %S 秒 %c 直接显示日期与时间(年月日 星期 时分秒) %x 直接显示日期(年月日) %T 显示时分秒 HH:mm:dd[24小时] %r 显示时分秒[12小时] %p 显示上午还是下午 %Z 显示时区 %w 一周中的第几天 %a 星期几(简写) %A 星期几 %b 月份(简写) %B 月份()全称
文件与目录
Linux文件目录组成
/
├── boot 存放系统内核与启动文件
├── dev 存放硬件设备相关信息
├── etc 存放系统配置文件
│ ├── resolv.conf 设置域名解析
│ ├── hostname 设置主机名
│ ├── motd 设置开机提示语
│ ├── os-release 查看发行版和版本号
│ └── sysconfig
│ └── network-scripts
│ └── ifconfig-xxx 设置网络环境,如动态IP等
├── home 普通用户的主目录
├── media 可卸载的存储介质挂载点
├── mnt mount文件的临时挂载点
├── opt 应用程序包的安装目录
├── proc 系统内存的映射目录,提供内核与进程信息
├── root 特权用户目录
├── run 存放组件运行时所需文件[文件夹]
├── srv 存放组件运行时所需文件
├── temp 存放临时文件
├── usr 存放用户程序
└── var 存放运行时内容会改变的文件,如日志等
文件路径
绝对路径
/文件
/文件夹/文件
相对路径
./ 当前目录下
../ 上级目录下
文件分类
-:普通文件
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
s:socket套接字文件
权限分类
权限分配 | 所有者 | 所属组 | 其他用户 | ||||||
---|---|---|---|---|---|---|---|---|---|
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
查看文件或目录
pwd
查看当前工作目录ls
列出文件夹下内容,隐藏文件默认不展示。用法:ls [参数] 路径 参数介绍: -a 列出指定路径下所有内容,包括隐藏文件 -l 列出指定路径下文件的详细信息 -h 配合-l使用,查看文件详细大小 --full-time 查看详细时间 -t 按照最后一次修改时间降序排序。 -F 在不同文件结尾输出不同符号,如: 文件夹后是 / 可执行文件后是 * 软链接后是 @ . 开头的是隐藏文件 普通文件无后缀 -d 只列出指定文件夹信息 -r 逆转排序 -S 从大到小排序
创建目录
mkdir
创建文件夹mkdir /path/{a,b,c}
一次创建指定数量个文件夹mkdir /path/{1..n}
一次创建n个文件夹用法:mkdir [参数] 文件夹(包含路径) 参数介绍: -p 递归创建文件夹 -v 显示详细创建信息
创建文件
touch
创建普通文件;修改文件时间touch /path/{file1,file2,file3}
一次创建指定数量个文件touch /path/file{1..n}
一次创建n个文件用法:touch [参数] 文件(包含路径) 参数介绍: -t [年月日时分] 修改创建时间为指定的年月日时分 -r [file1] 将目标文件的创建时间修改为file1相同 -v 显示详细创建信息 案例: 1. 修改filez.png时间为当前系统年份的7月6号16时30分 touch -t 07061630 filez.png # 年份为空,自动调用系统当前年份 2. 修改filez.png时间为2025年7月6号16时30分 touch -t 202507061630 filez.png
复制文件或目录
cp
复制文件或文件夹用法:cp [参数] 源文件 目标文件 参数介绍: -i 覆盖前询问 -r 递归复制目录和子文件 -f 强制执行,不显示提示信息 -v 显示详细复制信息 -d 复制的时候保持软链接 -p 完全复制,包括权限时间戳等与原文件相同 -a 等价于使用-pdr
移动文件或目录
mv
移动文件或目录;重命名文件或目录用法:mv [参数] 源文件 目标文件 参数介绍: -i 覆盖前询问 -f 强制执行,不显示提示信息
删除文件或文件夹
rm
删除文件或文件夹用法:rm [参数] 文件或目录 参数介绍: -i 删除时询问 -r 删除目录,不加该参数只能删除文件 -f 强制执行,不显示提示信息 -v 显示详细删除信息
文件查看
cat
查看文件内容用法:cat [参数] 文件 参数介绍: -n 显示行号 -A 显示标记符号(制表符、换行符等)
head
查看文件头部内容,默认是10行head -数字 文件
查看文件头部指定数量行的内容
tail
查看文件尾部内容,默认是10行用法:tail [参数] 文件 参数介绍: -数字 查看文件尾部指定数字行的内容 -f 用于动态变化的文件,Ctrl^C退出监测
grep
查找、过滤文件内容关键字用法:grep '参数' 文件 参数介绍: ^字符串 以字符串开头的行 字符串$ 以字符串结尾的行 用例: 1. 过滤带有root的行 grep 'root' /etc/passwd 2. 过滤以root开头的行 grep '^root' /etc/passwd 3. 过滤以nologin结尾的行 grep 'nologin$' /etc/passwd
less
分页查看内容比较大的文件,按q退出用法:less 文件 功能说明: 空格 翻页 回车键 下一行 方向键↑↓ 上下滚动 /关键字 在文件中查找关键字并高亮显示 n 搜索时上翻 N 搜索时下翻
more
分页查看文件,看完自动退出;窗口底部展示百分比用法:more 文件 功能说明: 空格 翻页 回车键 下一行
echo 字符串
输出指定字符串,默认输出到当前控制台
文件切割
cut
提取文件片段用法:cut [参数] 文件 参数介绍: -c 提取指定位置的字符 -d 符号 指定分隔符符号,默认分隔符是空格 -f 与-d连用,置顶显示区域,与-c作用类似 示例: 1. 提取每行第四个字符 cut -c 4 /etc/passwd 2. 提取每行第4~8个字符 cut -c 4-8 /etc/passwd 3. 提取每行前8个字符 cut -c -8 /etc/passwd cut -c 1-8 /etc/passwd 4. 提取每行第8个到末尾的字符 cut -c 8- /etc/passwd 5. 提取每行第4、6个字符 cut -c 4,6 /etc/passwd 6. 提取每行第1-3、6-8个字符 cut -c 1-3,6-8 /etc/passwd 7. 以':'为分隔符切割,保留第1段 cut -d : -f 1 /etc/passwd 8. 以':'为分隔符切割,保留第1~3段 cut -d : -f 1-3 /etc/passwd
文件排序与去重
sort
按照制定规则对文件进行排序用法:sort [参数] 文件 参数介绍: -b 忽略前导的空白区域 -n 根据字符串数值比较,默认升序 -r 反转排序 -u 去重排序,与-c连用 -t 分隔符 指定分隔符,默认是空格 -k [位置1,位置2] 指定某个排序规则的作用域:位置1~位置2 示例: 1. 对IP第4段(主机号)进行排序 sort -n -t '.' -k 4 ./ip.txt 2. 对1.txt进行升序去重排序 sort -n -u ./1.txt 1.txt 内容: 0 a 1 c 2 s 3 a 4 f 5 e 6 g 0 a 7 b 8 h 9 y 0 u 9 j 7 k 0 a 5 i 4 o 2 l 9 y 1 p ip.txt 内容 192.168.10.1 192.168.10.20 192.168.10.15 192.168.10.2 192.168.10.3 192.168.10.5 192.168.10.2 192.168.10.3 192.168.10.7 202.184.250.20 138.4.52.61
uniq
输出或忽略文件中的重复行,一般与sort
连用;只能去除连续的相邻行。用法:uniq [参数] 文件 1.排序排序命令进行排序 2.使用uniq命令去重或统计 参数介绍: -c 统计每一行的重复次数(连续相邻行) -d 统计出现两次及以上的行 -u 统计只出现一次的行 示例: 1. 对sort排序后的输出进行去重 sort -n ./1.txt | uniq 2. 对sort排序后的输出进行重复次数统计,统计每一行 sort -n ./1.txt | uniq -c 3. 对sort排序后的输出进行统计,只统计重复行 sort -n ./1.txt | uniq -c -d 4. 对sort排序后的输出进行统计,只统计重复一次的行 sort -n ./1.txt | uniq -c -u 5.查看哪些IP被占用 sort -n -t '.' -k 4 ./ip.txt | uniq -c -d 6.查看哪些IP处于空闲状态 sort -n -t '.' -k 4 ./ip.txt | uniq -c -u
文件编辑
vi的文本模式
- 工作模式
命令模式 [
ESC
]- 无法编辑
- 只能查看
编辑模式 [
i
,a
,A
,o
,O
]- 可以编辑
- 可以查看
尾行模式 [
:
]- 保存文件
- 退出编辑器
可视模式 [
ESC
,Shift^v
,Ctrl^v
]- 可视块
- 可视行
vi
系统默认的文本文件编辑器vim
高级文本编辑器,编辑器之神用法:vi 文件 功能说明: 1. 进入编辑模式 i 在光标处进入编辑模式 a 在当前光标后面进入编辑模式 A 在光标所在行的行尾进入编辑模式 o 在光标下一行进入编辑模式 O 在光标上一行进入编辑模式 2. 命令模式 光标定位: 方向键 ↑ ↓ ← → 按键 h(←) j(↓) k(↑) l(→) 0 回到行首(等同于HOME按键) $ 回到行尾(等同于END按键) gg 回到页面左上角(文本顶部) G 回到页面右下角(文本底部) 3G 进入第3行 4G(进入第四行) /关键字 查找关键字 n 跳转到下一个搜索结果 N 跳转到上一个搜索结果 复制: yy 复制当前行 3yy 从光标处复制3行 5yy(从光标处复制5行) ygg 从当前光标复制到页首(区域复制) yG 从当前光标复制到页尾(区域复制) 粘贴: p 粘贴剪贴板到本行下方 P 粘贴剪贴板到本行上方 删除 dd 删除光标所在行(向下删除) 3dd 从光标处向下删除3行 5dd(从光标处向下删除5行) dgg 从当前光标删除到页首(区域删除) dG 从当前光标删除到页尾(区域删除) d^ 删除光标所在位置到行首之间的内容(光标到行首) x 删除光标处的内容 D 删除光标所在位置到行尾之间的内容(光标到行尾) u 撤销 替换: r 替换修改光标处的字符 3. 尾行模式 : 进入尾行模式 :3 进入第三行 :w 保存 :q 退出 :q! 强制退出不保存 :wq 保存并退出 :wq! 强制保存退出 4. 可视化模式 Ctrl^v 可视块模式 Shift^v 可视行模式 5. 查找替换 :s/原内容/新内容/ 替换光标所在行的原内容为新内容,只匹配替换一次 :3 s/原内容/新内容/ 替换第3行的原内容为新内容,只匹配替换一次 :1,3 s/原内容/新内容/ 替换第1~3行的原内容为新内容,只匹配替换一次 :% s/原内容/新内容/ 替换所有行的原内容为新内容,只匹配替换一次 :% s/原内容/新内容/g 替换所有行的原内容为新内容,全部匹配替换 6. 设置环境 :set nu 设置行号 :set nonu 取消设置行号 :set list 显示控制字符,可以查看筛选带行尾空格的行
emacs
高级文本编辑器,神的编辑器stat
查看文件详细信息(访问和修改时间、属性改变时间)
帮助指令
man
查看所有帮助手册指令 --help
查看指令的用法帮助
RHEL重置root密码
- 重启Linux,进入内核选择界面,按下
e
,进入内核编辑模式 - 在启动参数后添加
rd.break
参数,按下Ctrl^X
执行修改过的程序 等待系统进入救援模式,挂载系统分区。
mount -o remount,rw /sysroot chroot /sysroot passwd touch /.autorelabel exit reboot
附件
Linux目录树原始Markdown
+ /
+ boot 存放系统内核与启动文件
+ dev 存放硬件设备相关信息
+ etc 存放系统配置文件
- resolv.conf 设置域名解析
- hostname 设置主机名
- motd 设置开机提示语
- os-release 查看发行版和版本号
+ sysconfig
+ network-scripts
- ifconfig-xxx 设置网络环境,如动态IP等
+ home 普通用户的主目录
+ media 可卸载的存储介质挂载点
+ mnt mount文件的临时挂载点
+ opt 应用程序包的安装目录
+ proc 系统内存的映射目录,提供内核与进程信息
+ root 特权用户目录
+ run 存放组件运行时所需文件[文件夹]
+ srv 存放组件运行时所需文件
+ temp 存放临时文件
+ usr 存放用户程序
+ var 存放运行时内容会改变的文件,如日志等