Linux
系统基础
一、基础命令
1.增
cat //
EOF //添加多行文本
示例:
[root@hhr ~]# cat > abc <<EOF
> hello world
> lisi
> EOF
touch //创建文件
示例:
[root@hhr ~]# touch 123
[root@hhr ~]# ls
123
echo //
示例:
[root@hhr ~]# echo "runtian" > 123
[root@hhr ~]# cat 123
runtian
mkdir //创建目录
-p //创建目录时若父目录不存在则自动创建
示例:
[root@hhr ~]# mkdir -p /root/hhr/123
[root@hhr ~]# cd hhr/
[root@hhr hhr]# ls
123
2.删
rm //
-r //递归删除
-f //删除文件
示例:
[root@hhr ~]# rm -f 456
-rf //删除目录
示例:
[root@hhr hhr]# rm -rf 456
3.查
ls //列出目录内容
-l //长格式
- 普通文件
d 目录文件
b 块设备文件(block)
c 字符设备文件(character)
l 符号链接文件(symbolic link file)
p 命令管道(pipe)
s 套接字文件(socket)
-d //显示目录自身属性
-h //做单位属性
-a //显示目录自身属性
. //表示当前目录
.. //表示父目录
-i //显示文件的inode (index node)
-r //逆序显示
-R //递归显示
cat //将文件内容并输出至标准输出(屏幕)
-n //显示行号
示例:
[root@hhr ~]# cat -n 123
1 runtian
2 hasha
3 adkada
4 456
EOF //添加多行文本
< //覆盖
示例:
[root@hhr ~]# cat > 123 <<EOF
> hell world
> EOF
<< //追加
示例:
[root@hhr ~]# cat >> 123 <<EOF
> hasha
> adkada
> 456
> EOF
tac //子主题 1倒序打印文件内容至标准输出
head //查看文件的开头部分的内容
-n //指定要打印的行数,-n 可以是15也可以是-15
示例:
[root@hhr ~]# head -3 123
hell world
hasha
ahsdjadha
tail //查看文件的开头部分的内容
-n //指定要打印的行数,可以是-n 15也可以是-15
示例:
[root@hhr ~]# tail -3 123
ashhdahd
adkada
456
more //全屏查看文本文件内容,只能从前往后,不能从后往前
more 123 //按空格下一页,文件内容显示完后自动退出
less //全屏查看文本文件内容,可从前往后亦可从后往前。推荐使用
less abc //不会退出
4.改
vi //vi/vim编辑器
插入模式
i //在当前光标前面转变成输入模式
a //在当前光标后面转变成输入模式
o //在当前光标的下一行转变成输入模式
I //在光标的行首转变成输入模式
A //在光标的行尾转变成输入模式
O //在光标行的上面转变成输入模式
保存模式
wq! //强行保存并退出
ZZ //保存并退出
sed //依照脚本的指令来处理、编辑文本文件
-i //插入,i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
示例:
[root@hhr ~]# sed -i "s/world/jjyy/g" 123
[root@hhr ~]# cat 123
hell jjyy
hasha
ahsdjadha
-n //显示script处理后的结果
示例:
[root@hhr ~]# sed -n '/jjyy/p' 123
hell jjyy
jjyy
示例:
[root@hhr ~]# sed -n '3p' 123
ahsdjadha
示例:
[root@hhr ~]# sed -n '1,2p' 123
hell jjyy
hasha
5.项目管理
cd //切换目录
-r //只显示目录
pwd //查看当前所在目录路径
tree //查看目录树
-d //只显示目录
-L level //指定显示的层级数目
-p //显示指定字符串匹配到的文件
6.文件管理
cp //复制
-a //归档复制,常用于备份
-p //拷贝时保留原权限
mv //移动、重命名
install //复制文件并且设置属性
-m //复制时修改权限(MODE)
-o //复制时修改文件属主(OWNER)
-g //复制时修改属组(GROUP)
二、通配符
符号 | 含义 |
---|---|
. | 匹配任意长度的任意字符 |
? | 匹配任意单个字符 |
?? | 匹配任意双个字符 |
??? | 匹配任意三个字符 |
[1-9]* | 匹配指定范围内的任意单个字符 |
rm-f [1-9]* | 删除指定范围内的任意单个字符 |
[^] | 匹配指定范围之外的任意单个字符 |
三、文本内容管理
cut //截取文本内容
-d //指定字段分隔符,默认是空格
-f //指定要显示的字段
示例:
1,3 //显示第1个字段和第3个字段
1-3 //显示第1个字段到第3个字段
sed //基于行的过滤和转换文本的流编辑器
-i //修改文件内容
示例:
[root@hhr ~]# sed -i 's/jjyy/hasha/g' 123
[root@hhr ~]# cat 123
hell hasha
hasha
adkada
hasha
awk //基于列的文本报告工具 (当一个空格使用)
-F: //选择分隔符;分隔符用单引号引起来
以关键字
示例:
[root@hhr etc]# awk -F: '/root/' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
以数字
示例;
[root@hhr etc]# awk -F: '{print $1": " $3}' passwd |head -3
root: 0
bin: 1
daemon: 2
以文字
示例:
[root@hhr etc]# awk -F: 'BEGIN{PRINT "用户\tID"}' passwd | head -3
df -h //以空格分隔
示例:
[root@hhr etc]# df -h | awk '{print $4}'
可用
872M
901M
892M
901M
13G
0
786M
181M
179M
示例:
[root@hhr etc]# df -h | awk 'NR==6{print $4}'
13G
grep
-A 1 //被模式匹配到的内容以及其后面一行的内容都显示出来,
//如果把1改成2就表示被模式匹配到的内容以及其后面2行的内容均显示出来
示例:
[root@hhr ~]# grep -A 1 'hasha' 123
hell hasha
hasha
ahsdjadha
--
hasha
-B 1 //被模式匹配到的内容以及其前面一行的内容都显示出来,
//如果把1改成2就表示被模式匹配到的内容以及其前面2行的内容均显示出来
示例:
[root@hhr ~]# grep -B 1 'hasha' 123
hell hasha
hasha
--
adkada
hasha
-C 1 //被模式匹配到的内容以及其前后的行各显示1行,如果把1改成2
//就表示被模式匹配到的内容以及其前后的行各显示2行
示例:
[root@hhr ~]# grep -C 1 'hasha' 123
hell hasha
hasha
ahsdjadha
--
adkada
hasha
find
-name
'passwd' //根据文件名查找
示例:
[root@hhr ~]# find / -name 'passwd'
/sys/fs/selinux/class/passwd
/sys/fs/selinux/class/passwd/perms/passwd
/etc/pam.d/passwd
/etc/passwd
/var/lib/sss/mc/passwd
/usr/share/bash-completion/completions/passwd
-d //隐藏文件
-f //指定目录
-user username //根据属主来查找
-group groupname //根据属组来查找
-UID //根据UID进行查找,当用户被删除以后文件的属主会变为此用户的UID
-GID //根据GID进行查找,当用户被删除以后文件的属组会变为此用户的GID
-type //根据文件类型来查找(f,d,c,b,l,p,s)
-size //根据文件大小进行查找。如1k、1M,+10k、+10M,-1k、-1M,+表示大于,-表示小于
-mtime //修改时间
-atime
+5 //五天前
-5 //五天以后
-mmin //多少分钟修改过
-amin
+5 //五分钟前
-5 //五分钟以内
四、压缩与解压缩
压缩
gzip //压缩后的文件以.gz结尾;只能压缩文件不能压缩目录
bzip2 //压缩后的文件以.bz2结尾;bzip2是一款比gzip有着更大压缩比的压缩工具,使用格式近似
xz //压缩后的文件以.xz结尾;比bzip2有着更大压缩比的压缩工具,使用格式近似
zip //既归档又压缩的工具。zip可以压缩目录(跨平台)
//gz、bz2、xz都只能压缩文件,zip压缩后不会删除原文件
tar //打包
例:
-zcf test.tar.gz abc 123
-jcf test.tar.bz2 abc 123
-Jcf test.tar.xz abc 123
解压缩
gunzip
例:gunzip /path/to/some_compress_file.gz //解压完成后会删除原文件
例:zcat /path/to/somefile.gz //不解压的情况下查看文本文件的内容
bunzip2
例:bunzip2 /path/to/some_compress_file.bz2 //解压完成后会删除原文件
例:bzcat /path/to/somefile.bz2 //不解压的情况下查看文本文件的内容
unxz
例:xzcat /path/to/somefile.xz //不解压的情况下查看文本文件的内容
unzip
例:unzip filename.zip
xf
例:
-xf test.tar.gz
-xf test.tar.bz2
-xf test.tar.xz
五、I/O重定向、管道符
I/O重定向
> //覆盖输入
>> //追加输出
管道符 //前一个命令的输出,作为后一个命令的输入。最后一个命令会在当前shell进程的子shell进程中执行
|
示例:
[root@hhr ~]# echo 'hello world' | cut -d ' ' -f 2
world
示例:
[root@hhr etc]# cat passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
示例:
[root@hhr ~]# grep jjyy 123
jjyy
六、用户和组管理
- 系统账户:为守护类进程获取系统资源而完成权限指派的用户(不需要登录)
- 普通账户:为了完成交互式登录使用的用户
用户
useradd //创建用户
/etc/passwd 用户及其属性信息(名称、uid、基本组id等等)
/etc/shadow 用户密码及其相关属性
-u UID //指定用户uid
-g GID //指定用户所属基本组,可为组名或GID,组必须事先存在
-r //添加一个系统用户
userdel //删除用户
-r
示例:
[root@hhr ~]# userdel -r lisi
usermod //修改用户
-u //UID
示例:
[root@hhr ~]# usermod -u 1005 lisi
-s //修改用户登录shell
示例:
[root@hhr ~]# usermod -s /sbin/nolong lisi
[root@hhr ~]# usermod -s /bin/bash lisi
su //切换用户
su username //非登录式切换,即不会读取目标用户的配置文件
su -username //登录式切换,即会读取目标用户的配置文件。完全切换
id //查看用户信息
-u //查看UID
-g //查看GID
-G //查看Groups
组
groupadd //创建组
/etc/group 组及其属性信息
/etc/gshadow 组密码及其相关属性。在用户执行基本组切换时使用
-g //指定GID
-r //添加一个系统组
groupdel //删除组
七、密码管理命令
passwd //创建密码命令
su - //切换
passwd //管理员
--stdin //从标准输入获取用户密码
示例:
[root@hhr ~]# echo "redhat"|passwd --stdin lisi
-d //删除用户密码
破解密码过程
关机
开机
在内核所在行输入e键
找到linux开头的行后面加上rd.break
ctrl+x
mount -o remount, rw /sysroot
chroot /sysroot
echo " redhat" Ipasswd --stdin root
touch /.autorelabel
exit
exit
八、vi/vim编辑器
vi/vim三种编辑模式
命令模式-->输入模式
i:insert,在当前光标所在字符的前面,转为输入模式
I:大写的i,在当前光标所在行的行首转换为输入模式
a:append,在当前光标所在字符的后面转换为输入模式
A:在当前光标所在行的行尾转换为输入模式
o:open,在当前光标所在行的下方新建一行并转为输入模式
O:大写的o,不是数字0,在当前光标所在行的上方新建一行并转换为输入模式
输入模式-->命令模式
ESC
命令模式-->末行模式
:
末行模式-->命令模式
ESC ESC
文本编辑模式
关闭文件方式:末行模式关闭文件
q //退出
wq //保存并退出
q! //不保存退出
w //保存但不退出
w! //强行保存
wq! //强行保存并退出
x //强行保存并退出
命令模式关闭文件
ZZ //保存退出
命令模式下移动光标的方式
以单词为单位移动
w //移动到下一个单词的词首
e //跳至当前或下一个单词的词尾
b //跳至当前或上一个单词的词首
行间跳转
gg //跳转到第一行
3gg //跳转到第三行
G //跳转到最后一行
命令模式下删除字符
dd //删除当前行
3dd //删除以当前行开始的一共3行
D //删除当前行的内容
命令模式下复制命令
yy //复制当前行
3yy //复制当前行在内的一共3行
命令模式下粘贴命令
p 小写p //粘贴在当前行的下一行
P 大写P //粘贴在当前行的上一行
命令模式下替换命令
R //替换模式,替换多个字符
命令模式下撤销编辑
#u //直接撤销此前的#次编辑操作
ctrl+r //还原最近一次的撤销操作
.(点) //重复前一次编辑操作
可视化模式
v //按字符选取内容
V //按矩形块(行)选取内容
末行模式下查找并替换
s //替换
示例:
1,5 s/abc/def/g 表示把第一行到第五行的所有abc替换为def
末行模式下显示或取消显示行号
set nu //显示行号
set nonu //取消显示行号
九、进程管理
ps
ps -le
F //进程标志,说明进程的权限,常见的标志:1:进程可以复制,但是不能执行4:进程使用超级用户权限
S //进程状态。具体的状态和“ps aux”命令中 STAT 状态一致
UID //进程是哪个 UID 用户调用运行的
PID //进程的 ID 号
PPID //父进程的 ID 号
C //该进程的 CPU 使用率,单位是百分比
PRI //进程的优先级,数值越小该进程优先级越高,越快被 CPU 执行;动态值由内核决定
NI //进程的优先级,也是数值越小越早被执行;静态值管理员手动设置,NI值的范围-20到19之间;
//调整已经启动的进程的nice值的命令:renice NI PID:
//在启动时指定nice值的命令:nice -n 数字 COMMAND
ADDR //该进程在内存的哪个位置
SZ //该进程占用多大内存
WCHAN //该进程是否运行。“-”代表正在运行
TTY //该进程由哪个终端产生
TIME //该进程占用 CPU 的运算时间,注意不是系统时间
CMD //产生此进程的命令名
ps -aux
示例:
[root@hhr ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 179700 14044 ? Ss 15:21 0:02 /usr/lib/systemd/systemd --switched-root --system
root 2 0.0 0.0 0 0 ? S 15:21 0:00 [kthreadd]
pidof //根据进程名查找其PID号
示例:
[root@hhr ~]# pidof sshd | xargs kill -9
示例:
[root@hhr ~]# pidof sshd
十、top
命令 | 含义 |
---|---|
?或h | 显示交互模式的帮助 |
P | 以 CPU 使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以 PID 排序 |
T | 按照 CPU 的累积运算时间排序,也就是用 TIME+项排序 |
k | 按照 PID 号,给予某个进程一个信号。一般用于 终止某个进程,信号 9是强制终止的信号 |
r | 按照 PID 号,给某个进程重设优先级(Nice)值 |
q | 退出 top |
十一、信号控制进程
信号代号 | 信号名称 | 含义 |
---|---|---|
1 | SIGHUP | 该信号让进程立即关闭,然后重新读取配置文件之后重启 |
2 | SIGINT | 程序终止信号,用于终止前台进程。相当于输出 ctrl+c 快捷键 |
9 | SIGKILL | 用来立即结束程序的运行.本信号不能被阻塞、处理和忽略。 一般用于强制终止进程(常用) |
15 | SIGTERM | 正常结束进程的信号,kill 命令的默认信号。有时如果进程已经发生问题, 这个信号是无法正常终止进程的,我们才会尝试SIGKILL 信号,也就是信号 9 |
18 | SIGCONT | 该信号可以让暂停的进程恢复执行。本信号不能被阻断 |
19 | SIGSTOP | 该信号可以暂停前台进程, 相当于输入 ctrl+z 快捷键。本信号不能被阻断 |
十二、权限管理
chmod 基础
例:
chmod u|g|o|a +|-|= rwx test
例:
[root@hhr ~]# chmod u+r test
[root@hhr ~]# ll
总用量 4
-rw-r--r--. 1 root lisi 0 7月 7 20:07 test
例:
[root@hhr ~]# chmod o+r test
[root@hhr ~]# ll
总用量 4
-rw-r--r--. 1 root root 40 7月 7 16:52 123
-rw-r--r--. 1 root lisi 0 7月 7 20:07 test
例:
[root@hhr ~]# chmod o=rw test
[root@hhr ~]# ll
总用量 4
-rw-r--r--. 1 root root 40 7月 7 16:52 123
-rw-r--rw-. 1 root lisi 0 7月 7 20:07 test
chmod number test
例:
[root@hhr ~]# chmod 777 test
[root@hhr ~]# ll
总用量 4
-rw-r--r--. 1 root root 40 7月 7 16:52 123
-rwxrwxrwx. 1 root lisi 0 7月 7 20:07 test
chmod 特殊权限
字母表示含义
u //用户
g //组
o //其它
a //所有人
特殊权限的字母表示方式
suid 应用程序 4 //运行程序时,这个程序启动的进程的属主是程序文件自身的属主,而不是发起者为属主
例:
[root@hhr ~]# chmod u+s file
[root@hhr ~]# ll
总用量 0
-rwSr--r--. 1 root root 0 7月 7 20:16 file
-rw-r--r--. 1 root lisi 0 7月 7 20:07 test
[root@hhr ~]# chmod u-s file
[root@hhr ~]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月 7 20:16 file
-rw-r--r--. 1 root lisi 0 7月 7 20:07 test
<如果file本身原来就有执行权限,则SUID显示为s,否则显示为S>
sgid 目录 2 //运行程序时,这个程序启动的进程的属组是程序文件自身的属组,而不是启动者所属的基本组
//一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件或目录,其所属的组为此设定了SGID的目录的属组
例:
[root@hhr ~]# chmod g+s file
[root@hhr ~]# ll
总用量 0
-rw-r-Sr--. 1 root root 0 7月 7 20:16 file
-rw-r--r--. 1 root lisi 0 7月 7 20:07 test
[root@hhr ~]# chmod g-s file
[root@hhr ~]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月 7 20:16 file
-rw-r--r--. 1 root lisi 0 7月 7 20:07 test
<如果file本身原来就有执行权限,则SGID显示为s,否则显示为S>
stucky 目录 1 //公共目录,每个人都能创建文件,删除自己的文件,但是不能删除别人创建的文件
例:
[root@hhr ~]# chmod o+t file
[root@hhr ~]# ll
总用量 0
-rw-r--r-T. 1 root root 0 7月 7 20:16 file
-rw-r--r--. 1 root lisi 0 7月 7 20:07 test
[root@hhr ~]# chmod o-t file
[root@hhr ~]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月 7 20:16 file
-rw-r--r--. 1 root lisi 0 7月 7 20:07 test
<如果file本身原来就有执行权限,则Sticky显示为t,否则显示为T>
修改属主
例:
[root@hhr ~]# chown .lisi test
[root@hhr ~]# ll
总用量 4
-rw-r--r--. 1 root lisi 0 7月 7 20:07 test
例:
[root@hhr ~]# chown :hehe test
例:
[root@hhr ~]# chown lisi test
例:
[root@hhr ~]# chown root:hehe test
特殊权限的数字表示方式
4755 //有SUID,文件权限为755
2755 //有SGID,文件权限为755
1755 //有Sticky,文件权限为755
<这里前面的4、2、1分别表示SUID、SGID、Sticky>
acl访问控制 setfacl
-m //设定权限条目
例:
[root@hhr ~]# setfacl -m u:lisi:rwx test
[root@hhr ~]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月 7 20:16 file
-rw-rwxr--+ 1 root lisi 0 7月 7 20:07 test
例:
[root@hhr ~]# setfacl -m g:lisi:rw file
如果要为某个目录设定默认的访问控制列表,只需要设定时在u或g前面加上d即可
例:
[root@hhr ~]# setfacl -m d:u:lisi:rw file
-x //删除权限条目
例:
[root@hhr ~]# setfacl -x u:lisi test
例:
[root@hhr ~]# setfacl -x g:lisi file
权限委派 sudo
添加 (vim编辑器里添加)
[root@hhr ~]# visudo
## Allow root to run any commands anywhere
lisi ALL=(ALL) /sbin/useradd, /sbin/userdel
删除 (vim编辑器里添加)
[root@hhr ~]# visudo
## Allow root to run any commands anywhere
lisi ALL=(ALL) /sbin/useradd, /sbin/userdel
十三、PRM包管理
RPM包安装 //安装软件包, 需要指定软件包绝对路径
例:
[root@hhr ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
RPM包查询
-qa 过滤 //查询已经安装的所有包
示例:
[root@hhr ~]# rpm -qa |grep ftp
python3-requests-ftp-0.3.1-11.el8.noarch
-qc //查询指定已安装的包的配置文件
示例:
[root@hhr ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
-ql //查询指定软件包安装后生成的文件列表
示例:
[root@hhr ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
...
-qd //查询指定已安装的包的帮助文件
-qf //查询指定的文件是由哪个rpm包安装生成的
示例:
[root@hhr ~]# rpm -qf /etc/vsftpd/vsftpd.conf
vsftpd-3.0.3-31.el8.x86_64
-q //查询指定的已安装的软件包
示例:
[root@hhr ~]# rpm -q vsftpd
vsftpd-3.0.3-31.el8.x86_64
RPM包升级
-Uvh 如果装有老版本的,则升级;否则,则安装
示例:
[root@hhr ~]# rpm -Uvh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
-Fvh 如果装有老版本的,则升级;否则,退出
RPM包卸载
十四、YUM管理
yum/dnf命令
常用选项
-y
常用的command
list //列出所有的包
all //默认项
updates //可用的升级
clean //清理缓存
all //清除所有缓存
packages //清除包缓存
metadata //清除元数据缓存
repolist //显示repo列表及其简要信息
allall //列出所有仓库
install //安装,可以一次安装多个包
示例:
[root@hhr ~]# yum install ftp httpd
remove | erase //卸载,可以一次卸载多个包
info //查看包的信息,显示rpm -qi package的结果
示例:
[root@hhr ~]# yum info vsftpd
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:0:22:41 前,执行于 2021年07月07日 星期三 20时36分48秒。
已安装的软件包
名称 : vsftpd
版本 : 3.0.3
发布 : 31.el8
架构 : x86_64
大小 : 343 k
源 : vsftpd-3.0.3-31.el8.src.rpm
仓库 : @System
来自仓库 : AppStream
概况 : Very Secure Ftp Daemon
URL : https://security.appspot.com/vsftpd.html
协议 : GPLv2 with exceptions
描述 : vsftpd is a Very Secure FTP daemon. It was written completely from
: scratch.
update //升级
update_to //升级为指定版本
列出软件包
列出软件仓库中可用的软件
例:
[root@hhr ~]# yum list all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:0:24:03 前,执行于 2021年07月07日 星期三 20时36分48秒。
已安装的软件包
GConf2.x86_64 3.2.6-22.el8 @AppStream
ModemManager.x86_64 1.10.8-2.el8 @anaconda
...
进行模糊查找
例:
[root@hhr ~]# yum list all | grep "ftp"
python3-requests-ftp.noarch 0.3.1-11.el8 @AppStream
vsftpd.x86_64 3.0.3-31.el8 @AppStream
ftp.x86_64 0.17-78.el8 AppStream
lftp.i686 4.8.4-1.el8 AppStream
...
列出软件包详情
示例:
[root@hhr ~]# yum info vsftpd
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:0:33:34 前,执行于 2021年07月07日 星期三 20时36分48秒。
已安装的软件包
名称 : vsftpd
版本 : 3.0.3
发布 : 31.el8
架构 : x86_64
大小 : 343 k
源 : vsftpd-3.0.3-31.el8.src.rpm
仓库 : @System
来自仓库 : AppStream
概况 : Very Secure Ftp Daemon
URL : https://security.appspot.com/vsftpd.html
协议 : GPLv2 with exceptions
描述 : vsftpd is a Very Secure FTP daemon. It was written completely from
: scratch.
安装软件包
安装仓库内的软件,只需要给出软件名称
示例:
[root@hhr ~]# yum install vsftpd
安装过程中分析依赖关系后, 直接安装
示例:
[root@hhr ~]# yum install vsftpd
安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖
示例:
[root@hhr ~]# yum -y localinstall /mnt/cdrom/Packages/httpd-2.4.6-67.el7.x86_64.rpm
安装网络上rpm包
示例:
[root@hhr ~]# yum install https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:0:39:17 前,执行于 2021年07月07日 星期三 20时36分48秒。
[MIRROR] vsftpd-3.0.2-25.el7.x86_64.rpm: Status code: 404 for https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm (IP: 58.215.146.118)
[MIRROR] vsftpd-3.0.2-25.el7.x86_64.rpm: Status code: 404 for https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm (IP: 58.215.146.118)
[MIRROR] vsftpd-3.0.2-25.el7.x86_64.rpm: Status code: 404 for https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm (IP: 58.215.146.118)
...
缓存命令
缓存仓库的元数据文件
示例:
[root@hhr ~]# yum makecache
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
BaseOS 2.7 MB/s | 2.8 kB 00:00
AppStream 3.1 MB/s | 3.2 kB 00:00
元数据缓存已建立。
缓存rpm包
1.安装yum插件,实现只下载软件包不安装
示例:
[root@hhr ~]# yum -y install yum-plugin-downloadonly
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:0:01:55 前,执行于 2021年07月07日 星期三 21时16分57秒。
...
2.将软件下载至指定目录
示例:
[root@hhr ~]# yum -y install --downloadonly --downloaddir=/tmp httpd
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:0:01:18 前,执行于 2021年07月07日 星期三 21时16分57秒。
软件包 httpd-2.4.37-21.module+el8.2.0+5008+cca404a3.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
清除所有yum缓存
示例:
[root@hhr ~]# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
12 文件已删除
YUM签名检查机制
在仓库中指定公钥位置
示例:
[root@hhr ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[root@hhr ~]# cat /etc/yum.repos.d/CentOS-Base.repo
se]
name=Redhat-$releasever - Base
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY--redhat-release
enabled=1
不进行签名验证
示例:
[root@hhr ~]# yum install httpd --nogpgcheck
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
警告:加载 '/etc/yum.repos.d/CentOS-Base.repo' 失败,跳过。
BaseOS 184 MB/s | 2.3 MB 00:00
AppStream 212 MB/s | 5.8 MB 00:00
上次元数据过期检查:0:00:01 前,执行于 2021年07月07日 星期三 21时26分19秒。
软件包 httpd-2.4.37-21.module+el8.2.0+5008+cca404a3.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
配置yum源
本地仓库
永久挂载
示例:
[root@hhr ~]# echo "/dev/sr0 /mnt/cdrom iso9660 defaults 0 0" >> /etc/fstab
临时挂载
示例:
[root@hhr ~]# mkdir /mnt/cdrom
[root@hhr ~]# mount /dev/sr0 /mnt/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
yum/dnf本地仓库配置
示例:
[root@hhr ~]# vim /etc/yum.repos.d/hhr.repo
[root@hhr ~]# cat /etc/yum.repos.d/hhr.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/cdrom/BaseOS
gpgcheck=0
enabled=1
[AppStream]
name=AppStream
baseurl=file:///mnt/cdrom/AppStream
gpgcheck=0
enabled=1
<[Repo_Name]:仓库标识
name:仓库名称
baseurl:仓库的具体路径,接受以下三种类型
ftp://
http://
file://
gpgcheck:可选值{1|0},1为检查软件包来源合法性,0为不检查来源
如果gpgcheck设为1,则必须用gpgkey定义密钥文件的具体路径
gpgkey=/PATH/TO/KEY
enabled:可选值{1|0},1为启用此仓库,0为禁用此仓库>
清空本地仓库缓存
例:
[root@hhr ~]# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
警告:加载 '/etc/yum.repos.d/CentOS-Base.repo' 失败,跳过。
12 文件已删除
缓存元数据
例:
[root@hhr ~]# yum makecache
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
警告:加载 '/etc/yum.repos.d/CentOS-Base.repo' 失败,跳过。
BaseOS 164 MB/s | 2.3 MB 00:00
AppStream 263 MB/s | 5.8 MB 00:00
上次元数据过期检查:0:00:01 前,执行于 2021年07月07日 星期三 21时38分55秒。
元数据缓存已建立。
网络仓库
配置网络yum仓库
示例:
[root@hhr ~]# cd /etc/yum.repos.d/
[root@hhr yum.repos.d]# vim hhr.repo
[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
gpgcheck=0
enabled=1
[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/
gpgcheck=0
enabled=1
部分开源镜像站提供了repo配置文件,我们可以直接下载使用
示例:
[root@hhr ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2595 100 2595 0 0 11533 0 --:--:-- --:--:-- --:--:-- 11533
EPEL的方式配置网络yum仓库,通过安装rpm包配置网络仓库
示例:
[root@hhr ~]# curl -O https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/centos-linux-release-8.3-1.2011.el8.noarch.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2318 100 2318 0 0 10348 0 --:--:-- --:--:-- --:--:-- 10348