Linux基础
AUTOGEN 34d060ba5c9741d8b100e161cd917474
Linux基础
1. 认识Linux
Linux是一种开源的操作系统内核,由Linus Torvalds在1991年首次发布。它基于UNIX系统,但设计上更加模块化,支持多用户、多任务、多线程和网络功能。Linux内核是完全免费的,任何人都可以自由使用、修改和分发。
Linux的历史可以概括如下:
- 起源:1991年,Linus Torvalds在赫尔辛基大学学习计算机科学时,出于个人兴趣开始编写Linux内核。最初,Linux只是作为一个业余项目,用于运行在Intel x86架构上。
- 发展:Linux内核迅速吸引了全球开发者的关注,他们开始贡献代码,使内核功能不断增强。1994年,Linux 1.0版本发布,标志着Linux内核的成熟。
- 社区:Linux的发展得益于其强大的社区支持。全球的开发者和用户共同参与到Linux的开发和维护中,形成了一个开放、协作的生态系统。
- 发行版:随着Linux内核的发展,出现了许多基于Linux内核的操作系统发行版,如Debian、Ubuntu、Fedora、Red Hat等。这些发行版为用户提供了更加友好的界面和工具,使得Linux更加易于使用。
- 应用领域:Linux被广泛用于服务器、嵌入式系统、桌面计算机、移动设备等多个领域。特别是在服务器市场,Linux占据了很大的市场份额。
- 开源精神:Linux的开源特性促进了技术创新和知识的共享。许多现代技术,如Android操作系统、云计算平台等,都受益于Linux的开源精神。
- 持续发展:至今,Linux内核仍在不断更新和发展,以适应新的硬件和技术需求。Linux社区持续活跃,不断有新的功能和改进被加入到内核中。
Linux是一种开源操作系统,拥有众多的发行版,每个发行版都有其独特的特点和社区。以下是一些流行的Linux发行版:
- Fedora :由Red Hat赞助,提供最新技术的体验,适合喜欢尝试新特性的用户。
- Ubuntu :基于Debian,提供长期支持版本,适合桌面和服务器使用,拥有庞大的用户社区和软件库。
- Debian :以稳定性著称,遵循严格的自由软件原则,是许多其他发行版的上游。
- openSUSE :来自德国,提供Leap和Tumbleweed两个版本,分别对应稳定和滚动更新。
- Manjaro :基于Arch Linux,提供用户友好的安装程序和软件仓库。
- Arch Linux :提供高度的定制性,适合高级用户和开发者。
- CentOS :原为Red Hat Enterprise Linux的社区克隆版本,适合服务器使用。
- 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的主要特点包括:
- 完整的Linux内核:与WSL1相比,WSL2引入了一个完整的Linux内核,运行在轻量级的虚拟机中,这使得它能够更好地模拟Linux环境,提供更接近原生的Linux体验。
- 更高的性能:由于WSL2运行在一个独立的内核上,它在文件系统性能、进程管理和内存管理等方面都有显著提升。
- 系统调用兼容性:WSL2通过一个兼容层来转换Linux系统调用为Windows系统调用,从而实现Linux应用程序在Windows上的运行。
- 完整的用户空间:WSL2提供了完整的Linux用户空间,包括常用的命令行工具、库和应用程序,用户可以在Windows上使用这些工具而无需安装完整的Linux发行版。
- 图形界面支持:虽然WSL2本身不提供图形界面,但可以通过X Server软件(如VcXsrv或Xming)在Windows上运行Linux图形应用程序。
- 版本控制:WSL2支持Linux发行版的版本控制,用户可以选择安装特定版本的Linux发行版,并且可以通过WSL的设置进行管理。
- 集成到Windows体验:WSL2与Windows系统集成度较高,例如,可以在Windows文件资源管理器中访问Linux文件系统,也可以在Windows命令提示符或PowerShell中启动WSL2会话。
- 适用于开发和测试:WSL2特别适合开发者和测试人员,他们可以在Windows环境中使用Linux工具和应用程序进行开发、测试和部署。
在命令行中键入winver
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
完成后重启
重启后安装更新程序包
**x64的直接前往x64 Linux内核更新包下载地址下载和安装即可
打开powershell输入:
1
wsl --set-default-version 2
然后安装wsl2的linux分发
在微软商店安装的linux分发默认安装在C盘,如果wsl2内文件过大就会把C盘搞爆,所以笔者选择手动安装在非系统盘
笔者选择Ubuntu20.04,前往wslubuntu2004获得AppxBundle文件(文件900M)
接着,修改软件包扩展名,改为.zip
即可,然后解压
选择Ubuntu_2004.2021.825.0_x64.appx后缀名修改为zip然后解压至想解压的非系统盘,笔者解压至F盘的Ubuntu文件夹:
以管理员身份运行我们解压的ubuntu.exe
可执行文件就可以开始安装了
3. 基本认识
Linux一般不提供图形界面,只能在命令行中执行。
因此需要认识用户可以活动的文件空间
linux所有文件挂载到根目录下,且为分型树形结构
- /home:各个用户的主文件
- /root:root用户文件
- /bin:常用的可执行文件和命令文件,没有子目录
- /sbin:管理员和root用户使用的命令文件
- /dev:设备文件。磁盘光驱等
- /lib:linux系统共享的文件和内核模块,/lib/modules存放了核心可以加载的模块
- /lib64:64位linux的共享文件和内核模块
- /tmp:临时文件
- /mnt:手动挂载的目录
- /boot:启动目录,内核驱动和引导装载程序,例如GRUB文件
- /opt:第三方程序的安装文件
- /media:系统自动为一些设备挂载的目录,例如光盘
- /var:经常变动的文件
- /etc:系统上的绝大部分配置文件
- /usr:系统上给用户使用的程序和数据
- /srv:存储服务启动之后需要取得的资料目录
- /sys:所有的硬件设置
- /proc:内存虚拟文件,包含了系统的信息
其中proc的目录是内存映射的目录,看起来是文件目录,但实际上是内存空间。包括
- cpuinfo:CPU信息
- filesystems:文件系统信息
- ioports:IO端口号信息
- version:系统版本
- meminfo:内存信息
4. 基本操作
下面列出几种基本的文件操作
pwd:打印当前目录 -P:输出物理路径 -L:目录链接时,输出链接路径
cd:切换目录 -P:如果是链接路径,则进入源物理路径
~目录:当前用户的工作主目录
.目录:当前目录
..目录:上一级目录
4.1 ls列出文件(list)
ls用于列出当前的目录下内容
- -a 所有文件(包含隐藏)
- -A 不列出.和..
- -c:配合-lt列出ctime并排序
- -F:列出文件类型
- -i:显示iNode号
- -l:长格式,详细信息
- -r:逆序排列
- -t:修改时间排序
- -s:分配尺寸
- -S:根据文件大小排序
长格式中的内容:
- 第一列的第一个字符为文件类型
- 第一列的下三个字符为文件拥有者权限
- 再下三个字符是文件所在用户群的权限
- 再下三个是其他用户的权限
- 第二列是文件的链接数
- 第三列是用户所有者
- 第四列是文件的群组所有者
- 第五列是文件长度
- 第六-八列是文件时间,Mtime:Modified Time:更新时间,ATime:Access Time最后访问时间
- 第九列:文件名
4.2 touch创建文件 (Touch)
创建空文件夹和更改文件时间
- -a:只更改访问时间
- -m:更改文件的修改时间记录
- -c:如果目标不存在,则不建立新文件
- -r:指定文件的时间附加到当前时间
- -d:指定一个字符串时间
- -t:使用自己的格式时间,格式为【【CC】YY】MMDDhhmm【.ss】
4.2 mkdir创建目录(Make Dirctory)
创建目录
- -m:指定权限,例如
1
mkdir -m 777 filder1
- -p:如果上级目录不存在则按照层级自动创建目录
4.3 rmdir删除空目录(remove dir)
删除空目录
-p:递归的删除空目录,非空目录跳过
4.4 cp复制文件或目录(copy)
cp 选项 源文件 目标文件
- -a:复制所有,包括链接,属性,递归复制,等同于dpr
- -d:保留链接
- -f:强制覆盖,不进行重复提示
- -i:谨慎覆盖,重复复制需要用户确认
- -p:修改时间和访问权限同时给予新文件
- -r:递归复制所有目录和文件
4.5 mv移动文件或目录(move)
与cp相似
- -i:覆盖前询问
- -f:强制移动
- -n:不覆盖已有文件
- -u:源文件更新或是目标文件不存在时移动
4.6 rm删除文件或目录(remove)
rm 选项 文件
- -f:强制删除
- -r:递归删除
- -i:删除前确认
4.7 wc统计文件数目(word count)
- -l:统计行数
- -w:统计单词数目
- -c:统计char数
- -m:统计字符数
- -L:统计最长行的长度(最大屏幕长度)
4.8 文件链接
本质上是linux为新文件创建的inode节点的操作,分为硬链接和软链接:软连接也叫符号链接,类似于快捷方式,如果原来的文件不存在,就会出现断链的情况。硬链接叫做文件指针,直接指向真实的inode。
硬链接不允许给目录进行链接,不能在不同文件系统之间创建硬链接。
ln 选项 源文件名 链接文件名
- -i:删除确认
- -s:soft链接(软连接)
- -d:root用户指向目录的硬链接
- -f:强制删除任何存在的目标文件
- -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 # 重启系统
- 查看基本进程信息 (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连接、监听端口等
ifconfig
或ip addr
: 显示网络接口的配置信息。1 2
ifconfig # 显示网络接口配置信息(在一些新系统中被ip命令取代) ip addr # 显示网络接口的地址
6. 换源
不同于Windows,Linux使用包管理器来安装管理软件。Linux操作系统提供了多种方式来管理和安装软件,具体方法可能会根据你使用的Linux发行版而有所不同。以下是一些常见的管理和安装软件的方法:
- 包管理器:Linux的每个主要发行版都有其自己的包管理器,用于安装、更新、配置、卸载和管理系统软件包。例如:
- Debian和Ubuntu使用APT(高级包装工具)。
- Fedora、CentOS和RHEL使用DNF或YUM。
- Arch Linux使用Pacman。
- Gentoo使用Portage。
- 软件源(Software Repositories):软件源是存放软件包的服务器或本地目录,用户可以从中选择和安装软件。软件源可以是:
- 官方源:由Linux发行版提供,包含经过测试和认证的软件包。
- 第三方源:由其他组织或个人提供,可能包含官方源中没有的软件包或更新版本。
- 编译安装:用户可以从源代码编译软件,这通常涉及下载源代码包,然后使用编译器编译源代码生成可执行文件。这种方法允许用户自定义软件配置,但过程可能较为复杂。
- Flatpak和Snap:这些是跨发行版的软件打包和分发技术,允许用户安装独立于系统其他部分的应用程序。
- AppImage:这是一种无需安装即可运行的软件格式,它包含所有运行所需的依赖项。
- 脚本安装:某些软件可以通过运行一个脚本(如bash脚本)来安装,脚本会处理下载、配置和安装过程。
- 手动安装:用户也可以手动下载软件包并使用命令行工具安装它们,但这通常不是推荐的做法,因为它可能需要更多的手动干预和配置。
6.1 Centos 7
- 备份原有源配置文件:
1
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 下载国内源配置文件:
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
- 清理 yum 缓存并生成新缓存:
1 2
sudo yum clean all sudo yum makecache fast
- 验证更改: 检查 YUM 源是否已经更换成功,可以通过列出可用的软件包仓库:
1
sudo yum repolist
- 使用一键脚本 ``` #!/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
- 如果你是root用户或具有sudo权限,并且想要更改另一个用户的密码,你需要指定用户名:
1
sudo passwd username
这里将
username
替换为要更改密码的用户的用户名。 系统会提示你输入当前密码(如果是root或sudo用户,则为root密码)。输入密码后按回车键。
接下来,系统会提示你输入新的密码。输入你想要设置的新密码,然后按回车键。
系统会要求你再次输入新密码以确认。重新输入相同的新密码。
- 如果两次输入的密码相同,系统会提示密码更改成功。
请注意以下几点:
- 确保你记住了新密码,因为Linux系统通常不会显示密码输入。
- 一些Linux发行版可能要求密码符合特定的复杂性要求,例如包含大小写字母、数字和特殊字符。
- 如果你忘记了当前密码,你可能需要通过单用户模式或使用系统恢复选项来重置密码。
- 如果你正在尝试更改root用户的密码,确保你有足够的权限或通过安全的方式获取当前root密码。
更改密码是一个敏感操作,确保在安全的环境中进行,避免在公共或不安全的网络环境中更改密码。