文章

Linux基础

AUTOGEN 34d060ba5c9741d8b100e161cd917474

Linux基础

1. 认识Linux

Linux是一种开源的操作系统内核,由Linus Torvalds在1991年首次发布。它基于UNIX系统,但设计上更加模块化,支持多用户、多任务、多线程和网络功能。Linux内核是完全免费的,任何人都可以自由使用、修改和分发。

Linux的历史可以概括如下:

  1. 起源:1991年,Linus Torvalds在赫尔辛基大学学习计算机科学时,出于个人兴趣开始编写Linux内核。最初,Linux只是作为一个业余项目,用于运行在Intel x86架构上。
  2. 发展:Linux内核迅速吸引了全球开发者的关注,他们开始贡献代码,使内核功能不断增强。1994年,Linux 1.0版本发布,标志着Linux内核的成熟。
  3. 社区:Linux的发展得益于其强大的社区支持。全球的开发者和用户共同参与到Linux的开发和维护中,形成了一个开放、协作的生态系统。
  4. 发行版:随着Linux内核的发展,出现了许多基于Linux内核的操作系统发行版,如Debian、Ubuntu、Fedora、Red Hat等。这些发行版为用户提供了更加友好的界面和工具,使得Linux更加易于使用。
  5. 应用领域:Linux被广泛用于服务器、嵌入式系统、桌面计算机、移动设备等多个领域。特别是在服务器市场,Linux占据了很大的市场份额。
  6. 开源精神:Linux的开源特性促进了技术创新和知识的共享。许多现代技术,如Android操作系统、云计算平台等,都受益于Linux的开源精神。
  7. 持续发展:至今,Linux内核仍在不断更新和发展,以适应新的硬件和技术需求。Linux社区持续活跃,不断有新的功能和改进被加入到内核中。

Linux是一种开源操作系统,拥有众多的发行版,每个发行版都有其独特的特点和社区。以下是一些流行的Linux发行版:

  1. Fedora :由Red Hat赞助,提供最新技术的体验,适合喜欢尝试新特性的用户。
  2. Ubuntu :基于Debian,提供长期支持版本,适合桌面和服务器使用,拥有庞大的用户社区和软件库。
  3. Debian :以稳定性著称,遵循严格的自由软件原则,是许多其他发行版的上游。
  4. openSUSE :来自德国,提供Leap和Tumbleweed两个版本,分别对应稳定和滚动更新。
  5. Manjaro :基于Arch Linux,提供用户友好的安装程序和软件仓库。
  6. Arch Linux :提供高度的定制性,适合高级用户和开发者。
  7. CentOS :原为Red Hat Enterprise Linux的社区克隆版本,适合服务器使用。
  8. Red Hat Enterprise Linux (RHEL) :商业发行版,提供企业级支持和服务。

内核版本和系统版本之间存在明显的区别:

  • 内核版本:指的是Linux内核的特定版本号,如3.14、4.19、5.10等,主要负责操作系统的核心功能,如硬件抽象、进程管理、内存管理等。
  • 系统版本:则是基于Linux内核之上构建的完整操作系统,包括内核、系统库、工具、应用程序等。例如,Ubuntu 20.04 LTS、Fedora 34等,每个发行版都有自己的软件仓库和更新策略。

2. 常用的Linux发行版安装

2.1 Ubuntu

[虚拟机 使用VirtualBox安装Ubuntu详细图文教程(安装+调整分辨率+共享文件)_virtualbox安装ubuntu12-CSDN博客](https://blog.csdn.net/Inochigohan/article/details/119791518)

2.2 CentOS

VirtualBox安装CentOS 7教程(超详细)_virtualbox安装centos7-CSDN博客

2.3 WSL2

WSL2是Windows Subsystem for linux的缩写

WSL2,全称为Windows Subsystem for Linux version 2,是微软公司开发的一种在Windows 10和Windows Server 2019操作系统上运行Linux环境的功能。它是Windows Subsystem for Linux(WSL)的第二个主要版本,于2019年发布。

WSL2的主要特点包括:

  1. 完整的Linux内核:与WSL1相比,WSL2引入了一个完整的Linux内核,运行在轻量级的虚拟机中,这使得它能够更好地模拟Linux环境,提供更接近原生的Linux体验。
  2. 更高的性能:由于WSL2运行在一个独立的内核上,它在文件系统性能、进程管理和内存管理等方面都有显著提升。
  3. 系统调用兼容性:WSL2通过一个兼容层来转换Linux系统调用为Windows系统调用,从而实现Linux应用程序在Windows上的运行。
  4. 完整的用户空间:WSL2提供了完整的Linux用户空间,包括常用的命令行工具、库和应用程序,用户可以在Windows上使用这些工具而无需安装完整的Linux发行版。
  5. 图形界面支持:虽然WSL2本身不提供图形界面,但可以通过X Server软件(如VcXsrv或Xming)在Windows上运行Linux图形应用程序。
  6. 版本控制:WSL2支持Linux发行版的版本控制,用户可以选择安装特定版本的Linux发行版,并且可以通过WSL的设置进行管理。
  7. 集成到Windows体验:WSL2与Windows系统集成度较高,例如,可以在Windows文件资源管理器中访问Linux文件系统,也可以在Windows命令提示符或PowerShell中启动WSL2会话。
  8. 适用于开发和测试:WSL2特别适合开发者和测试人员,他们可以在Windows环境中使用Linux工具和应用程序进行开发、测试和部署。

在命令行中键入winver

image-20240805215734946

wsl2对系统版本有要求, 如果内部版本低于 19041,需更新到最新的 Windows 版本。

在powerShell中以管理员身份运行下面命令以确保开启适用于 Linux 的 Windows 子系统虚拟机平台配置项

Windows PowerShell 带有管理员权限 (Win+X -> A)

运行

1
2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

image-20240805215850870

完成后重启

重启后安装更新程序包

wsl_update_x64_yuque.zip

**x64的直接前往x64 Linux内核更新包下载地址下载和安装即可

打开powershell输入:

1
wsl --set-default-version 2

然后安装wsl2的linux分发

在微软商店安装的linux分发默认安装在C盘,如果wsl2内文件过大就会把C盘搞爆,所以笔者选择手动安装在非系统盘

笔者选择Ubuntu20.04,前往wslubuntu2004获得AppxBundle文件(文件900M)

接着,修改软件包扩展名,改为.zip即可,然后解压

image-20240805220151170

选择Ubuntu_2004.2021.825.0_x64.appx后缀名修改为zip然后解压至想解压的非系统盘,笔者解压至F盘的Ubuntu文件夹:

image-20240805220202255

image-20240805220211316

以管理员身份运行我们解压的ubuntu.exe可执行文件就可以开始安装了

3. 基本认识

Linux一般不提供图形界面,只能在命令行中执行。

因此需要认识用户可以活动的文件空间

linux所有文件挂载到根目录下,且为分型树形结构

  1. /home:各个用户的主文件
  2. /root:root用户文件
  3. /bin:常用的可执行文件和命令文件,没有子目录
  4. /sbin:管理员和root用户使用的命令文件
  5. /dev:设备文件。磁盘光驱等
  6. /lib:linux系统共享的文件和内核模块,/lib/modules存放了核心可以加载的模块
  7. /lib64:64位linux的共享文件和内核模块
  8. /tmp:临时文件
  9. /mnt:手动挂载的目录
  10. /boot:启动目录,内核驱动和引导装载程序,例如GRUB文件
  11. /opt:第三方程序的安装文件
  12. /media:系统自动为一些设备挂载的目录,例如光盘
  13. /var:经常变动的文件
  14. /etc:系统上的绝大部分配置文件
  15. /usr:系统上给用户使用的程序和数据
  16. /srv:存储服务启动之后需要取得的资料目录
  17. /sys:所有的硬件设置
  18. /proc:内存虚拟文件,包含了系统的信息

其中proc的目录是内存映射的目录,看起来是文件目录,但实际上是内存空间。包括

  1. cpuinfo:CPU信息
  2. filesystems:文件系统信息
  3. ioports:IO端口号信息
  4. version:系统版本
  5. meminfo:内存信息

4. 基本操作

下面列出几种基本的文件操作

pwd:打印当前目录 -P:输出物理路径 -L:目录链接时,输出链接路径

cd:切换目录 -P:如果是链接路径,则进入源物理路径

~目录:当前用户的工作主目录

.目录:当前目录

..目录:上一级目录

4.1 ls列出文件(list)

ls用于列出当前的目录下内容

  1. -a 所有文件(包含隐藏)
  2. -A 不列出.和..
  3. -c:配合-lt列出ctime并排序
  4. -F:列出文件类型
  5. -i:显示iNode号
  6. -l:长格式,详细信息
  7. -r:逆序排列
  8. -t:修改时间排序
  9. -s:分配尺寸
  10. -S:根据文件大小排序

长格式中的内容:

  1. 第一列的第一个字符为文件类型
  2. 第一列的下三个字符为文件拥有者权限
  3. 再下三个字符是文件所在用户群的权限
  4. 再下三个是其他用户的权限
  5. 第二列是文件的链接数
  6. 第三列是用户所有者
  7. 第四列是文件的群组所有者
  8. 第五列是文件长度
  9. 第六-八列是文件时间,Mtime:Modified Time:更新时间,ATime:Access Time最后访问时间
  10. 第九列:文件名

4.2 touch创建文件 (Touch)

创建空文件夹和更改文件时间

  1. -a:只更改访问时间
  2. -m:更改文件的修改时间记录
  3. -c:如果目标不存在,则不建立新文件
  4. -r:指定文件的时间附加到当前时间
  5. -d:指定一个字符串时间
  6. -t:使用自己的格式时间,格式为【【CC】YY】MMDDhhmm【.ss】

4.2 mkdir创建目录(Make Dirctory)

创建目录

  1. -m:指定权限,例如
1
mkdir -m 777 filder1
  1. -p:如果上级目录不存在则按照层级自动创建目录

4.3 rmdir删除空目录(remove dir)

删除空目录

-p:递归的删除空目录,非空目录跳过

4.4 cp复制文件或目录(copy)

cp 选项 源文件 目标文件

  1. -a:复制所有,包括链接,属性,递归复制,等同于dpr
  2. -d:保留链接
  3. -f:强制覆盖,不进行重复提示
  4. -i:谨慎覆盖,重复复制需要用户确认
  5. -p:修改时间和访问权限同时给予新文件
  6. -r:递归复制所有目录和文件

4.5 mv移动文件或目录(move)

与cp相似

  1. -i:覆盖前询问
  2. -f:强制移动
  3. -n:不覆盖已有文件
  4. -u:源文件更新或是目标文件不存在时移动

4.6 rm删除文件或目录(remove)

rm 选项 文件

  1. -f:强制删除
  2. -r:递归删除
  3. -i:删除前确认

4.7 wc统计文件数目(word count)

  1. -l:统计行数
  2. -w:统计单词数目
  3. -c:统计char数
  4. -m:统计字符数
  5. -L:统计最长行的长度(最大屏幕长度)

4.8 文件链接

本质上是linux为新文件创建的inode节点的操作,分为硬链接和软链接:软连接也叫符号链接,类似于快捷方式,如果原来的文件不存在,就会出现断链的情况。硬链接叫做文件指针,直接指向真实的inode。

硬链接不允许给目录进行链接,不能在不同文件系统之间创建硬链接。

ln 选项 源文件名 链接文件名

  1. -i:删除确认
  2. -s:soft链接(软连接)
  3. -d:root用户指向目录的硬链接
  4. -f:强制删除任何存在的目标文件
  5. -t:在指定目录中创建链接

4.9 stat查看文件的详细信息

stat:查看文件状态包含Inode信息。

5. 常用命令

在Linux系统中,完成关机、重启、查看基本进程信息和查看系统状态等操作通常使用命令行界面。以下是一些常用的命令:

5.1关机 (Shutdown)

  • shutdown: 这个命令用于安全地关闭或重启系统。例如:
    1
    2
    3
    
    shutdown -h now          # 立即关闭系统
    shutdown -r now          # 立即重启系统
    shutdown -h +time        # 在指定时间后关闭系统,如 shutdown -h +10(10分钟后关闭)
    
  • poweroff: 立即关闭系统。
  • halt: 停止所有的CPU活动,通常用于关闭单用户系统。

5.2 重启 (Reboot)

  • reboot: 重启系统。
    1
    
    reboot                    # 重启系统
    
  1. 查看基本进程信息 (View Process Information)
    • ps: 查看当前运行的进程。
      1
      2
      3
      
      ps                       # 查看当前用户的所有进程
      ps aux                    # 显示所有进程的详细信息
      ps -ef                   # 显示所有进程的详细信息,包括系统进程
      
    • top: 实时显示系统进程信息。
      1
      
      top                      # 显示实时更新的进程信息
      
    • htop: 一个增强版的top,提供颜色显示和用户友好的界面(可能需要安装)。

5.3 查看系统状态 (View System Status)

  • uname: 显示系统信息。
    1
    
    uname -a                 # 显示包括内核版本在内的所有系统信息
    
  • df: 显示磁盘空间使用情况。

    1
    2
    
    df                       # 显示磁盘空间使用情况
    df -h                    # 以易读的格式(如GB、MB)显示
    
  • du: 显示目录或文件的磁盘使用情况。
    1
    
    du -sh /path/to/directory # 显示指定目录的磁盘使用情况
    
  • free: 显示内存使用情况。
    1
    
    free                     # 显示内存使用情况,包括已用、空闲、交换分区等
    
  • vmstat: 报告关于进程、内存、分页、块 IO、陷阱和CPU 的统计信息。
    1
    
    vmstat                   # 显示虚拟内存统计信息
    
  • iostat: 用于监视系统输入/输出设备负载。

    1
    
    iostat                   # 显示CPU和输入/输出统计信息
    
  • netstat: 显示网络连接和其他网络相关信息。
    1
    
    netstat -an             # 显示所有活动的TCP连接、监听端口等
    
  • ifconfigip addr: 显示网络接口的配置信息。
    1
    2
    
    ifconfig                 # 显示网络接口配置信息(在一些新系统中被ip命令取代)
    ip addr                  # 显示网络接口的地址
    

6. 换源

不同于Windows,Linux使用包管理器来安装管理软件。Linux操作系统提供了多种方式来管理和安装软件,具体方法可能会根据你使用的Linux发行版而有所不同。以下是一些常见的管理和安装软件的方法:

  1. 包管理器:Linux的每个主要发行版都有其自己的包管理器,用于安装、更新、配置、卸载和管理系统软件包。例如:
    • Debian和Ubuntu使用APT(高级包装工具)。
    • Fedora、CentOS和RHEL使用DNF或YUM。
    • Arch Linux使用Pacman。
    • Gentoo使用Portage。
  2. 软件源(Software Repositories):软件源是存放软件包的服务器或本地目录,用户可以从中选择和安装软件。软件源可以是:
    • 官方源:由Linux发行版提供,包含经过测试和认证的软件包。
    • 第三方源:由其他组织或个人提供,可能包含官方源中没有的软件包或更新版本。
  3. 编译安装:用户可以从源代码编译软件,这通常涉及下载源代码包,然后使用编译器编译源代码生成可执行文件。这种方法允许用户自定义软件配置,但过程可能较为复杂。
  4. Flatpak和Snap:这些是跨发行版的软件打包和分发技术,允许用户安装独立于系统其他部分的应用程序。
  5. AppImage:这是一种无需安装即可运行的软件格式,它包含所有运行所需的依赖项。
  6. 脚本安装:某些软件可以通过运行一个脚本(如bash脚本)来安装,脚本会处理下载、配置和安装过程。
  7. 手动安装:用户也可以手动下载软件包并使用命令行工具安装它们,但这通常不是推荐的做法,因为它可能需要更多的手动干预和配置。

6.1 Centos 7

  1. 备份原有源配置文件:
    1
    
    sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
  2. 下载国内源配置文件:
    1
    
    sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    

    或者使用网易(163)的源:

    1
    
    sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
    
  3. 清理 yum 缓存并生成新缓存:
    1
    2
    
    sudo yum clean all
    sudo yum makecache fast
    
  4. 验证更改: 检查 YUM 源是否已经更换成功,可以通过列出可用的软件包仓库:
    1
    
    sudo yum repolist
    
  5. 使用一键脚本 ``` #!/bin/bash

定义颜色

RED=’\033[0;31m’ GREEN=’\033[0;32m’ BLUE=’\033[0;34m’ NC=’\033[0m’ # 无颜色

定义YUM源选项

echo -e “${BLUE}请选择要更换的YUM源(默认使用阿里源):${NC}” echo -e “${BLUE}1) 阿里YUM源: http://mirrors.aliyun.com/repo/${NC}” echo -e “${BLUE}2) 163(网易)YUM源: http://mirrors.163.com/.help/${NC}” echo -e “${BLUE}3) 中科大Linux安装镜像源: http://centos.ustc.edu.cn/${NC}” echo -e “${BLUE}4) 搜狐的Linux安装镜像源: http://mirrors.sohu.com/${NC}” echo -e “${BLUE}5) 北京首都在线科技: http://mirrors.yun-idc.com/${NC}” read -p “请输入选项 [1-5] (默认1): “ choice

根据选择设置URL

case $choice in 2) repo_url=”http://mirrors.163.com/.help/CentOS7-Base-163.repo” ;; 3) repo_url=”http://centos.ustc.edu.cn/CentOS-Base.repo” ;; 4) repo_url=”http://mirrors.sohu.com/help/CentOS-Base-sohu.repo” ;; 5) repo_url=”http://mirrors.yun-idc.com/CentOS-Base.repo” ;; *) repo_url=”http://mirrors.aliyun.com/repo/Centos-7.repo” ;; esac

备份当前的YUM源配置文件

if [ -f /etc/yum.repos.d/CentOS-Base.repo ]; then sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak echo -e “${GREEN}已备份当前的YUM源配置文件到 /etc/yum.repos.d/CentOS-Base.repo.bak${NC}” else echo -e “${RED}未找到 /etc/yum.repos.d/CentOS-Base.repo 文件,跳过备份步骤${NC}” fi

下载选定的YUM源配置文件

sudo wget -O /etc/yum.repos.d/CentOS-Base.repo $repo_url if [ $? -eq 0 ]; then echo -e “${GREEN}成功下载选定的YUM源配置文件${NC}” else echo -e “${RED}下载选定的YUM源配置文件失败,请检查网络连接${NC}” exit 1 fi

清除YUM缓存并生成新的缓存

sudo yum clean all sudo yum makecache

验证新的YUM源配置是否成功

sudo yum repolist -y if [ $? -eq 0 ]; then echo -e “${GREEN}新的YUM源配置成功${NC}” else echo -e “${RED}新的YUM源配置失败,请检查YUM源配置文件${NC}” exit 1 fi

下载并配置EPEL源

sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo if [ $? -eq 0 ]; then echo -e “${GREEN}成功下载并配置EPEL源${NC}” else echo -e “${RED}下载EPEL源失败,请检查网络连接${NC}” exit 1 fi

echo -e “${GREEN}YUM源更换并配置EPEL源成功${NC}”

提示用户是否需要进行系统更新

read -p “是否需要进行系统更新(默认不更新)?[y/N]: “ update_choice if [[ “$update_choice” =~ ^[Yy]$ ]]; then sudo yum upgrade -y if [ $? -eq 0 ]; then echo -e “${GREEN}依赖包更新成功${NC}” else echo -e “${RED}依赖包更新失败${NC}” fi else echo -e “${GREEN}跳过系统更新${NC}” fi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
## 6.2 清华源

[ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror](https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/)

## 7. 软件更新

在Linux中进行软件更新通常涉及到以下几个步骤,但具体过程可能会根据你所使用的Linux发行版和包管理器的不同而有所变化:

1. **更新软件源列表**:
   - 对于基于Debian的系统(如Ubuntu),可以使用命令 `sudo apt update` 来更新软件源列表。
   - 对于基于RPM的系统(如Fedora或CentOS),可以使用 `sudo dnf update` 或 `sudo yum update`(取决于具体发行版)。
2. **查看可更新的软件包**:
   - 你可以使用 `apt list --upgradable`(Debian/Ubuntu)或 `dnf list updates`(Fedora)来查看所有可更新的软件包。
3. **更新软件包**:
   - 一旦软件源列表更新,你可以使用 `sudo apt upgrade`(Debian/Ubuntu)或 `sudo dnf upgrade`(Fedora)来更新所有可更新的软件包。
   - 如果你只想更新特定的软件包,可以使用 `sudo apt install [package-name]` 或 `sudo dnf install [package-name]`。
4. **使用图形界面**:
   - 许多Linux发行版提供了图形界面(GUI)的软件管理器,如Ubuntu的“软件更新器”或Fedora的“软件应用”工具,可以通过它们来更新软件。
5. **使用命令行工具**:
   - 对于命令行用户,可以使用上述的命令行工具来更新软件。
6. **使用特定的软件管理工具**:
   - 某些Linux发行版可能有自己的软件管理工具,如Arch Linux的Pacman,可以通过 `sudo pacman -Syu` 来更新系统。
7. **更新内核**:
   - 内核更新通常需要更多的步骤,可能包括下载新的内核源代码、配置、编译和安装。在某些情况下,内核更新可以通过包管理器自动完成。
8. **重启系统**:
   - 在某些情况下,更新可能需要重启系统才能完全生效。
9. **安全更新**:
   - 许多Linux发行版提供了安全更新的专用命令,如 `sudo apt-get dist-upgrade`(Debian/Ubuntu)或 `sudo dnf system-upgrade`(Fedora),这些命令可以用来安装重要的安全和功能更新。

## 8. 开放端口

### 8.1 CentOS(使用firewalld)

1. **安装firewalld**(如果尚未安装):

bash sudo yum install firewalld

1
2
3
2. **启动并启用firewalld服务**:

bashsudo systemctl start firewalld sudo systemctl enable firewalld

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
3. **开放端口**:

   - 打开指定端口(例如开放端口80):

     ```
     bash
     sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
     ```

   - 打开指定范围的端口:

     ```
     bash
     sudo firewall-cmd --zone=public --add-port=10000-20000/tcp --permanent
     ```

4. **重新加载firewalld配置**:

bash sudo firewall-cmd –reload

1
2
3
5. **检查端口是否开放**:

bash sudo firewall-cmd –zone=public –list-ports

1
2
3
4
5
6
7
### 8.2 Ubuntu(使用ufw)

1. **打开终端**。

2. **查看ufw状态**:

bash sudo ufw status

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
3. **开放端口**:

   - 打开指定端口(例如开放端口80):

     ```
     bash
     sudo ufw allow 80/tcp
     ```

   - 打开指定范围的端口:

     ```
     bash
     sudo ufw allow 10000:20000/tcp
     ```

4. **禁用规则**(如果需要撤销开放端口):

bash sudo ufw delete allow 80/tcp

1
2
3
5. **重启ufw以应用更改**(如果需要):

bashsudo ufw disable sudo ufw enable

1
2
3
6. **检查端口是否开放**:

bash sudo ufw status

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
### 通用注意事项

- 确保你的服务已经配置为在开放的端口上监听。例如,如果你开放了端口80,确保你的Web服务器(如Apache或Nginx)已经配置为在此端口上接收请求。
- 确保你的服务器安全组或云服务控制台中也允许流量通过这些端口,如果你使用的是云服务。
- 端口开放可能会增加服务器的攻击面,确保只开放必要的端口,并保持你的系统和应用程序更新到最新版本以减少安全风险。

## 9. 更改密码

在Linux系统中更改用户密码,你可以使用`passwd`命令。以下是更改密码的步骤:

1. 打开终端。

2. 如果你是要更改自己的密码,只需要输入以下命令:
   ```bash
   passwd
  1. 如果你是root用户或具有sudo权限,并且想要更改另一个用户的密码,你需要指定用户名:
    1
    
    sudo passwd username
    

    这里将username替换为要更改密码的用户的用户名。

  2. 系统会提示你输入当前密码(如果是root或sudo用户,则为root密码)。输入密码后按回车键。

  3. 接下来,系统会提示你输入新的密码。输入你想要设置的新密码,然后按回车键。

  4. 系统会要求你再次输入新密码以确认。重新输入相同的新密码。

  5. 如果两次输入的密码相同,系统会提示密码更改成功。

请注意以下几点:

  • 确保你记住了新密码,因为Linux系统通常不会显示密码输入。
  • 一些Linux发行版可能要求密码符合特定的复杂性要求,例如包含大小写字母、数字和特殊字符。
  • 如果你忘记了当前密码,你可能需要通过单用户模式或使用系统恢复选项来重置密码。
  • 如果你正在尝试更改root用户的密码,确保你有足够的权限或通过安全的方式获取当前root密码。

更改密码是一个敏感操作,确保在安全的环境中进行,避免在公共或不安全的网络环境中更改密码。

本文由作者按照 CC BY 4.0 进行授权