Linux常用命令整理

avatar
作者
猴君
阅读量:0

本文将分享一些常用的Linux命令。根据功能的不同,大概分为以下几个方面,一是文件相关命令,二是进程相关命令,三是网络相关命令,四是磁盘相关命令,五是用户管理相关命令,六是系统命令。

1. 文件相关命令

ls:用于列出当前目录下文件和目录。

ls [选项] [文件/目录] 选项: 可用于控制 ls 命令的显示方式。 文件/目录: 指定要列出的文件或目录。  常见选项: -l: 长列表模式,显示详细的文件信息,包括权限、大小、修改时间、所有者等。 -a: 显示所有文件,包括隐藏文件(以 . 开头的)。 -h: 以人类可读的大小单位显示文件大小(如 KB、MB、GB)。 -r: 反转文件顺序。 -t: 按修改时间排序。  比如列出当前目录下所有文件,包括隐藏文件: ls -a 

cd:用于改变当前工作目录。

cd ..: 切换到上级目录 cd /: 切换到根目录 切换到当前用户的 home 目录:cd ~ 更改多个目录:cd Documents/Projects

mkdir:用于创建新目录。

创建单个目录: mkdir 新目录   创建多个目录: mkdir 目录1 目录2   使用绝对路径创建目录: mkdir /home/user/Documents/新文件夹  -p: 创建目录的父级目录。 mkdir -p /home/user/Documents/新文件夹/子文件夹 这会创建 /home/user/Documents/新文件夹/子文件夹 所有必要父级目录。

rmdir:用于删除空目录.。

删除单个空目录: rmdir 空目录  -p:递归删除目录及所有子目录。使用 -p 选项时,需要确保要删除的目录是空目录,否则会产生错误。 递归删除 "project" 目录及其所有子目录 rmdir -p project

rm:用于删除文件和目录。

删除单个文件: rm 文件名  删除多个文件: rm 文件1 文件2 文件3  删除目录 (该目录为空): rm 目录名  选项: -f: 强制删除文件,不询问确认。 -r: 递归删除目录和子文件/目录。使用 -r 选项会永久删除指定目录及其所有内容。 -i: 删除前询问确认。  删除名为 "myfile.txt" 的文件: rm myfile.txt  递归删除 "project" 目录及其所有内容: rm -r project

tourch:用于创建新文件,或更新已有文件的最后修改时间。

touch [选项] 文件名 选项: -a 或 --atime: 仅更新文件的访问时间。 -m 或 --mtime: 只更新文件的修改时间。 -c 或 --no-create: 如果目标文件已存在,则不创建新文件,直接退出。 -t 时间戳: 设置文件的最后修改时间为指定的时间戳。时间戳的格式通常为 YYYYMMDDHHMMSS。  创建名为 "newfile.txt" 的新空文件: touch newfile.txt  更新名为 "file.pdf" 的文件的访问时间和修改时间: touch -a -m file.pdf  touch 命令无法创建目录。 若指定的文件已存在,则执行 touch 命令不会改变文件内容,只会更新其最后修改时间。 如果使用 touch -t 设置文件的最后修改时间为未来时间,则系统会显示错误。

cp:用于复制文件或目录。

 cp [选项] 源文件/目录 目标文件/目录 选项: -i 或 --: 复制文件之前询问确认。 -f 或 --force: 如果目标文件已存在,则覆盖其,不询问确认。 -r 或 --recursive: 递归复制目录和子文件/目录。必要选项用于复制目录。 -p 或 --preserve: 保留源文件/目录的属性 (权限、所有者、时间戳等)。   复制名为 "image.jpg" 的文件到桌面: cp image.jpg ~/Desktop/  复制名为 "project" 的目录及其所有内容到 "backup" 目录: cp -r project backup/  cp 命令不会创建父目录。如果目标目录不存在,则需要先创建。 当复制多个文件时,您可以将它们列出,或者使用通配符 (例如 *.txt ) 指定要复制的文件。

mv:用于移动或者重命名文件和目录。

 mv [选项] 源文件/目录 目标文件/目录 选项: -i 或 --: 移动文件之前询问确认。 -f 或 --force: 如果目标文件已存在,则覆盖它,不询问确认。 -n 或 --no-clobber: 如果目标文件已存在,则不覆盖它,会退出。  移动文件: mv sourcefile targetdirectory  重命名文件: mv sourcefile newfilename  移动目录 (包含子目录和文件) : mv source_directory targetdirectory  比如: 移动名为 "report.docx" 的文件到 "documents" 目录: mv report.docx documents/  重命名名为 "file.txt" 的文件为 "newfile.txt": mv file.txt newfile.txt  移动名为 "music" 的目录到 "home" 目录: mv music home/music  mv 命令不能直接创建父目录。 当移动文件到已经存在的目录时,如果目标filename 已经存在,并且没有使用 -f 选项,系统会提示您是否覆盖。

cat:用于连接并显示文件内容。

cat [选项] 文件名 选项: -n: 在每一行末尾显示行号。 -b: 在每一行首显示空白字符对应的十进制编号。 -s: 合并连续的空白行。 -A: 显示所有非打印字符,包括空格、制表符、回车符等,并使用 ASCII 码表示。 -E: 显示所有非打印字符,包括空格、制表符、回车符等,并使用 ASCII 码表示。  显示文件 "notes.txt" 内容并显示行号: cat -n notes.txt  连接文件 "data1.txt","data2.txt" 和 "data3.txt" 并输出到终端: cat data1.txt data2.txt data3.txt > output.txt   将文件 "README.md" 的内容写入到另一个文件 "file.txt": cat README.md > file.txt    cat 命令会直接读取文件内容并输出,无法进行文件的修改。

more:用于分页显示文件内容。

more [选项] 文件名  选项: -n num: 每页显示 num 行。 -c: 显示目录符号。 -f: 忽略文件名的提示信息。 -r: 以 RAW 模式读取文件内容,不进行转义处理。 -d: 只显示文件名,不显示内容。  交互模式: 空格键: 滚动下一屏内容。 回车键: 滚动下一屏内容。 上箭头键: 返回上一屏内容。 下箭头键: 前进下一屏内容。 ** 数字:** 向前或向后跳到指定行。 q键: 退出 more 命令。 ** /pattern:** 从当前位置开始搜索指定的模式,并跳转到匹配行。 ?pattern: 从当前位置开始搜索反模式匹配的行。  分页显示文件 "file.txt" 内容: more file.txt  分页显示文件 "log.txt" 内容,每页显示 10 行: more -n 10 log.txt  直接退出 more 命令,不显示内容 more -d file.txt  搜索文件 "config.ini" 中包含 "port" 的所有行 more /config.ini /port 注意:  more 命令只能一次显示一屏内容,以便于阅读和浏览大型文件。

less:用于分页显示文件内容,但它比more功能更加强大。

less [选项] 文件名 选项: -n num: 每页显示 num 行。 -r: 以 RAW 模式读取文件内容,不进行转义处理。 -s: 忽略文件名的提示信息。 -G: 忽略末尾空白行。  交互模式: 空格键: 滚动下一屏内容。 回车键: 滚动下一屏内容。 上箭头键: 返回上一屏内容。 下箭头键: 前进下一屏内容。 ** 数字:** 向前或向后跳到指定行。 ** /pattern:** 从当前位置开始搜索指定的模式,并跳转到匹配行。 ** ?pattern:** 从当前位置开始搜索反模式匹配的行。 =: 在当前行显示行号。 p 或 P: 显示当前行前/后的行。 b: 显示文件开头。 e: 显示文件结尾。 q: 退出 less 命令。   分页显示文件 "log.txt" 内容,每页显示 20 行: less -n 20 log.txt  搜索文件 "config.ini" 中包含 "port" 的所有行 less /config.ini /port   在 less 命令中显示当前行的行号 less file.txt =  less 命令比 more 命令更强大,因为它支持搜索、标记、书签等更多功能。

head:用于显示文件开头部分的内容。

head [选项] 文件名 选项: -n num: 显示文件的前 num 行。 -c num: 显示文件的前 num 字节。  显示文件 "file.txt" 的前 10 行: head -n 10 file.txt  显示文件 "log.txt" 的前 5 行: head -5 log.txt  查看文件 "index.html" 的标题行: head -n 1 index.html  查看文件 "data.csv" 的前 100 字节: head -c 100 data.csv

tail:用于显示文件末尾部分的内容。

tail [选项] 文件名 选项: -n num: 显示文件的后 num 行。 -c num: 显示文件的后 num 字节。  交互模式: -f: 实时跟踪文件,当文件添加新内容时会滚动并显示。 -s num: 合并重复的行数之前的行数为 num。 -q: 静默模式,不显示文件名的提示信息。  显示文件 "file.txt" 的最后 10 行: tail -n 10 file.txt  显示文件 "log.txt" 的最后 50 行: tail -n 50 log.txt  实时监控日志文件 "server.log" 的最新内容: tail -f server.log  

vi/vim: 文本编辑器。

Vim主要分为两种模式:命令模式和插入模式。  命令模式:用于执行编辑操作,需要使用命令来控制编辑器的行为。 插入模式:用于输入文本内容。  vim filename:打开名为 "filename" 的文件。如果文件不存在,vim将创建新文件。  打开一个文件后,默认处于命令模式。  按下 i 键进入插入模式  按下 Esc 键返回命令模式。  :w 键保存文件 :wq 键保存文件并退出 :q! 键强制退出,不保存文件  退出编辑器: :q! 关闭文件不保存 :q 保存文件后退出  移动光标: h:左移一格 j:下移一格 k:上移一格 l:右移一格 0:移动到行首 $:移动到行尾 gg:移动到文件开头 G:移动到文件末尾  删除文字: x:删除光标所在字符 dw:删除光标所在词 dd:删除整行  搜索: /pattern:向前搜索 "pattern" ?pattern:向后搜索 "pattern"  注释: 在每一行开头添加尖号 ( # ),实现注释

find:用于查找文件和目录。

find 路径 参数 常用参数: 路径:指定查找的起始路径。如果不指定路径,默认从当前目录开始查找。 参数:用来指定查找的条件和操作。 . 表示当前目录  按文件名查找: find . -name "*.txt" 这条命令在当前目录及其所有子目录中查找所有以 .txt 结尾的文件,并打印它们的路径。  按文件类型查找: find . -type f 这条命令查找当前目录及其所有子目录中的所有普通文件,并打印它们的路径。-type d 可以查找目录。  按文件大小查找: find . -size +1M 这条命令查找当前目录及其所有子目录中大小大于1MB的文件,并打印它们的路径。-size -1M 可以查找小于1MB的文件。  按文件权限查找: find . -perm 644 这条命令查找当前目录及其所有子目录中文件权限为 644 的文件,并打印它们的路径。  按时间戳查找: find . -mtime -7 这条命令查找当前目录及其所有子目录中最近7天内修改过的文件,并打印它们的路径。-mtime +7 则可以查找7天前修改过的文件。  打印文件路径: find . -name "*.log" -print 这条命令查找当前目录及其所有子目录中所有以 .log 结尾的文件,并逐行打印它们的路径。  查找当前目录及其所有子目录中的所有普通文件,并将它们的权限修改为 644。 find . -type f -exec chmod 644 {} \; 或者 find . -type f -exec chmod 644 {} + 上述写法会将 find 找到的文件一次性传递给 chmod 命令,而不是每找到一个文件就执行一次 chmod。这种方式可以在性能上稍微优化,特别是在处理大量文件时。  find . -name "*.jpg" -exec cp {} /backup \; 这条命令查找当前目录及其所有子目录中所有以 .jpg 结尾的文件,并将它们复制到 /backup 目录。

grep:用于在文件中搜索指定文本。

grep 选项 模式 文件名 常用选项: -i: 忽略大小写。 -r 或 -R: 递归地在目录中搜索文件。 -n: 显示匹配行及其行号。 -v: 显示不匹配的行。 -E: 使用扩展正则表达式。 -F: 使用固定字符串(Fixed Strings)。 -o: 只显示匹配的部分。 -w: 匹配整个单词。 -c: 统计匹配的行数。 -l: 列出包含匹配的文件名。 -L: 列出不包含匹配的文件名。  在文件中查找特定文本: grep "pattern" file.txt 这条命令会在 file.txt 中查找包含 pattern 的所有行,并将它们打印出来。  忽略大小写进行搜索: grep -i "pattern" file.txt 使用 -i 选项可以忽略大小写,例如查找 Pattern、PATTERN、pattern 等都会匹配。  递归地在目录中搜索文件: grep -r "pattern" directory/ 使用 -r 选项可以递归地在指定目录 directory/ 及其子目录中搜索包含 pattern 的所有文件。  显示匹配行及其行号: grep -n "pattern" file.txt 使用 -n 选项可以显示匹配行及其行号,方便定位匹配的具体位置。  仅显示匹配的部分: grep -o "pattern" file.txt 使用 -o 选项可以仅显示匹配的部分,而不是整行内容。  统计匹配的行数: grep -c "pattern" file.txt 使用 -c 选项可以统计匹配的行数而不显示具体匹配内容。  显示不匹配的行: grep -v "pattern" file.txt 使用 -v 选项可以显示不包含 pattern 的所有行。  匹配整个单词: grep -w "word" file.txt 使用 -w 选项可以确保只匹配整个单词 word,而不是单词的一部分。  列出包含匹配的文件名: grep -l "pattern" *.txt 使用 -l 选项可以列出所有包含 pattern 的文件名,而不显示具体匹配内容。  查找 file.txt 中完全匹配 "exact string" 的行。 grep -F "exact string" file.txt 

(tar,gzip):用于打包和解压文件。

归档文件通常是一个或多个文件的集合,它们可能被压缩以节省空间。归档文件通常使用.tar扩展名,可能还会附带其他压缩方法,如.gz(代表gzip)或.bz2(代表bzip2)。  例如: file.tar 是一个未压缩的归档文件。 file.tar.gz 是一个使用gzip压缩的归档文件。 file.tar.bz2 是一个使用bzip2压缩的归档文件。   tar命令用法  1.创建归档文件 tar -cvf archive.tar file1 file2 ...  -c:创建一个新的归档文件。 -v:显示详细的操作过程(verbose),可以查看哪些文件被添加到归档中。 -f archive.tar:指定归档文件的名称。  创建一个名为 backup.tar 的归档文件,包含当前目录下所有文件和子目录: tar -cvf backup.tar .  创建一个名为 documents.tar 的归档文件,仅包含当前目录下的 docs 文件夹: tar -cvf documents.tar docs   2. 查看归档文件内容 tar -tvf archive.tar  -t:显示归档文件中包含的文件列表。  查看 backup.tar 中包含的文件列表: tar -tvf backup.tar   3. 解压归档文件 tar -xvf archive.tar   -x:解压归档文件中的内容。  解压 backup.tar 中的文件到当前目录: tar -xvf backup.tar   4. 添加文件到已存在的归档文件 tar -rvf archive.tar newfile.txt   -r:在已存在的归档文件末尾添加文件。  向 backup.tar 中添加新文件 important.txt: tar -rvf backup.tar important.txt   5. 从归档文件中删除文件 tar --delete -f archive.tar file_to_delete.txt   --delete:从归档文件中删除指定的文件。  从 backup.tar 中删除 oldfile.txt: tar --delete -f backup.tar oldfile.txt   6. 其他常用选项 -z:通过 gzip 压缩归档文件(通常用 .tar.gz 扩展名)。 -j:通过 bzip2 压缩归档文件(通常用 .tar.bz2 或 .tbz 扩展名)。 -C:切换到指定目录后执行操作。  gzip命令用法  1.基本用法 压缩文件,生成 filename.gz gzip filename   gzip example.txt 这将生成一个名为 example.txt.gz 的压缩文件,并删除原始的 example.txt 文件。  2. 解压缩文件 解压缩文件 filename.gz gzip -d filename.gz    解压缩 example.txt.gz 文件: gzip -d example.txt.gz  3. 查看压缩比和文件信息  gzip -l filename.gz  显示压缩文件的信息  查看 example.txt.gz 的压缩信息: gzip -l example.txt.gz  4. 压缩选项 gzip 命令本身并不提供太多复杂的选项,它主要用于简单的压缩和解压缩操作。 以下是一些常见的压缩选项: -f:强制压缩,即使文件已经存在或者已经压缩过。 -k:保留原始文件,即不删除原始文件,而是保留压缩后的文件副本。  强制压缩 example.txt,即使已经存在 example.txt.gz: gzip -f example.txt  保留原始文件 example.txt,并且生成 example.txt.gz: gzip -k example.txt   默认情况下,gzip 在压缩文件时会删除原始文件,并生成 .gz 后缀的压缩文件。使用 -k 选项可以保留原始文件。 gzip 不支持直接压缩多个文件或目录。如果需要压缩多个文件,通常会结合 tar 命令来先打包成 .tar 文件,然后再用 gzip 进行压缩。 

chmod:用于更改文件或目录的权限(权限控制)。

chmod [选项] 模式 文件名 常用选项: -R:递归地应用权限更改到目录及其子目录和文件。 -v:显示详细的权限更改信息。 -c:仅在发生更改时显示操作信息。  chmod 命令的模式可以使用两种方法来指定权限: 1. 符号模式: 符号模式允许你通过符号来指定权限的增加或减少。它的基本语法如下: chmod [ugoa...][[+-=][rwxXstugo...]...][文件名] u:所有者(user)权限。 g:所属组(group)权限。 o:其他用户(others)权限。 a:所有用户(相当于 ugo 的组合)。  权限符号包括: +:增加权限。 -:减少权限。 =:设置权限。  权限标志: r:读权限。 w:写权限。 x:执行权限。  给文件的所有者增加执行权限。 chmod u+x filename    2. 数字模式: 数字模式使用数字来指定权限,每个权限用数字表示如下: 4:读权限(r)。 2:写权限(w)。 1:执行权限(x)。  将这些数字按照权限组合起来,每个组合的总和就是权限的数字表示。例如: 7:rwx(读、写、执行权限)。 6:rw-(读、写权限)。 5:r-x(读、执行权限)。 4:r--(只读权限)。  给文件设置如下权限:所有者(user)具有读、写、执行权限(7),所属组(group)和其他用户(others)具有读、执行权限(5)。 chmod 755 filename  给文件添加执行权限: chmod +x filename  递归更改目录及其子目录的权限: chmod -R 755 directoryname  显示详细的权限更改信息: chmod -v 644 filename  仅在发生更改时显示操作信息: chmod -c 600 filename

chown:用于更改文件或目录的所有者。

chown [选项] 新所有者 文件或目录 常用选项: -R:递归地更改指定目录及其所有子目录和文件的所有者。 -v:显示详细的操作信息。 -c:仅在更改了文件所有者时显示操作信息。  参数说明: 新所有者:可以是用户名、用户ID、用户:组合的形式(将文件所有者更改为指定用户和组合)或者直接是组名。如果只提供用户名或用户ID,文件的所属组不会更改。 文件或目录:要更改所有者的文件名或目录名。  将 filename 文件的所有者更改为 user1: chown user1 filename  递归地将 directoryname 目录及其所有子目录和文件的所有者更改为 user2,同时将所属组更改为 group2: chown -R user2:group2 directoryname  将 filename 文件的所属组更改为 group3,而文件所有者不变: chown :group3 filename  将文件 filename 的所有者和所属组都更改为用户ID为 1001 的用户,组ID也为 1001 的组: chown 1001:1001 filename  递归地将 directoryname 目录及其所有子目录和文件的所有者更改为 user3,但所属组不会更改: chown -R user3 directoryname  只有超级用户(root)才能更改其他用户的文件所有者。一般用户只能更改自己拥有的文件或目录的所有者。

chgrp:用于更改文件或目录的所属组。

chgrp [选项] 新组名 文件或目录 常用选项: -R:递归地更改指定目录及其所有子目录和文件的所属组。 -v:显示详细的操作信息。 -c:仅在更改了文件所属组时显示操作信息。  参数说明: 新组名:可以是组名或者组ID。 文件或目录:要更改所属组的文件名或目录名。  将文件的所属组更改为指定组: chgrp group1 filename 这个命令将 filename 文件的所属组更改为 group1。  递归地更改目录及其内容的所属组: chgrp -R group2 directoryname 这个命令将递归地将 directoryname 目录及其所有子目录和文件的所属组更改为 group2。  使用组ID来更改文件的所属组: chgrp 1002 filename 这个命令将文件 filename 的所属组更改为组ID为 1002 的组。  chown 命令可以同时更改文件的所有者和所属组,而 chgrp 命令只能更改所属组。

pwd:用于显示当前工作目录的路径。

echo:用于打印输出文本或变量内容到标准输出。

2. 进程相关命令

ps:用于显示进程状态。

ps [options] 常用选项: -e: 显示所有进程,包括其他用户的进程。 -f: 显示完整格式,包括父进程 ID (PPID)、CPU 使用情况等。 -l: 长格式显示,显示更多的信息,如进程状态、执行时间等。 -u user: 显示特定用户的进程信息。 -p pid: 显示指定进程 ID (PID) 的信息。 -o format: 自定义输出格式。 -a: 显示所有终端(包括与终端无关的)的进程。 -x: 显示没有控制终端的进程。  显示当前所有进程: ps 这会显示当前终端下运行的所有进程的简要信息,如进程 ID (PID) 和命令名。  显示所有进程的详细信息: ps -ef 这会显示系统中所有进程的详细信息,包括进程的所有者、PID、父进程 ID (PPID)、CPU 使用率、内存占用等。  显示特定用户的进程: ps -u username 这会显示特定用户 username 运行的所有进程的信息。可以用于查看某个用户的进程状态。  查找特定进程 ID (PID) 的信息: ps -p pid 这会显示指定 PID 的进程信息,例如 ps -p 1234 将显示 PID 为 1234 的进程详细信息。  显示所有进程的全格式信息: ps -efl 这会以长格式显示所有进程的详细信息,包括更多的字段如进程状态、启动时间、CPU 时间等。  查看系统中所有进程的树形结构: ps -e --forest 这会以树形结构显示所有进程的关系,包括父子进程的层级关系,有助于理解进程之间的衍生关系。  显示没有控制终端的进程: ps -x 这会显示所有没有控制终端的进程,这些进程通常是守护进程或者后台任务。  自定义输出格式: ps -o pid,ppid,user,%cpu,%mem,cmd 这会自定义输出字段,仅显示指定的字段如 PID、PPID、用户、CPU 使用率、内存使用率和命令名。  进程状态字段可以包括 R(运行)、S(睡眠)、D(不可中断睡眠)、Z(僵尸)、T(停止)等 

top和htop:动态显示系统中的进程和资源使用情况。

top 输入 top 命令即可启动 top,默认情况下会按照 CPU 使用率进行排序并显示进程列表。  常用交互命令: q:退出 top。 h:显示帮助信息。 k:终止选中的进程。 1:显示各 CPU 核心的详细信息。 f:添加或移除显示的字段。  选项: -u username:只显示特定用户的进程。 -p PID:显示指定 PID 的进程信息。 -o field1,field2,...:自定义输出字段。   htop 输入 htop 命令启动 htop,它是 top 的增强版本,提供了更丰富的功能和更直观的界面。  htop 使用彩色显示,区分不同的进程状态和资源使用情况,使信息更直观。并且提供了更多的交互命令和操作选项,可以通过函数键进行快捷操作。  常用交互命令: F1:显示帮助信息。 F4:筛选进程,按名称或其它条件过滤。 F5:刷新显示。 F9:选择进程操作,如终止进程、优先级调整等。 F10:退出 htop。  选项: -u username:只显示特定用户的进程。 -p PID:显示指定 PID 的进程信息。 -d seconds:指定刷新间隔时间。  top vs htop: top 是最基本的进程查看工具,可用性强。 htop 提供了更加交互化和信息丰富的界面,适合需要更详细信息和更好用户体验的场景。  

kill:用于终止进程。

kill [options] PID PID 是要终止的进程的进程号(Process ID)。 options 是可选的参数,用于指定不同的信号或调整 kill 命令的行为。  常用信号: SIGTERM (15):默认信号,请求终止进程。通常会允许进程做清理工作,然后自行退出。 SIGKILL (9):强制终止进程。该信号会立即终止进程,不允许进程做清理操作。 SIGHUP (1):挂起信号。通常用于重新启动进程,如重新加载配置文件等。  选项 -signal 或 -s signal:指定要发送的信号类型。例如,-9 或 -SIGKILL 都是发送 SIGKILL 信号。 -l:显示支持的所有信号列表。 -a:不实际发送信号,仅检查进程是否存在并可以发送信号。  终止进程号为 12345 的进程: kill 12345  使用 SIGKILL 强制终止进程: kill -9 12345  重新启动进程: kill -1 12345  显示支持的所有信号列表: kill -l 

nice 和 renice: 用于调整进程优先级。

nice 命令用于启动新进程时设置其优先级。  nice [options] command [arguments] command 是要执行的命令或程序。 arguments 是命令的参数。  优先级调整 nice 命令通过调整进程的优先级来控制 CPU 分配。优先级范围从 -20(最高优先级)到 19(最低优先级),默认值是 0。  增加优先级:较高的优先级值意味着进程更容易获取 CPU 时间。 nice -n <priority> command 其中 <priority> 是一个数值,在 -20 到 19 之间。例如,nice -n 10 command 会以较高的优先级运行 command。  降低优先级:较低的优先级值使得进程更少获取 CPU 时间。 nice -n -<priority> command 例如,nice -n -10 command 会以较低的优先级运行 command。   以较高优先级运行 gzip 压缩文件: nice -n 10 gzip filename  以较低优先级运行长时间运行的任务: nice -n -10 ./long_running_task.sh   renice 命令用于修改已经运行的进程的优先级。与 nice 不同,renice 可以调整已经运行中的进程的优先级。  renice [options] priority [[-p] pid | [-g] pgrp | [-u] user] priority 是要设置的新优先级。 -p pid:根据进程号 (PID) 修改优先级。 -g pgrp:根据进程组号 (Process Group ID) 修改优先级。 -u user:根据用户名修改优先级。  提高进程号为 12345 的进程优先级: renice +10 -p 12345  降低进程组号为 54321 的所有进程优先级: renice -5 -g 54321

3. 网络相关命令

ifconfig:用于配置和显示网络信息。

ifcopnfig命令用法  显示所有网络接口信息: ifconfig 这会列出所有网络接口的详细信息,包括接口名称、IP地址、MAC地址、子网掩码、广播地址等。  显示特定网络接口信息: ifconfig eth0 这将显示 eth0 接口的详细配置信息。  配置网络接口: 设置IP地址和子网掩码: sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 这条命令将 eth0 接口配置为IP地址 192.168.1.100,子网掩码 255.255.255.0。  启用接口: sudo ifconfig eth0 up 这会启用 eth0 接口,使其可以开始进行网络通信。  禁用接口: sudo ifconfig eth0 down 这会禁用 eth0 接口,停止其进行网络通信。  指定广播地址: 可以使用 broadcast 参数来指定接口的广播地址: sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255  显示所有接口信息: 如果要显示所有接口(包括未激活的),可以使用 -a 参数: ifconfig -a  ifconfig 命令所做的修改通常是临时的,系统重启后会重置。要永久修改网络配置,需要编辑相应的配置文件。/etc/network/interfaces(Debian/Ubuntu)或 /etc/sysconfig/network-scripts/ifcfg-eth0(CentOS/RHEL)。

ip:用于管理网络接口、路由表、地址等。

显示当前网络接口信息: ip address 这会列出所有网络接口的配置信息,包括激活和未激活的接口。  显示路由表: 使用 ip route 命令可以查看当前系统的路由表,显示系统如何决定发送数据包的目标地址: ip route 这会列出所有的路由表项,包括目标网络、网关、接口等信息。  显示链接状态: ip link 使用 ip link 命令可以显示网络接口的链接状态,包括接口名称、状态(UP或DOWN)、MAC地址等  设置IP地址和子网掩码: sudo ip address add 192.168.1.100/24 dev eth0 这会将 eth0 接口配置为IP地址 192.168.1.100,子网掩码为 255.255.255.0。  使用 ip link 命令可以启用或禁用网络接口: sudo ip link set dev eth0 up 这会启用 eth0 接口,使其可以开始进行网络通信。 sudo ip link set dev eth0 down 这会禁用 eth0 接口,停止其进行网络通信。  修改MAC地址: 使用 ip link 命令可以修改网络接口的MAC地址 sudo ip link set dev eth0 address 00:11:22:33:44:55 这会将 eth0 接口的MAC地址修改为 00:11:22:33:44:55。  添加路由: 使用 ip route add 命令可以手动添加路由 sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0 这条命令添加了一个到 192.168.2.0/24 子网的路由,使用 192.168.1.1 作为网关,通过 eth0 接口。  删除路由: 使用 ip route del 命令可以删除路由 sudo ip route del 192.168.2.0/24 这条命令将删除路由表中到 192.168.2.0/24 子网的路由。  修改路由: 使用 ip route change 命令可以修改现有路由的参数,例如修改下一跳的地址或出接口。 

netstat:用于显示网络状态。

使用 netstat 命令可以显示当前系统上所有的网络连接信息,包括TCP、UDP、UNIX域套接字等: netstat  显示特定类型的连接: 可以使用 -t(TCP)、-u(UDP)、-n(数字格式)、-p(显示进程)等选项来筛选显示特定类型的连接,例如: netstat -t           # 显示所有TCP连接 netstat -u           # 显示所有UDP连接 netstat -n           # 显示数字格式(IP地址而非域名) netstat -p           # 显示与连接关联的进程 可以结合使用这些选项,例如 netstat -tunp 将显示所有TCP和UDP连接,并且显示与连接相关联的进程。  显示网络接口信息 显示网络接口统计信息: 使用 -i 选项可以显示网络接口的统计信息,包括接口名称、接收和发送的数据包数量、错误等: netstat -i   显示路由表信息: 使用 -r 选项可以显示系统的路由表信息,包括目标网络、网关、接口等: netstat -r  显示UNIX域套接字: 使用 -x 选项可以显示所有UNIX域套接字(本地套接字)的信息: netstat -x  

ping:用于测试与目标主机的网络连接。

基本用法: ping target_address 其中 target_address 可以是主机名(例如 example.com)或者IP地址(例如 192.168.1.1)。  持续 ping 测试: 使用 -c 选项可以指定发送 ICMP 请求的次数。例如,要发送5个 ICMP 请求: ping -c 5 target_address 这将会发送5个 ICMP 请求到目标主机,并显示每次请求的回应情况。  连续 ping 测试: 使用 -i 选项可以设置 ICMP 请求之间的时间间隔(单位为秒)。例如,设置每隔1秒发送一个 ICMP 请求:  ping -i 1 target_address 这将持续发送 ICMP 请求,直到手动中断(Ctrl+C)。   指定包大小: 使用 -s 选项可以指定 ICMP 数据包的大小(字节)。例如,发送一个大小为100字节的 ICMP 请求: ping -s 100 target_address 这在测试网络连通性时可以测试不同大小的数据包对网络的影响。  显示时间戳: 使用 -D 选项可以在每行输出中显示时间戳,以便更精确地测量延迟: ping -D target_address  设置超时时间: 使用 -W 选项可以设置等待目标主机响应的超时时间(单位为秒)。例如,设置超时时间为2秒: ping -W 2 target_address 如果目标主机在2秒内未响应,则视为超时。  使用特定网络接口: 使用 -I 选项可以指定使用特定的网络接口发送 ICMP 请求。例如,使用 eth0 接口发送 ICMP 请求: ping -I eth0 target_address   ping 命令的输出通常显示每个 ICMP 回显应答的统计信息,例如: 每个包的回应时间(RTT,Round-Trip Time)。 丢包率(如果有的话)。 发送的字节数和接收的字节数。 

traceroute:用于追踪数据包从本地主机到目标主机的网络路径。

基本的 traceroute 追踪: traceroute target_address 其中 target_address 可以是主机名(例如 example.com)或者IP地址(例如 192.168.1.1)。  指定使用的协议: 使用 -I 选项可以指定使用 ICMP 协议进行 traceroute: traceroute -I target_address 使用 -U 选项可以指定使用 UDP 协议进行 traceroute: traceroute -U target_address 默认情况下,traceroute 使用 UDP 协议。  指定端口号: 使用 -p 选项可以指定发送的 UDP 数据包的目标端口号。这对于避开某些防火墙规则或特定的路由器过滤规则可能有用: traceroute -p port_number target_address  设置最大跃点数: 使用 -m 选项可以指定 traceroute 搜索路由路径的最大跃点数(默认为30): traceroute -m max_hops target_address 这对于控制 traceroute 的最大深度和减少不必要的跟踪尝试很有用。  显示延迟: 使用 -q 选项可以指定每个 TTL 值发送的查询数(默认为3),从而显示每个路由器的平均延迟: traceroute -q queries target_address  显示IP地址: 使用 -n 选项可以以数字形式显示IP地址,而不是尝试进行反向域名解析: traceroute -n target_address   traceroute 命令的输出通常显示每个路由器(每一跳)的IP地址、每一跳的延迟(RTT,Round-Trip Time)、跳数(TTL)等信息。在每一跳的行中,通常会显示如下信息: 序号:显示当前跃点数。 IP地址:显示当前路由器的IP地址。 延迟:显示到达当前路由器的往返时间。 

route: 显示和操作 IP 路由表。

显示当前路由表: route 这将列出系统当前所有的路由信息,包括目标网络、网关、掩码、接口和标志等。  显示详细信息: 使用 -n 选项可以以数字格式显示IP地址,而不是尝试进行反向域名解析: route -n 这对于查看路由表时,避免等待反向域名解析的延迟很有帮助。  添加路由: 使用 add 子命令可以添加一个新的路由。 将网络 192.168.10.0/24 通过网关 192.168.1.1 添加到接口 eth0: sudo route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0 add:添加路由。 -net:指定目标网络。 netmask:指定子网掩码。 gw:指定网关。 dev:指定接口。  删除路由: 使用 del 子命令可以删除一个现有的路由。 删除到网络 192.168.10.0/24 的路由: sudo route del -net 192.168.10.0 netmask 255.255.255.0  修改路由: 使用 change 子命令可以修改一个现有的路由。 将网关修改为 192.168.1.2: sudo route change -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.2  查看特定目标的路由信息: 使用 -n 选项加上目标IP地址可以查看特定目标的路由信息。 查看到主机 192.168.1.100 的路由: route -n | grep 192.168.1.100   route 命令的输出通常会列出每条路由的详细信息,包括目标网络、网关、掩码、接口和标志等。例如: 目标:显示目标网络或主机的IP地址。 网关:显示用于到达目标的下一跳路由器的IP地址。 掩码:显示目标网络的子网掩码。 接口:显示路由器的出口接口。 标志:显示路由的标志,例如 UG 表示此路由是默认网关。 

wget:用于从网络下载文件。

下载单个文件: wget URL 其中 URL 是要下载的文件的地址,可以是 HTTP、HTTPS 或 FTP 协议的链接。  保存文件到指定位置: 使用 -O 选项可以指定保存下载文件的路径和文件名: wget -O /path/to/save/file URL 这将把下载的文件保存到指定的路径和文件名。   递归下载整个网站: 使用 -r 选项可以递归下载整个网站。这对于下载一个完整的静态网站非常有用: wget -r URL 注意:递归下载可能会下载整个网站的所有链接,包括子链接,因此要谨慎使用,以免下载大量不必要的文件。  限制递归深度: 使用 -l 选项可以限制递归的深度,即下载的链接层级: wget -r -l depth URL 这将限制下载到指定的深度层级。  断点续传: 使用 -c 选项可以启用断点续传功能。如果下载中断,可以继续下载未完成的部分而不是重新开始: wget -c URL  后台下载: 使用 -b 选项可以在后台运行 wget,允许你继续执行其他命令: wget -b URL 下载的进度和日志会保存在 wget-log 文件中。  限制下载速度: 使用 --limit-rate 选项可以限制下载速度,以避免占用过多带宽: wget --limit-rate=100k URL 这将限制下载速度为每秒100KB。  其他常用选项 -q:静默模式,减少输出。 -nv:非详细模式,减少详细输出。 -np:不递归上级目录。 -U:指定用户代理,模拟不同的浏览器访问。 

curl:用于发送和接收数据。

下载文件: curl URL -o filename 这会将从 URL 下载的文件保存为 filename。  显示下载进度: 使用 -# 选项可以显示下载进度条: curl -# URL -o filename 这样会在下载过程中显示进度条。  发送 GET 请求: curl -X GET URL  发送 POST 请求,并使用 -d 选项传递数据: curl -X POST -d 'data' URL 这会将 data 作为 POST 请求的数据发送给 URL。  使用 -H 选项可以设置请求头: curl -H 'Content-Type: application/json' URL 这会将 Content-Type 设置为 application/json。  使用 -o 或 -O 选项可以将响应保存到文件: curl URL -o filename -o 用于指定保存的文件名,-O 用于使用从 URL 中推断出的文件名保存。  使用 -F 选项可以上传文件: curl -F 'file=@localfile.txt' URL 这会将 localfile.txt 上传到 URL。  HTTPS 请求: curl 默认支持 HTTPS,不需要额外选项。  使用 -u 选项可以进行基本的 HTTP 认证: curl -u username:password URL 这会使用 username 和 password 进行 HTTP 基本认证。  其他常用选项 -s:静默模式,减少输出。 -v:详细模式,显示详细的请求和响应信息。 -L:跟随重定向。 --cookie:发送和接收 cookies。 --header:添加自定义头部信息。 

ssh:用于访问和管理远程计算机。

连接到远程主机: ssh username@hostname 其中 username 是远程主机的用户名,hostname 是远程主机的 IP 地址或域名。  指定端口连接: 如果远程主机的 ssh 服务监听在非默认的端口(默认为 22),可以使用 -p 选项指定端口号: ssh -p port username@hostname 其中 port 是 ssh 服务监听的端口号。  使用 SSH 密钥对进行认证可以更安全地连接到远程主机,而不需要输入密码: ssh -i path/to/private_key username@hostname path/to/private_key 是本地的私钥文件路径。   在 ssh 命令后面指定要在远程主机上执行的命令: ssh username@hostname 'command' 这会连接到远程主机并执行 command。  其他常用选项 -C:请求压缩所有数据以提高性能。 -v:详细模式,显示 ssh 的调试信息。  

scp:用于在本地主机和远程主机之间传输文件,通过 SSH 协议进行加密传输。

使用 scp 将本地文件传输到远程主机上: scp /path/to/local/file username@hostname:/path/to/remote/location /path/to/local/file 是本地文件的路径。 username 是远程主机的用户名。 hostname 是远程主机的 IP 地址或域名。 /path/to/remote/location 是远程主机上文件存放的路径。  使用 scp 从远程主机获取文件到本地: scp username@hostname:/path/to/remote/file /path/to/local/location username 是远程主机的用户名。 hostname 是远程主机的 IP 地址或域名。 /path/to/remote/file 是远程主机上要获取的文件路径。 /path/to/local/location 是本地文件存放的路径。  指定端口连接: 如果 ssh 服务监听在非默认的端口(默认为 22),可以使用 -P 选项指定端口号: scp -P port /path/to/local/file username@hostname:/path/to/remote/location  使用 SSH 密钥对进行认证: 可以使用 -i 选项指定私钥文件路径,以使用 SSH 密钥对进行认证: scp -i /path/to/private_key /path/to/local/file username@hostname:/path/to/remote/location  递归复制目录: scp -r /path/to/local/directory username@hostname:/path/to/remote/location -r 选项可以递归地复制整个目录及其内容。  传输文件夹及其内容: scp -r username@hostname:/path/to/remote/directory /path/to/local/location -r 选项同样适用于传输整个文件夹及其内容。   其他常用选项 -v:详细模式,显示详细的调试信息。 -C:请求压缩传输的数据以提高性能。 -p:保持文件的修改时间和访问时间。 -l:限制传输速率,以避免网络拥塞。    确保远程主机的 SSH 服务和配置是安全的。 建议使用 SSH 密钥对进行认证,而不是在命令行中使用明文密码。 避免在不可信的网络环境中使用 scp,尤其是在未加密或不安全的网络中。 

nslookup:用于查询 DNS信息。

查询域名对应的 IP 地址: nslookup example.com 这会输出 example.com 的 IP 地址记录,以及 DNS 解析过程中的相关信息。  反向查询 IP 地址对应的域名: 使用 -type=PTR 选项可以进行反向查询,即查询 IP 地址对应的域名: nslookup -type=PTR 8.8.8.8 这会输出 IP 地址 8.8.8.8 对应的域名。  指定特定 DNS 服务器: 默认情况下,nslookup 使用操作系统配置的 DNS 服务器。可以使用 -querytype 选项指定查询的类型,以及 -server 选项指定特定的 DNS 服务器。 nslookup -querytype=MX example.com 8.8.8.8 这会查询 example.com 的邮件服务器记录(MX 记录),并使用 Google 的 DNS 服务器 8.8.8.8 进行查询。  设置递归查询: 使用 -recurse 选项可以强制 nslookup 执行递归查询,即继续向上级 DNS 服务器查询,直至找到结果。 nslookup -recurse example.com  显示详细信息: 使用 -debug 选项可以显示更详细的调试信息,包括 DNS 查询过程中的通信细节。 nslookup -debug example.com  其他常用选项 -timeout:设置查询超时时间,单位为秒。 -queryclass:设置查询的类别(通常使用默认值 IN)。 -port:指定要连接的远程 DNS 服务器的端口号。    A 记录(Address Record): 用途:将域名解析为 IPv4 地址。 示例:example.com 的 A 记录可以指定为 192.0.2.1,这样访问 example.com 就会被解析为 192.0.2.1。 AAAA 记录(IPv6 Address Record): 用途:将域名解析为 IPv6 地址。 示例:example.com 的 AAAA 记录可以指定为 2001:db8::1,这样访问 example.com 就会被解析为 2001:db8::1。  MX 记录(Mail Exchange Record): 用途:指定邮件服务器的优先级和域名。 示例:example.com 的 MX 记录可以指定为 10 mail.example.com,这表示邮件应该发送到 mail.example.com,优先级为 10。  NS 记录(Name Server Record): 用途:指定域名服务器(Name Server),负责解析特定域名的查询。 示例:example.com 的 NS 记录可以指定为 ns1.example.com 和 ns2.example.com,这些记录告诉其他 DNS 服务器去查询 ns1.example.com 和 ns2.example.com 来获取 example.com 的解析信息。  CNAME 记录(Canonical Name Record): 用途:创建域名的别名,实现域名的重定向。 示例:www.example.com 的 CNAME 记录可以指定为 example.com,这样访问 www.example.com 就会被重定向到 example.com。  

4. 磁盘相关命令

df:用于查看磁盘空间使用情况。

显示当前系统上所有已挂载文件系统的磁盘空间使用情况: df 一般包括下列输出信息: Filesystem: 文件系统名称,比如 /dev/sda1。 Size: 文件系统总大小,以 GB 为单位。 Used: 文件系统当前已使用空间大小,以 GB 为单位。 Avail: 文件系统当前剩余空间大小,以 GB 为单位。 Use%: 文件系统使用率,以百分比表示。 Mounted on: 文件系统挂载点,即在文件系统中访问它的路径,比如 / 或 /mnt/data。  显示特定文件系统的详细情况: df /dev/sda1 这会显示 /dev/sda1 文件系统的。  显示不同单位的存储空间: df -m -h 表示使用人类可读的单位(KB,MB,GB),-m 表示使用兆字节(MB)为单位。  显示所有挂载点: df -a  这会显示所有已挂载的、隐藏的以及没有被其它命令挂载的块设备。  只显示已使用的空间: df --total 这会展示一个总计行的统计信息,包括总存储空间,已使用的存储空间,以及空闲存储空间。  定制输出格式: 下列选项来定制输出格式。 df -T显示文件系统的类型 df -x type排除特定类型的文件系统排除  man df 可以获取更多关于 df 命令的详细文档和用法说明。  

du:用来显示文件和目录的空间信息。

du [选项] 文件/目录 常用选项: -h: 以人类可读的单位(如 KB, MB, GB)显示文件大小,而非原始的块大小。 -a: 显示所有子目录的大小,不仅仅是直接子目录。 -c: 在最后显示总大小。 -d: 指定要显示指定深度(可选:0-N)的目录结构信息。 -s: 只显示目录的总大小,而不显示其子目录内的大小。 -b:显示文件和目录的大小,以字节为单位。  显示当前目录下所有文件和目录的大小(以GB为单位): du -sh *  显示当前目录下所有文件和子目录的大小 (以MB单位) : du -hm *  仅显示单个目录的大小: du -sb /home/user/Documents   显示指定目录下所有子目录的大小 (以KB为单位,显示): du -a /opt/data  只显示指定目录的总大小而不显示子目录的大小: du -s /var/log   du 命令会将文件大小展示为整体的占用空间。 

lsblk:用于列出系统的块设备信息。

sudo lsblk [选项]  常用选项: -f : 显示文件系统。 -o : 指定要显示的输出格式 ( --print --version 查看可用格式)。 -h : 以更易读的单位显示设备大小 (KB、MB、GB...)  一般包括下列输出信息: NAME: 是该块设备的名称,例如 /dev/sda 。 MAJ:MIN: 是主设备号和次设备号。 RM: 表示删除标记,0 表示未删除,1 表示已删除。 SIZE: 显示设备的大小。 RO: 表示只读标记,0 表示可读写,1 表示只读。 TYPE: 显示设备类型,例如 disk(硬盘),part(分区),loop(虚拟磁盘等)。 MOUNTPOINT: 显示挂载点,即该设备被挂载到的目录。  查看所有块设备信息: sudo lsblk  查看指定设备的信息: sudo lsblk /dev/sdb  查看指定类型设备的信息 (例如分区): sudo lsblk -o NAME,SIZE,TYPE,MOUNTPOINT | grep 'part'

fdisk:用于管理磁盘分区 。

fdisk [选项] 设备文件 设备文件: 通常是 /dev/sda 类似的形式,表示要操作的分区磁盘。  常用选项: -l : 列出磁盘分区表。 -n : 在创建分区时提供交互式帮助提示。 -C : 列出设备的默认分区表类型 (例如,msdos)。  显示磁盘分区表: sudo fdisk -l 这会列出系统中所有已连接的磁盘及其分区信息。  进入fdisk交互式模式: sudo fdisk /dev/sda 你会在 fdisk 交互式模式下看到各种操作命令。  创建新分区: 在fdisk模式下,输入 n 创建新分区。  设置分区类型: 在fdisk模式下,输入 t 可以设置分区类型。  退出fdisk模式: 进入fdisk模式后,输入 w 保存更改并退出。   fdisk 操作可能会导致数据丢失,确保备份重要数据。 在使用 fdisk 之前,请使用 lsblk 或 df 命令确认正在操作的磁盘和分区是正确的。 

5. 用户管理相关命令

id:用于显示当前用户或指定用户的用户身份信息。

id [选项] [用户名] 常用选项: -u : 显示用户的 UID(用户标识号)。 -g : 显示用户所属的基本组的 GID(组标识号)。 -G : 显示用户所属的所有附加组的 GID(组标识号),多个 GID 之间用逗号分隔。 -n : 显示用户名而不是 UID。 -r : 显示实际的 UID/GID,而不是有效的(可能是映射后的)。 -Z : 显示安全上下文。   显示当前用户的 UID 和 GID: id  显示特定用户的 UID 和 GID: id 用户名  显示用户名而不是 UID: id -n 用户名  显示用户所属的所有附加组的 GID: id -G 用户名 

useradd:用于创建新的用户账户。

sudo useradd [选项] 用户名  常用选项: -c "用户描述" : 设置用户描述(comment)。 -d 目录 : 设置用户主目录(home directory)。 -g 组名称 : 设置用户所属的用户组。 -G 组名称1,组名称2, ... : 给用户添加多个用户组。 -s /bin/bash : 设置用户的默认 shell,默认为/bin/bash。 -m : 自动创建用户的主目录。 -U : 没有密码的用户 (必须指定密码后再使用该用户)。  创建一个新的用户: sudo useradd -c "系统管理员" -m 新用户 这将创建名为 "新用户" 的用户,并设置其描述为 "系统管理员", 同时自动创建用户的 /home/新用户 主目录。  设置用户密码: sudo passwd 新用户 系统会提示您输入新密码。  添加用户到特定组: sudo useradd -g admin -G wwwdata 用户名 这会将名为 "用户名" 的用户添加至 "admin" 组,并同时添加至 "wwwdata" 组 

userdel:用于删除用户账户及其相关配置和文件。

sudo userdel [选项] 用户名 常用选项: -r : 删除用户的主目录及其内容。 -f : 强制删除用户,即使用户当前登录或拥有进程。 -Z : 删除用户的 SELinux 用户。 -h : 显示帮助信息和选项。  删除用户(保留主目录): sudo userdel 用户名 这会删除名为 "用户名" 的用户账户,但会保留其主目录及其内容。  删除用户及其主目录: sudo userdel -r 用户名 这会删除名为 "用户名" 的用户账户,并同时删除其主目录及其内容。  强制删除用户(即使用户当前登录): sudo userdel -f 用户名 这会强制删除名为 "用户名" 的用户账户,即使该用户当前已登录或有运行中的进程。 

passwd:用于更改用户的密码。

passwd [选项] [用户名] 常用选项: -l : 锁定用户账户,使其无法登录。 -u : 解锁用户账户,允许其登录。 -d : 使用户密码无效(删除密码),但用户仍然可以登录。 -e : 强制用户在下次登录时更改密码。  更改当前用户的密码: passwd  更改其他用户的密码(需要管理员权限): sudo passwd 用户名  锁定用户账户: sudo passwd -l 用户名 这会禁用指定用户账户的登录,用户将无法使用该账户登录系统。  解锁用户账户: sudo passwd -u 用户名 如果之前使用 -l 锁定了用户账户,这个命令可以解锁账户,使其恢复登录权限。  删除用户密码(用户仍然可以登录但没有密码): sudo passwd -d 用户名 这将删除指定用户的密码,但仍允许用户使用其他身份验证方法登录系统。  强制用户下次登录时更改密码: sudo passwd -e 用户名 这会将用户标记为需要强制更改密码。用户在下次登录时将被提示输入新密码。  

chage:用于更改用户账户的过期信息。

chage [选项] 用户名 常用选项: -l : 显示用户的当前密码和账户过期信息。 -M : 设置密码过期后的最大天数。 -m : 设置密码过期前的最小天数。 -E : 设置账户过期的绝对日期,格式为 YYYY-MM-DD。 -I : 设置账户过期后的不活动期限,单位为天数。 -d : 设置账户的上次修改密码的日期,格式为 YYYY-MM-DD。   显示用户的当前密码和账户过期信息: chage -l 用户名 这将显示用户的密码过期信息和账户过期信息,包括密码过期的最后修改日期和账户过期日期等。  设置密码过期后的最大天数(例如 90 天): sudo chage -M 90 用户名 这会将指定用户的密码过期后最大允许使用天数设置为 90 天。超过这个天数后,用户将被提示修改密码。  设置密码过期前的最小天数(例如 7 天): sudo chage -m 7 用户名 这会设置用户需要在密码过期前至少在 7 天内修改密码。这可以防止用户在密码过期当天才修改密码。  设置账户过期的绝对日期(例如 2026-01-01): sudo chage -E 2026-01-01 用户名 这将设置用户账户的过期日期为 2026 年 1 月 1 日,过期后用户将无法登录系统。  设置账户过期后的不活动期限(例如 30 天): sudo chage -I 30 用户名 如果用户在这段不活动期限内没有登录系统,账户将被视为过期。  设置账户的上次修改密码的日期(例如 2023-01-01): sudo chage -d 2023-01-01 用户名 这会设置用户账户的上次修改密码的日期为 2023 年 1 月 1 日,这对于某些安全策略和审计目的可能是有用的。 

groupadd:用于创建新的用户组。

groupadd [选项] 组名 常用选项: -g GID : 指定新用户组的数值标识符(GID)。默认情况下,系统会自动分配下一个可用的 GID。 -r : 创建一个系统用户组。系统用户组的 GID 通常较小且保留给系统服务使用。 -f : 强制创建用户组。如果组名已存在,使用此选项将强制创建。   创建一个名为 developers 的新用户组: sudo groupadd developers 这会在系统中创建一个名为 developers 的新用户组。默认情况下,groupadd 命令会自动分配一个未使用的 GID 给该组。  创建一个名为 sysadmin 的系统用户组,指定 GID 为 2001: sudo groupadd -r -g 2001 sysadmin 这会创建一个名为 sysadmin 的系统用户组,其 GID 为 2001。系统用户组通常用于服务账户或需要特殊权限的系统组件。  强制创建一个名为 developers 的用户组,即使它已经存在: sudo groupadd -f developers 这会强制创建一个名为 developers 的用户组。如果该组名已存在,则会先删除原有组,然后重新创建。 

groupdel:删除现有的用户组。

基本用法 groupdel 组名  删除一个名为 developers 的用户组: sudo groupdel developers 这会从系统中删除名为 developers 的用户组。如果该组还有成员,系统会提示确认是否删除。 

groupmod:用于修改 用户组的属性。

groupmod [选项] 组名 常用选项: -g GID : 修改用户组的数值标识符(GID)。 -n 新组名 : 修改用户组的名称。 -o : 允许使用非唯一的 GID。通常与 -g 选项一起使用,用于允许将 GID 设置为非唯一值。 -R : 为指定的用户组设置 GID 范围。  修改用户组 developers 的 GID 为 1500: sudo groupmod -g 1500 developers 这会将用户组 developers 的 GID 修改为 1500。GID 是用于系统内部标识用户组的数值。  将用户组 team 的名称修改为 team1: sudo groupmod -n team1 team 这会将用户组 team 的名称修改为 team1。修改名称可以使用户组更符合当前组织结构或命名约定。  将用户组 developers 的 GID 设置为一个非唯一值(与现有的其他组共享同一 GID): sudo groupmod -g 1500 -o developers 使用 -o 选项可以允许将 GID 设置为非唯一值,适用于特定需求下需要共享 GID 的情况。    修改用户组的 GID 可能会影响与该组相关联的文件和目录的访问权限。 

6. 系统命令

uname:用于显示当前操作系统的信息。

uname [选项] 常用选项: -a, --all : 显示所有信息。 -s, --kernel-name : 显示内核名称。 -n, --nodename : 显示网络节点主机名。 -r, --kernel-release : 显示内核版本。 -v, --kernel-version : 显示内核版本详细信息。 -m, --machine : 显示系统硬件架构。 -p, --processor : 显示处理器类型。 -i, --hardware-platform : 显示硬件平台。 -o, --operating-system : 显示操作系统类型。   显示操作系统名称: uname -s 输出可能是 Linux、Darwin(Mac OS X)、FreeBSD 等,取决于当前操作系统。  显示当前系统的内核版本: uname -r 输出如 5.4.0-77-generic,这是 Linux 内核的版本号。  显示系统硬件架构: uname -m 输出可能是 x86_64(64 位)、i686(32 位)等,指示当前系统的处理器架构。  显示所有信息: uname -a 这会显示包括内核名称、版本、处理器类型等所有详细信息。 

hostname:用于显示或设置当前系统的主机名。

hostname [选项] 常用选项: -a, --alias : 显示主机别名。 -d, --domain : 显示 DNS 域名。 -f, --fqdn, --long : 显示完全限定域名 (FQDN)。 -i, --ip-address : 显示主机的 IP 地址。 -s, --short : 显示短主机名(不包含域名部分)。   显示当前主机名: hostname 这会简单地输出当前系统的主机名。  显示完全限定域名 (FQDN): hostname -f 如果主机名是 myhost,而域名是 example.com,则输出可能是 myhost.example.com。  显示主机的 IP 地址: hostname -i 这会显示主机当前使用的 IP 地址。  显示主机的短名称: hostname -s 如果主机名是 myhost.example.com,则输出是 myhost。 

hostnamectl:用来查看和修改主机名。

hostnamectl [选项] [命令] 常用选项: status : 显示当前主机名和相关状态信息。 set-hostname NAME : 设置主机名为指定的 NAME。   显示当前主机名和状态信息: hostnamectl status 这会显示当前主机名、静态主机名、图标名、架构、操作系统、内核版本、虚拟化类型等信息。  设置主机名: sudo hostnamectl set-hostname newhostname 这会将主机名设置为 newhostname。注意,这个操作需要管理员权限。  设置静态主机名: 静态主机名是永久性的主机名,会存储在 /etc/hostname 文件中。使用以下命令设置静态主机名: sudo hostnamectl set-hostname --static newhostname 这会设置静态主机名为 newhostname,并更新 /etc/hostname 文件。  显示所有可用信息: hostnamectl 这会显示所有可用的主机信息,包括静态主机名、图标名、内核版本、架构、虚拟化类型等。   使用 hostnamectl 命令可以比较方便地管理主机名,特别是在使用 systemd 管理的 Linux 系统上。 修改主机名可能需要重启服务或重新登录才能生效,具体取决于系统配置。 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!