提示:推荐韩顺平老师学习视频
文章目录
推荐
Linux快速工具教程
鸟哥的Linux私房菜
Linux命令搜索
1. Linux目录结构
Linux文件
Linux系统中一切皆文件
目录 | 含义 |
---|---|
/bin | Binary的缩写,用来存二进制可执行文件,并且比较特殊的是/bin存放的是所有一般用户都能使用的可执行文件,如:cat、chmod、mv、mkdir、cd等常用指令 |
/sbin | Super User的意思,存放一些只有root用户才有权限执行的可执行文件,如init,ip,mount等命令 |
/boot | 主要存放开机时用到的引导文件,如linux内核文件和开机菜单与开机所有需要的配置文件 |
/dev | device,任何设备都以文件的形式存放再这个目录中。例如硬盘、键盘、鼠标、光驱等各种设备文件。只要通过访问该目录的某个文件就相当于访问了对应的设备 |
/etc | 配置文件、启动脚本等(etc)包含所有程序所需的配置文件以及系统的配置文件,如用户的账号密码文件,各个服务的起始文件等。也包含了用于启动/停止单个程序的启动和关闭shell脚本。一般来说,该目录下的文件属性是可以让用户查阅,但只有root管理员有权利修改 |
/home | 系统默认的用户的家目录,每当新建一个用户系统都会在这个目录下创建以该用户名为名称的目录作为该用户的家目录。 |
/lib | library,存放着系统开机时所需的函数库以及/bin和/sbin目录下的命令会调用的函数库 |
/lib64 | 存放相对于/lib中支持64位格式的函数库 |
/media | 存放可移除的媒体设备、如光盘,DVD等 |
/mnt | mount,临时挂载的设备文件,临时安装目录,系统管理员可以挂载文件系统。时系统管理员临时安装文件的系统安装点。 |
/opt | optional,可选的软件包,即第三方文件软件。我们可以将除了系统自带软件之外的其他软件安装到这个目录。 |
/proc | 特殊的动态目录,用以 维护系统的信息和状态,包括当前运行中进程(processes)信息。包含系统进程的相关信息,是一个虚拟的文件系统,包含有关正在运行的进程的信息,系统资源以文本信息形式存在。 |
/root | 系统管理员root的主目录 |
/run | 最近一次开机后所产生的各项信息,如当前的用户和正在运行中的守护进程等。 |
/srv | service,存放一些服务启动后所需的数据 |
/sys | system,与/proc类似也是虚拟文件系统,存放系统核心与硬件相关信息管理设备文件。不占用硬件容量。 |
/tmp | temporary, 存放系统运行过程中使用的一些临时文件,可以被所有就用户访问,系统重启时会清空该目录。 |
/usr | 包含绝大部分所有用户(users)都能访问的应用程序和文件包含二进制文件,库文件。文档和二级程序的源代码。 |
/var | 经常变化的(variable)文件,诸如日志或数据库等代表变量文件。在这个目录下可以找到内容可能增长的文件 |
2. VI/VIM 编辑器
VI
是Unix操作系统和类Unix操作系统中最通用的文本编辑器
VIM
编辑器是从V1从发展出来的一个性能更强大的文本编辑器。可以主动的以文字颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。
2.1 常用的三种模式
vim的界面分为一般模式(快速编辑、光标跳转)、插入模式(编辑文本)、指令模式(搜索、替换)
2.1.1 一般模式
以vim
打开一个文件直接进入一般模式(默认模式),该模式中可以使用**[上下左右]按键移动光标,可以使用[删除字符]或[删除整行]来处理文档内容,可以使用[复制粘贴]**处理数据。
语法 | 功能描述 |
---|---|
yy | 复制光标当前一行 |
y数字y | 复制一段(从第几行到第几行) |
y (shift + 4) | 复制当前光标到结尾的字符串 |
p | 箭头移动到目的行粘贴 |
u | 撤销上一步 |
dd | 删除光标当前行 |
d数字d | 删除光标(含)后多少行 |
x | 剪切一个字母,相当于del |
X | 剪切一个字母,相当于Backspace |
w | 切换到下一个词 |
e | 快速到下一个词尾 |
d | 跳转到上一个词 |
yw | 复制一个词 |
dw | 删除一个词 |
shift+6 | 移动到行头 |
shift+4 | 移动到行尾 |
gg | 移动到页头 |
G /L | 移动到页尾 |
数字+shift+g | 移动到目标行 |
显示行号 :set nu
不显示行号 :set nonu
2.1.2 插入模式
按下i,I,o,O,a,A,r,R
等任何字母之后进入编辑模式,一般来说按i
即可。
在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!要 等到你按下**[i, I, o, O, a, A]**等任何一个字母之后才会进入编辑模式。
注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现INSERT
或 REPLACE
的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下**[Esc]**这个按键即可退出编辑模式。
1)进入编辑模式
按钮 | 功能 |
---|---|
i | 当前光标前 |
a | 当前光标后 |
o | 当前光标行的下一行 |
I | 光标所在行最前 |
A | 光标所在行租后 |
O | 当前光标行的上一行 |
2)退出编辑模式
按 [ESC] 键退出编辑弄湿,之后所在的模式为一般模式
2.1.3 指令模式
在一般模式当中,输入: / ?
3个中的任何一个按钮,就可以将光标移动到最底下的一行
在这个模式当中,可以提供相关指令,完成读取、存盘、替换、离开vim、显示行号等动作都是在此模式中达成的
基本语法
命令 | 功能 |
---|---|
:w | 保存 |
:q | 退出 |
:wq | 保存并退出 |
:q! | 不保存强制退出 |
/ 要查找的词 | n查找下一个,N往上查找 |
:noh | 取消高亮显示 |
:set nu | 显示行号 |
:set nonu | 关闭显示行号 |
:s /old/new | 替换当前行匹配到第一个old为new |
:s /lod/new/g | 替换当前行匹配到所有old为new |
:%s/old/new | 替换文档中每一行匹配到的第一个old为new |
:%s/old/new/g | 替换文档中的所有的old为new 比较常用 |
模式之间转换
在命令行模式下,
:wq
表示保存退出:q
表示退出:q!
表示强制退出,不保存
[需求] 使用vim
编写Hello.java
程序
在终端输入i
进入插入模式,编写完程序,按Esc
退出插入模式,输入: +wq
,保存并退出命令行模式,最终在终端输入ls
显示目录下的文件。
2.2 快捷键使用练习
1.拷贝当前行 yy
,拷贝当前行向下的5行 5yy
,并粘贴p
一般模式下选取当前行,输入yy
,然后输入p
2.删除当前行 dd
,删除当前行向下的5行 5dd
3.在文件中查找某个单词 [命令行下/
关键字, 回车查找,输入n
就是查找下一个]
4.设置文件的行号[命令行下:set nu
],取消文件的行号[命令行下:set nonu
]
5.编辑/etc/profile
文件,使用快捷键到该文档的最末行[G
]和最首行[gg
]
6.在一个文件中输入/hello
,然后在一般模式下又撤销这个动作 u
7.编辑/etc/profile
文件,并将光标移动到20行 shift+g
3. 关机&重启&登录&注销
3.1 关机&重启命令
命令 | 说明 |
---|---|
shutdown -h now | 立刻关机 |
shutdown -h 1 | 1min后关机 |
shutdown -r now | 现在重新启动计算机 |
halt | 关机 |
reboot | 现在重新启动计算机 |
sync | 把内存的数据同步到磁盘 |
注意细节
- 不管重启系统还是关闭系统,首先运行
sync
命令,把内存中的数据写到磁盘中 - 目前的
shutdown/reboot/halt
等命令均已经在关机前进行了sync
3.2 用户登录和注销
- 登录时尽量少用
root
账号(系统管理员,权限最大)登录,避免操作失误 - 普通用户登录,登录后使用
su - 用户名
命令切换成管理员省份 - 在提示符下输入
logout
即可注销登录(用户状态切到root下使用logout
从root状态切回用户状态)
注意细节
- logout注销指令在图形运行级别无效
- 在运行级别3下有效
4. 用户管理
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以该账号的身份进入系统
4.1 添加用户
基本语法
useradd 用户名
- 当创建用户成功后,会自动的创建和用户同名的家目录
- 也可以通过
useradd -d
指定目录新的用户名,给新创建的用户指定家目录
[需求]
添加一个用户milan
,默认用户的家目录在/home/milan
# 在/home下创建test目录 创建用户king
useradd -d /home/test king
4.2 指定/修改密码
基本语法
passwd 用户名
# 补充 显示当前用户所在的目录 pwd
[需求] 给milan
设置密码
4.3 删除用户
基本语法
userdel 用户名
[需求]
1.删除用户milan
,但是保留家目录;
userdel milan
2.删除用户以及用户主目录**[慎重!!]**
userdel -r cyan
4.4 查询用户信息指令
基本语法
id 用户名
[需求] 查询root
信息
id root
4.5 切换用户
操作Linux这个,如果当前用户的权限不够,通过su -
指令,切换高权限用户
基本语法
su - 切换用户名
[需求] 创建一个用户jack
,指定密码,然后切换到jack
su - root
useradd jack
passwd jack
su - jack
说明
- 从高权限的用户切换到低权限的用户,不需要输入密码,反之需要
- 当需要返回到原来用户时,使用
exit/logout
指令
4.6 查看当前用户/登录用户
基本语法
whomi/who am I
4.7 用户组
类似于角色,系统可以对有共性/权限的多个用户进行统一的管理
4.7.1 操作
新增组
groupadd 组名
删除组
groupdel 组名
增加用户时直接加上组
useradd -g 用户组 用户名
[需求] 增加一个用户yan
,直接将他指定到wudang
groupadd wudang
useradd -g wudang yan
修改用户的组
usermod -g 用户组 用户名
4.7.2 用户组相关文件
/etc/password 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户识别号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件
组(group)的配置文件,记录Linux包含的组的信息
每行的含义:组名:口令:组标识号:组内用户列表
5. 常用基本命令
5.0 指定系统运行级别
1. linux运行级别
Linux系统有7种运行级别(runlevel) 常用的级别3和5
- 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 1:单用户工作状态,root权限,用于系统维护,禁止远程登录
- 2:多用户状态(没有NFS),不支持网络
- 3:安全的多用户状态(有NFS),登录后进入控制台命令行模式
- 4:系统未使用,保留
- 5:X11控制台,登陆后进入图形GUI模式
- 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
2. CentOS7的运行级别简化为:
在/etc/inittab
文件中,进行了简化
multi-user.target 等价于原运行级别3(多用户有网,无图形界面)
graphical.target 等价于原运行级别5(多用户有网,有图形界面)
3. 查看当前运行级别:
systemctl get-default
vim /etc/inittab
4. 修改当前运行级别:
system set-default TARGET.target
(这里的TARGET取 multi-user 或者graphical)
如何找回root
密码
面试题:如何找回root密码
1.首先,启动系统,进入开机界面,在界面中按e
进入编辑界面
2.进入编辑界面,使用键盘上的上下键把光标往下移动,找到以Linux16
开头内容所在的行数,在行的最后面输入:init=/bin/sh
3.接着,输入完成后,直接按快捷键:Ctrl+X
进入单用户模式
4.接着,在光标闪烁的位置中输入mount -o remount,rw /
(注意:各单词间有空格),完成后按回车键(Enter)
5.在新的一行最后面输入:passwd
,完成后按键盘的回车键(Enter),输入密码,然后再次确认密码即可,密码修改成功后,会显示passwd…的样式,说明密码修改成功
6.接着,在鼠标闪烁的位置中(最后一行)输入:touch / autorelabel
*(注意:touch
与/
后面有一个空格),完成后按键盘的回车键(Enter)
7.继续在光标闪烁的位置中,输入exec /sbin/init
(注意:exec
与/
后面有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码,完成后,系统自动重启,新的密码即可生效。
5.1 帮助指令
5.1.1 man 获取帮助信息
-
基本语法
man [命令或配置文件]
获取帮助信息man -f cd cd (1) - bash built-in commands, see bash(1) cd (n) - Change working directory [root@lys ~]# man 1 cd # 1为上面的括号显示
[在Linux下隐藏文件是以
.
开头] -
显示说明
信息 | 功能 |
---|---|
NAME | 命令的名称和单行描述 |
SYNOPSIS | 怎样使用命令 |
DESCRIPTION | 命令功能的深入讨论 |
EXAMPLES | 怎样使用命令的例子 |
SEE ALSO | 相关主题(通常是手册页) |
5.1.2 help 获取shell内置命令的帮助信息
一部门基础功能的系统命令是直接内嵌在shell中,系统加载启动之后会随着shell一起加载,常驻系统内存中。这部门命令被称为“内置(built-in)命令”;相应的其他命令被称为“外部命令”
判断是否内置命令
type cd
cd is a shell builtin
-
基本语法
help 命令 获得shell内置命令的帮助信息
-
案例实操
- 查看cd命令的帮助信息
help cd
- 查看cd命令的帮助信息
5.1.3 常用快捷键
常用快捷键 | 功能 |
---|---|
ctrl + c | 停止进程 |
ctrl + l | 清屏,等同于clear;彻底清屏是: reset |
tab | 提示(更重要的是可以防止敲错) |
上下键 | 查找执行过的命令 |
5.2 文件目录类
5.2.1 pwd指令
基本语法
pwd
作用
显示当前工作目录的绝对路径
5.2.2 ls 指令
基本语法
ls [选项] [文件或目录]
作用
列出目录内容
选项 | 功能 |
---|---|
-a | 全部的文件,连同隐藏文档(开头为.的文件) 一起 |
-l | 长数据串列出,包含文件的属性与权限等等数据(常用)等价于“ll” |
-lh | 文件大小比较好看 |
显示说明
每行列出的信息依次是:文件类型与权限 链接户 文件属性 文件大小用byte来标识 建立或最近修改的时间 名字
5.2.3 cd 指令
基本语法
cd [参数]
作用
切换到指定目录
参数 | 功能 |
---|---|
cd 绝对路径 | 切换路径 |
cd 相对路径 | 切换路径 |
cd ~ 或 cd | 回到自己的家目录 |
cd - | 回到上一次所在目录 |
cd … | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
5.2.4 mkdir 指令
基本语法
mkdir [选项] 要创建的目录 # 默认创建一级目录
作用
创建目录
常用选项
-p
创建多级目录
# 创建目录
mkdir a
mkdir /home/dog
# 一次创建多级
mkdir a a/b a/b/c
mkdir -p a/b/c
5.2.5 rmdir 指令
基本语法
rmdir [选项] 要删除的空目录
作用
指定删除空目录
rmdir
删除的是空目录,如果目录下有内容是无法删除的- 如果需要删除非空目录,使用
rm -rf 要删除的目录
[谨慎!]
# 删除目录
rmdir a
# 删除多级目录
rmdir a/b/c
5.2.6 touch 指令
基本语法
touch 文件名称
作用
创建空文件
5.2.7 cp 指令
基本语法
cp [选项] source dest
作用
拷贝文件到指定目录
常用选项
-r
递归复制整个文件夹
细节
强制覆盖不提示的方法: \cp
\cp -r/home/bbb /opt
[需求]
1.将/home/hello.txt
拷贝到 /home/bbb
目录下
mkdir bbb
ls
cp hello.txt bbb/
cd bbb/
ls
2.递归复制整个文件夹,如将/home/bbb
整个目录,拷贝到/opt
cp -r /home/bbb /opt
5.2.8 rm 指令
基本语法
rm [选项] 要删除的文件或目录
作用
移除文件或目录
选项 | 功能 |
---|---|
-r | 递归删除目录中所有内容 |
-f | 强制执行删除操作,而不提示,用于进行确认 |
-v | 显示指令的详细执行过程 |
# 删除文件
rm test.txt
# 递归删除
rm -r dir
# 强制删除
rm -f dir
5.2.9 mv 指令
基本语法
mv oldNameFile newNameFile # 重命名
mv /tmp/moveFile /targerFolder # 移动文件
作用
移动文件或目录或重命名
[需求]
1.将/home/cat.txt文件重命名为pig.txt
mv cat.txt pig.txt
ls
2.将/home/pig.txt 文件移动到/root目录下
mv pig.txt /root/
cd /root/
ls
3.移动整个目录,将/opt/bbb 移动搭到/home下
cd /home/
ls
cd /opt/
ls
mv bbb/ /home/
5.2.10 cat 指令
基本语法
cat [选项] 要查看的文件
cat -n 文件名 显示所有行的行号,包括空行
作用
查看文件内容
细节
cat
只能浏览文件,不能修改文件,为了浏览方便,一般带上 管道命令|more
cat -n/etc/profile | more
进行交互
5.2.11 more 指令
文件内容分屏查看器
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令中内置若干快捷键
基本语法
more 要查看的文件
作用
查看文件内容
操作 | 功能说 |
---|---|
空白键(space) | 代表向下翻一页 |
Enter | 代表向下翻一行 |
q | 立刻离开 more |
ctrl + F | 向下滚动一屏 |
ctrl + B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行行号 |
5.2.12 less 指令
less
指令用来分屏查看文件内容,它的功能与more
指令类似,但是比more
指令更加强大,支持各种显示终端。less
指令在显示文件内容时,不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法
less 文件名
作用
分屏显示文件内容 (查看大文件)
操作 | 功能说明 |
---|---|
空白键 | 向下翻动一页 |
pagedown | 向下翻动一页 |
pageup | 向上翻动一页 |
/字符串 | 向下搜寻【字符串】的功能:n:向下查找 N:向上查找 |
?字符串 | 向上搜寻【字符串】的功能:n 向上查找 N 向下查找 |
q | 离开less这个程序 |
5.2.13 echo 指令
基本语法
echo [选项] [输出内容]
作用
echo 输出内容到控制台
选项
-e
: 支持反斜线控制的字符转换
控制字符 | 作业 |
---|---|
\ | 输出\本身 |
\n | 换行符 |
\t | 制表符,也就是Tab键 |
5.2.14 head 指令
head用于显示文件的开头部门内容,默认情况下 head指令显示文件的前10行内容。
基本语法
head 文件名 # 查看文件头10行内容
head -n 5 文件 # 查看文件头5行内容
作用
显示文件头部内容
5.2.15 tail 指令
用于输出文件中尾部的内容,默认情况下tail
指令显示文件的前10行内容
基本语法
tail 文件 # 查看文件尾10行内容
tail -n 5 文件 # 查看文件尾5行内容,5可以是任意行数
tail -f 文件 # 实时追踪文档的所有更新
tail -f 文件
- 按Ctrl + S 可以暂停监听
- 按Ctrl + Q 可以继续监听
作用
输出文件尾部
[需求]
1.查看/etc/profile
最后5行代码
tail -n /etc/profile
2.实时监控mydate.txt
,看到文件有变化时,是否看到,实时的追加的hello world
touch mydate.txt
tail -f mydate.txt
echo 'hello world' > /home/mydate.txt
5.2.16 >输出重定向和 >> 追加
>
输出重定向,>>
追加
基本语法
ls -l
> a.txt (功能描述:列表的内容写入文件 a.txt 中(覆盖写))ls -al
>> aa.txt (功能描述:列表的内容追加到文件 aa.txt 的末尾)cat
文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)echo
“内容” >> 文件
[需求]
1.将/home
目录下的文件列表写入到/home/info.txt
中,覆盖写入
ls -l /home > /home/info.txt # [若info.txt不存在,则会创建文件]
2.将当前日历信息追加到/home/mycal
文件中
cal
cal >> /home/mycal
ls
cat mycal
5.2.17 ln 指令
软链接(link)也称为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了连接其他文件的路径
基本语法
ln -s[原文件或目录][软链接名] # 给原文件创建一个软链接
[需求]
1.在/home
目录下创建一个软链接myroot
,链接到/root
目录
ln -s /root /home/myroot
2.删除软链接myroot
rm /home/myroot
细节
当使用pwd
指令查看目录,看到的是软链接所在目录
创建软连接
[root@lys logs]# ln -s web.log web
[root@lys logs]# ll
total 7988
-rw-r--r-- 1 root root 115498 May 13 11:04 gateway.log
lrwxrwxrwx 1 root root 7 May 16 00:36 web -> web.log # 软连接的前缀为l
-rw-r--r-- 1 root root 8048944 May 16 00:36 web.log
直接进入软连接对应的地址
cd -P 软连接
删除软连接: rm -rf 软连接名
,而不是rm -rf 软连接名/
!!! 如果使用rm -rf 软连接/ 删除,会把软连接对应的真实目录下内容删掉
硬连接 (相当于)
ln 文件名 链接名
5.2.18 history 指令
基本语法
# 查看历史命令
history
# 情况历史命令
history -c
作用
查看已经执行过历史命令
[需求]
1.显示所有的历史命令
history
2.显示最近使用过的10个命令
history 10
3.执行历史编号为5的指令
!5
5.3 时间日期类
基本语法
date [option] + [format]
date -s 日期时间 # 设置日期时间
date + "日期时间格式" # 指定显示时使用的日期
5.3.1 date显示当前时间
date # 显示当前时间
date + %Y # 显示当前年份
date + %m # 显示当前月份
date + %d # 显示当前哪天
date "+%Y-%m-%d %H:%m:%S" # 显示年月日时分秒
date +%s # 查看时间戳
date -d "-1 hours ago" # 一个小时后的时间
ntpdate -u ntp1.aliyun.com # 同步时间
5.3.2 date设置日期
基本语法
date -s 字符串时间
[需求]
设置系统当前时间
date -s "2022-06-19 20:52:22" # 设置系统当前时间
8.3.3 cal 指令
基本语法
cal [选项] # 不加选项,显示本月日历
作用
查看日历
[需求]
1.查看3个月的时间
cal -3
2.查看2022年日历
cal 2022
3.查看本年度日历
cal
5.4 搜索查找类
5.4.1 find 指令
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
基本语法
find [搜索范围] [选项]
作用
查找文件或目录
选项 | 功能 |
---|---|
-name 查询方式 | 按照指定文件名查找模式查找文件 |
-user 用户名 | 查找属于指定用户名所有文件 |
-size 文件大小 | 按照指定文件大小查找文件,单位为 b-块 (512字节) c- 字节 w-字 2字节 k - 千字节 M -兆字节 G-吉字节 |
# 按名称查找
find -name nginx.conf
# 按路径加名称查找
find /root -name nginx.conf
# 按照后缀查找
find -name ".cfg"
# 按用户查找
find -user lys
# 按大小查找 +大于 -小于
find -size +1M
find -size +1M
[需求]
1.按文件名:根据名称查找/home
目录下的hello.txt
文件
find /home -name hello.txt
2.按拥有者:查找/opt
目录下,用户名称为nobody
的文件
find /opt -user nobody
3.查找整个Linux系统下大于200M的文件(+n
大于 -n
小于 n
等于,单位有k,M,G
)
find / -size +200M
5.4.2 locate
locate
指令利用事先建立的系统中所有文件名称及路径的locate
数据库事先快速定位给定的文件。locate
指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate
时刻。
基本语法
locate 搜索文件
作用
快速定位文件路径
细节
由于locate
指令基于数据库进行查询,所以第一次运行前,必须使用updatedb
指令创建locate
数据库
[需求]
使用locate
指令快速定位hello.txt
文件所在目录
uodatedb
locate hello.txt
# 查看指令所在位置
which ls
whereis locate
5.4.3 grep 指令
grep
过滤查找,管道符,|
,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法
grep 选项 查找内容 源文件
选项 | 功能 |
---|---|
-n | 显示匹配行及行号 |
-i | 忽略字母大小写 |
[需求]
在hello.txt
文件中,查找"yes"所在行并显示行号
cat /home/hello.txt | grep -n "yes" # 写法1
grep -n "yes" /home/hello.txt # 写法2
5.5 压缩和解压类
5.5.1 gzip/gunip 指令
基本语法
gzip
文件
gunzip
文件.gz (解压缩文件命令)
- 只能压缩文件不能压缩目录
- 不保留原来的文件
- 同时多个文件会产生多个压缩包
作用
gzip
用于压缩文件,gunzip
用于解压文件
[需求]
1.gzip
压缩,将/home
下的hello.txt
文件进行压缩
gzip /home/hello.txt
2.gunzip
压缩,将/home
下的hello.txt.gz
文件进行解压缩
gunzip /home/hello.txt.gz
5.5.2 zip/unzip 指令
zip
用于压缩文件,unzip
用于解压,zip
压缩命令在window/linux都通用,可以压缩目录且保留源文件
基本语法
zip [选项] XXX.zip # 压缩文件和目录命令
unzip [选项] XXX.zip # 解压缩文件
选项 | 说明 |
---|---|
zip -r | 递归压缩,即压缩目录 |
unzip -d | 指定解压后文件的存放目录 |
[需求]
1.将/home
下的所有文件进行压缩成myhome.zip
zip -r myhome.zip /home/ # [将home目录及其包含的文件和子文件夹都压缩]
2.将myhome.zip
解压到/opt/tmp
目录下
mkdir /opt/tmp
unzip -d /opt/tmp myhome.zip
5.5.3 tar 指令
tar
指令是打包指令,最后打包后的文件是tar.gz
文件
基本语法
tar [选项] XXX.tar.gz 打包的内容 # 打包目录,压缩后的文件格式 .tar.gz
选项 | 功能 |
---|---|
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 执行压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解压.tar文件 |
-C | 解压到指定目录 |
[需求]
1.压缩多个文件,将/home/pig.txt
和/home/cat.txt
压缩成pc.tar.gz
touch pig.txt
touch cat.txt
ls
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
2.将/home
的文件夹压缩成myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
3.将pc.tar.gz
解压到当前目录。切换/opt/
tar -zxvf pc.tar.gz
4.将myhome.tar.gz
解压到/opt/tmp2
目录下
mkdir /opt/tmp2
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
5.6 组管理和权限管理
Linux中每个用户必须属于一个组,不能独立于组外。在Linux中每个文件中有所有组、所在组、其他组的概念。
5.6.1 文件/目录所有者
一般为文件的创建者,谁创建了文件,自然称为该文件的所有者
查看文件的所有者
ls -ahl
修改文件所有者
chown 用户名 文件名
5.6.2 文件/目录所在组
当用户创建一个文件后,该文件所在的组就是用户所在的组
查看文件/目录所在组
ls -ahl
修改文件所在的组
chgrp 组名 文件名
[需求] 使用root用户创建文件orange.txt
,看看当前文件属于哪个组,然后将这个文件所在组,修改到fruit
组
groupadd fruit
touch orange.txt
看看当前文件属于哪个组 root组
chgrp fruit orange.txt
5.6.3 其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
5.6.4 改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组
改变用户所在组
usermod -g 新组名 用户名
# 用户需要有进入新目录的权限
usermod -d 目录名 用户名 改变该用户登录的初始目录
5.6.5 权限基本介绍
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll
或者ls -l
来显示一个文件的属性以及文件所属的用户和组
- 从左到有的10个字符标识
如果没有权限,就会出现减号[-]而已,从左至右用0-9这些数字赖标师
(1)0首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件
- 代表文件
d 代表目录
l 代表链接
c 代码字符设备文件,鼠标,键盘
b 代表块设备,硬盘
(2) 第1-3位确定所有者(该文件的所有者)拥有该文件的权限。User
(3)第4-6位确定所属组(所有者的同组用户)拥有该文件的权限。Group
(4) 第7-9位确定其他用户拥有该文件的权限 Other
-
rwx作用文件和目录的不同解释
作用到文件:
【
r
】: 代表可读(read) 可以读取,查看【
w
】:代表可写(write) 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件【
x
】:代表可执行(execute) 可以被系统执行作用到目录:
【
r
】: 代表可读(read) 可以读取,ls查看目录内容【
w
】:代表可写(write) 可以修改,目录内创建+删除+重命名目录【
x
】:代表可执行(execute) 可以进入该目录
文件基本属性介绍
(1)如果查看到是文件:链接数指的是硬链接个数。
(2)如果查看的是文件夹:链接数指的是子文件夹个数。
5.6.6 chmod 指令
通过chmod
指令,可以修改文件或者目录的权限
第一种方式
+、-、=
变更权限
u:所有者 q:所有组 o:其他人 a:所有人
chmod u=rwx,g=rx,o=x 文件/目录名
chmod o+w 文件/目录名
chmod a-x 文件/目录名
[需求]
1.给abc
文件的所有者读写执行的权限,给所在组读执行权限,给其他组读执行权限
chmod u=rwx,g=rx,o=rx abc
2.给abc
文件的所有者去除执行的权限,增加组写的权限
chmod u-x,g+w abc
3.给abc
文件的所有用户添加读的权限
chmod a+r abc
第二种方式 通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=1
chmod u=rwx,g=rx,o=x 文件目录名
# 等于
chmod 751 文件目录名
[需求]
将/home/abc.txt
文件的权限修改成rwxr-xr-x
,使用数字方式实现
chmod 755 /home/abc.txt
5.6.7 chown 指令
修改文件所有者
chown newowener 文件/目录 # 改变所有者
chown newowener:newgroup 文件/目录 # 改变所有者和所在组
选项 | 说明 |
---|---|
-R | 如果是目录,则使其下所有子文件或者目录递归生效 |
[需求]
1.请将/home/abc.txt
文件的所有者修改成tom
chown tom /home/abc.txt
2.请将/home/test
目录下所有的文件和目录的所有者都修改成tom
chown -R tom /home/test
5.6.8 chgrp 指令
修改文件/目录所在组
chgrp newgroup 文件/目录 # 改变所在组
[需求]
1.请将/home/abc.txt
文件的所在组修改成shaolin
groupadd shaolin
chgrp shaolin /home/abc.txt
2.请将/home/test
目录下的所有的文件和目录的所在组修改成shaolin
chgrp -R shaolin /home/test
5.7 定时任务调度
5.7.1 crond 定时任务
crontab
进行定时任务的设置
概述
任务调度:系统在某个时间执行的特定命令或程序
任务调度分类:
1.系统工作 2.个别用户工作
基本语法
crontab [选项]
选项 | 说明 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查询crontab定时任务 |
-r | 删除当前用户所有的crontab任务 |
快速入门
设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab -e
命令
接着输入任务到调度文件
crontab -e
# 每一小时的每分钟执行 ls -l /etc/ > /tmp/to.txt
*/1 * * * * ls -l /etc/ > /tmp/to.txt
项目 | 含义 | 范围 |
---|---|---|
第一个 “*” | 一小时当中的第几分钟 | 0-59 |
第二个 “*” | 一天当中的第几小时 | 0-23 |
第三个 “*” | 一个月当中的第几天 | 1-31 |
第四个 “*” | 一年当中的地几个月 | 1-12 |
第五个 “*” | 一周当中的星期几 | 0-7(0和7代表周日) |
特殊符号说明
特殊符号 | 含义 |
---|---|
* | 代表任何时间,比如第一个“*”就代表一小时中每分钟都执行一次的意思 |
, | 代表不连续的时间。比如“0 8,12,16 * * *” 就代表在每天的8点0分,,12点0分,16点0分都执行一次命令 |
- | 代表连续的时间访问。比如“0 5 * * 1-6" 代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次,比如”*/10 * * * *" 命令,代表每隔10分钟就执行一边命令 |
特定时间执行任务案例
时间 | 含义 |
---|---|
45 22 * * * | 每天22点45分执行命令 |
0 17 * * 1 | 每周1的17点0分执行命令 |
0 5 1,15 * * | 每月1号 15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 | 每周一到周五 4点40分执行命令 |
*/10 4 * * * | 每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 | 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同事出现,因为他们定义的都是天。非常容易让管理员混乱 |
crond相关指令
conrtab -r # 终止任务调度
conrtab -l # 列出当前的任务调度
service crond restart # 重启任务调度
5.7.2 at 定时任务
基本介绍
1.at
命令是一次性定时计划任务,at
的守护进程atd
会以后台模式运行,检查作业队列来运行
2.默认情况下,atd
守护进程每60
秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
3.at
命令是一次性定时计划认为有,执行完一个任务后不再执行此任务
4.在使用at
命令时,一定要保证atd
进程的启动,可以使用相关指令来查看
ps -ef # 检测当前运行的进程
# 加上过滤操作
ps -ef | grep atd # 检测atd是否在运行
at命令格式
at [选项] [时间]
# Ctrl+D 结束at命令的输入
原理图
at命令选项
选项 | 说明 |
---|---|
-m | 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出 |
-I | atq的别名 |
-d | atrm的别名 |
-v | 显示任务将被执行的时间 |
-c | 打印任务的内容到标准输出 |
-V | 显示版本信息 |
-q <队列> | 使用指定的队列 |
-f <文件> | 从指定文件读入任务而不是从标准输入读入 |
-t <时间参数> | 以时间参数的形式提交运行的任务 |
5.8 磁盘分区和挂载
原理介绍
- Linux无论有几个分区,给哪个目录使用,归根结底只有一个根目录,一个独立且唯一的文件结构,Linux每个分区都是用来组成整个文件系统的一部分。
- Linux采用“载入”的处理方法,它的整个文件系统中包含一整套的文件和目录,且将一个分区和一个目录联系起来
5.8.1 查看设备挂载情况
lsblk
# 查看详细的设备故障情况,显示文件系统信息
lsblk -f
5.8.2 查看磁盘空间使用情况
基本语法
# 查询系统整体磁盘使用情况
df -h
5.8.3 查看目录占用的磁盘空间
基本语法
du -h /目录
选项 | 功能 |
---|---|
-h | 以人们较易预读的G,M、k等格式自行显示 |
-a | 不进查看子目录大小,还要包括文件 |
-c | 显示所有的文件和子目录大小后,显示总和 |
-s | 只显示总和 |
-max-depth=n | 指定统计子目录的深度为第n层 |
查看当前用户主目录占用的磁盘空间大小
du -sh # 查看当前路径文件大小
# 子查看一级子目录
du --max-depth=1 -ah
5.8.4 mount/umount 挂载/卸载
基本语法
mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)
umount 设备文件名或挂载点 (功能描述:卸载设备)
参数 | 功能 |
---|---|
-t vfstype | 指定文件系统的类型,通常不必指定。mount会自动选择类型。常用类型有:光盘或光盘镜像 DOS Windows9x fat32文件系统:vfat Windows NT ntfs 文件系统: ntfs Mount Windows 文件网络共享:smbfs UNIX(LINUX)文件共享:nfs |
-o options | 主要用来描述设备或档案的挂接方式。常用的参数有: loop 用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备 iocharset: 指定访问系统所用字符集 |
device | 要挂接的设备 |
dir | 设备在系统上的挂载点 |
5.8.5 fdisk分区
fdisk -l 查看磁盘分区详情
fdisk 硬盘设备名 (显示所有硬盘的分区列表)
6. 网络配置和系统管理操作
6.1 查看网络IP和网关
1)查看虚拟网络编辑
windows查看ip
ipconfig
2)虚拟机网卡配置
桥接模式
虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这个模式下直接访问外部网络,并且对外部网络是可见的。(同一个路由器内都可见,占用局域网的ip)
NAT模式(Network Address Translation)
虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过该共享IP可以访问外部网络,但外部网络无法访问虚拟机。
仅主机模式
虚拟机只与主机共享一个专用网络,与外部网络无法通信。
3)查看网关
ifconfig
6.2 配置网络ip
修改为静态IP
vim /etc/sysconfig/network-scripts/ifcfg-“ifconfig看到的前缀”
BOOTPROTO="dhcp"
修改为
BOOTPROTO="static"
#IP地址
IPADDR=192.162.202.100
# 网关
GATEWAY=192.168.202.2
# 域名解析器
DBS1=192.168.202.2
重启网络服务
server network restart
6.3 配置主机名和hosts映射
6.3.1 修改主机名称
# 查看主机名
hostname
# 修改文件在/ect/hostname指定
vim /ect/hostname
# 修改后,重启生效
6.3.2 设置hosts映射
如何通过主机名找到某个Linux系统
- 对于winodws:在
C:Windows\System32\drivers\etc\hosts
文件指定即可 - 对于Linux:在
/etc/hosts
文件指定
6.3.2 修改hosts映射文件
1)修改linux的主机映射文件(hosts文件)
说明:后续在虚拟机多的情况时,配置时通畅会采用主机名的方式配置
vim /etc/hosts
windows
C:\Windows\System32\drivers\etc\hosts
主机名解析机制分析(Hosts、DNS)
1.浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有,就检查DNS解析器缓存,如果有直接返回IP完成解析。这两个缓存,可以理解为本地解析器缓存
2.—般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录).如在cmd窗口中输入
ipconfig /displaydns # DNS域名解析缓存
ipconfig /flushdns # 手动清理dns缓存
3.如果本地解析器缓存没有找到对应映射,检查系统中hosts文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回。
4.如果本地DNS解析器缓存和hosts文件中均没有找到对应的IP则到域名服务DNS进行解析域
7 进程管理
基本介绍
在Linux中,每个执行的程序称之为进程,每一个进程都分配一个ID号(pid,进程号)
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用着一定的系统资源
7.1 显示系统执行的进程
基本介绍
ps命令用来查看目前系统中,哪些正在执行,他们执行的状况,可以不加任何参数
选项
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户的进程 |
x | 列出当前用户的所有今后进程,包括没有终端的进程 |
u | 面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 显示完整格式的进程列表 |
ps命令显示的信息选项
字段 | 说明 |
---|---|
PID | 进程识别号 |
TTY | 终端机号 |
TIME | 此进程所消CPU时间 |
CMD | 正在执行的命令或进程名 |
1. ps aux显示信息说明
USER:该进程是由哪个用户产生的
PID: 进程的ID号
%CPU: 该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM: 该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ: 该进程占用虚拟内存的大小,单位KB;
RSS: 该进程占用实际物理内存的大小,单位KB;
TTY: 该进程是哪个终端中运行的。对于CentOS来说,tty1是图形化终端,tty2-tty5是本地的字符界面终端。pts/0-255代表虚拟终端。
STAT: 进程状态。常见的状态有:
R:运行状态 S:睡眠状态 T: 暂停状态 Z:僵尸状态 s:包含子进程 l: 多线程 +:前台显示 <:高优先级 N:低优先级
START: 该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
2. ps -ef 显示信息说明
UID: 用户ID
PID: 进程ID
PPID: 父进程ID
C: CPU用于计算执行优先级的因子。数字越大,表明进程是CPU密集型运算,执行优先级会降低;数字越小,表明进程是I/O密级型运算,执行优先级会提高
STIME:进程启动的时间
TIY:完成的终端名称
TIME: CPU时间
CMD: 启动进程所用的命令和参数
如果是想查看进程CPU占用率和内存占用率,可以使用aux
如果想查看进程的父进程ID可以使用ef;
7.2 进程终止
kill [选项] 进程号 通过进程号杀死进程
killall 进程名称 通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
选项 | 功能 |
---|---|
-9 | 表示强迫进程立即停止 |
kill -l 查看各个号码代表的意思
7.3 查看进程树
基本介绍
pstree [选项] # 直观查看进程信息
常用选项
选项 | 功能 |
---|---|
-p | 显示进程PID |
-u | 显示进程的所属用户 |
- pstree
- pstree -p
- pstree -u
7.4 实施监控系统进程状态
基本语法
top [选项]
常用选项
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行 |
-i | 使top不显示任何闲置或者僵死进程。 |
-p | 通过指定进程ID来仅仅监控某个进程的状态 |
常用操作
操作 | 功能 |
---|---|
P | 以CPU使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出top |
u | 根据指定用户进行过滤 |
k | 直接杀死 |
7.5 显示网络状态和端口占用信息
基本介绍
netstat -anp | grep 进程号 # 查看该进程网络信息
netstat -nlp | grep 端口号 # 查看网络端口号占用情况
netstat -atnp # 查看连接
常用选项
选项 | 功能 |
---|---|
-a | 显示所有正在监听(listen)和未监听的套接字(socket) |
-n | 拒绝显示别名,能显示数字的全部转化为数字 |
-l | 仅列出在监听的服务状态 |
-p | 表示显示哪个进程在调用 |
8 系统管理
进程和服务区别
计算机中,一个正在执行的程序或命令,被叫做"进程"(process)
启动之后一直存在、常驻内存的进程,一般被称做“服务”(service)
8.1 service 服务管理
ls /usr/sbin/ | grep service
基本语法
service 服务名 start | stop | restart | statu
案例实操
# 查看网络服务的状态
service network status
# 停止网络服务
service network stop
# 启动网络服务
service network start
# 重启网络服务
service network restart
8.2 chkconfig 设置后台服务的自启配置
基本语法
chkconfig #(功能描述:查看所有服务器自启配置)
chkconfig 服务名 off #(功能描述:关掉指定服务的自动启动)
chkconfig 服务名 on #(功能描述:开启指定服务的自动启动)
chkconfig 服务名 --list # (功能描述:查看服务开机启动状态)
案例实操
# 开启/关闭 network(网络)服务的自动启动
chkconfig network on
chkconfig network off
# 开启/关闭 network 服务指定级别的自动启动
chkconfig --level 指定级别 network on
chkconfig --level 指定级别 network off
8.3 systemctl
基本语法
systemctl start | stop | restart | status 服务名
查看服务的方法:ls - al /usr/lib/systemd/system
案例实操
# 查看防火墙服务的状态
systemctl status firewalld
# 停止防火墙服务
systemctl stop firewalld
# 开启防火墙服务
systemctl start firewalld
# 重启防火墙服务
systemctl restart firewalld
设置后台服务的自启配置
systemctl list-unit-files (功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)
案例实操
# 开启/关闭iptables(防火墙)服务的自动启动
systemctl enable firewalld.service
systemctl disable firewalld.service
9 软件包管理
9.1 RPM
9.1.1 RPM概述
RPM(RedHat Package Manager),RedHat软件包管理工具,类似于windows里面的setup.exe,是Linux这系列操作系统的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
RPM包的名称格式
Apache-1.3.23-11.i386.rpm
“apache” 软件名称
“1.3.23-11”软件的版本号,主版本和此版本
“i386”是软件所运行的硬件平台,Intel 32位处理器的统称
“rpm”文件扩展名,代表RPM包
9.1.2 RPM查询命令 (rpm -qa)
rpm -qa 查询所安装的所有rpm软件包
由于软件包比较多,一般都会才去过滤 rpm -qa | grep 名称
查询具体信息
rpm -qi unzip-6.0-24.el7_9.x86_64
9.1.3 RPM 卸载命令 (rpm -e)
rpm -e 名称 卸载软件包
rpm -e --nodeps 名称 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作
卸载firefox
rpm -e firefox
9.1.4 安装命令 (rpm -ivh)
rpm -ivh 包全名
选项 | 功能 |
---|---|
-i | install 安装 |
-v | –verbose 显示详细信息 |
-h | –hase,进度条 |
–nodeps | 安装前不检查依赖 |
安装firefox
rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
9.2 仓库配置
9.2.1 YUM概述
YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次 安装所有依赖的软件包,无须繁琐地一次一次下载,安装。
9.2.2 YUM的常用命令
yum [选项] [参数]
选项 | 功能 |
---|---|
-y | 对所有提问都回答“yes" |
参数 | 功能 |
---|---|
install | 安装rpm 软件包 |
update | 更新rpm软件包 |
check-update | 检查是否有可用的更新rpm软件包 |
remove | 删除指定的rpm软件包 |
list | 显示软件包信息 |
clean | 清楚yum过期的缓存 |
deplist | 显示yum软件包的所有依赖关系 |
yum方式安装firefox
yum list | grep firefox
# 卸载老版本
yum remove firefox
yum -y install firefox
9.2.3 修改网络YUM源 (默认会自己搜索最近的)
默认的系统 YUM 源,需要连接国外 apache 网站,网速比较慢,可以修改关联的网络 YUM 源为国内镜像的网站,比如网易 163,aliyun 等
(1)安装 wget, wget 用来从指定的 URL 下载文件
yum install wget
(2)在/etc/yum.repos.d/目录下,备份默认的 repos 文件
cp CentOS-Base.repo CentOS-Base .repo.backup
(3)下载网易 163 或者是 aliyun 的 repos 文件,任选其一
wget http://mirrors.aliyun.com/repo/Centos-7.repo # 阿里云
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo # 网易
(4)使用下载好的 repos 文件替换默认的 repos 文件 例如:用 CentOS7-Base-163.repo 替换 CentOS-Base.repo
mv CentOS7-Base-163.repo CentOS-Base.repo
(5)清理旧缓存数据,缓存新数据
yum clean all
yum makecache
yum makecache 就是把服务器的包信息下载到本地电脑缓存起来
(6)测试
yum list | grep firefox
yum -y install firefox