【linux】Cannot find a valid baseurl for repo: base/7/x86_64、linux常见的命令、linux文件解压和上传文件和打包文件

1 ps -ef | grep redis
2 rpm -qa | grep yum
3 linux中的文件
3.0 重命名文件
3.1 linux文件解压 tar -xzvf xxx.tar.gz
3.2 rz是上传文件
3.3 打包文件tar -czvf xxx.tar.gz Dockerfile
3.4 df -h
3.5 docker build -t 从Dockerfile中构建镜像
3.6 docker run -d
3.7 docker exec -it 进入容器
3.8 tail -f
3.9 chown 和 chmod命令
4 linux常见的命令
5 Cannot find a valid baseurl for repo: base/7/x86_64
5.1 替换源文件
5.2 清除并重建缓存
6 usr目录和share目录

1 ps -ef | grep redis

`ps -ef | grep redis` 是一个在 Linux 系统上用于查找与 `redis` 相关的进程的命令。

它的各个部分解释如下:
1. **`ps -ef`**: 列出当前系统上所有正在运行的进程,包括详细的进程信息。
   - **`ps`**: 显示当前运行的进程。
   - **`-e`**: 显示系统上所有用户的所有进程。
   - **`-f`**: 以完整格式(full-format)显示进程信息,通常包括 UID、PID、PPID、C、STIME、TTY、TIME、CMD 等列。

2. **`|`**: 管道符号,将 `ps -ef` 命令的输出传递给后一个命令。

3. **`grep redis`**: `grep` 是一个搜索命令,它会从输入中筛选出包含指定字符串(在此例中是 `redis`)的行。

综合起来,`ps -ef | grep redis` 的作用是从当前运行的所有进程中查找并显示与 `redis` 相关的进程。
它通常用于检查 Redis 服务是否正在运行以及查看其进程信息(如进程 ID、启动命令等)。

2 rpm -qa | grep yum

`rpm -qa | grep yum` 是一个在 Linux 系统上用于查找与 `yum` 相关的软件包的命令。

它的各个部分解释如下:
1. **`rpm -qa`**: 列出系统中所有已安装的 RPM 软件包。
2. **`|`**: 管道符号,将前一个命令的输出传递给后一个命令。
3. **`grep yum`**: `grep` 是一个用于搜索文本的命令,它会从输入中筛选出包含指定字符串(在此例中是 `yum`)的行。

综合起来,`rpm -qa | grep yum` 的作用是从已安装的软件包列表中查找并显示所有包含 "yum" 的软件包。这通常用于检查系统上是否安装了与 `yum` 相关的软件包,以及查看它们的名称和版本信息。

3 linux中的文件

3.0 重命名文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

3.1 linux文件解压 tar -xzvf xxx.tar.gz

`unzip` 是用于解压 `.zip` 文件的命令,而 `.tar.gz` 文件是一种压缩归档文件格式,通常是通过 `tar``gzip` 两个工具结合使用创建的。
因此,使用 `unzip` 命令解压 `.tar.gz` 文件是不行的。

要解压 `.tar.gz` 文件,你应该使用 `tar` 命令。具体命令如下:
tar -xzvf xxx.tar.gz

- **`x`**: 代表“extract”,解压缩文件。
- **`z`**: 代表使用 `gzip` 解压。
- **`v`**: 代表“verbose”,显示解压缩过程中的文件名(可选)。
- **`f`**: 代表“file”,指定文件名。
因此,完整的命令 `tar -xzvf xxx.tar.gz` 会解压 `xxx.tar.gz` 文件到当前目录。

3.2 rz是上传文件

`rz` 是用于通过 `Zmodem` 协议在终端中上传文件的命令,通常用于通过 SSH 连接到远程服务器时上传文件。
要使用 `rz` 上传文件,需要在你的终端和服务器上都配置好相关的环境。

以下是使用 `rz` 命令上传文件的步骤:
### 1. **安装 `lrzsz` 工具**
在大多数 Linux 发行版中,`rz``sz` 命令是由 `lrzsz` 包提供的。
首先,你需要确保服务器上安装了 `lrzsz`:

- 对于 Debian/Ubuntu:
  sudo apt-get install lrzsz

- 对于 CentOS/RHEL:
  sudo yum install lrzsz


### 2. **使用 `rz` 上传文件**
在通过 SSH 连接到服务器后,直接输入以下命令:rz
然后会弹出一个文件选择对话框,选择你想要上传的文件后,文件就会通过 `Zmodem` 协议上传到当前目录。

### 3. **使用 `sz` 下载文件**
如果你想要从服务器下载文件到本地,可以使用 `sz` 命令。
例如:sz filename
这样会弹出一个保存文件的对话框,选择保存位置即可。

### 4. **注意事项**
- **终端支持**: `rz``sz` 命令通常需要支持 `Zmodem` 协议的终端模拟器才能使用。
- ,`Xshell``SecureCRT``MobaXterm` 等终端工具支持这些命令,但默认的 `gnome-terminal``xterm` 可能不支持。
- **确保权限**: 上传文件时,请确保你有写入权限到目标目录。

### 5. **替代方法**
如果 `rz` 不可用,或者你的终端不支持 `Zmodem`,你可以使用 `scp``sftp` 等命令来上传文件:
- `scp` 示例:
  scp /path/to/local/file user@remote:/path/to/remote/directory

- `sftp` 示例:
  sftp user@remote
  put /path/to/local/file /path/to/remote/directory
通过这些命令,同样可以实现文件的上传。

3.3 打包文件tar -czvf xxx.tar.gz Dockerfile

这条命令用于将名为 `Dockerfile` 的文件压缩成 `.tar.gz` 格式的压缩包,压缩包名为 `xxx.tar.gz`。
以下是命令的详细解释:
tar -czvf xxx.tar.gz Dockerfile

- **`tar`**: 这个命令用于创建归档文件(即打包文件)并可以进行压缩或解压缩操作。

- **`-c`**: 表示“create”,用于创建一个新的归档文件。

- **`-z`**: 表示使用 `gzip` 压缩。`gzip` 是一种常用的压缩算法,它会将归档文件压缩成 `.gz` 格式。

- **`-v`**: 表示“verbose”,在终端中显示详细的操作过程。它会列出正在处理的每个文件的名称,方便用户了解进度(这是可选的,非必须)。

- **`-f`**: 表示“file”,指定输出的归档文件名。即,后面的 `xxx.tar.gz` 是生成的压缩文件的名称。

- **`Dockerfile`**: 这是要被打包和压缩的文件的名称。在这个例子中,它只是一个文件,但 `tar` 同样适用于多个文件或目录。

### 总结:
这条命令会将 `Dockerfile` 文件打包并压缩为 `xxx.tar.gz`。
压缩过程中会显示 `Dockerfile` 文件名,表示它正在被添加到压缩包中。
最终,`xxx.tar.gz` 是一个包含 `Dockerfile` 的压缩包文件。

3.4 df -h

`df -h` 是一个常用的 Linux 命令,用于显示文件系统的磁盘使用情况,以**人类可读**的格式输出(使用 `-h` 选项)。

### 示例输出
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G   15G  4.5G  77% /
tmpfs           2.0G  8.0K  2.0G   1% /dev/shm
/dev/sdb1       100G   50G   50G  50% /mnt/data

### 各字段含义
1. **Filesystem**: 文件系统的名称或设备(通常是磁盘分区)。
2. **Size**: 文件系统的总容量。
3. **Used**: 已使用的空间。
4. **Avail**: 可用空间。
5. **Use%**: 已使用的百分比。
6. **Mounted on**: 文件系统挂载点(目录)。

### 选项
- `-h`: 输出以人类可读的格式(KB, MB, GB 等)显示。
- `-a`: 显示所有文件系统,包括系统使用的虚拟文件系统。
- `-T`: 显示文件系统的类型。
- `-i`: 显示 inode 信息而不是磁盘空间。

这个命令有助于监控磁盘使用情况和确保有足够的可用空间。

3.5 docker build 从Dockerfile中构建镜像

`docker build -t nginx:v12 .` 是用于构建一个 Docker 镜像的命令,通常根据指定的 Dockerfile 创建镜像。下面是详细的解释:

### 解释
- **docker build**: 用于根据当前目录中的 `Dockerfile` 构建一个新的 Docker 镜像。
- **-t nginx:v12**: 
  - `-t``--tag` 的缩写,用于为构建的镜像指定名称和标签。
  - `nginx:v12` 是镜像的名称 (`nginx`) 和标签 (`v12`)。标签通常用于标识镜像的版本号或特定的构建。
- **.**: 表示 Dockerfile 的位置,`.` 代表当前目录。这意味着 Docker 会在当前目录中查找 `Dockerfile` 并根据它来构建镜像。

### 总结
该命令将根据当前目录中的 `Dockerfile` 构建一个名为 `nginx` 且版本为 `v12` 的 Docker 镜像。镜像构建完成后,你可以通过 `docker images` 来查看它,或者通过 `docker run nginx:v12` 来启动这个镜像。

3.6 docker run -d

`docker run -d nginx:v13` 是用于启动一个基于 `nginx:v13` 镜像的容器,并让它在后台运行。

### 解释
- **docker run**: 用于运行一个新的容器。
- **-d**: 代表“detached”,即让容器在后台运行,不会占用当前的终端。
- **nginx:v13**: 这是你要运行的镜像名称和标签。在这个例子中,`nginx` 是镜像名称,`v13` 是它的版本标签。这个镜像应当事先已经被构建或从 Docker Hub 拉取到了本地。

### 完整流程
1. Docker 会查找名为 `nginx:v13` 的镜像。如果该镜像不存在,本地 Docker 会尝试从 Docker Registry(比如 Docker Hub)拉取这个镜像。
2. 启动一个容器,并让它在后台运行(不会显示终端交互界面)。
3. 该命令返回一个容器 ID,表示容器已经启动。

### 常见操作
- 查看运行中的容器:
  docker ps

- 停止运行的容器:
  docker stop <container_id>

- 删除容器:
  docker rm <container_id>

这条命令假设你已经有一个 `nginx:v13` 的镜像,如果没有,可能需要事先使用 `docker build``docker pull` 来获取它。

3.7 docker exec -it 进入容器

`docker exec -it [容器名称|id] bash` 是用于进入一个正在运行的 Docker 容器并在其中启动一个交互式的 Bash 终端的命令。

### 解释
- **docker exec**: 该命令用于在正在运行的容器中执行命令。
- **-it**: 这是两个选项的组合:
  - `-i`:表示保持标准输入(STDIN)打开,即让你可以在容器中输入命令。
  - `-t`:为容器分配一个伪终端(TTY),这使得你可以交互式地使用容器,像在普通的终端里一样。
- **[容器名称|id]**: 这是你要进入的容器的名称或 ID。你可以通过 `docker ps` 命令获取当前运行的容器列表以及它们的 ID。
- **bash**: 这是要在容器中运行的命令,通常是 Bash 终端。在大多数基于 Linux 的容器中,`bash` 是默认的命令行解释器。

### 示例
docker exec -it nginx_container bash

这里,`nginx_container` 是容器的名称。如果成功执行,命令提示符会切换到容器内部,你可以像使用本地终端一样使用容器中的 Bash。

### 用途
- 通过 `docker exec -it` 命令,你可以直接进入容器内部,调试、检查文件系统、运行命令或管理应用程序。
- **注意**:不是所有容器都包含 `bash`,有些轻量级镜像可能只安装了 `sh`,此时可以改为:

  docker exec -it [容器名称|id] sh
### 退出
在容器的 Bash 终端中,你可以通过输入 `exit` 命令来退出容器,返回到宿主机终端。

3.8 tail -f

`tail -f /var/share/nginx` 命令用于持续查看 `/var/share/nginx` 文件中的最新日志或内容的变化。

但有几点需要注意:
1. **`tail -f`**:
   - `tail` 命令用于显示文件的末尾部分。
   - `-f` 选项表示“跟踪模式”(follow),即在文件内容更新时,持续显示新追加的内容,常用于查看日志文件的实时输出。

2. **`/var/share/nginx`**:
   - 这个路径通常指向 Nginx 的某些数据或日志文件,但它不一定是 Nginx 默认的日志路径。
   - 通常 Nginx 的日志文件位于 `/var/log/nginx/` 目录中,如 `access.log``error.log`### 正确查看 Nginx 日志文件
如果你想实时查看 Nginx 的日志文件,通常使用如下命令:
tail -f /var/log/nginx/access.log
或者:
tail -f /var/log/nginx/error.log

### 总结
- **`tail -f /var/share/nginx`** 本身可以持续监控文件变化,但 `/var/share/nginx` 可能不是标准的日志路径。
- 确保路径正确,通常 Nginx 日志文件在 `/var/log/nginx/` 目录中。

3.9 chownchmod命令

`chown``chmod` 是 Linux 系统中用于管理文件和目录权限的两个重要命令,它们分别用于不同的目的。

以下是对这两个命令的详细介绍,包括它们的用法和常见选项:
### `chown` 命令
`chown` 用于更改文件或目录的所有者和所属组。

#### 语法
chown [OPTION]... [OWNER][:[GROUP]] FILE...

- **`OWNER`**: 新的所有者用户。
- **`GROUP`**: 新的所属组(可选)。
- **`FILE`**: 要更改的文件或目录。

#### 常用选项

- **`-R`**: 递归地更改目录及其内容的所有者和组。
- **`--reference=FILE`**: 将文件的所有者和组更改为与另一个文件相同。
- **`-h`**: 仅更改符号链接本身的所有者和组,而不更改链接指向的文件。

#### 示例

1. **更改文件的所有者**
   chown user /path/to/file
   将 `/path/to/file` 的所有者更改为 `user`2. **更改文件的所有者和所属组**
   chown user:group /path/to/file
   将 `/path/to/file` 的所有者更改为 `user`,所属组更改为 `group`3. **递归地更改目录及其内容的所有者和所属组**
   chown -R user:group /path/to/directory

   将 `/path/to/directory` 及其所有子目录和文件的所有者和组更改为 `user``group`4. **将文件的所有者和组更改为与另一个文件相同**
   chown --reference=/path/to/reference/file /path/to/target/file

   将 `/path/to/target/file` 的所有者和组更改为与 `/path/to/reference/file` 相同。

### `chmod` 命令
`chmod` 用于更改文件或目录的权限。

#### 语法
chmod [OPTION]... MODE FILE...

- **`MODE`**: 权限模式,可以是符号模式(如 `u+x`)或数字模式(如 `755`)。
- **`FILE`**: 要更改权限的文件或目录。

#### 常用选项

- **`-R`**: 递归地更改目录及其内容的权限。
- **`-c`**: 仅在权限实际更改时输出信息。
- **`-v`**: 显示所有权限更改的详细信息。

#### 权限模式

- **符号模式**:
  - **`u`**: 文件所有者(user)。
  - **`g`**: 文件所属组(group)。
  - **`o`**: 其他用户(others)。
  - **`a`**: 所有用户(all)。

  - **`+`**: 添加权限。
  - **`-`**: 移除权限。
  - **`=`**: 赋予指定权限。

- **数字模式**:
  - **`4`**: 读取权限(read)。
  - **`2`**: 写入权限(write)。
  - **`1`**: 执行权限(execute)。

  权限设置是通过三个数字组合表示的,分别为文件所有者、所属组和其他用户的权限。例如,`755` 表示所有者有读、写、执行权限(7),组和其他用户有读和执行权限(5)。

#### 示例
1. **为文件添加执行权限**
   chmod +x /path/to/file

   将 `/path/to/file` 的执行权限添加给所有用户。

2. **递归地更改目录及其内容的权限**
   chmod -R 755 /path/to/directory
   将 `/path/to/directory` 及其所有子目录和文件的权限更改为 `755`(所有者有读、写、执行权限,组和其他用户有读、执行权限)。

3. **为文件的所有者设置特定权限**
   chmod u=rwx /path/to/file

   为文件所有者设置读、写、执行权限,并移除其他用户的所有权限。

4. **为文件和目录设置权限**
   chmod 644 /path/to/file
   chmod 755 /path/to/directory

   将文件权限设置为 `644`(所有者有读、写权限,组和其他用户有读权限),将目录权限设置为 `755`(所有者有读、写、执行权限,组和其他用户有读、执行权限)。

### 总结

- **`chown`** 用于更改文件或目录的所有者和所属组。
- **`chmod`** 用于更改文件或目录的权限。

这两个命令通常一起使用,以确保文件或目录具有正确的所有者和适当的权限设置。

4 linux常见的命令

### 1. **文件和目录操作**
- **`ls`**: 列出目录内容。
  - 示例: `ls -l`(详细列出文件信息)
- **`cd`**: 更改当前工作目录。
  - 示例: `cd /home/user`
- **`cp`**: 复制文件或目录。
  - 示例: `cp file.txt /backup/`
- **`mv`**: 移动或重命名文件或目录。
  - 示例: `mv oldname.txt newname.txt`
- **`rm`**: 删除文件或目录。
  - 示例: `rm -rf /tmp/mydir`
- **`mkdir`**: 创建新目录。
  - 示例: `mkdir newdir`
- **`touch`**: 创建一个空文件或更新文件的时间戳。
  - 示例: `touch newfile.txt`
- **`find`**: 搜索文件或目录。
  - 示例: `find /home -name "*.txt"`

### 2. **系统监控**
- **`top`**: 动态显示系统中最消耗资源的进程。
- **`htop`**: 类似 `top`,但界面更友好(需要安装)。
- **`df`**: 显示文件系统的磁盘使用情况。
  - 示例: `df -h`(以人类可读的格式显示)
- **`du`**: 显示文件和目录的磁盘使用量。
  - 示例: `du -sh /var/log`(显示特定目录的总大小)
- **`free`**: 显示系统的内存使用情况。
  - 示例: `free -h`
- **`uptime`**: 显示系统的运行时间及当前登录用户数。
- **`ps`**: 显示当前运行的进程。
  - 示例: `ps aux`(显示所有用户的所有进程)

### 3. **网络**
- **`ping`**: 测试与主机的网络连通性。
  - 示例: `ping google.com`
- **`netstat`**: 显示网络连接、路由表、接口统计等。
  - 示例: `netstat -tuln`(显示监听的端口)
- **`curl`**: 发送 HTTP 请求或下载文件。
  - 示例: `curl http://example.com`
- **`wget`**: 从网络下载文件。
  - 示例: `wget http://example.com/file.zip`
- **`ifconfig`**: 配置或显示网络接口(已被 `ip` 命令替代)。
  - 示例: `ifconfig eth0`
- **`ip`**: 显示或配置网络接口、路由等。
  - 示例: `ip addr show`

### 4. **用户管理**
- **`useradd`**: 添加新用户。
  - 示例: `useradd username`
- **`passwd`**: 修改用户密码。
  - 示例: `passwd username`
- **`su`**: 切换用户。
  - 示例: `su - username`
- **`sudo`**: 以超级用户权限执行命令。
  - 示例: `sudo apt update`
- **`whoami`**: 显示当前登录用户的用户名。

### 5. **权限管理**
- **`chmod`**: 更改文件或目录的权限。
  - 示例: `chmod 755 script.sh`
- **`chown`**: 更改文件或目录的所有者。
  - 示例: `chown user:group file.txt`
- **`chgrp`**: 更改文件或目录的组。
  - 示例: `chgrp groupname file.txt`

### 6. **压缩和解压缩**
- **`tar`**: 创建或解压缩 tar 压缩包。
  - 示例: `tar -czvf archive.tar.gz /path/to/dir`
- **`gzip`**: 压缩文件。
  - 示例: `gzip file.txt`
- **`unzip`**: 解压 zip 压缩包。
  - 示例: `unzip archive.zip`

### 7. **系统管理**
- **`shutdown`**: 关机或重启系统。
  - 示例: `shutdown -h now`(立即关机)
- **`reboot`**: 重启系统。
- **`systemctl`**: 管理系统服务(启动、停止、重启服务等)。
  - 示例: `systemctl restart nginx`
- **`journalctl`**: 查看系统日志。
  - 示例: `journalctl -u nginx`(查看 Nginx 服务的日志)
### 8. **文本处理**
- **`cat`**: 连接并显示文件内容。
  - 示例: `cat file.txt`
- **`less`**: 分页查看文件内容,支持上下滚动。
  - 示例: `less file.txt`
- **`more`**: 分页显示文件内容,类似于 `less`,但功能较少。
  - 示例: `more file.txt`
- **`head`**: 显示文件的开头部分。
  - 示例: `head -n 10 file.txt`(显示前 10 行)
- **`tail`**: 显示文件的末尾部分。
  - 示例: `tail -f /var/log/syslog`(实时跟踪日志文件)
- **`grep`**: 搜索文本中的匹配模式。
  - 示例: `grep "error" /var/log/syslog`
- **`awk`**: 文本处理工具,用于按列处理文本数据。
  - 示例: `awk '{print $1}' file.txt`(打印文件中的第一列)
- **`sed`**: 流编辑器,用于查找和替换文本。
  - 示例: `sed 's/old/new/g' file.txt`(将文件中的 "old" 替换为 "new")
- **`cut`**: 剪切文本中的指定部分。
  - 示例: `cut -d ':' -f 1 /etc/passwd`(以 `:` 为分隔符,提取第一列)

### 9. **磁盘管理**
- **`fdisk`**: 分区表操作工具。
  - 示例: `fdisk /dev/sda`(管理 `/dev/sda` 磁盘的分区)
- **`mkfs`**: 创建文件系统。
  - 示例: `mkfs.ext4 /dev/sda1`(将 `/dev/sda1` 格式化为 ext4 文件系统)
- **`mount`**: 挂载文件系统。
  - 示例: `mount /dev/sda1 /mnt`(将分区 `/dev/sda1` 挂载到 `/mnt`)
- **`umount`**: 卸载文件系统。
  - 示例: `umount /mnt`
- **`lsblk`**: 列出系统中所有的块设备。
  - 示例: `lsblk`
- **`df`**: 显示文件系统的磁盘空间使用情况。
  - 示例: `df -h`

### 10. **包管理**
#### **Debian/Ubuntu 系统:**
- **`apt-get` / `apt`**: 包管理工具,安装、更新、删除软件包。
  - 示例: `sudo apt update`(更新包列表)
  - 示例: `sudo apt install package_name`(安装软件包)
- **`dpkg`**: Debian 包管理工具,用于安装、卸载、查看 `.deb` 包。
  - 示例: `dpkg -i package.deb`(安装 `.deb` 包)

#### **Red Hat/CentOS 系统:**
- **`yum`**: 包管理工具,安装、更新、删除软件包。
  - 示例: `sudo yum install package_name`
- **`dnf`**: `yum` 的替代品,更现代化的包管理工具。
  - 示例: `sudo dnf install package_name`
- **`rpm`**: RPM 包管理工具,用于安装、卸载、查看 `.rpm` 包。
  - 示例: `rpm -ivh package.rpm`(安装 `.rpm` 包)

### 11. **权限与用户管理**
- **`chmod`**: 更改文件权限。
  - 示例: `chmod 755 script.sh`
- **`chown`**: 更改文件所有者。
  - 示例: `chown user:group file.txt`
- **`sudo`**: 以超级用户权限执行命令。
  - 示例: `sudo command`
- **`usermod`**: 修改用户账户信息。
  - 示例: `usermod -aG sudo username`(将用户添加到 `sudo` 组)

### 12. **系统信息**
- **`uname`**: 显示系统信息。
  - 示例: `uname -a`(显示所有系统信息)
- **`hostname`**: 查看或设置系统主机名。
  - 示例: `hostname`
- **`dmesg`**: 显示内核消息缓冲区中的系统启动信息。
  - 示例: `dmesg | grep error`
- **`uptime`**: 显示系统的运行时间和负载。
  - 示例: `uptime`
- **`env`**: 显示当前用户的环境变量。
  - 示例: `env`

### 13. **进程管理**
- **`kill`**: 终止进程。
  - 示例: `kill -9 PID`(强制终止进程 `PID`)
- **`pkill`**: 根据进程名终止进程。
  - 示例: `pkill -f process_name`
- **`bg`**: 将进程移到后台运行。
  - 示例: `bg %1`
- **`fg`**: 将后台进程移到前台运行。
  - 示例: `fg %1`
- **`jobs`**: 列出当前会话中的所有后台任务。
  - 示例: `jobs`

### 14. **日志管理**
- **`journalctl`**: 查看 `systemd` 日志。
  - 示例: `journalctl -u sshd`(查看 SSH 服务日志)
- **`logger`**: 向系统日志中写入消息。
  - 示例: `logger "Custom log entry"`

### 15. **时间管理**
- **`date`**: 显示或设置系统日期和时间。
  - 示例: `date`
- **`cal`**: 显示日历。
  - 示例: `cal`
- **`ntpdate`**: 使用 NTP 服务器同步系统时间。
  - 示例: `sudo ntpdate pool.ntp.org`

### 16. **脚本与自动化**
- **`cron`**: 定时任务调度工具,使用 `crontab` 编辑定时任务。
  - 示例: `crontab -e`(编辑用户的定时任务)
- **`at`**: 一次性任务调度工具,计划在特定时间运行命令。
  - 示例: `echo "backup.sh" | at 02:00`(在凌晨 2 点执行 `backup.sh`### 17. **SSH 与远程管理**
- **`ssh`**: 通过 SSH 远程登录到另一台机器。
  - 示例: `ssh user@remote_host`
- **`scp`**: 通过 SSH 复制文件。
  - 示例: `scp file.txt user@remote_host:/path/to/destination`
- **`rsync`**: 高效的文件和目录同步工具。
  - 示例: `rsync -avz /source/ user@remote_host:/destination/`
### 18. **开发与编译**
- **`gcc`**: GNU 编译器集合,用于编译 C、C++ 等语言的源代码。
  - 示例: `gcc -o output program.c`(编译 `program.c` 并生成可执行文件 `output`)
- **`make`**: 使用 `Makefile` 自动化编译过程。
  - 示例: `make all`
- **`gdb`**: GNU 调试器,用于调试程序。
  - 示例: `gdb ./program`(调试 `program` 可执行文件)
- **`strace`**: 跟踪系统调用和信号。
  - 示例: `strace -p PID`(跟踪进程 `PID` 的系统调用)
- **`lsof`**: 列出打开的文件和相关进程。
  - 示例: `lsof | grep filename`
- **`diff`**: 比较文件的差异。
  - 示例: `diff file1.txt file2.txt`
- **`patch`**: 应用补丁文件。
  - 示例: `patch < fix.patch`

### 19. **版本控制**
- **`git`**: 分布式版本控制系统,用于跟踪代码版本。
  - 示例: `git clone https://github.com/user/repo.git`(克隆代码仓库)
  - 示例: `git commit -m "message"`(提交更改)
- **`svn`**: Apache Subversion,集中式版本控制系统。
  - 示例: `svn checkout https://url/repo`(签出代码仓库)

### 20. **容器化与虚拟化**
- **`docker`**: 容器化平台,用于创建和管理容器。
  - 示例: `docker run -it ubuntu`(启动 Ubuntu 容器)
  - 示例: `docker ps`(列出所有正在运行的容器)
- **`docker-compose`**: 用于定义和运行多容器 Docker 应用的工具。
  - 示例: `docker-compose up`
- **`vagrant`**: 开发环境虚拟化工具。
  - 示例: `vagrant up`(启动 Vagrant 虚拟机)
- **`virtualbox`**: 虚拟化平台,用于运行虚拟机。
  - 示例: `VBoxManage list vms`(列出所有虚拟机)

### 21. **系统安全**
- **`iptables`**: 配置 Linux 内核的网络包过滤规则。
  - 示例: `iptables -L`(列出当前规则)
  - 示例: `iptables -A INPUT -p tcp --dport 22 -j ACCEPT`(允许 SSH 端口的连接)
- **`ufw`**: 简化的防火墙管理工具,适用于 `iptables`。
  - 示例: `ufw enable`(启用防火墙)
  - 示例: `ufw allow 22`(允许 SSH 端口)
- **`fail2ban`**: 防止暴力破解攻击的工具,通过动态修改防火墙规则限制可疑 IP。
  - 示例: `fail2ban-client status`(查看 fail2ban 状态)
- **`openssl`**: 开源的 SSL/TLS 工具包,用于加密、解密和证书管理。
  - 示例: `openssl genrsa -out privatekey.pem 2048`(生成 2048 位私钥)
- **`ssh-keygen`**: 生成 SSH 密钥对。
  - 示例: `ssh-keygen -t rsa -b 4096`

### 22. **性能监控与优化**
- **`sar`**: 系统活动报告工具,监控系统性能指标。
  - 示例: `sar -u 1 5`(每秒报告一次 CPU 使用率,共 5 次)
- **`vmstat`**: 报告虚拟内存、进程、CPU 活动等。
  - 示例: `vmstat 5`(每 5 秒报告一次系统性能)
- **`iostat`**: 显示 CPU 和块设备(如磁盘)I/O 使用情况。
  - 示例: `iostat -x`(显示详细的 I/O 统计信息)
- **`iotop`**: 显示实时磁盘 I/O 使用情况。
  - 示例: `sudo iotop`
- **`perf`**: Linux 性能分析工具,捕获硬件和软件性能事件。
  - 示例: `perf stat ls`(统计 `ls` 命令的性能事件)
- **`nice`/`renice`**: 设置进程的优先级。
  - 示例: `nice -n 10 command`(以较低优先级运行命令)
  - 示例: `renice 15 -p PID`(更改进程 `PID` 的优先级)

### 23. **进程间通信**
- **`screen`**: 终端会话管理器,允许你在多个终端之间切换。
  - 示例: `screen -S session_name`(创建新的会话)
  - 示例: `screen -r session_name`(恢复会话)
- **`tmux`**: 终端多路复用器,类似 `screen`,但功能更强大。
  - 示例: `tmux new -s session_name`(创建新的 tmux 会话)
  - 示例: `tmux attach -t session_name`(恢复 tmux 会话)
- **`nc`** (Netcat): 用于读取和写入网络连接的数据,适合调试网络服务。
  - 示例: `nc -l -p 1234`(在端口 1234 上监听连接)
  - 示例: `echo "message" | nc host 1234`(发送消息到指定主机端口)

### 24. **数据库管理**
- **`mysql`**: 管理 MySQL 数据库。
  - 示例: `mysql -u root -p`(以 root 用户登录 MySQL)
- **`mysqldump`**: 备份 MySQL 数据库。
  - 示例: `mysqldump -u root -p database_name > backup.sql`
- **`psql`**: 管理 PostgreSQL 数据库。
  - 示例: `psql -U username -d database_name`
- **`pg_dump`**: 备份 PostgreSQL 数据库。
  - 示例: `pg_dump -U username -F c -b -v -f backup.pgsql database_name`
- **`mongo`**: MongoDB 的命令行客户端。
  - 示例: `mongo`(连接到本地 MongoDB 实例)
- **`redis-cli`**: Redis 的命令行客户端。
  - 示例: `redis-cli`(连接到本地 Redis 实例)

### 25. **云与配置管理**
- **`ansible`**: 开源自动化工具,用于配置管理和应用程序部署。
  - 示例: `ansible -i inventory all -m ping`(在所有主机上运行 ping 测试)
- **`terraform`**: 基础设施即代码工具,用于管理云资源。
  - 示例: `terraform init`(初始化 Terraform 配置)
- **`kubectl`**: Kubernetes 命令行工具,用于管理 Kubernetes 集群。
  - 示例: `kubectl get pods`(列出所有 pod)
- **`aws`**: AWS CLI,用于管理 AWS 服务。
  - 示例: `aws s3 ls`(列出所有 S3 存储桶)

### 26. **数据传输与文件同步**
- **`rsync`**: 高效的文件和目录同步工具。
  - 示例: `rsync -avz /source/ /destination/`(同步文件)
- **`scp`**: 通过 SSH 传输文件。
  - 示例: `scp file.txt user@remote_host:/path/to/destination`
- **`sftp`**: 通过 SSH 进行文件传输。
  - 示例: `sftp user@remote_host`
- **`lftp`**: 功能强大的命令行 FTP 客户端。
  - 示例: `lftp -e "mirror /remote/dir /local/dir" ftp://user:password@host`

### 27. **高级文件处理**
- **`dd`**: 低级别复制和转换工具,用于备份、恢复和磁盘管理。
  - 示例: `dd if=/dev/sda of=/dev/sdb bs=4M`(克隆磁盘)
- **`md5sum`/`sha256sum`**: 生成文件的哈希值,用于验证文件完整性。
  - 示例: `md5sum file.txt`
- **`split`**: 将文件拆分为多个小文件。
  - 示例: `split -b 10M largefile`(按 10MB 分割文件)
- **`tee`**: 从标准输入读取数据并写入文件,同时输出到标准输出。
  - 示例: `echo "data" | tee file.txt`
### 28. **网络管理与诊断**
- **`ping`**: 检查网络连接性,发送 ICMP 回显请求。
  - 示例: `ping google.com`(检查与 Google 的连接)
- **`traceroute`**: 跟踪数据包到目标主机的路径。
  - 示例: `traceroute google.com`
- **`netstat`**: 显示网络连接、路由表、接口统计等。
  - 示例: `netstat -tuln`(显示所有监听的 TCP/UDP 端口)
- **`ss`**: 显示网络套接字信息,类似 `netstat`,但更现代化。
  - 示例: `ss -tuln`
- **`ifconfig`**: 配置网络接口,显示网络接口的配置和状态(新系统上通常由 `ip` 工具代替)。
  - 示例: `ifconfig eth0`
- **`ip`**: 现代化的网络管理工具,替代 `ifconfig``route` 等旧工具。
  - 示例: `ip addr show`(显示网络接口和地址)
  - 示例: `ip route show`(显示路由表)
- **`tcpdump`**: 网络包捕获工具,用于调试和分析网络流量。
  - 示例: `tcpdump -i eth0`(在接口 eth0 上捕获数据包)
- **`nmap`**: 网络扫描工具,用于发现网络设备和服务。
  - 示例: `nmap -sP 192.168.1.0/24`(扫描整个子网中的活动设备)
- **`iptables`**: 管理 Linux 内核的网络包过滤规则,控制进出流量。
  - 示例: `iptables -A INPUT -p tcp --dport 22 -j ACCEPT`(允许 SSH 流量)

### 29. **存储管理**
- **`lvcreate`/`lvremove`**: 创建和删除逻辑卷,用于管理 LVM(逻辑卷管理)。
  - 示例: `lvcreate -L 10G -n myvolume myvg`(在卷组 `myvg` 中创建一个大小为 10GB 的逻辑卷)
  - 示例: `lvremove /dev/myvg/myvolume`(删除逻辑卷)
- **`vgcreate`/`vgremove`**: 创建和删除卷组。
  - 示例: `vgcreate myvg /dev/sda1`(在物理卷 `/dev/sda1` 上创建卷组 `myvg`)
- **`pvcreate`**: 初始化物理卷,用于创建 LVM。
  - 示例: `pvcreate /dev/sda1`
- **`resize2fs`**: 调整 ext2/ext3/ext4 文件系统的大小。
  - 示例: `resize2fs /dev/myvg/myvolume 20G`(将逻辑卷的文件系统调整到 20GB)
- **`fsck`**: 文件系统检查和修复工具。
  - 示例: `fsck /dev/sda1`(检查并修复 `/dev/sda1` 上的文件系统)
- **`mount`**: 挂载文件系统。
  - 示例: `mount /dev/sda1 /mnt`(将分区 `/dev/sda1` 挂载到 `/mnt`)
- **`umount`**: 卸载文件系统。
  - 示例: `umount /mnt`
- **`blkid`**: 显示块设备的属性信息,如 UUID、文件系统类型。
  - 示例: `blkid /dev/sda1`

### 30. **系统恢复与救援**
- **`chroot`**: 更改根目录,用于系统恢复和故障排除。
  - 示例: `chroot /mnt/rescue`(将根目录更改为 `/mnt/rescue`)
- **`grub-install`**: 安装 GRUB 启动加载程序。
  - 示例: `grub-install /dev/sda`
- **`grub-mkconfig`**: 生成 GRUB 配置文件。
  - 示例: `grub-mkconfig -o /boot/grub/grub.cfg`
- **`rescue` 模式**: 使用安装介质进入系统救援模式,进行故障排除。

### 31. **日志管理与分析**
- **`logrotate`**: 日志轮换工具,自动管理日志文件的大小和备份。
  - 示例: 配置文件在 `/etc/logrotate.conf``/etc/logrotate.d/` 目录下。
- **`journalctl`**: 用于查看 `systemd` 的日志。
  - 示例: `journalctl -xe`(查看最近的日志条目)
  - 示例: `journalctl -u sshd`(查看 SSH 服务日志)
- **`rsyslog`**: 高性能日志记录工具,用于集中日志管理。
  - 示例: 配置文件通常位于 `/etc/rsyslog.conf`。
- **`auditd`**: Linux 审计守护进程,用于跟踪和记录系统事件。
  - 示例: `auditctl -l`(列出当前的审计规则)

### 32. **硬件监控与管理**
- **`lscpu`**: 显示 CPU 信息。
  - 示例: `lscpu`
- **`lsusb`**: 显示 USB 设备信息。
  - 示例: `lsusb`
- **`lspci`**: 显示 PCI 设备信息。
  - 示例: `lspci`
- **`sensors`**: 显示系统传感器数据,如温度、电压、风扇速度。
  - 示例: `sensors`
- **`hdparm`**: 硬盘参数设置和性能测试工具。
  - 示例: `hdparm -tT /dev/sda`(测试硬盘性能)
- **`smartctl`**: 监控硬盘的 S.M.A.R.T. 状态,用于检测硬盘健康状态。
  - 示例: `smartctl -a /dev/sda`(显示硬盘的所有 S.M.A.R.T. 信息)

### 33. **数据备份与恢复**
- **`rsnapshot`**: 基于 `rsync` 的文件系统快照工具,用于备份。
  - 示例: 配置文件通常位于 `/etc/rsnapshot.conf`。
- **`tar`**: 打包和压缩工具。
  - 示例: `tar -cvf archive.tar /path/to/directory`(将目录打包成 `.tar` 文件)
  - 示例: `tar -xvf archive.tar`(解压 `.tar` 文件)
- **`dd`**: 用于创建磁盘镜像、备份或恢复。
  - 示例: `dd if=/dev/sda of=/backup/sda.img bs=4M`(创建 `/dev/sda` 的镜像)
- **`btrfs`**: 用于管理 Btrfs 文件系统的快照和子卷。
  - 示例: `btrfs subvolume snapshot /mnt/source /mnt/backup`(创建快照)

### 34. **其他有用工具**
- **`htop`**: 交互式进程监视工具,类似 `top`,但更友好。
  - 示例: `htop`
- **`ncdu`**: 交互式磁盘使用分析工具,类似 `du`。
  - 示例: `ncdu`
- **`mc`**: Midnight Commander,图形化文件管理器。
  - 示例: `mc`
- **`curl`**: 命令行工具,用于从网络上下载文件或与 API 进行交互。
  - 示例: `curl http://example.com`
- **`wget`**: 命令行工具,用于从网络上下载文件。
  - 示例: `wget http://example.com/file.zip`
- **`whois`**: 查询域名或 IP 地址的注册信息。
  - 示例: `whois example.com`
- **`dig`**: DNS 查询工具,用于解析域名。
  - 示例: `dig example.com`
- **`xargs`**: 从标准输入中读取输入并将其传递给命令执行。
  - 示例: `find . -name "*.log" | xargs rm -f`(删除所有 `.log` 文件)
### 35. **自动化脚本与调度**
- **`cron`**: 定时任务调度器,用于在指定时间运行脚本或命令。
  - 示例: `crontab -e`(编辑当前用户的 `cron` 任务)
  - 示例: `0 2 * * * /path/to/script.sh`(每天凌晨 2 点执行脚本)
- **`at`**: 一次性任务调度工具,用于在指定时间执行一次性任务。
  - 示例: `echo "backup.sh" | at now + 1 hour`(在一小时后执行 `backup.sh`)
- **`anacron`**: 用于执行错过的定时任务,适合不保证长期运行的设备。
  - 示例: 配置文件通常位于 `/etc/anacrontab`。
- **`systemd timers`**: 使用 `systemd` 定时器替代 `cron`,支持更灵活的时间调度。
  - 示例: `systemctl list-timers`(列出所有定时器)

### 36. **编程语言环境管理**
- **`pyenv`**: 管理多个 Python 版本的工具。
  - 示例: `pyenv install 3.9.1`(安装 Python 3.9.1)
  - 示例: `pyenv global 3.9.1`(设置全局 Python 版本为 3.9.1)
- **`virtualenv`**: 创建 Python 虚拟环境,用于隔离不同项目的依赖。
  - 示例: `virtualenv venv`(创建虚拟环境 `venv`)
  - 示例: `source venv/bin/activate`(激活虚拟环境)
- **`rvm`**: Ruby 版本管理器,用于管理多个 Ruby 版本。
  - 示例: `rvm install 2.7.1`
  - 示例: `rvm use 2.7.1 --default`
- **`nvm`**: Node.js 版本管理器,用于安装和切换不同版本的 Node.js。
  - 示例: `nvm install 14.17.0`
  - 示例: `nvm use 14.17.0`
- **`sdkman`**: 用于管理 JVM 相关工具(如 Java、Kotlin、Scala)的多版本工具。
  - 示例: `sdk install java 11.0.11.hs-adpt`
  - 示例: `sdk use java 11.0.11.hs-adpt`

### 37. **容器与虚拟化**
- **`podman`**: 无需守护进程的容器管理工具,与 Docker 类似。
  - 示例: `podman run -it alpine`(运行 Alpine 容器)
  - 示例: `podman ps`(列出正在运行的容器)
- **`minikube`**: 本地运行 Kubernetes 的工具,适用于开发和测试环境。
  - 示例: `minikube start`(启动本地 Kubernetes 集群)
  - 示例: `minikube kubectl -- get pods`(使用 `kubectl` 与本地集群交互)
- **`k3s`**: 轻量级 Kubernetes 发行版,适合资源受限的环境。
  - 示例: `k3s server`(启动 K3s 服务器)
- **`qemu`**: 开源的虚拟化工具,用于运行虚拟机。
  - 示例: `qemu-system-x86_64 -hda disk.img -m 512`(启动一个 512MB 内存的虚拟机)
- **`libvirt`**: 用于管理虚拟化平台(如 KVM)的 API 和工具集合。
  - 示例: `virsh list --all`(列出所有虚拟机)
- **`vagrant`**: 虚拟环境管理工具,基于 VirtualBox、Libvirt 等虚拟化平台。
  - 示例: `vagrant up`(启动虚拟环境)
  - 示例: `vagrant halt`(停止虚拟环境)

### 38. **安全审计与渗透测试**
- **`nmap`**: 网络扫描工具,用于端口扫描、网络发现等。
  - 示例: `nmap -A target.com`(扫描目标并启用高级检测)
- **`wireshark`**: 图形化网络协议分析器,用于捕获和分析网络数据包。
  - 示例: 启动 Wireshark GUI 并选择要捕获的网络接口。
- **`tcpdump`**: 命令行网络流量捕获工具。
  - 示例: `tcpdump -i eth0`(捕获 `eth0` 接口上的流量)
- **`john the ripper`**: 密码破解工具,用于弱密码检测。
  - 示例: `john --wordlist=password.lst /etc/passwd`
- **`hydra`**: 网络登录破解工具,支持多种协议(如 SSH、FTP)。
  - 示例: `hydra -l user -P passlist.txt ftp://192.168.1.1`(尝试破解 FTP 登录)
- **`metasploit`**: 渗透测试框架,用于漏洞利用和安全测试。
  - 示例: `msfconsole`(启动 Metasploit 控制台)
- **`fail2ban`**: 防止暴力破解攻击的工具,监控日志并动态设置防火墙规则。
  - 示例: `fail2ban-client status`(查看 Fail2Ban 状态)
  
### 39. **代码分析与调试**
- **`valgrind`**: 内存调试工具,检测内存泄漏和错误。
  - 示例: `valgrind --leak-check=yes ./program`(检查 `program` 的内存泄漏)
- **`gdb`**: GNU 调试器,用于调试 C/C++ 程序。
  - 示例: `gdb ./program`(调试 `program` 可执行文件)
- **`strace`**: 跟踪系统调用和信号,用于调试进程行为。
  - 示例: `strace -p PID`(跟踪进程 `PID` 的系统调用)
- **`ltrace`**: 跟踪动态库调用,用于分析程序对库函数的调用。
  - 示例: `ltrace ./program`(跟踪 `program` 的库函数调用)
- **`pstack`**: 打印进程的栈轨迹,用于调试。
  - 示例: `pstack PID`(显示 `PID` 进程的栈轨迹)

### 40. **性能监控与调优**
- **`perf`**: Linux 性能分析工具,用于捕获硬件和软件性能事件。
  - 示例: `perf stat ls`(统计 `ls` 命令的性能事件)
  - 示例: `perf record -a`(记录整个系统的性能事件)
- **`sar`**: 系统活动报告工具,监控 CPU、内存、I/O、网络等性能指标。
  - 示例: `sar -u 1 5`(每秒报告一次 CPU 使用率,共 5 次)
- **`vmstat`**: 报告虚拟内存、进程、CPU 活动等性能指标。
  - 示例: `vmstat 5`(每 5 秒报告一次系统性能)
- **`iostat`**: 显示 CPU 和块设备的 I/O 使用情况。
  - 示例: `iostat -x`(显示详细的 I/O 统计信息)
- **`iotop`**: 显示实时磁盘 I/O 使用情况,类似 `top`,但专注于 I/O。
  - 示例: `sudo iotop`
- **`powertop`**: 电源管理工具,帮助优化笔记本电池使用时间。
  - 示例: `sudo powertop`
  
### 41. **虚拟化和容器的网络管理**
- **`iptables`**: 管理 Linux 内核的网络包过滤规则,用于 NAT、端口转发等。
  - 示例: `iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE`(启用源地址伪装)
- **`ip`**: 用于配置和显示网络接口、路由表、隧道等。
  - 示例: `ip link add name br0 type bridge`(创建网桥)
  - 示例: `ip addr add 192.168.1.100/24 dev eth0`(配置 IP 地址)
- **`bridge-utils`**: 用于创建和管理网络桥接。
  - 示例: `brctl addbr br0`(创建网桥 `br0`)
- **`veth`**: 虚拟以太网接口,用于连接网络命名空间和网桥。
  - 示例: `ip link add veth0 type veth peer name veth1`(创建一对 veth 接口)

### 42
. **进阶调试与系统分析**
- **`ftrace`**: Linux 内核跟踪工具,用于跟踪内核函数调用。
  - 示例: `echo function > /sys/kernel/debug/tracing/current_tracer`(启用函数跟踪)
  - 示例: `cat /sys/kernel/debug/tracing/trace`(查看跟踪结果)
- **`bpftrace`**: 动态追踪工具,基于 eBPF 技术,用于监控和分析系统性能。
  - 示例: `bpftrace -e 'tracepoint:syscalls:sys_enter_open { printf("open() called\n"); }'`
- **`kexec`**: 在不重启硬件的情况下加载新内核,用于快速系统重启。
  - 示例: `kexec -l /boot/vmlinuz --initrd=/boot/initrd.img --reuse-cmdline`
  
### 43. **其他有用的开发工具**
- **`git`**: 版本控制系统,用于代码管理和协作。
  - 示例: `git clone https://github.com/example/repo.git`(克隆远程仓库)
  - 示例: `git branch`(显示所有分支)
- **`make`**: 构建自动化工具,用于编译和链接程序。
  - 示例: `make`(根据 Makefile 构建项目)
- **`cmake`**: 构建自动化工具,适用于跨平台项目。
  - 示例: `cmake .`(生成构建文件)
- **`docker`**: 容器管理工具,用于构建、管理和分发容器化应用。
  - 示例: `docker run -it ubuntu`(运行一个 Ubuntu 容器)
  - 示例: `docker-compose up`(启动基于 docker-compose 的服务)

5 Cannot find a valid baseurl for repo: base/7/x86_64

在这里插入图片描述

5.1 替换源文件

先打开CentOS-Base.repo文件

vi /etc/yum.repos.d/CentOS-Base.repo

再替换成阿里云

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

5.2 清除并重建缓存

sudo yum clean all
sudo yum makecache
sudo yum update

6 usr目录和share目录

在 Linux 和类 Unix 系统中,`/usr``/share` 目录是常见的文件系统层次结构的一部分,代表着不同的用途:

### 1. `/usr` 目录
- **含义**: `usr`"user" 的缩写,但它实际上是 Unix System Resources 的缩写。
- **用途**: `/usr` 目录包含了系统级别的程序、库、文档以及其他与用户无关的文件。它通常用于存放应用程序和与系统无关的文件,是一种只读的结构。

- 常见的子目录包括:
  - `/usr/bin`: 存放用户级别的可执行文件(比如 `ls`, `grep` 等常用命令)。
  - `/usr/sbin`: 存放系统管理员使用的工具和程序(例如 `service`, `fdisk`)。
  - `/usr/lib`: 存放动态链接库文件和静态库文件。
  - `/usr/include`: 包含 C 头文件等开发所需的文件。
  - `/usr/local`: 存放用户自定义安装的本地程序和库,不会影响系统自带的程序。
  - `/usr/share`: 存放架构无关的静态文件,比如文档、帮助文件、字体等。

### 2. `/share` 目录
- **含义**: `share` 目录通常是 `/usr/share` 的一部分,而不是顶级目录。
- **用途**: `/usr/share` 目录专门用于存放与具体硬件架构无关的共享数据文件。
	与二进制文件(如可执行文件)相比,这里的文件更多是文档、配置文件、字体、图标、man 手册页等。

- 常见子目录包括:
  - `/usr/share/doc`: 存放软件包的文档和版权信息。
  - `/usr/share/man`: 包含系统手册页,用于 `man` 命令。
  - `/usr/share/fonts`: 存放字体文件。
  - `/usr/share/icons`: 存放图标资源。

### 总结
- `/usr`: 用于存放与系统相关的程序和库,适合架构相关的二进制文件。
- `/usr/share`: 存放与硬件无关的共享文件,比如文档、字体、配置和图标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值