Files
BlogPosts/YueQian/MarkdownNotes/CQ2605/01Linux基础/02_Linux概述.md
2026-01-22 20:10:59 +08:00

307 lines
9.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# **1. Linux简介**
Linux最初是1991年由芬兰的Linus Torvalds发起目的是为了避开当时的类Unix的版权问题Linux从一开始就是开源的由网上组织松散的开发者协作完成并在1994年开始遵循GPL许可协议。
Linux、git创始人、技术狂人 —— 林纳斯·托瓦兹
![](images/WEBRESOURCE6f00c4094996487e8c714760360e01dfstickPicture.png)
[内核官网](https://www.kernel.org/)
通常谈到Linux有两个层面的含义
- 一指Linux内核它运行于整个系统内部用户看不见摸不着其主要功能是
1. 内存管理
1. 文件管理
1. 任务管理
1. 网络管理
1. 设备管理
- 二指Linux发行版操作系统例如Ubuntu、RedHat、Fedora、CentOS等。所谓的发行版指的是可直接发行给用户直接使用的操作系统它不仅包括了上述所说的内核且包括了诸如桌面系统、编辑编译环境、Shell、浏览器等用户日常使用必备的软件。
![](images/WEBRESOURCE45c51d8809e541af992df6e704909de0stickPicture.png)
各种Linux发行版操作系统
作为操作系统Operating System目前世界范围内有影响力的有
1. Linux开源系统可定制可裁剪
1. HarmonyOS华为公司先进的分布式操作系统
1. Windows微软公司针对普通家庭用户
1. MacOS苹果公司针对普通家庭用户
Linux与其他OS最大的区别是
![](images/WEBRESOURCE5296aa7dcfd14b96881247007a0e0892stickPicture.png)
# **2. Ubuntu**
在众多Linux发行版中Ubuntu是用的比较多的一款。点击进入 [Ubuntu 官方主页](https://cn.ubuntu.com/download/desktop) 可以下载最新版本Ubuntu系统每隔半年发布一个新版本分别在每年的4月和10月比如
- 2019年10月份发布的被称为Ubuntu-19.10
- 2020年04月份发布的被称为Ubuntu-20.04-LTS
注意到 
![](images/WEBRESOURCEec78f62ce35a4b90b4e04faf253872e0stickPicture.png)
从网上下载了Ubuntu的 ISO 镜像文件之后,需要在虚拟机中安装了之后才能使用,以下是已经安装好并配好环境的 Ubuntu 系统,开箱即食,童叟无欺:
- 适用于 VirtualBox
- Ubuntu-20.04-LTS
- 适用于 VMware
- Ubuntu-18.04-LTS
- Ubuntu-20.04-LTS
## **2.1 APT软件管理器**
Ubuntu最大的特点是继承了Debian系统的APT软件管理体系使得Linux下的软件管理变得非常简便。如下图所示各种厂商在世界各地部署了Ubuntu软件服务器统一管理Ubuntu中的deb软件包用户只要能联网即可从最近的服务器上直接下载安装所需的服务或软件。APT带给用户最便捷的地方在于它能自动为用户分析和安装软件的依赖模块从而避开了Linux软件安装中饱受诟病的依赖问题。
![](images/WEBRESOURCE8b9e7526b7414947be881eb4bfef5f68stickPicture.png)
使用APT软件管理器一般遵循如下步骤
1. 选择恰当的服务器(物理距离近的、速度快的)
1. 执行 update 指令更新服务器软件清单
选择完毕恰当的服务器之后还需执行APT的 
```shell
gec@ubuntu:~$ sudo apt update
```
**安装与卸载**
```shell
# 安装
gec@ubuntu:~$ sudo apt install xxx
# 卸载
gec@ubuntu:~$ sudo apt remove xxx
gec@ubuntu:~$ sudo apt remove --purge xxx #将配置文件也一并删除
# 修复APT管理器
gec@ubuntu:~$ sudo apt install -f
# 自动卸载一些已经无用的软件或服务
gec@ubuntu:~$ sudo apt autoremove
```
## **2.2 Linux目录结构**
Linux系统的目录结构中不同的文件夹分属不同的功能列表如下
Linux下一切皆文件除网络设备
![](images/WEBRESOURCEbd44608fd6664867bca2f8e4561fae77image.png)
文件1的路径/usr/local/文件1 根目录下的usr目录下的local的文件1
| 目录名 | 功能 |
| -- | -- |
| / | 根目录所有的分区和文件的起点类似与C盘 |
| /bin | 普通用户可用的命令所在路径 |
| /sbin | 超级用户可用的命令所在路径 |
| /etc | 各种配置文件所在路径 |
| /home | 所有普通用户的家目录所在路径 |
| /lib | 系统库文件所在路径 |
| /boot | 系统内核镜像文件所在路径 |
| /dev | 设备节点所在路径 |
| /usr | 第三方库和服务默认安装路径 |
| /proc | 系统进程数据在文件系统中的挂载路径 |
| /sys | 系统内核数据在文件系统中的挂载路径 |
| /var | 存放一些“易变”的文件,例如安装包、系统日志等 |
| /mnt | 默认的分区挂载路径 |
目录与目录间的关系不是分属Linux下目录与目录或目录与文件是索引关系
## **2.3 命令终端**
使用Linux的乐趣在于其直达核心的命令终端几乎所有的操作都可以在终端中进行配合Linux中大量精巧的命令真正做到让开发者敲代码时心无旁骛摒弃任何多余的分散注意力的东西后续课程重点就是介绍终端中的各种命令。
Shell 是用户与操作系统内核之间的接口,负责
Shell 是一种命令行解释器Command Line Interpreter它接收用户输入的文本命令将其翻译为操作系统内核能够理解的指令并执行相应操作。
在Ubuntu中Shell 命令行解释器使用的是bash解释器BashBourne Again SHell是一种命令行解释器也是 Linux 和 macOS 系统的默认 Shell
命令终端bash解释器
```
1、ctrl + alt + t //打开一个终端
2、鼠标右键打开终端
3、点击终端图标
```
![](images/WEBRESOURCE5fcadc9becb441e19779d82e2d845ea6image.png)
终端前缀说明:
```shell
gec@Ubuntu:~$
```
> gec :当前登录的用户名称
> Ubuntu当前系统名称
> ~:当前所处的路径名称(~的完整路径是"/home/gec",当用户处于自己的家目录是路径用~表示,代表这个目录是用户的主目录,不同用户的家目录是不同的)
> @ : $:这些符号的作用是用于分隔内容($表示当前用户的身份是普通用户 #表示当前用户身份是超级管理员用户)
**能用普通用户尽量不要用root**
有许多人在使用 Linux 系统时存在一些坏习惯,比如使用 
```
Important: you can and should build everything as a normal user.
There is no need to be root to configure and use Buildroot.
By running all commands as a regular user,
you protect your system against packages behaving badly during compilation and installation.
```
翻译:
```
重要: 你可以且应该使用普通用户去构建所有的程序。
没有任何必要非得要root去配置和使用系统使用普通用户去执行命令可以避免在程序编译和安装时出现的莫名其妙的系统错误。
```
**总之**
**终端使用小技巧**
1. 打开相同路径下的新窗口:
```
ctrl + shift + n
```
打开相同路径下的新终端窗口
![](images/WEBRESOURCEa00846a6c2b74327a597f110d86d52f4stickPicture.png)
1. 快速定位命令行光标位置:
```
快速定位到命令末尾: ctrl + e
快速定位到命令开头: ctrl + a
```
1. 快速复制、粘贴:
```
复制终端的文本:选中即已复制
文本粘贴到终端:按下鼠标滚轮
```
1. 自动补全单词
```
在目录下唯一单词自动补全tab
```
1. 历史命令浏览
```
浏览上一条或下一条历史命令:方向上/下
```
1. 快速切换路径
```
快速切换路径到家目录cd
快速切换路径到上一个路径位置cd -
```
## **2.4 环境变量**
环境变量是能作用于整个系统的特定变量,比如 
下面介绍跟环境变量相关的常见操作。
**1) 查看系统所有的环境变量**
命令 
```shell
gec@ubuntu:~$ env
CLUTTER_IM_MODULE=xim
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US.UTF-8
DISPLAY=:0
GNOME_SHELL_SESSION_MODE=ubuntu
COLORTERM=truecolor
XDG_SESSION_ID=2
USER=gec
DESKTOP_SESSION=ubuntu
WINDOWPATH=2
TERM=xterm-256color
SHELL=/bin/bash
VTE_VERSION=5201
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
IM_CONFIG_PHASE=2
XDG_CURRENT_DESKTOP=ubuntu:GNOME
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GNOME_TERMINAL_SERVICE=:1.82
XDG_SEAT=seat0
SHLVL=1
GDMSESSION=ubuntu
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
XAUTHORITY=/run/user/1000/gdm/Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
HOME=/home/gec
PATH=/usr/local/arm/5.4.0/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
XDG_RUNTIME_DIR=/run/user/1000
gec@ubuntu:~$
gec@ubuntu:~$
```
**2) 查看某个环境变量**
如果需要查看某个特定的环境变量的值,可以使用命令 
```shell
gec@ubuntu:~$ echo $PATH
PATH=/usr/local/arm/5.4.0/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
gec@ubuntu:~$
gec@ubuntu:~$
```
**3) 设置某个环境变量**
1. 临时设置以PATH为例
```shell
gec@ubuntu:~$ export PATH=$PATH:/home/gec
```
注意,以上设置只对当前的终端有效。
1. 永久设置以PATH为例
1. 打开终端的配置文件 ~/.bashrc
```shell
gec@ubuntu:~$ export PATH=$PATH:/home/gec
```
注意:需要执行如下命令来加载修改过的配置文件:
```shell
gec@ubuntu:~$ source ~/.bashrc
```