Day 9:Linux 软件安装与环境变量
本文最后更新于86 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

今日主题

Linux 软件安装、包管理器、环境变量 PATH

今日掌握

  • yum / apt 的作用
  • rpm / deb 的区别
  • which / whereis / find 的区别
  • PATH 的含义
  • 软件安装的本质

核心理解

Linux 软件安装,本质是把程序文件安装到系统中,并保证依赖齐全、路径可被系统识别。

PATH 是系统寻找命令的搜索路径。

which 用来查命令位置;whereis 用来查软件相关路径;find 用来全盘搜索文件。

今日命令

which python3
whereis python3
echo $PATH
find /etc -name passwd
rpm -qa | grep nginx

面试表达

在 Linux 中,软件安装本质是把可执行程序放到系统可识别的目录中,并配置依赖和环境变量。常见包管理工具有 yum / apt,which 可以查看命令路径,PATH 用来定义系统查找命令的搜索路径。

Linux 软件安装、包管理、环境变量(系统理解)

这是你以后:

安装Docker
安装MySQL
安装Redis
安装Java
安装Go
安装K8s工具
部署各种服务

的基础中的基础。


今天的目标

学完之后,你要能理解:

1、Linux 软件为什么能安装
2、yum / apt 是什么
3、rpm / deb 是什么
4、源码安装是什么
5、环境变量 PATH 是什么
6、which / whereis / find 的区别
7、软件安装失败怎么排查

今天最重要的一句话:

Linux 中安装软件,本质是把可执行文件放到系统能找到的位置,并配置好依赖。


第一部分:什么是软件安装

我们先理解本质。

比如你输入:

ls

为什么 Linux 能认识?

因为:

系统知道:

/bin/ls

这个程序在哪里。


再比如:

python3

系统知道:

/usr/bin/python3

在哪里。


所以安装软件,本质就是:

把程序放到系统中
+
系统能找到它
+
依赖齐全

举例:

安装 Docker 后:

docker ps

能执行。

为什么?

因为系统知道:

/usr/bin/docker

这个命令在哪里。


这就是底层逻辑。


第二部分:包管理器是什么

这块是高频面试题。

为什么需要包管理器

以前装软件:

下载源码
编译
解决依赖
手动安装
配置路径

非常麻烦。


后来出现:

包管理器

类似:

应用商店。


你输入:

yum install nginx

系统自动:

下载
解决依赖
安装
配置

非常方便。


常见包管理器

RedHat 系

比如:

CentOS CentOS
Rocky Linux Rocky Linux

使用:

yum
dnf
rpm

Debian 系

比如:

Ubuntu Ubuntu
Debian Debian

使用:

apt
dpkg

一句话:

rpm = 安装包格式
yum/dnf = 高级管理工具

deb = 安装包格式
apt = 高级管理工具

第三部分:yum 的核心命令

(如果你是 Rocky Linux / CentOS)

更新软件源

sudo yum makecache

搜索软件

yum search nginx

安装

sudo yum install nginx -y

-y

自动 yes。


查看是否安装

rpm -qa | grep nginx

解释:

rpm -qa = 查看所有包
grep nginx = 筛选

卸载

sudo yum remove nginx

查看软件信息

yum info nginx

查看安装了哪些文件

rpm -ql nginx

这很重要。

比如会看到:

/etc/nginx/nginx.conf
/usr/sbin/nginx
/var/log/nginx

这能帮你建立目录感。


第四部分:which / whereis / find

这是高频知识点。

which

查看命令路径:

which python3

输出:

/usr/bin/python3

查看 Docker:

which docker

面试回答

which 用来查找命令执行路径。


whereis

更全面:

whereis nginx

可能输出:

/usr/sbin/nginx
/etc/nginx
/usr/share/nginx

包括:

程序
配置
文档

find

全盘找:

find / -name nginx.conf

会慢一点。

但很强。


总结:

which = 查命令
whereis = 查软件相关路径
find = 全盘找文件

第五部分:环境变量 PATH(非常关键)

敲:

echo $PATH

可能输出:

/usr/local/bin:/usr/bin:/bin:/usr/sbin

什么意思?

就是:

系统会按顺序去这些目录找命令。


比如你敲:

python3

系统会找:

/usr/local/bin/python3
/usr/bin/python3
/bin/python3

找到就执行。


所以:

PATH = 系统找命令的搜索路径。


自己加 PATH

例如:

export PATH=$PATH:/opt/mybin

以后:

/opt/mybin

里的命令也能直接执行。


这个在:

Java
Go
Maven
kubectl
helm
terraform

安装时经常用。


第六部分:Day9 实操

今天必须敲:

which ls
which python3

whereis python3

echo $PATH

find /etc -name passwd

rpm -qa | head

如果是 Ubuntu:

dpkg -l | head

如果装了 nginx:

rpm -ql nginx
which nginx
whereis nginx
find / -name nginx.conf

第七部分:大厂面试题

1)yum 和 rpm 的区别?

答:

rpm 是底层安装包工具;yum 在 rpm 之上,能自动解决依赖。


2)PATH 是什么?

答:

PATH 是系统查找可执行命令的环境变量路径。


3)which 和 whereis 区别?

答:

which 查执行路径
whereis 查相关目录

4)为什么命令找不到?

原因可能:

没安装
PATH没配置
权限不足
命令名错误
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇