linux从入门到精通

文章目录

  • [一.Linux 基础知识](#一.Linux 基础知识)
    • [1. Linux 操作系统简介](#1. Linux 操作系统简介)
    • [2. Linux 的基本组成](#2. Linux 的基本组成)
    • [3. Linux 的优势和应用领域](#3. Linux 的优势和应用领域)
    • [4. 学习 Linux 的路径和资源](#4. 学习 Linux 的路径和资源)
    • [5. Linux 的未来展望](#5. Linux 的未来展望)
  • [二.Linux 命令](#二.Linux 命令)
    • 1.linux目录结构
    • 2.linux文件基本属性
      • [2.1 Linux 文件的基本属性](#2.1 Linux 文件的基本属性)
      • [2.2 Linux 文件类型](#2.2 Linux 文件类型)
      • [2.3 Linux 文件权限](#2.3 Linux 文件权限)
      • [2.4 文件属性示例](#2.4 文件属性示例)
      • [2.5 如何查看和修改文件属性](#2.5 如何查看和修改文件属性)
      • [2.6 ls -l 命令](#2.6 ls -l 命令)
    • [3.如何在 Linux 中更改文件属性](#3.如何在 Linux 中更改文件属性)
      • [3.1 修改文件权限](#3.1 修改文件权限)
      • [3.2 修改文件所有者和所属组](#3.2 修改文件所有者和所属组)
    • 4.文件与目录管理
      • 4.1.处理目录的命令
        • [4.1.1 创建目录](#4.1.1 创建目录)
        • [4.1.2 切换目录](#4.1.2 切换目录)
        • [4.1.3 列出目录内容](#4.1.3 列出目录内容)
        • [4.1.4 复制、移动和删除目录](#4.1.4 复制、移动和删除目录)
      • [4.2 处理文件的命令](#4.2 处理文件的命令)
        • [4.2.1 创建文件和目录](#4.2.1 创建文件和目录)
        • [4.2.2 mkdir创建新目录。](#4.2.2 mkdir创建新目录。)
        • [4.2.3 查看文件内容](#4.2.3 查看文件内容)
        • [4.2.4 编辑文件](#4.2.4 编辑文件)
        • [4.2.5 复制、移动和重命名文件](#4.2.5 复制、移动和重命名文件)
        • [4.2.6 删除文件和目录](#4.2.6 删除文件和目录)
        • [4.2.6 查找文件](#4.2.6 查找文件)
        • [4.2.7 文件权限和属性](#4.2.7 文件权限和属性)
        • [4.2.8 压缩和解压文件](#4.2.8 压缩和解压文件)
        • [4.2.9 其他常用命令](#4.2.9 其他常用命令)
    • [5 用户和用户组管理](#5 用户和用户组管理)
        • [1. 用户管理](#1. 用户管理)
        • [2. 用户组管理](#2. 用户组管理)
        • [3. 列出用户和用户组信息](#3. 列出用户和用户组信息)
        • [4 useradd的使用](#4 useradd的使用)
    • 6.linux磁盘管理
      • [6.1 Linux 磁盘管理详解](#6.1 Linux 磁盘管理详解)
        • [6.2 磁盘分区管理](#6.2 磁盘分区管理)
        • [6.3 文件系统管理](#6.3 文件系统管理)
        • [3. 磁盘空间管理](#3. 磁盘空间管理)
        • [6.4 磁盘管理工具](#6.4 磁盘管理工具)
    • [7. vi/vim 的使用](#7. vi/vim 的使用)
      • [7.1 Vi/Vim:强大的文本编辑器](#7.1 Vi/Vim:强大的文本编辑器)
      • [7.2 Vi 和 Vim 的区别](#7.2 Vi 和 Vim 的区别)
      • [7.3 打开和退出](#7.3 打开和退出)
        • [7.3.1 打开文件](#7.3.1 打开文件)
        • [7.3.1 退出 Vim](#7.3.1 退出 Vim)
      • [7.4 三种模式](#7.4 三种模式)
      • [7.5 基本移动和编辑](#7.5 基本移动和编辑)
      • [7.6 搜索和替换](#7.6 搜索和替换)
      • [7.7 多文件操作](#7.7 多文件操作)
    • [8 yum命令](#8 yum命令)
      • [8.1 安装软件包](#8.1 安装软件包)
      • [8.2 更新软件包](#8.2 更新软件包)
      • [8.3 搜索软件包](#8.3 搜索软件包)
      • [8.4 列出已安装的软件包*](#8.4 列出已安装的软件包*)
      • [8.5 删除软件包](#8.5 删除软件包)
      • [8.6 清理旧的软件包及缓存](#8.6 清理旧的软件包及缓存)
      • [8.7 显示软件包信息](#8.7 显示软件包信息)
      • [8.7 显示可用的软件仓库](#8.7 显示可用的软件仓库)
    • [8 apt命令](#8 apt命令)
      • 9.1更新软件包列表
      • [9.2 搜索软件包](#9.2 搜索软件包)
      • [9.3 安装软件包](#9.3 安装软件包)
      • [9.4 卸载软件包](#9.4 卸载软件包)
      • [9.5 更新已安装的软件包](#9.5 更新已安装的软件包)
      • [9.6 清理过时软件包](#9.6 清理过时软件包)
      • [9.7 显示软件包的详细信息](#9.7 显示软件包的详细信息)
      • [9.8 添加和删除软件源](#9.8 添加和删除软件源)
      • [9.9 清理下载的软件包](#9.9 清理下载的软件包)

一.Linux 基础知识

Linux 操作系统以其开放源代码、灵活性和强大的性能,成为了计算机科学领域中不可或缺的一部分。从服务器到嵌入式设备,再到个人电脑,Linux 在各种场景中展现出了无与伦比的应用能力。本文将深入探讨 Linux 操作系统的基础知识、核心特性以及它在不同领域的应用。

1. Linux 操作系统简介

Linux 是一个基于 UNIX 的开源操作系统内核,由芬兰程序员 Linus Torvalds 在 1991 年创建。它的核心特点包括:

  • 开源性:Linux 源代码对所有人开放,用户可以自由地查看、修改和分发。
  • 多用户和多任务:支持多用户同时登录,能够同时运行多个进程。
  • 稳定性和安全性:Linux 内核经过全球开发者的长期测试和优化,具有高度的稳定性和安全性。

2. Linux 的基本组成

Linux 操作系统由以下几个核心组件组成:

组件 描述
内核 控制计算机硬件和资源的核心部分,负责管理进程、内存和设备。
Shell 提供用户与操作系统交互的命令解释器,常见的有 Bash、Zsh 等。
文件系统 Linux 支持多种文件系统,如 ext4、XFS 等,用于管理存储设备。
工具和库 包括系统工具(如 ls、grep、awk)和开发库(如 glibc)等。

3. Linux 的优势和应用领域

Linux 拥有广泛的应用场景,主要体现在以下几个领域:

  • 服务器和云计算:大多数服务器使用 Linux 操作系统,如 CentOS、Ubuntu Server 等,提供稳定、安全的服务器环境。

  • 嵌入式系统:Linux 可以根据需求定制,用于嵌入式设备,如智能家居产品、工业自动化设备等。

  • 超级计算机:Linux 在高性能计算领域得到广泛应用,如 TOP500 榜单中绝大多数超级计算机都运行 Linux。

4. 学习 Linux 的路径和资源

如果你想学习 Linux,可以按照以下步骤进行:

  1. 入门指南:选择一个流行的发行版(如 Ubuntu、Fedora),安装并熟悉基本的命令行操作。

  2. 深入学习:学习 Shell 脚本编程、系统管理技能(如用户管理、文件系统管理)等。

  3. 网络和安全:了解 Linux 网络配置、安全设置和防火墙管理,提升系统安全性。

  4. 参与社区:加入 Linux 用户组或参与开源项目,通过实践提升技能并获取反馈。

5. Linux 的未来展望

Linux 操作系统未来的发展方向包括但不限于:

  • 容器技术和虚拟化:Docker、Kubernetes 等技术的发展将进一步推动 Linux 在云原生应用中的应用。

  • 人工智能和物联网:Linux 在智能设备和物联网应用中的角色将越来越重要,例如智能家居、智能城市等领域。

  • 持续的社区和商业支持:Linux 的强大生态系统和全球化社区将继续推动其创新和发展。

总结来说,Linux 操作系统以其开源性、灵活性和安全性成为了全球计算机领域的重要组成部分。通过不断学习和实践,你可以掌握 Linux 的基础和高级功能,并在各种应用场景中发挥其巨大潜力。希望本文能够为你提供一个全面了解 Linux 的起点,激励你进一步探索这个令人兴奋的操作系统世界。

二.Linux 命令

1.linux目录结构

Linux 的文件系统遵循一种层次化的目录结构,这种结构有助于组织和管理操作系统中的文件和目录。以下是 Linux 常见的目录结构及其主要用途的简要介绍:

目录 描述
/ 根目录,整个文件系统的起点,包含了所有其他目录和文件。
/bin 存放系统核心命令(二进制文件),如 ls、cp、mv 等,这些命令对于系统启动和修复很重要。
/boot 包含用于启动 Linux 的文件,如内核镜像文件和引导加载程序(如 GRUB)的配置文件。
/dev 包含设备文件,Linux 将设备视为文件,这里存放硬件设备文件和与设备通信的接口文件。
/etc 存放系统的配置文件,包括系统启动时需要的配置文件和软件的配置文件。
/home 用户的主目录,每个用户有一个单独的子目录,通常以用户名命名。
/lib 存放系统和应用程序所需的共享库和内核模块。
/media 用于挂载可移动媒体设备(如 USB 驱动器、光盘等)的挂载点。
/mnt 临时挂载目录,用于手动挂载其他文件系统,通常不会自动挂载。
/opt 可选应用程序包的安装目录,一些大型的第三方应用程序(如 Oracle 数据库)可能会安装在这个目录下。
/proc 虚拟文件系统,提供当前运行进程和内核信息的访问点,可以通过读取特定文件获取系统状态和配置信息。
/root 超级用户(root)的主目录。
/run 用于存放系统运行时需要的临时文件(如 PID 文件和 socket 文件),此目录在系统启动时会自动清空。
/sbin 存放系统管理员使用的系统管理命令,例如 fdisk、fsck 等,与 /bin 的区别在于这些命令通常只能由 root 用户执行。
/srv 存放服务(services)的相关数据,如 HTTP 服务或 FTP 服务的数据。
/sys 也是一个虚拟文件系统,包含了内核和设备的运行时信息,可以用来访问和配置内核的各种参数。
/tmp 用于存放临时文件的目录,所有用户都可以访问,重启时会清空。
/usr 存放用户安装的应用程序和文件,类似于 Windows 的 Program Files 目录,包含了大部分用户安装的软件。
/var 存放经常变化的文件,如日志文件(/var/log)、缓存文件(/var/cache)、邮件(/var/mail)等。

这些目录和文件的组织方式使得 Linux 系统更加清晰和易于管理。通过了解这些目录的功能和用途,可以更有效地进行系统管理和维护。

2.linux文件基本属性

在 Linux 系统中,每个文件都有一些基本属性,这些属性决定了文件的类型、权限和其他重要信息。本文将详细介绍 Linux 文件的基本属性,包括文件类型、权限、所有者和大小等,并通过表格进行展示和解释。


2.1 Linux 文件的基本属性

每个文件在 Linux 中都具有以下基本属性:

  • 文件类型:Linux 中的文件可以分为普通文件、目录、链接文件等不同类型。

  • 权限:决定了对文件的访问权限,包括读(r)、写(w)、执行(x)权限,分别对应文件的所有者、所属组和其他用户。

  • 所有者:文件的所有者和所属组,决定了文件的管理者和访问者。

  • 文件大小:文件所占用的存储空间大小。

2.2 Linux 文件类型

Linux 中常见的文件类型包括:

类型 描述 示例
普通文件 存储文本或二进制数据的标准文件 file.txt, program.bin
目录 存储其他文件或目录的容器 /home/user/
符号链接 指向另一个文件或目录的符号链接 file.txt -> file2.txt
设备文件 代表系统硬件设备的文件,包括块设备和字符设备 /dev/sda, /dev/tty1
命名管道 用于进程间通信的特殊文件 /tmp/my_pipe
套接字 用于进程间通信的文件,主要用于网络通信 /tmp/mysql.sock

2.3 Linux 文件权限

Linux 中的文件权限由一组字符表示,如 -rwxr-xr--,具体含义如下:

  • 第一位表示文件类型
    当为 d 则是目录
    当为 - 则是文件;
    若是 l 则表示为链接文档(link file);
    若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
  • 后面三组(每组三位)分别表示所有者权限、所属组权限和其他用户权限(读、写、执行)。

2.4 文件属性示例

以下是一些文件的属性示例:

文件名 类型 权限 所有者 大小
file.txt 普通文件 -rw-r--r-- user1 1024 B
dir1 目录 drwxr-xr-x user2 4096 B
link.txt 符号链接 lrwxrwxrwx user1 7 B
/dev/sda 设备文件 brw-rw---- root -
/tmp/my_pipe 命名管道 prw-r--r-- user1 -

2.5 如何查看和修改文件属性

  • 查看文件属性 :使用 ls -l 命令可以列出文件的详细属性。

  • 修改文件权限 :使用 chmod 命令可以修改文件的权限,例如 chmod u+x file.txt 给文件所有者添加执行权限。

2.6 ls -l 命令

ls -l 是一个常用的 Linux 命令,用于显示目录或文件的详细信息。下面解释一下 ls -l 命令输出中的各个字段:

  1. 文件类型和权限 :第一个字符表示文件类型,常见的类型包括 -(普通文件)、d(目录)、l(符号链接)、c(字符设备)、b(块设备)等。

  2. 权限 :接下来的九个字符表示文件的访问权限。分为三组,每组三个字符,分别代表文件所有者的权限、同组用户的权限和其他用户的权限。每组权限字符可以是以下几种之一:

    • r 表示可读权限
    • w 表示可写权限
    • x 表示可执行权限
    • - 表示无权限
      例如,rwxr-xr-- 表示所有者具有读、写、执行权限,同组用户具有读和执行权限,其他用户只有读权限。
  3. 连接数:表示文件或目录的硬链接数。硬链接数是指有多少个文件名指向同一个 inode 的数量。

  4. 所有者:文件或目录的所有者用户名。

  5. 所属组:文件或目录所属的用户组名。

  6. 文件大小:以字节为单位显示文件大小。对于目录,显示的是该目录下所有文件的大小总和。

  7. 修改时间:指文件或目录的最后修改时间。

  8. 文件名或目录名 :最后显示的是文件名或目录名。
    例如,一个典型的 ls -l 输出可能是这样的:

    -rw-r--r-- 1 user1 group1 1024 Jul 9 12:00 example.txt

在这个例子中:

  • -rw-r--r-- 表示这是一个普通文件,所有者有读写权限,同组用户有读权限,其他用户有读权限。
  • 1 表示这个文件的硬链接数。
  • user1 是文件的所有者用户名。
  • group1 是文件所属的用户组名。
  • 1024 是文件的大小,单位是字节。
  • Jul 9 12:00 是文件的最后修改时间。
  • example.txt 是文件的名称。
    通过 ls -l 命令,可以快速查看文件或目录的详细信息,帮助用户了解和管理文件系统中的内容。

3.如何在 Linux 中更改文件属性

在 Linux 中,可以通过多种方式来修改文件的属性,包括文件权限、所有者和所属组。


3.1 修改文件权限

Linux 中的文件权限由读(r)、写(w)、执行(x)三种基本权限组合而成,分别对应文件的所有者、所属组和其他用户。可以使用 chmod 命令来修改文件的权限。

chmod 命令用法示例:

命令示例 描述
chmod u+x file.txt 给文件所有者添加执行权限。
chmod g-w file.txt 删除文件所属组的写权限。
chmod o=r file.txt 设置其他用户只有读权限,同时清除其他权限。
chmod a=rw file.txt 给文件的所有用户(所有者、所属组、其他用户)添加读写权限。

3.2 修改文件所有者和所属组

文件的所有者和所属组可以使用 chownchgrp 命令来更改。
chown 命令用法示例:

命令示例 描述
chown user1 file.txt 将文件 file.txt 的所有者更改为 user1
chown user1:group1 file.txt 将文件 file.txt 的所有者更改为 user1,所属组更改为 group1
chgrp 命令用法示例:
命令示例 描述
chgrp group1 file.txt 将文件 file.txt 的所属组更改为 group1

4.文件与目录管理

4.1.处理目录的命令

在 Linux 系统中,有许多用于处理目录的常用命令,包括创建、删除、复制、移动等操作。

处理目录的常用命令

ls(英文全拼:list files): 列出目录及文件名

cd(英文全拼:change directory):切换目录

pwd(英文全拼:print work directory):显示目前的目录

mkdir(英文全拼:make directory):创建一个新的目录

rmdir(英文全拼:remove directory):删除一个空的目录

cp(英文全拼:copy file): 复制文件或目录

rm(英文全拼:remove): 删除文件或目录

mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称


4.1.1 创建目录

创建目录是日常文件系统管理中常见的操作,可以使用 mkdir 命令。

mkdir 命令用法示例:

命令示例 描述
mkdir directoryname 创建一个名为 directoryname 的新目录。
mkdir -p path/to/dir 创建多级目录结构,递归创建 path/to/dir 目录。
4.1.2 切换目录

切换工作目录是在命令行中导航文件系统的基本操作,可以使用 cd 命令。

cd 命令用法示例:

命令示例 描述
cd directoryname 切换到名为 directoryname 的目录。
cd .. 切换到父目录。
cd ~ 切换到当前用户的主目录。
4.1.3 列出目录内容

列出目录的内容,包括文件和子目录,可以使用 ls 命令。

ls 命令用法示例:

命令示例 描述
ls 列出当前目录的文件和子目录。
ls -l 列出详细信息,包括权限、所有者、大小等。
ls -a 列出所有文件,包括隐藏文件(以 . 开头)。
4.1.4 复制、移动和删除目录

对目录进行复制、移动和删除是管理文件系统的关键操作,可以使用 cpmvrm 命令。

cpmvrm 命令用法示例:

命令示例 描述
cp -r sourcedir destdir 递归复制整个源目录到目标目录。
mv sourcedir destdir 移动源目录到目标目录。
rm -r directoryname 递归删除目录及其所有内容。

4.2 处理文件的命令

在 Linux 操作系统中,文件处理是日常操作的一个重要部分。无论是创建、查看、编辑还是管理文件,Linux 提供了丰富的命令和工具来帮助用户高效地进行文件处理。本文将介绍几个常用的 Linux 文件处理命令,涵盖文件的创建、查看、编辑、复制、移动和删除等操作。

4.2.1 创建文件和目录
  • touch : 创建空文件或者更新已存在文件的时间戳。

    bash 复制代码
    touch filename
4.2.2 mkdir创建新目录。
bash 复制代码
mkdir dirname
4.2.3 查看文件内容
  • cat: 用于连接文件并打印到标准输出设备上,常用于查看文件内容。

    bash 复制代码
    cat filename
  • more: 分屏显示文件内容,适合查看大文件。

    bash 复制代码
    more filename
  • less : 与 more 类似,但提供更多功能,如向前或向后滚动查看文件内容。

    bash 复制代码
    less filename
  • head: 显示文件的头部内容,默认显示前 10 行。

    bash 复制代码
    head filename
  • tail: 显示文件的尾部内容,默认显示最后 10 行。

    bash 复制代码
    tail filename
4.2.4 编辑文件
  • nano: 基本文本编辑器,易于上手。

    bash 复制代码
    nano filename
  • vi / vim: 强大的文本编辑器,有多种模式和命令,学习曲线较陡。

    bash 复制代码
    vi filename
4.2.5 复制、移动和重命名文件
  • cp: 复制文件或目录。

    bash 复制代码
    cp source_file destination_file
  • mv: 移动文件或目录,也可用于重命名文件。

    bash 复制代码
    mv old_name new_name
4.2.6 删除文件和目录
  • rm : 删除文件或目录。

    bash 复制代码
    rm filename
    rm -r dirname  # 递归删除目录及其内容
4.2.6 查找文件
  • find: 在文件系统中查找文件。

    bash 复制代码
    find /path/to/search -name "filename"
  • locate: 基于数据库快速查找文件。

    bash 复制代码
    locate filename
4.2.7 文件权限和属性
  • chmod: 修改文件或目录的权限。

    bash 复制代码
    chmod permissions filename
  • chown: 修改文件或目录的所有者。

    bash 复制代码
    chown owner:group filename
  • ls: 列出目录内容,显示文件的属性和权限。

    bash 复制代码
    ls -l
4.2.8 压缩和解压文件
  • gzip / gunzip: 压缩和解压文件。

    bash 复制代码
    gzip filename
    gunzip filename.gz
  • tar: 打包多个文件成一个文件,也可以用于解压缩。

    bash 复制代码
    tar -cvf archive.tar files   # 打包文件
    tar -xvf archive.tar        # 解压文件
4.2.9 其他常用命令
  • stat: 显示文件或文件系统的详细信息。

    bash 复制代码
    stat filename
  • file: 确定文件类型。

    bash 复制代码
    file filename
  • ln: 创建链接(硬链接或符号链接)。

    bash 复制代码
    ln -s source_file link_name  # 创建符号链接

5 用户和用户组管理

在 Linux 系统中,用户和用户组管理是系统管理员经常需要进行的任务之一。通过用户和用户组的管理,可以确保系统安全性和权限控制。以下是一些常用的用户和用户组管理命令,以表格形式展示其用法和效果。


1. 用户管理

对于用户管理,可以使用 useraddpasswdusermoduserdel 等命令。

用户管理命令用法示例:

命令示例 描述
useradd username 添加一个新用户 username
passwd username 为用户 username 设置密码。
usermod -aG groupname username 将用户 username 添加到用户组 groupname
userdel -r username 删除用户 username,同时删除用户的主目录和邮件箱等。
2. 用户组管理

对于用户组管理,可以使用 groupaddgroupmodgroupdel 等命令。

用户组管理命令用法示例:

命令示例 描述
groupadd groupname 添加一个新用户组 groupname
groupmod -n newname groupname 将用户组 groupname 重命名为 newname
groupdel groupname 删除用户组 groupname
gpasswd -a username groupname 将用户 username 添加到用户组 groupname
3. 列出用户和用户组信息

列出用户和用户组的信息可以使用 catgetentid 命令。

列出用户和用户组信息命令用法示例:

命令示例 描述
cat /etc/passwd 列出系统中的所有用户信息。
getent group groupname 列出用户组 groupname 的信息。
id username 列出用户 username 的信息,包括用户 ID 和所属用户组。

4 useradd的使用

useradd 是在 Linux 系统中用于创建新用户的命令,它有许多可用的参数来设置用户的属性和配置。除了基本的 useradd username 外,以下是一些常用的 useradd 命令参数及其用法:

命令的其他参数和示例

  1. 设置用户主目录和默认 Shell:

    • -m: 创建用户的同时,创建用户的主目录。
    • -d directory: 指定用户的主目录路径。
    • -s shell: 指定用户登录后默认使用的 Shell。

    示例:

    bash 复制代码
    useradd -m -d /home/newuser -s /bin/bash newuser

    这个命令会创建一个名为 newuser 的用户,同时创建 /home/newuser 目录作为该用户的主目录,并设置 /bin/bash 为其默认 Shell。

  2. 设置用户的UID和GID:

    • -u uid: 指定用户的数字用户ID(UID)。
    • -g group: 指定用户的初始用户组。

    示例:

    bash 复制代码
    useradd -u 1001 -g users newuser

    这个命令会创建一个UID为 1001,初始用户组为 users 的新用户 newuser

  3. 设置账号的过期时间和创建日期:

    • -e YYYY-MM-DD: 指定账号的过期日期,格式为年-月-日。
    • -f inactive_days: 账号在密码过期后多少天自动禁用。

    示例:

    bash 复制代码
    useradd -e 2025-01-01 -f 30 newuser

    这个命令会创建一个账号 newuser,并设置其账号的过期日期为 2025年1月1日,在密码过期后 30 天自动禁用账号。

  4. 设置额外的组成员:

    • -G group1,group2: 将用户添加到额外的用户组中,多个组名用逗号分隔。

    示例:

    bash 复制代码
    useradd -G developers,sudo newuser

    这个命令会创建一个用户 newuser,并将其添加到 developerssudo 这两个用户组中。

  5. 强制用户更改初始密码:

    • -p password: 设置用户的初始密码(通常不推荐在命令行中使用明文密码)。

    示例:

    bash 复制代码
    useradd -p password newuser

    这个命令会创建一个用户 newuser,并将其初始密码设置为 password

  6. 显示帮助信息:

    • -h: 显示 useradd 命令的帮助信息。

    示例:

    bash 复制代码
    useradd -h

6.linux磁盘管理

6.1 Linux 磁盘管理详解

在 Linux 系统中,有效管理磁盘是确保系统稳定性和性能的关键部分。本文将介绍几个重要的磁盘管理命令和相关信息,涵盖磁盘分区、文件系统创建与管理、磁盘空间监控等内容。

6.2 磁盘分区管理

磁盘分区是将硬盘划分成若干独立的逻辑单元,可以用于安装操作系统、存储数据等。Linux 下常用的分区工具是 fdiskparted

  • fdisk: 命令行工具,用于创建、修改和删除分区。

    bash 复制代码
    fdisk /dev/sdX   # sdX 是你的硬盘设备名,如 /dev/sda

    fdisk 命令选项示例:

    命令 描述
    m 显示帮助信息
    n 创建新分区
    d 删除分区
    p 显示分区列表
    w 保存并退出
  • parted: 提供更多功能,支持更复杂的分区需求。

    bash 复制代码
    parted /dev/sdX

    parted 命令选项示例:

    命令 描述
    mklabel 创建新分区表
    mkpart 创建新分区
    print 显示分区列表
    resizepart 调整分区大小
    quit 退出 parted
6.3 文件系统管理

文件系统是用来组织和管理文件的方法,Linux 支持多种文件系统类型,如 ext4、XFS、btrfs 等。

  • mkfs: 格式化磁盘并创建文件系统。

    bash 复制代码
    mkfs.ext4 /dev/sdX1   # 创建 ext4 文件系统
  • mount / umount: 挂载和卸载文件系统到指定的挂载点。

    bash 复制代码
    mount /dev/sdX1 /mnt   # 将分区 /dev/sdX1 挂载到 /mnt
    umount /mnt            # 卸载 /mnt
3. 磁盘空间管理

有效管理磁盘空间可以避免磁盘空间不足导致的问题。

  • df: 显示文件系统的磁盘空间使用情况。

    bash 复制代码
    df -h   # 以人类可读的方式显示磁盘空间使用情况

    df 命令选项示例:

    命令选项 描述
    -h 以人类可读的方式显示
    -T 显示文件系统类型
    -i 显示 inode 使用情况
  • du: 显示指定目录或文件的磁盘使用情况。

    bash 复制代码
    du -h /path/to/directory   # 查看目录的磁盘使用情况

    du 命令选项示例:

    命令选项 描述
    -h 以人类可读的方式显示
    -s 显示汇总信息
    -c 显示总计
6.4 磁盘管理工具

除了命令行工具外,还有一些图形化工具可以帮助管理磁盘,如 GNOME Disks(gnome-disks)等。

7. vi/vim 的使用

7.1 Vi/Vim:强大的文本编辑器

Vi 和 Vim 是 Unix 系统中最常用的文本编辑器之一,也是程序员和系统管理员必备的工具。尽管有一定的学习曲线,但它们提供了强大的编辑功能和高度的定制能力。本文将介绍 Vi/Vim 的基本使用方法和一些常用技巧,帮助初学者快速上手和提高效率。

7.2 Vi 和 Vim 的区别

Vi(Vi IMproved)是 Vim 的前身,Vim 在 Vi 的基础上增加了许多功能和改进,使得编辑更加便捷和高效。在大多数现代系统中,Vi 实际上是 Vim 的符号链接。

7.3 打开和退出

7.3.1 打开文件
bash 复制代码
vim filename
7.3.1 退出 Vim

保存并退出 :按下 Esc 进入命令模式,输入 :wq 并按下 Enter
不保存并退出 :按下 Esc 进入命令模式,输入 :q! 并按下 Enter
保存但不退出 :按下 Esc 进入命令模式,输入 :w 并按下 Enter

7.4 三种模式

Vim 有三种基本工作模式:
命令模式(Command Mode) :默认模式,可以执行命令如移动光标、复制粘贴等,按下 Esc 进入。
插入模式(Insert Mode) :用于输入或编辑文本,按下 i 进入插入模式。
末行模式(Last Line Mode) :在命令模式下输入 : 进入,用于执行保存、退出等命令。

7.5 基本移动和编辑

7.5.1 移动光标

  • h, j, k, l:左、下、上、右。
  • w:按单词向前移动。
  • b:按单词向后移动。
  • 0:移到行首。
  • $:移到行尾。
  • gg:跳到文件开头。
  • G:跳到文件末尾。

7.5.2 编辑文本

  • i:在光标处插入文本。
  • a:在光标后插入文本。
  • o:在当前行后插入新行并进入插入模式。
  • x:删除当前光标处字符。
  • dd:删除当前行。
  • yy:复制当前行。
  • p:粘贴。

7.6 搜索和替换

搜索

  • /keyword:向下搜索 keyword
  • ?keyword:向上搜索 keyword
  • n:跳到下一个搜索结果。
  • N:跳到上一个搜索结果。

替换

  • :%s/old/new/g:全文替换 oldnew

7.7 多文件操作

打开多个文件

bash 复制代码
vim file1 file2

使用 :next:prev 在多个文件间切换。

分割窗口
:split:水平分割窗口。
:vsplit:垂直分割窗口。

-Ctrl + wCtrl + w 切换窗口。

8 yum命令

在 Linux 系统中,yam 并不是一个常见的标准命令。可能出现误解或打字错误。也许您想了解的是 yum 命令,它是用于管理软件包的工具,特别是在基于 RPM 的 Linux 发行版(如 CentOS、Red Hat Enterprise Linux)中广泛使用。

YUM 是一个命令行工具,用于管理 RPM 软件包,包括安装、更新、删除以及解析依赖关系等操作。以下是一些常用的 yum 命令及其功能:

8.1 安装软件包

bash 复制代码
yum install package_name

这条命令会安装指定名称的软件包及其依赖项。

8.2 更新软件包

bash 复制代码
yum update

更新系统中已安装的所有软件包到最新版本。

8.3 搜索软件包

bash 复制代码
yum search keyword

根据关键词搜索可用的软件包。

8.4 列出已安装的软件包*

bash 复制代码
yum list installed

列出当前系统中所有已安装的软件包。

8.5 删除软件包

bash 复制代码
yum remove package_name

从系统中删除指定的软件包。

8.6 清理旧的软件包及缓存

bash 复制代码
yum clean packages
yum clean all

清理已下载但尚未安装的软件包及其缓存。

8.7 显示软件包信息

bash 复制代码
yum info package_name

显示关于指定软件包的详细信息,包括版本、依赖关系等。

8.7 显示可用的软件仓库

bash 复制代码
yum repolist

显示系统中已配置的软件仓库列表。

8 apt命令

在 Linux 系统中,apt 命令是用于管理软件包的高级工具,主要用于 Debian 及其衍生发行版(如 Ubuntu)的软件包管理。apt 工具提供了一种便捷的方式来搜索、安装、更新和删除软件包,同时还能够处理依赖关系和软件源的管理。以下是一些常用的 apt 命令及其功能:

9.1更新软件包列表

bash 复制代码
sudo apt update

通过此命令,系统会从软件源更新已安装的软件包的最新版本信息,以保持软件列表是最新的。

9.2 搜索软件包

bash 复制代码
apt search <keyword>

通过此命令,可以在软件包索引中搜索包含指定关键字的软件包,以便了解是否有相关的软件包可供安装。

9.3 安装软件包

bash 复制代码
sudo apt install <package_name>

使用此命令安装指定的软件包,<package_name> 是要安装的软件包名称。apt 会自动处理软件包的依赖关系,并安装必要的软件包。

9.4 卸载软件包

bash 复制代码
sudo apt remove <package_name>

通过此命令可以卸载指定软件包,但保留其配置文件。

bash 复制代码
sudo apt purge <package_name>

通过此命令可以完全卸载指定软件包,包括其配置文件等。

9.5 更新已安装的软件包

bash 复制代码
sudo apt upgrade

此命令会升级已安装的所有软件包到其最新可用版本。它会下载新版本的软件包,并安装更新。

9.6 清理过时软件包

bash 复制代码
sudo apt autoremove

该命令会自动删除已经不再被任何软件依赖的过时软件包,以释放磁盘空间。

9.7 显示软件包的详细信息

bash 复制代码
apt show <package_name>

通过此命令可以显示特定软件包的详细信息,包括其描述、版本、大小、依赖关系等。

9.8 添加和删除软件源

bash 复制代码
sudo add-apt-repository <repository>
sudo apt-add-repository --remove <repository>

通过这些命令可以添加和删除软件源,以便获取更多软件包或使用其他软件源。

9.9 清理下载的软件包

bash 复制代码
sudo apt clean
相关推荐
old_iron3 小时前
vim定位有问题的脚本/插件的一般方法
linux·编辑器·vim
爱知菜5 小时前
Windows安装Docker Desktop(WSL2模式)和Docker Pull网络问题解决
运维·docker·容器
做测试的小薄5 小时前
Nginx 命令大全:Linux 与 Windows 系统的全面解析
linux·自动化测试·windows·nginx·环境部署
影龙帝皖6 小时前
Linux网络之局域网yum仓库与apt的实现
linux·服务器·网络
月下雨(Moonlit Rain)6 小时前
Docker
运维·docker·容器
碎忆7 小时前
在VMware中安装虚拟机Ubuntu
linux·ubuntu
农民小飞侠7 小时前
ubuntu 安装pyllama教程
linux·python·ubuntu
打工人你好7 小时前
UNIX域套接字(Unix Domain Sockets, UDS) 的两种接口
服务器·unix
技术小甜甜7 小时前
[Dify] 使用 Docker 本地部署 Dify 并集成 Ollama 模型的详细指南
运维·docker·容器·dify
AI云师兄8 小时前
MCP 实战系列(Day 2)- 动手搓个文件系统 MCP 服务器
服务器·人工智能·ai编程