🐇明明跟你说过:个人主页
🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》 🏅
🔖行路有良友,便是天堂🔖
目录
一、引言
1、Linux操作系统简介
Linux操作系统的诞生历史可以追溯到1991年,当时一个名叫Linus Torvalds的芬兰大学生开始了这个项目的开发。他的初衷是打造一个自由、可靠的UNIX类系统,以提供更好的计算体验。这个简单的承诺标志着Linux的诞生。
在开发初期,Linus Torvalds在一封邮件中表达了他正在开发一个免费的操作系统,并将其描述为一个业余爱好,不会像GNU那样大而专业。然而,随着他的不断努力和全球开发者的加入,Linux逐渐得到了迅速发展。
Linux的诞生受到了UNIX操作系统的影响。在UNIX诞生之初,其开发过程经历了一些波折。当时,MIT和Bell实验室正在开发一个名为Multics的项目,但由于开发进度不佳,这两个实验室相继离开了项目,导致项目搁浅。然而,正是在这个项目的背景下,一个开发成员创建了一款名为“ravelspace”(遨游太空)的游戏。由于实验室的离开,他无法继续玩游戏,于是提议重新在Multics项目之上开发新的系统,这就是后来诞生的UNIX。
UNIX最初是使用汇编语言开发的,但由于汇编语言对计算机硬件的依赖性强,导致移植性不佳。因此,在1973年,UNIX开始使用C语言进行重写,以提高其可移植性和通用性。随后,在1975年,Bell实验室允许大学使用UNIX操作系统用于教学,但不允许用于商业用途。
这些历史事件为Linux的诞生和发展提供了重要的背景。Linux继承并发展了UNIX的许多优点,同时以开源和自由的方式吸引了全球开发者的参与,从而形成了今天繁荣的Linux生态系统。如今,Linux已经广泛应用于各种领域,包括服务器、嵌入式系统、移动设备和个人电脑等,成为当今计算机领域的重要力量。
2、学习Linux命令的重要性
-
系统管理与维护:Linux命令是进行系统管理的基础工具。通过使用这些命令,管理员可以监控系统的运行状态、管理用户和权限、配置网络设置、管理磁盘和文件系统等。熟练掌握Linux命令可以帮助管理员更加高效地管理和维护系统。
-
脚本编写与自动化:Linux命令可以轻松地通过脚本进行组合和自动化,从而实现对复杂任务的自动化执行。这对于需要重复执行的任务或者需要定时执行的任务来说,可以大大提高工作效率。
-
性能优化与故障排查:通过学习Linux命令,可以深入了解系统的运行机制和性能瓶颈,从而进行相应的优化。同时,在系统出现故障时,也可以通过命令来查看系统日志、分析进程状态等,快速定位并解决问题。
二、基础概念与环境设置
1、Shell介绍
Shell是一个命令解释器,同时也是一种应用程序,它为用户提供了一种与操作系统进行交互的方式。Shell本身是一个用C语言编写的程序,它既可以作为命令语言,也可以作为程序设计语言。
作为命令语言,Shell交互式地解释和执行用户输入的命令。用户可以在Shell中输入各种命令,Shell会将这些命令转换为操作系统能够理解的指令并执行相应的操作。这使得用户能够方便地对系统进行管理和控制,如管理文件和目录、设置环境变量等。
作为程序设计语言,Shell定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。这使得Shell脚本编写成为可能,用户可以通过编写Shell脚本来自动化执行一系列命令,提高工作效率。
2、文件系统与路径概念
Linux文件系统是以 / 作为入口的树形结构,路径由目录或目录和文件名构成,实际上是进入树的一个节点。在Linux文件系统中
路径主要分为绝对路径和相对路径两种。绝对路径是从根目录(/)开始的完整路径,例如“/home/user/document/file.txt”。它始终以“/”作为起点,可以明确地定位到系统中的任何文件或目录,无论当前工作目录是什么。
相对路径则是相对于当前工作目录的路径。它以“.”或“..”作为路径的起点。“.”表示当前目录,而“..”表示上级目录。例如,“./document/file.txt”表示当前目录下的document文件夹中的file.txt文件。相对路径的优点在于它的灵活性,可以方便地在当前目录或其子目录中进行操作,而无需指定完整的绝对路径。
在Linux文件系统中,还有一些常用的路径符号,包括“/”、“.”、“..”和“~”等。这些符号在路径中具有特定的含义,用于表示不同的路径或位置。例如,“~”表示当前用户的home目录,而“USER~”则表示用户名为USER的用户的home目录。
3、环境变量及设置方法
Linux环境变量是操作系统中的一个重要概念,它影响着程序的行为和系统的工作方式。环境变量通常包含了系统的配置信息、程序运行时的参数等。在Linux中,可以通过多种方式来设置环境变量。
一种常见的方式是通过命令行临时设置环境变量。这可以通过使用export
命令来实现,例如:export MY_ENV=Hello
。这种设置方式只在当前的终端窗口中有效,当窗口关闭后,设置的环境变量将失效。
如果想要永久改变环境变量,可以通过修改配置文件来实现。对于当前用户,可以编辑用户目录下的.bashrc
或.bash_profile
文件,将export
命令添加到文件的末尾,然后保存并退出编辑器。为了让新的环境变量生效,需要执行source ~/.bashrc
或source ~/.bash_profile
命令,或者重新打开一个新的终端窗口。
对于系统全局的环境变量,可以编辑/etc/profile
文件,将export
命令添加到文件的末尾。同样,修改后需要执行source /etc/profile
命令使新的环境变量生效,或者重启系统。
另外,如果想将某个路径添加到环境变量中,例如将/usr/local/php/bin
添加到PATH
环境变量中,可以在命令行中执行export PATH="$PATH:/usr/local/php/bin"
,或者在配置文件中添加相应的export
命令。
三、文件和目录操作命令
1、ls:列出目录内容
ls
命令是 Linux 系统中用于列出目录内容的命令,其参数非常丰富,可以满足用户不同的需求。下面是一些常用的ls
命令参数及其说明:
- -l:
- 长格式显示。列出目录下子目录和文件的详细信息,包括文件权限、链接数、所有者、文件大小、最后修改时间等。例如,
drwxr-xr-x
表示一个目录,d
代表目录,rwx
表示所有者对该目录有读写执行权限。
- 长格式显示。列出目录下子目录和文件的详细信息,包括文件权限、链接数、所有者、文件大小、最后修改时间等。例如,
- -a:
- 显示所有文件,包括隐藏文件。在 Linux 中,以
.
开头的文件被视为隐藏文件。
- 显示所有文件,包括隐藏文件。在 Linux 中,以
- -h:
- 以人类可读的格式显示文件大小,比如 KB、MB、GB 等。当与
-l
参数一起使用时,可以使文件大小更易读。
- 以人类可读的格式显示文件大小,比如 KB、MB、GB 等。当与
- -t:
- 按文件最后修改时间排序。最新修改的文件将排在最前面。
- -r:
- 反向排序。常与
-t
参数一起使用,使最新修改的文件排在后面。
- 反向排序。常与
- -S:
- 按文件大小排序。而不是按文件名排序。
- -d:
- 目录本身。仅显示目录本身的信息,而不是目录下的文件内容。
- -i:
- 显示文件的 inode 号。inode 是 Linux 文件系统中的一个重要概念,用于唯一标识一个文件。
- -R:
- 递归显示。列出指定目录及其所有子目录的内容。
- -F:
- 在列出的文件名或目录名后添加标记。例如,在目录名后添加
/
,在可执行文件后添加*
。
- 在列出的文件名或目录名后添加标记。例如,在目录名后添加
- -A:
- 显示几乎所有文件,但不包括
.
和..
这两个特殊目录。
- 显示几乎所有文件,但不包括
- --color:
- 以不同颜色显示不同类型的文件。这通常会使输出更易读。
- --sort=WORD:
- 按指定类别排序。WORD 可以是
none
(无排序)、extension
(按扩展名)、size
(按大小)、time
(按时间)、version
(按版本)等。
- 按指定类别排序。WORD 可以是
2、cd
:切换当前工作目录
cd
命令是Linux中最基本的命令之一,用于切换当前工作目录。其作用是改变当前工作目录至指定的目录,用户可以根据需要切换到不同的目录中进行操作。
cd
命令的语法为cd [选项] [参数]
,其中选项和参数可以有多种不同的组合,以实现不同的目录切换功能。
选项部分:
- -p:如果切换到的目标目录是一个符号链接,则直接切换到符号链接所指定的目标目录。
- -L:如果切换到的目标目录是一个符号链接,则直接切换到符号链接名代表的目录,而非符号链接所指向的目标目录。
- -e:让cd命令输出当前目录的完整路径。
参数部分可以是指定的目录路径,这可以是绝对路径(从根目录开始)或相对路径(相对于当前工作目录)。常见的特殊路径包括.(表示当前目录)、..(表示上级目录)和~(表示当前用户的家目录)。
示例:
cd /data
:将当前目录更改为“/data”。cd ..
:将当前目录更改为上一级目录。cd ~/Documents
:将当前目录更改为当前用户的家目录下的“Documents”文件夹。cd -
:返回上一次访问过的目录。cd -P
:让cd
命令遵循物理路径而不是符号链接。cd -L
:让cd
命令遵循符号链接而不是物理路径。
3、pwd
:显示当前工作目录
pwd
命令是 Linux 和 Unix 系统中用于显示当前工作目录(Present Working Directory)的命令。当在终端中执行 pwd
命令时,它会输出当前所在的目录路径。
4、mkdir
:创建新目录
mkdir
命令是 Linux 和 Unix 系统中用于创建目录的命令。通过mkdir
,用户可以轻松地创建新的目录(文件夹)。下面是对mkdir
命令的详细解释:
命令格式:
mkdir [OPTION]... DIRECTORY...
参数:
-m, --mode=MODE
:设置新目录的权限模式(如同chmod
),而不是使用默认模式。-p, --parents
:可以是一个路径名。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。--verbose
:每次创建新目录都显示信息。-v, --verbose
:与--verbose
相同,显示详细信息。-Z
:设置 SELinux 安全上下文。
5、cp
:复制文件或目录
cp 命令是 Linux 和 Unix 系统中用于复制文件或目录的命令。通过 cp 命令,用户可以将源文件或目录复制到目标位置,实现文件的备份、迁移或其他操作。
命令格式:
cp [选项] 源文件或目录 目标文件或目录
参数:
- -r, -R, --recursive:递归复制整个目录树,包括子目录和文件。
- -p:保留源文件或目录的属性,包括文件权限、所有者和时间戳。
- -a, --archive:归档模式,递归复制目录并保留所有属性,等同于 -dpR 选项的组合。
- -v, --verbose:显示详细的拷贝过程,即显示每个文件的复制进度。
- -i, --interactive:交互模式,如果目标目录中已经存在同名文件,则会提示用户是否覆盖。
- -f, --force:强行复制文件或目录,不论目标文件或目录是否已存在。
- -b:覆盖目标文件之前先备份,备份文件会在字尾加上一个备份字符串。
- -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录。
- -l, --link:对源文件建立硬连接,而非复制文件。
- -s, --symbolic-link:对源文件建立符号连接,而非复制文件。
- -P, --parents:保留源文件或目录的路径。
6、mv
:移动或重命名文件或目录
mv
命令是 Linux 和 Unix 系统中用于移动或重命名文件或目录的命令。
命令格式:
mv [选项] 源文件或目录 目标文件或目录
参数:
- -b:当覆盖文件之前,先备份原文件。
- -f:强制覆盖目标文件,不询问直接覆盖。
- -i:覆盖文件之前先询问用户是否覆盖。
- -u:只有当源文件比目标文件新,或者目标文件不存在时,才执行移动或重命名操作。
- -t:当需要移动多个源文件时,适用于这种方式,这时目标目录在前,源文件在后。
7、rm
:删除文件或目录
rm
命令是Linux和Unix系统中用于删除文件或目录的命令。
rm
命令的基本格式是rm [选项] 文件或目录
。不带任何选项时,rm
命令仅删除文件。如果要删除目录及其内容,需要使用-r
或-R
选项。
参数:
- -f(force):强制删除,忽略不存在的文件,不提示。
- -i(interactive):交互式删除,每个文件删除前都会询问用户。
- -r或-R(recursive):递归删除,用于删除目录及其内容。
- -v(verbose):显示详细信息,列出被删除的文件。
8、touch
:创建空文件或更新文件时间戳
touch
命令在 Linux 和 Unix 系统中用于创建空文件或更新文件的时间戳。当想创建一个新文件,或者只是想更新一个已存在文件的时间戳(访问时间和修改时间)时,这个命令非常有用。
命令格式:
touch [选项] 文件名...
参数:
- -a 或 --time=atime:只更改文件的访问时间。
- -c 或 --no-create:如果文件不存在,不创建它。
- -m 或 --time=mtime:只更改文件的修改时间。
- -t [[CC]YY]MMDDhhmm[.ss]:使用指定的时间,而不是当前时间。
- -r 参考文件 或 --reference=参考文件:使用参考文件的时间戳,而不是当前时间。
四、文本处理与查看命令
1、cat
:显示文件内容
cat
命令是 Linux 和 Unix 系统中用来查看、合并和创建文本文件内容的工具。它可以用于显示文件内容,将多个文件的内容合并输出,或者创建新的文件。
命令格式:
cat [选项] [文件名...]
参数:
- -n 或 --number:对输出的每一行编号。
- -b 或 --number-nonblank:对非空行编号。
- -s 或 --squeeze-blank:当遇到有连续两行或两行以上空白行时,合并为一行。
- -E:在每行结尾显示 $ 符号。
- -T 或 --show-tabs:将制表符显示为 ^I。
- -v 或 --show-nonprinting:使用 ^ 和 M- 符号显示非打印字符。
- --help:显示帮助信息。
- --version:显示版本信息。
2、more
/ less
:分页显示文件内容
more
和less
都是 Linux 和 Unix 系统中用来查看文本文件内容的命令。它们允许用户逐页或逐行浏览文件内容,并提供了一些搜索和导航的功能。
more 命令详解
more
命令以分页的方式显示文件内容,用户可以按空格键来查看下一页,按 b
键回到前一页。more
命令还支持搜索功能,允许用户搜索特定的字符串。
命令格式:
more [选项] 文件名
参数:
+n
:从第 n 行开始显示。-n
:定义屏幕大小为 n 行。-c
:从顶部清屏,然后显示。-d
:提示“Press space to continue, 'q' to quit”(按空格键继续,按 q 键退出),禁用响铃功能。-s
:将多个空行压缩成一个空行显示。
操作:
- 空格键:向下滚动一页。
b
键:向上回滚一页。- Enter 键:向下滚动 n 行(n 可以通过参数定义)。
/字符串
:从当前位置向后搜索特定的字符串。n
:重复上一个搜索。N
:反向重复上一个搜索。
less 命令详解
less
命令与 more
类似,但提供了更多的功能和便利性。less
允许用户向前和向后浏览文件,还提供了搜索、跳转、复制等操作。
命令格式:
less [选项] 文件名
参数:
-e
:文件内容显示完毕后,自动退出。-f
:强制显示文件。-g
:只高亮显示当前搜索到的关键字,以提高显示速度。-l
:搜索时忽略大小写的差异。-N
:每一行行首显示行号。-s
:将连续多个空行压缩成一行显示。-S
:单行显示较长的内容,而不换行。-x<数字>
:将 TAB 字符显示为指定个数的空格字符。
操作:
- 空格键:向下滚动一页。
b
或PageUp
键:向上滚动一页。- 回车键或
j
键:向下滚动一行。 k
键:向上滚动一行。/字符串
:向前搜索特定的字符串。n
:继续向后搜索。N
:向前搜索前一个匹配的文本。G
:移动到最后一行。g
:移动到第一行。q
键:退出less
。
3、head
/ tail
:查看文件的开头或结尾
head
和tail
是 Linux 和 Unix 系统中常用的两个命令,用于查看文件的开头或结尾部分的内容。这两个命令在文本文件处理、日志查看等场景中非常有用。
head 命令详解
head
命令用于查看文件的开头部分。默认情况下,它会显示文件的前 10 行。
命令格式:
head [选项] 文件名
参数:
-n 数量
:指定要显示的行数。例如,head -n 20 文件名
会显示文件的前 20 行。-c 字节数
:显示文件开头指定数量的字节。-q
或--quiet
、--silent
:不显示包含给定文件名的文件头。-v
或--verbose
:总是显示包含给定文件名的文件头。
tail 命令详解
tail
命令用于查看文件的结尾部分。默认情况下,它会显示文件的最后 10 行。
命令格式:
tail [选项] 文件名
参数:
-n 数量
:指定要显示的行数。例如,tail -n 20 文件名
会显示文件的最后 20 行。-f
:实时显示文件的新增内容,常用于查看动态更新的日志文件。
4、grep
:在文件中搜索指定模式的文本
grep
是 Linux 和 Unix 系统中一个强大的文本搜索工具,它使用正则表达式来搜索文本,并将匹配的行打印出来。grep
命令在处理大量文本数据、日志分析、代码搜索等场景中非常有用。
命令格式:
grep [选项] 模式 [文件...]
参数:
-i
:忽略大小写进行匹配。-v
:反转匹配,输出不匹配的行。-r
或-R
:递归搜索,搜索指定目录及其子目录下的文件。-l
:仅显示包含匹配项的文件名,而不显示具体匹配的行。-n
:显示匹配行及其行号。-c
:仅显示匹配的行数,而不显示具体匹配的行。-w
:仅匹配完整单词。-x
:匹配整行内容。-o
:仅显示匹配的部分,而不是整行。-e 模式
:指定多个模式进行匹配。--color
或--colour
:高亮显示匹配到的文本。
五、系统信息与监控命令
1、uname
:显示系统信息
uname
命令是Linux和Unix系统中的一个重要命令,用于显示系统信息。它的名称来自于英文词组“Unix name”的缩写。uname
命令可以输出一系列系统标识符,包括内核名称、主机名、内核版本号、硬件架构等。
命令格式:
uname [选项]
参数:
-a
或--all
:显示全部的系统信息,包括内核名称、主机名、内核版本号、硬件架构等。-m
或--machine
:显示硬件运行系统的机器 ID。-n
或--nodename
:显示网络节点上的主机名。-r
或--release
:显示操作系统的发行编号。-s
或--sysname
:显示操作系统名称。-v
:显示操作系统的版本。-p
:显示处理器类型。-i
:显示硬件平台。-o
:显示操作系统名称。--help
:显示帮助信息。--version
:显示版本信息。
2、df
:查看磁盘空间使用情况
df
命令是 Linux 和 Unix 系统中用于显示磁盘分区上可用的和已使用的磁盘空间。这个命令提供了文件系统及其挂载点的磁盘空间使用情况概览。
命令格式:
df [选项] [目录或文件名]
参数:
-a
:显示所有文件系统的磁盘使用情况,包括大小为 0 的文件系统。-h
:以人类可读的格式(例如 K、M、G)显示信息。-i
:显示 inode 信息,而不是块使用量。-k
:以 1024 字节块为单位显示信息(默认是 512 字节块)。-l
:仅显示本地文件系统。-T
:显示文件系统的类型。-x 文件系统类型
:不显示指定类型的文件系统。--sync
:在获取磁盘使用情况前,先执行 sync 命令。
3、du
:查看目录或文件的磁盘使用情况
du
命令在 Linux 和 Unix 系统中用于估算和显示文件或目录在磁盘上的使用情况。它可以帮助用户了解哪些文件或目录占用了大量的磁盘空间,从而进行有效的磁盘空间管理。
命令格式:
du [选项] [文件或目录]
参数:
-a
或--all
:显示目录中所有文件的磁盘使用情况,包括隐藏文件。-b
或--bytes
:以字节为单位显示磁盘使用情况。-c
或--total
:除了显示每个文件或目录的大小外,还显示所有文件或目录的总计大小。-h
或--human-readable
:以人类可读的格式(例如 K、M、G)显示文件或目录的大小。-k
:以 1024 字节块为单位显示文件或目录的大小。-m
:以 MB 为单位显示文件或目录的大小。-s
或--summarize
:仅显示指定目录或文件的总计大小,不显示子目录的大小。-x
或--one-file-system
:仅统计指定目录下的文件和子目录的大小,不统计其他文件系统的大小。-X
:排除指定的文件或目录,不统计它们的大小。-l
:统计符号链接文件的大小,而不是链接指向的文件的大小。-L
:统计链接指向的文件的大小,而不是链接文件本身的大小。-t LIMIT
或--threshold=LIMIT
:仅显示大于 LIMIT 的文件或目录。
4、top
:实时显示系统状态
top
命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
主要功能:
- 显示系统当前的进程和其他运行信息,包括CPU使用率、内存使用率、进程列表等。
- 动态刷新显示,默认每隔3秒刷新一次。
- 可以通过一系列交互命令对显示的进程进行排序、过滤、杀死等操作。
参数:
-d seconds
:指定top
命令更新的时间间隔,单位为秒,默认值是3秒。-b
:以批处理模式运行top
命令,输出到标准输出中,可以使用重定向或管道符将其输出到文件或其他命令中。-c
:显示完整的命令行,包括命令名和参数。默认情况下,top
只显示进程名。-i
:忽略闲置进程,只显示活跃的进程。活跃进程是指CPU或其他资源使用率高的进程。-n number
:设置top
命令显示的进程数,number表示进程数。-p pid
:指定top
命令只显示指定进程ID的信息。-s field
:根据指定的字段对进程进行排序。-S
:累计模式,top
命令将所有进程的资源使用情况累加显示。-h
:显示帮助信息。
输出解释:
top
命令的输出通常包含多列,每列代表不同的信息,如PID(进程ID)、USER(进程所有者)、PR(优先级)、NI(nice值)、VIRT(虚拟内存大小)、RES(常驻内存大小)、SHR(共享内存大小)、S(进程状态)、%CPU(CPU使用率)、%MEM(内存使用率)、TIME+(CPU时间)、COMMAND(命令名称或命令行)。
5、free
:查看内存使用情况
free
命令是Linux系统中用于显示内存使用状态的命令,它可以显示当前系统未使用的和已使用的内存数目,以及被内核使用的内存缓冲区信息。
参数:
-b
:以Byte为单位显示内存使用情况。-k
:以KB为单位显示内存使用情况。-m
:以MB为单位显示内存使用情况。-g
:以GB为单位显示内存使用情况。-h
:以人类可读的格式显示内存的使用情况。-s <间隔秒数>
:持续观察内存使用状况,直到用ctrl+c结束。-t
:显示内存总和列。-V
:显示版本信息。
输出解释:
total
:表示总计物理内存的大小。used
:表示已使用的内存大小。free
:表示未被分配的物理内存大小。shared
:表示被共享的内存大小。buff/cache
:表示被缓冲和缓存使用的内存大小。available
:表示可用于启动新应用的估算内存大小。
六、用户与权限管理命令
1、useradd
:添加用户
useradd
命令用于在Linux或类Unix系统上创建新的用户账户。这是一个需要超级用户权限的命令,因此需要以root或具有sudo权限的用户身份运行它。
命令格式:
useradd [选项] 用户名
参数:
-c
:加上备注文字,备注文字保存在passwd的备注栏中。-d
:指定用户登入时的起始目录。如果不使用这个选项,系统将使用默认值,通常是/home/用户名
。-D
:变更预设值。-e
:指定账号的有效期限,缺省表示永久有效。-f
:指定在密码过期后多少天即关闭该账号。-g
:指定用户所属的起始群组。-G
:指定用户所属的附加群组。-m
:自动建立用户的登入目录。如果不使用这个选项,系统不会自动创建用户的主目录。-M
:不要自动建立用户的登入目录。-n
:取消建立以用户名称为名的群组。-r
:建立系统账号。系统账号的UID通常小于1000,且不能用于登录。-s
:指定用户登入后所使用的shell。如果不指定,系统会使用默认的shell,通常是bash。-u
:制定用户UID。
示例:
- 创建一个一般账户:
useradd x1
。这将创建名为x1的用户,其家目录默认为/home/x1
,shell为bash(如果未指定,则为默认值)。 - 创建一个家目录为
/home2/x2
的用户:useradd -b /home2 x2
。 - 创建一个系统账户:
useradd -r x3
。 - 创建一个有效期为7天的账号:
useradd -e 7 x9
。
2、userdel
:删除用户
userdel
命令是Linux系统中用于删除用户账户的命令。通过合理使用该命令及其选项,可以安全地删除用户账户及其相关信息。
命令格式:
userdel [选项] 用户名
参数:
-r
:删除用户账户及其用户主目录和相关文件。使用此选项将确保用户的所有数据都被清除。-f
:强制删除用户账户,即使用户当前已登录也会被删除。-Z
:删除用户账户时,不会删除用户的安全上下文。-h
:显示帮助信息并退出。
3、passwd
:修改用户密码
passwd
命令是Linux系统中用于设置和修改用户密码的命令,同时也是系统管理员进行用户账户管理的重要工具。
命令格式:
passwd [选项] [用户名]
参数:
-l
:锁定用户账户,使得用户无法登录。-u
:解锁用户账户,允许用户登录。-e
:使密码立即过期,下次登录时强制用户修改密码。-k
:保留即将过期的用户在期满后的认证令牌,使其仍能登录。-S
:查询密码状态,显示账户是否被锁定、密码是否过期等信息。-d
:删除用户密码,账户将无需密码即可登录。此操作通常由系统管理员执行。-f
:强制执行密码修改。-x
:设置密码的最大有效期。-g
:修改群组密码(较少使用)。-i
:密码过期后,禁用用户账户。--stdin
:允许从标准输入(如管道)读取新密码,这在shell脚本中特别有用。
4、su
:切换用户
su命令是Linux系统中用于切换用户身份的命令。其基本语法为
su [选项] [用户名]
,其中选项用来定制命令的行为,用户名则是要切换到的目标用户账户。如果不指定用户名,默认切换到超级用户(root)账户。
参数:
-
或--login
:模拟登录目标用户,加载其环境变量和配置文件。-c <command>
:执行完指定命令后切换回原用户。-s <shell>
:指定要使用的shell。-m
或--preserve-environment
:保持当前环境变量。--help
:显示帮助信息并退出。--version
:显示版本信息并退出。
5、chmod
:改变文件或目录的权限
chmod命令是Linux系统中用于修改文件或目录权限的命令。通过chmod命令,用户可以控制对文件或目录的访问权限,包括读、写和执行权限。
chmod命令的基本语法是:chmod [选项] 模式 文件或目录
。其中,选项用来定制命令的行为,模式则用来指定新的权限设置。
模式部分可以通过数字或符号两种方式来指定权限。数字方式使用0到7的三位八进制数来表示权限,每一位分别代表文件所有者、所属组和其他用户的权限。符号方式则使用u(用户)、g(组)、o(其他)和a(所有)来指定用户类别,以及+、-、=来指定权限的增加、减少或赋予。
6、chown
:改变文件或目录的所有者和所属组
chown
命令在 Linux 和 Unix 系统中用于更改文件或目录的所有者和所属组。它是 "change owner" 的缩写,允许系统管理员或具有适当权限的用户将文件或目录的所有权从一个用户或组转移到另一个用户或组。
命令格式:
chown [选项] [所有者][:组] 文件或目录
参数:
-R
:递归地更改指定目录及其下所有文件和子目录的所有者和所属组。-v
:显示详细的处理信息。-c
:只在更改时显示处理信息。-f
:不显示错误信息。
七、网络操作命令
1、ifconfig
:查看或配置网络接口
ifconfig
是一个在 Linux 和 Unix 系统中常用的命令,用于配置和显示网络接口的参数和状态。这个命令提供了对网络接口的详细控制,包括设置 IP 地址、子网掩码、启动或关闭接口、以及查看接口的统计信息等。
命令格式:
ifconfig [网络设备名称] [参数]
参数:
- up/down:启动或关闭指定的网络接口。
- add/del:为接口添加或删除 IP 地址。
- broadcast:设置广播地址。
- netmask:设置子网掩码。
- mtu:设置最大传输单元(Maximum Transmission Unit)。
- promisc:设置接口为混杂模式(promiscuous mode),允许接口接收所有经过的数据包。
- -a:显示所有网络接口的信息。
- -s:显示网络接口的汇总信息。
2、netstat
:显示网络连接、路由表等
netstat
是一个强大的命令行工具,用于显示网络连接、路由表、接口统计等网络相关信息。在 Linux 和 Windows 系统上,这个命令都可用,但具体的参数和输出格式可能会有所不同。
命令格式:
netstat [选项]
参数:
- -a (--all): 显示所有活动的网络连接以及正在监听的套接字。
- -l (--listening): 显示所有正在监听的套接字。
- -v (--verbose): 显示详细的套接字信息。
- -c (--continuous): 持续更新显示的信息。
- -n (--numeric): 以数字形式显示地址和端口号,不进行 DNS 解析。
- -o (--timers): 显示与每个连接相关的计时器。
- -p (--programs): 显示与每个套接字关联的进程 ID 和程序名称。
- -t (--tcp): 仅显示 TCP 连接。
- -u (--udp): 仅显示 UDP 连接。
- -i (--interface): 显示网络接口的信息。
- -s (--statistics): 显示网络连接的统计信息。
- -r (--route): 显示路由表。
💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!