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
相关推荐
龙鸣丿34 分钟前
Linux基础学习笔记
linux·笔记·学习
耶啵奶膘2 小时前
uniapp-是否删除
linux·前端·uni-app
_.Switch3 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410833 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.3 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
XMYX-04 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
芯盾时代4 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方5 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘5 小时前
NFS服务器
运维·服务器
苹果醋35 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx