linux操作指令

基本目录结构

  • bin(binaries)存放二进制执行文件
  • sbin(super user binaries)存放二进制可执行文件,只有root才能访问
  • etc(etcetera)存放系统配置文件
  • usr(unix shared resources)用于存放共享的系统资源
  • home存放用户文件的根目录
  • root超级用户根目录
  • dev(devices)用于存放设备文件
  • lib(library)存放根文件系统中的程序运行所需要的共享库及内核模块
  • mnt(mount)系统管理员安装临时文件系统的安装点
  • boot 存放用于系统引导时使用的各种文件
  • tmp(temporary)用于存放各种临时文件
  • var(variable)用于存放运行时需要改变数据的文件

Linux最基础的命令

  • 可用 pwd命令查看用户的当前目录
  • 可用 cd 命令来切换目录
  • .表示当前目录
  • ..表示当前目录的上一级目录(父目录)
  • -表示用cd命令切换目录前所在的目录
  • ~表示用户主目录的绝对路径名

绝对路径:

以斜线(/)开头 ,描述到文件位置的完整说明 ,任何时候你想指定文件名的时候都可以使用

相对路径 :

不以斜线(/)开头 ,指定相对于你的当前工作目录而言的位置 ,可以被用作指定文件名的简捷方式

常见基础命令

ls

ls 是 Linux 系统中常用的命令之一,用于列出目录内容。它可以显示当前目录下的文件和子目录,以及它们的权限、所有者、大小等信息

语法:

ls [选项] [文件或目录]

常用选项:

  • -l:以长格式显示,包含更多文件信息,如权限、所有者、文件大小、修改日期等。
  • -a:显示所有文件,包括隐藏文件(以.开头的文件)。
  • -h:以人类可读的格式显示文件大小,例如 "1K"、"100M"。
  • -r:以相反顺序显示目录内容。
  • -t:按修改时间排序,最新的文件先显示。
  • -R:递归显示子目录中的文件。
  • -d:显示目录本身的信息,而不是其内容。

常用快捷方式:

  • ls:列出当前目录的内容。
  • ls -l:以长格式显示当前目录的内容。
  • ls -a:显示当前目录的所有文件,包括隐藏文件。
  • ls -lh:以长格式且以人类可读的格式显示当前目录的内容。
  • ls -lt:以长格式并按修改时间排序显示当前目录的内容,最新的文件先显示。
  • ls -R:递归显示当前目录及其子目录中的所有文件。

mkdir

mkdir 是 Linux 系统中常用的命令之一,用于创建新的目录。它允许用户在指定的路径下创建一个或多个新的目录。

语法:

mkdir [选项] 目录名

常用选项:

  • -p:递归地创建目录,包括需要的父目录。如果父目录不存在,则会创建父目录。
  • -m:设置新创建目录的权限模式。可以使用八进制数或符号表示法,类似于 chmod 命令。

常用快捷方式:

  • mkdir 目录名:在当前目录下创建一个新的目录。
  • mkdir -p 目录路径:递归地创建目录,包括需要的父目录。
  • mkdir -m 权限模式 目录名:创建一个新的目录,并设置指定的权限模式。

rmdir

rmdir 是 Linux 系统中的一个命令,用于删除空的目录。它只能删除空目录,如果目录中包含文件或其他子目录,则无法删除。

语法:

rmdir [选项] 目录名

常用选项:

  • -p:递归地删除目录,包括子目录和文件。如果目录非空,会一并删除其中的内容。

常用快捷方式:

  • rmdir 目录名:删除一个空目录。

touch

touch 是 Linux 系统中的一个命令,用于创建空文件或更新文件的访问和修改时间戳。它还可以用于修改文件的时间戳信息。
语法:

touch [选项] 文件名

常用选项:

  • -a:仅更新文件的访问时间戳。
  • -c:不创建新文件,如果文件不存在则不执行任何操作。
  • -m:仅更新文件的修改时间戳。
  • -d:使用指定的时间和日期设置文件的时间戳,格式为 YYYY-MM-DD HH:MM:SS

常用快捷方式:

  • touch 文件名:创建一个新的空文件,如果文件已存在,则更新文件的访问和修改时间戳。
  • touch -a 文件名:仅更新文件的访问时间戳。
  • touch -m 文件名:仅更新文件的修改时间戳。
  • touch -d "日期时间" 文件名:使用指定的时间和日期设置文件的时间戳。

cp

cp 是 Linux 系统中常用的命令之一,用于复制文件和目录。它可以将一个或多个源文件或目录复制到指定的目标位置。

语法:

cp [选项] 源文件 目标文件

常用选项:

  • -r:递归复制目录及其内容。
  • -i:交互式复制,提示是否覆盖已存在的目标文件。
  • -v:详细显示复制过程。
  • -p:保留源文件的属性,包括文件权限、所有者、时间戳等。
  • -f:强制复制,即覆盖已存在的目标文件而不提示。

常用快捷方式:

  • cp 源文件 目标文件:复制一个文件到指定的目标位置。
  • cp 源文件1 源文件2 目标目录:同时复制多个文件到指定的目标目录。
  • cp -r 源目录 目标目录:递归复制整个目录及其内容到指定的目标目录。

mv

mv 是 Linux 系统中常用的命令之一,用于移动文件和目录,或者对文件和目录进行重命名。它可以将一个或多个源文件或目录移动到指定的目标位置,也可以通过指定新的名称来对文件或目录进行重命名。
语法:

mv [选项] 源文件 目标文件

常用选项:

  • -i:交互式操作,移动文件或目录前进行确认提示。
  • -v:详细显示移动过程。
  • -u:只在源文件比目标文件新或目标文件不存在时才进行移动操作,用于更新目标文件。
  • -n:不覆盖已存在的目标文件,如果目标文件已存在,则不执行移动操作。

常用快捷方式:

  • mv 源文件 目标文件:将一个文件移动到指定的目标位置或重命名一个文件。
  • mv 源文件1 源文件2 目标目录:同时移动多个文件到指定的目标目录。
  • mv 源目录 目标目录:移动一个目录到指定的目标位置或重命名一个目录。

rm

rm 是 Linux 系统中常用的命令之一,用于删除文件和目录。它可以永久性地删除指定的文件和目录,无法恢复。

语法:

rm [选项] 文件或目录

常用选项:

  • -r:递归删除目录及其内容。
  • -f:强制删除,无需确认提示。
  • -i:交互式删除,删除前进行确认提示。
  • -v:详细显示删除过程。

常用快捷方式:

  • rm 文件:删除一个文件。
  • rm -r 目录:递归删除一个目录及其内容。
  • rm -f 文件或目录:强制删除一个文件或目录,无需确认提示。
  • rm -i 文件或目录:交互式删除一个文件或目录,删除前进行确认提示。
    :::tip
    需要注意的是,rm 命令执行删除操作时会直接删除文件或目录,无法恢复。因此在使用时要谨慎
    :::

wc

wc 是 Linux 系统中常用的命令之一,用于统计文件或标准输入的字节数、字数和行数。它可以用于文本文件、二进制文件或者通过管道传递的数据。

语法:

wc [选项] 文件

常用选项:

  • -c:统计文件的字节数。
  • -w:统计文件的字数(以空白字符分隔的单词数)。
  • -l:统计文件的行数。

常用快捷方式:

  • wc 文件:统计文件的字节数、字数和行数。
  • wc -c 文件:统计文件的字节数。
  • wc -w 文件:统计文件的字数。
  • wc -l 文件:统计文件的行数。
  • command | wc:通过管道将命令的输出传递给 wc 命令进行统计。

find

find 是 Linux 系统中功能强大的命令之一,用于在指定路径下查找符合条件的文件和目录。它支持根据文件名、文件类型、文件大小、文件权限等多种条件进行搜索。

语法:

find 路径 [选项] [表达式]

常用选项:

  • -name 模式:按照文件名匹配模式进行查找。
  • -type 类型:按照文件类型进行查找,例如 f 表示普通文件,d 表示目录。
  • -size [+|-]大小:按照文件大小进行查找,可以使用 + 表示大于,- 表示小于,单位为块(默认为字节)。
  • -mtime [+|-]天数:按照文件的修改时间进行查找,可以使用 + 表示大于,- 表示小于。
  • -user 用户名:按照文件所有者进行查找。
  • -exec 命令 {} \;:对搜索结果执行指定的命令。

常用快捷方式:

  • find 路径 -name "文件名":在指定路径下查找文件名匹配的文件。
  • find 路径 -type 类型:在指定路径下查找指定类型的文件。
  • find 路径 -size [+|-]大小:在指定路径下按照文件大小进行查找。
  • find 路径 -mtime [+|-]天数:在指定路径下按照文件修改时间进行查找。
  • find 路径 -user 用户名:在指定路径下按照文件所有者进行查找。
  • find 路径 -name "文件名" -exec 命令 {} \;:在指定路径下查找文件名匹配的文件,并对每个结果执行指定的命令。

file

file 命令用于确定文件的类型。它会读取文件的内容或文件头部信息,并根据特定的模式匹配来识别文件类型。
语法:

file [选项] 文件

常用选项:

  • -b:简化输出,只显示文件类型。
  • -i:显示 MIME 类型。

常用快捷方式:

  • file 文件:确定文件的类型并显示详细信息。

stat

stat 命令用于显示文件或文件系统的详细信息,包括文件的访问权限、所有者、大小、时间戳等。

语法:

stat [选项] 文件

常用选项:

  • 无常用选项。

常用快捷方式:

  • stat 文件:显示文件的详细信息。

cat

cat 命令是 Linux 系统中常用的命令之一,用于连接文件并将它们输出到标准输出设备(通常是终端)。它还可以用于创建新文件、显示文件内容以及文件合并等操作。

语法:

cat [选项] 文件

常用选项:

  • -n:显示行号,将每一行的行号与内容一同显示。
  • -b:显示非空行的行号,空行不进行编号。
  • -E:在每一行的末尾显示一个 $ 符号。
  • -T:将制表符显示为 ^I

常用快捷方式:

  • cat 文件:显示文件的内容。
  • cat 文件1 文件2 > 目标文件:将文件1和文件2的内容合并到目标文件中。
  • cat 文件 >> 目标文件:将文件的内容追加到目标文件的末尾。
  • cat > 文件:创建新文件,并从键盘输入内容保存到文件中(按 Ctrl + D 结束输入)。
  • cat 文件1 文件2 | command:将文件1和文件2的内容通过管道传递给另一个命令进行处理。

more

more 命令是 Linux 系统中常用的分页显示命令,用于按页显示文件的内容。它允许用户逐页浏览文件内容,便于查看大型文件或长文本文件。
语法:

more [选项] 文件

常用选项:

  • 无常用选项。

常用快捷方式:

  • more 文件:按页显示文件内容。使用空格键进行下一页,按 q 键退出。
  • cat 文件 | more:通过管道将文件的内容传递给 more 命令进行分页显示。

tail

tail 命令是 Linux 系统中常用的命令之一,用于显示文件的末尾内容。它可以实时监视文件的更新,并将新添加的内容输出到标准输出设备(通常是终端)。

语法:

tail [选项] 文件

常用选项:

  • -n 行数:显示指定行数的末尾内容,默认为显示最后 10 行。
  • -f:实时监视文件的更新,输出新添加的内容,并持续刷新。

常用快捷方式:

  • tail 文件:显示文件的末尾内容,默认显示最后 10 行。
  • tail -n 行数 文件:显示指定行数的末尾内容。
  • tail -f 文件:实时监视文件的更新,输出新添加的内容,并持续刷新。

head 命令是 Linux 系统中常用的命令之一,用于显示文件的开头内容。它可以显示文件的前几行内容,默认显示前 10 行。

语法:

head [选项] 文件

常用选项:

  • -n 行数:显示指定行数的开头内容,默认为显示前 10 行。

常用快捷方式:

  • head 文件:显示文件的开头内容,默认显示前 10 行。
  • head -n 行数 文件:显示指定行数的开头内容。

less

less是一个常用的Linux命令,用于查看文本文件内容。它相比于more命令更加强大,支持向前和向后浏览文件内容,并且可以在文件中进行搜索。

语法:

less [选项] [文件名]

常用选项:

  • -N:显示行号。
  • -i:搜索时忽略大小写。
  • -F:自动退出,当浏览的文件长度小于屏幕大小时。
  • -S:折行显示长行,而不是水平滚动显示。
  • -q:禁止显示警告信息。

常见快捷指令

  • 空格键:向下滚动一屏。
  • Enter 键:向下滚动一行。
  • b 键:向上滚动一屏。
  • y 键:向上滚动一行。
  • d 键:向下滚动半屏。
  • u 键:向上滚动半屏。
  • F 键:连续滚动文件内容,类似于 tail -f 的功能。
  • G 键:跳转到文件末尾。
  • g 键:跳转到文件开头。
  • /pattern:向后搜索指定的模式,使用 n 键切换到下一个匹配项。
  • ?pattern:向前搜索指定的模式,使用 n 键切换到上一个匹配项。
  • n 键:在搜索模式下定位到下一个匹配项。
  • N 键:在搜索模式下定位到上一个匹配项。
  • &pattern:仅显示匹配指定模式的行。
  • m 键:标记当前位置(可用于后续返回)。
  • ' 键:返回上次标记的位置。
  • :n 或 :p:跳转到下一个文件或前一个文件。
  • q 键:退出less查看器。

|

在 Linux 中,管道符 | 用于将一个命令的输出作为另一个命令的输入,从而实现多个命令之间的数据传递和处理。它可以将前一个命令的输出直接传递给后一个命令进行处理,提高了命令行的灵活性和功能扩展性。

语法:

命令1 | 命令2

常用快捷方式:

  • 命令1 | 命令2:将命令1的输出作为命令2的输入。

通过管道命令 | 可以将一个命令的输出直接传递给另一个命令进行处理。这样可以实现复杂的数据处理和操作。常见的应用场景包括:

  • 使用 grep 过滤命令的输出,例如 ps aux | grep nginx 可以查找包含 "nginx" 的进程。
  • 使用 awksed 对命令的输出进行文本处理和转换。
  • 使用 sort 对命令的输出进行排序,例如 ls -l | sort -n 可以按照文件大小进行排序。
  • 使用 wc 统计命令的输出信息,例如 ls -l | wc -l 可以统计目录下文件的数量。

echo

echo 命令是 Linux 系统中常用的命令之一,用于在终端输出文本或变量的内容。它可以打印指定的文本或变量到标准输出设备(通常是终端)。

语法:

echo [选项] [文本或变量]

常用选项:

  • -e:启用转义字符的解析。

常用快捷方式:

  • echo 文本:在终端输出指定的文本。
  • echo $变量名:在终端输出指定变量的值。

echo 命令主要用于在终端输出文本信息或变量的值。你可以直接在命令行中指定要输出的文本,也可以使用 $ 符号引用变量,并在输出时显示变量的值。

快捷方式的使用示例:

  • echo "Hello, World!":在终端输出 "Hello, World!"。
  • echo $HOME:在终端输出 $HOME 变量的值,即当前用户的主目录路径。
  • echo -e "Line1\nLine2":在终端输出两行文本,\n 表示换行符,-e 选项启用了转义字符的解析。

chmod

chmod命令用于修改文件或目录的访问权限。它是"change mode"的缩写,允许用户设置文件的读取、写入和执行权限。以下是chmod命令的语法:

chmod [选项] 模式 文件名
  • 选项:`

    • -R--recursive:递归地修改目录及其子目录下的文件权限。
    • -v--verbose:显示详细的输出信息。
    • -c--changes:仅在修改了文件权限时显示提示信息。
    • -f--silent:不显示错误信息。
    • -help:显示帮助信息。
  • 模式:模式定义了要应用于文件权限的更改。它可以使用以下几种形式:

    • 符号模式:符号模式使用u(所有者)、g(所属组)、o(其他用户)和a(所有用户)以及+(添加权限)、-(移除权限)和=(设置权限)来指定权限更改。例如,u+r表示给文件的所有者添加读取权限,g-w表示从所属组中移除写入权限,o=x表示将其他用户的执行权限设置为与所属组相同。
    • 数字模式:数字模式使用三位数的八进制表示来指定权限。每一位表示一组权限(所有者、所属组和其他用户),可以通过将可读(4)、可写(2)和可执行(1)的值相加来设置相应的权限。例如,chmod 755 file.txt将文件file.txt的权限设置为所有者可读、写和执行,所属组和其他用户只可读和执行。
    • 组合模式:可以将多个符号模式和数字模式组合在一起,以同时设置多个权限。例如,chmod u+r,g+w file.txt将给文件的所有者添加读取权限,并给所属组添加写入权限。
  • 文件名:要应用权限更改的文件或目录的名称。

常用的快捷方式包括:

  • chmod +x file:给文件添加执行权限。
  • chmod u+x file:给文件的所有者添加执行权限。
  • chmod o-rwx file:从其他用户中移除读取、写入和执行权限。
  • chmod a=r file:将文件的所有用户的权限设置为只读。
  • chmod -R u+w directory:递归地给目录及其子目录下的所有文件添加写入权限。

chown

chown命令用于更改文件或目录的所有者和/或所属组。

语法:

chown [选项] 新所有者[:新所属组] 文件/目录

选项:

  • -c:仅在发生更改时显示详细信息。
  • -R:递归地更改指定目录及其下所有文件和子目录的所有者。
  • -v:显示详细信息,包括未更改的文件。
  • --from=旧所有者[:旧所属组]:仅更改匹配指定旧所有者和/或所属组的文件。
  • --reference=参考文件/目录:根据参考文件/目录的所有者和所属组更改指定文件/目录的权限。

快捷方式的使用示例:

    1. 更改文件的所有者和所属组:chown 新所有者:新所属组 文件名
    1. 仅更改文件的所有者: chown 新所有者 文件名
    1. 递归地更改目录及其下所有文件和子目录的所有者:chown -R 新所有者:新所属组 目录名
    1. 仅更改文件夹的所有者: chown 新所有者 目录名
    1. 仅更改文件的所属组:chown :新所属组 文件名
    1. 使用-c选项以显示更改的详细信息:chown -c 新所有者:新所属组 文件名
    1. 使用-v选项以显示详细信息,包括未更改的文件:chown -v 新所有者:新所属组 文件名
    1. 根据参考文件/目录的权限更改文件/目录的权限: chown --reference=参考文件/目录 文件/目录

ssh

ssh命令用于远程登录到其他计算机,以及在网络上安全传输数据。

语法:

ssh [选项] [用户名]@[主机]
  • 用户名:要登录到远程主机的用户名(可选)。
  • 主机:远程主机的IP地址或域名。

选项:

  • -p 端口:指定SSH服务器的端口号。
  • -i 私钥文件:指定用于身份验证的私钥文件。
  • -l 用户名:指定登录到远程主机的用户名。
  • -X:启用X11转发,允许在SSH会话中运行图形应用程序。
  • -C:启用压缩以加速数据传输。
  • -v:增加详细级别的输出,用于故障排除。

快捷方式的使用示例:

    1. 基本SSH登录:ssh 用户名@主机
    1. 使用非默认端口登录:ssh -p 端口号 用户名@主机
    1. 使用密钥文件进行身份验证:ssh -i 私钥文件 用户名@主机
    1. 通过用户名和IP地址登录:ssh 用户名@IP地址
    1. 启用X11转发以运行图形应用程序:ssh -X 用户名@主机
    1. 启用数据传输压缩:ssh -C 用户名@主机
    1. 使用-v选项以获取详细信息:ssh -v 用户名@主机

用户、组

useradd

useradd 是 Linux 中用于创建新用户的命令。这个命令可以通过指定多种选项来设置用户的属性,如用户的家目录、登录shell、用户组等。

语法

useradd [选项] 用户名

选项

  • -b, --base-dir BASE_DIR:指定新用户主目录的基本路径。如果没有指定主目录,默认在 /home 中创建。
  • -c, --comment COMMENT:提供用户账户的注释信息,一般是用户的全名。
  • -d, --home-dir HOME_DIR:指定用户的主目录路径。
  • -D, --defaults:显示或更改默认值。
  • -e, --expiredate EXPIRE_DATE:指定账户过期日期,格式为YYYY-MM-DD。
  • -f, --inactive INACTIVE:指定在密码过期后多少天禁用账户。
  • -g, --gid GROUP:指定初始登录组(使用组名或GID)。
  • -G, --groups GROUP1[,GROUP2,...]:指定用户的附加组列表。
  • -k, --skel SKEL_DIR:指定使用哪个模板目录创建用户的主目录。
  • -K, --key KEY=VALUE:覆盖 /etc/login.defs 文件中的默认值。
  • -m, --create-home:如果用户的主目录不存在,则创建主目录。
  • -M:不要创建用户的主目录。
  • -N, --no-user-group:不要创建同名用户组。
  • -p, --password PASSWORD:指定用户的加密密码。
  • -r, --system:创建一个系统账户。
  • -s, --shell SHELL:指定用户的登录shell。
  • -u, --uid UID:指定用户的用户ID。
  • -U, --user-group:创建一个同名的用户组(默认选项)。

常用快捷方式

### 创建用户并指定注释
useradd -c "John Doe" johndoe

### 创建用户并指定主目录
useradd -d /custom/home/johndoe johndoe

### 创建用户并指定登录shell
useradd -s /bin/zsh johndoe

### 创建用户并同时创建主目录
useradd -m johndoe

### 创建用户并添加到附加组
useradd -G developers johndoe

### 创建系统账户
useradd -r systemuser

### 创建用户并指定过期日期
useradd -e 2024-12-31 johndoe


假设我们要创建一个名为 alice 的用户,指定其主目录为 /home/alice,登录shell为 /bin/bash,并添加到 admin 组中,可以使用以下命令:
useradd -m -d /home/alice -s /bin/bash -G admin alice

passwd

passwd 是 Linux 中用于更改用户密码的命令。它可以为当前用户、更改其他用户的密码,或者更新密码有效期等信息。

语法

passwd [选项] [用户名]

常用选项

  • -d, --delete:删除用户的密码,使用户无法通过密码登录。
  • -e, --expire:立即使密码过期,需要用户在下次登录时更改密码。
  • -i, --inactive INACTIVE:指定密码过期后多少天禁用账户。
  • -k, --keep-tokens:只更改过期的身份验证令牌(保持其他令牌不变)。
  • -l, --lock:锁定用户密码,禁止用户通过密码登录。
  • -n, --mindays MIN_DAYS:设置两次更改密码之间的最小天数。
  • -q, --quiet:安静模式,不输出消息。
  • -r, --repository REPOSITORY:更改指定存储库中的密码。
  • -S, --status:显示账户密码状态。
  • -u, --unlock:解锁用户密码,允许用户通过密码登录。
  • -w, --warndays WARN_DAYS:在密码过期前多少天警告用户。
  • -x, --maxdays MAX_DAYS:设置密码有效期的最大天数。
    常用快捷方式
### 更改当前用户密码
passwd

### 更改指定用户密码(需要超级用户权限)
sudo passwd 用户名

### 立即使密码过期,强制用户在下次登录时更改密码
sudo passwd -e 用户名

### 设置密码过期前警告天数
sudo passwd -w 7 用户名

### 锁定用户密码
sudo passwd -l 用户名

### 解锁用户密码
sudo passwd -u 用户名

### 设置密码有效期的最大天数
sudo passwd -x 90 用户名

### 显示用户密码状态
sudo passwd -S 用户名

假设我们要为用户 alice 设置密码过期前警告天数为 7 天,并使其密码有效期最大天数为 90 天,可以使用以下命令:
sudo passwd -w 7 alice
sudo passwd -x 90 alice

如果我们想立即使用户 bob 的密码过期,从而强制他在下次登录时更改密码,可以使用:
sudo passwd -e bob

要锁定用户 charlie 的密码,禁止其通过密码登录,可以使用:
sudo passwd -l charlie

who

who 是 Linux 中用于显示当前登录用户信息的命令。它提供关于谁当前登录到系统的信息,包括用户名、登录时间和登录终端。

语法

who [选项]

常用选项

  • -a, --all:显示所有信息。
  • -b, --boot:显示系统上次启动的时间。
  • -d, --dead:显示系统的死进程。
  • -H, --heading:显示列标题。
  • -l, --login:显示当前的登录进程。
  • -m:显示当前终端的登录用户名。
  • -p, --process:显示活动进程。
  • -q, --count:只显示登录用户的数量和名称。
  • -r, --runlevel:显示当前运行级别。
  • -s, --short:显示简短格式(默认选项)。
  • -t, --time:显示最后的系统时钟变更时间。
  • -T, -w, --mesg:显示用户状态信息。
  • -u, --users:显示当前登录用户的详细信息,包括用户的登录时间、终端等。
    常用快捷方式
### 显示当前登录用户的信息
who

### 显示列标题
who -H

### 显示所有信息
who -a

### 显示当前登录用户的数量和名称
who -q

### 显示当前运行级别
who -r

### 显示系统上次启动的时间
who -b

假设我们要显示所有当前登录用户的详细信息,可以使用以下命令:
who -u

如果我们只想知道当前系统上登录用户的数量,可以使用:
who -q

要显示系统上次启动的时间,可以使用:
who -b

如果想查看当前运行级别,可以使用:
who -r

userdel

userdel 命令用于删除系统中的用户账户。

语法

userdel [选项] 用户名

常用选项

  • -f, --force:强制删除用户,即使用户当前正在登录。
  • -r, --remove:删除用户的主目录和邮件目录。

示例

删除用户 alice 及其主目录:
sudo userdel -r alice

usermod

usermod 命令用于修改用户账户的属性。

语法

usermod [选项] 用户名

常用选项

  • -a, --append:将用户添加到附加组(与 -G 一起使用)。
  • -c, --comment COMMENT:修改用户账户的注释信息。
  • -d, --home HOME_DIR:修改用户的主目录。
  • -e, --expiredate EXPIRE_DATE:设置账户过期日期。
  • -g, --gid GROUP:修改用户的初始登录组。
  • -G, --groups GROUPS:设置用户的附加组列表。
  • -l, --login NEW_LOGIN:修改用户名。
  • -s, --shell SHELL:修改用户的登录shell。
  • -L, --lock:锁定用户账户。
  • -U, --unlock:解锁用户账户。

示例

将用户 alice 添加到 admin 组:
sudo usermod -aG admin alice

修改用户 bob 的主目录为 /home/newbob:
sudo usermod -d /home/newbob bob

groupadd

groupadd 命令用于创建新的用户组。

语法

groupadd [选项] 组名

常用选项

  • -f, --force:即使组已存在也不会报错。
  • -g, --gid GID:指定新组的GID。
  • -o, --non-unique:允许创建GID重复的组。

示例

创建一个名为 developers 的新组:
sudo groupadd developers

创建一个 GID 为 1001 的新组 project:
sudo groupadd -g 1001 project

groupdel

groupdel 命令用于删除系统中的用户组。

语法

groupdel 组名

示例

删除组 developers:
sudo groupdel developers

groupmod

groupmod 命令用于修改用户组的属性。

语法

groupmod [选项] 组名

常用选项

  • -g, --gid GID:更改组的GID。
  • -n, --new-name NEW_GROUP:更改组名。

示例

将组 project 的 GID 改为 1002:
sudo groupmod -g 1002 project

将组名 developers 改为 devteam:
sudo groupmod -n devteam developers

newgrp

newgrp 命令用于切换当前会话到一个新的用户组。

语法

newgrp 组名

示例

切换当前会话到 admin 组:
newgrp admin

压缩/解压

tar

tar 命令在 Linux 中用于创建和提取归档文件(通常称为 tar 文件)。它可以将一组文件和目录打包成单个文件,并可以选择性地进行压缩。

语法:

tar [选项] <文件名>

常用参数:

  • -c:创建归档文件。
  • -x:提取归档文件。
  • -f <文件名>:指定归档文件的名称。
  • -z:使用 gzip 压缩算法进行压缩(通常与 -c 结合使用)。
  • -j:使用 bzip2 压缩算法进行压缩(通常与 -c 结合使用)。
  • -v:显示详细的操作信息。
  • -t:列出归档文件中包含的文件列表。

常用快捷方式:

  • 创建 tar 文件并进行 gzip 压缩:
tar -czvf <目标文件名.tar.gz> <源文件或目录>

<目标文件名.tar.gz> 替换为要创建的目标文件名,<源文件或目录> 替换为要打包的源文件或目录。这将创建一个压缩的 tar 文件。

  • 提取 tar 文件:
tar -xzvf <归档文件.tar.gz>

<归档文件.tar.gz> 替换为要提取的归档文件名。这将解压缩并提取 tar 文件中的内容。

  • 查看 tar 文件的内容列表:
tar -tzvf <归档文件.tar.gz>

<归档文件.tar.gz> 替换为要查看的归档文件名。这将显示归档文件中包含的文件列表。

zip/unzip

zipunzip 是在 Linux 中用于创建和提取 ZIP 归档文件的命令。ZIP 是一种常见的压缩格式,它可以将多个文件和目录打包成一个单独的归档文件,并进行压缩以减小文件大小。

zip 命令语法:

zip [选项] <目标文件名.zip> <源文件或目录>

unzip 命令语法:

unzip [选项] <归档文件.zip>

常用参数:

  • -r:递归地包含子目录。
  • -q:静默模式,不显示详细输出信息。
  • -d <目标目录>:指定要提取文件的目标目录。
  • -l:列出归档文件中的文件列表。

常用快捷方式:

  • 创建 zip 文件:
zip -r <目标文件名.zip> <源文件或目录>

<目标文件名.zip> 替换为要创建的目标文件名,<源文件或目录> 替换为要打包的源文件或目录。这将创建一个压缩的 ZIP 归档文件。

  • 提取 zip 文件:
unzip <归档文件.zip>

<归档文件.zip> 替换为要提取的归档文件名。这将解压缩并提取 ZIP 归档文件中的内容到当前目录。

  • 提取 zip 文件到指定目录:
unzip <归档文件.zip> -d <目标目录>

<归档文件.zip> 替换为要提取的归档文件名,<目标目录> 替换为要提取文件的目标目录。这将解压缩并将文件提取到指定的目录。

  • 查看 zip 文件的内容列表:
unzip -l <归档文件.zip>

<归档文件.zip> 替换为要查看的归档文件名。这将列出 ZIP 归档文件中包含的文件列表。

zip 命令用于创建 ZIP 归档文件,而 unzip 命令用于提取 ZIP 归档文件。你可以根据需要选择适当的参数来执行不同的操作,如创建压缩的 ZIP 归档文件、提取 ZIP 归档文件中的内容或查看归档文件的内容列表。

gzip/gunzip

gzip 和 gunzip 是 Linux 系统中常用的压缩和解压缩工具。gzip 用于压缩文件,而 gunzip 用于解压缩 .gz 文件。

gzip 语法

gzip [选项] 文件...

常用选项

  • -c, --stdout, --to-stdout:将输出发送到标准输出,而不是更改文件。
  • -d, --decompress, --uncompress:解压缩文件。
  • -k, --keep:压缩后保留原文件。
  • -l, --list:显示压缩文件的信息。
  • -r, --recursive:递归地压缩目录中的文件。
  • -t, --test:测试压缩文件的完整性。
  • -v, --verbose:显示详细信息。
  • -1 到 -9:设置压缩级别,-1 为最快(最小压缩),-9 为最慢(最大压缩)。默认是 -6。
    示例
### 压缩 file.txt
gzip file.txt 

### 压缩 file.txt,但保留原文件
gzip -k file.txt 

### 递归压缩目录 mydir 中的所有文件
gzip -r mydir/  

### 显示压缩文件的信息
gzip -l file.txt.gz  

### 以最大压缩级别压缩 file.txt
gzip -9 file.txt  

gunzip 语法

gunzip [选项] 文件...

常用选项

  • -c, --stdout, --to-stdout:将输出发送到标准输出,而不是更改文件。
  • -k, --keep:解压缩后保留原文件。
  • -l, --list:显示压缩文件的信息。
  • -r, --recursive:递归地解压缩目录中的文件。
  • -t, --test:测试压缩文件的完整性。
  • -v, --verbose:显示详细信息。
    示例
### 压缩文件并删除原文件:
gzip file.txt

### 压缩文件但保留原文件:
gzip -k file.txt

### 解压缩文件并删除压缩文件:
gunzip file.txt.gz

### 解压缩文件但保留压缩文件:
gunzip -k file.txt.gz

编辑器

vim

vim 是一款强大的文本编辑器,在 Linux 中被广泛使用。它具有丰富的功能和高度可定制性,适合各种文本编辑任务。

语法:

vim [选项] <文件名>

常用参数:

  • -c <命令>:在打开文件后执行指定的 Vim 命令。
  • -n:以只读模式打开文件。
  • -R:以只读模式打开文件,并禁止修改。
  • -u <vimrc文件>:使用指定的 vimrc 文件。
  • -s <脚本文件>:执行指定的脚本文件。
  • -E:以 Ex 模式打开文件。

常用快捷方式:

  • i:进入插入模式,在光标位置插入文本。
  • Esc:退出插入模式,回到命令模式。
  • :w:保存文件。
  • :q:退出 Vim。
  • :wq:保存文件并退出 Vim。
  • :q!:强制退出 Vim,放弃对文件的修改。
  • :x:wq:保存文件并退出 Vim。
  • :set nu:显示行号。
  • :set nonu:隐藏行号。
  • /:进入搜索模式,输入关键字进行搜索。
  • n:在搜索模式下,跳转到下一个匹配项。
  • N:在搜索模式下,跳转到上一个匹配项。
  • dd:删除当前行。
  • yy:复制当前行。
  • p:粘贴剪切板内容。

vim 是一个高度可定制的文本编辑器,支持大量的参数和快捷方式。你可以使用 vim 命令打开一个文件进行编辑,并使用参数来调整编辑器的行为

nano

nano 是一款简单易用的命令行文本编辑器,在 Linux 中被广泛使用。它提供了基本的文本编辑功能,并具有简单的用户界面。

语法:

nano [选项] <文件名>

常用参数:

  • -l:显示行号。
  • -w:禁用自动换行。
  • -S <备份后缀>:使用指定的后缀为文件创建备份副本。
  • -r <恢复文件>:从指定的恢复文件中恢复上次编辑的内容。
  • -x:以只读方式打开文件。
  • -v:显示版本信息。

常用快捷方式:

  • Ctrl + O:保存文件。
  • Ctrl + X:退出编辑器。
  • Ctrl + G:显示帮助文档。
  • Ctrl + W:查找关键字。
  • Ctrl + K:剪切当前行。
  • Ctrl + U:粘贴剪切的内容。
  • Ctrl + Y:向后滚动一页。
  • Ctrl + V:向前滚动一页。

nano 命令提供了简单的文本编辑功能,并且具有一些常用的参数和快捷方式。你可以使用 nano 命令打开一个文件进行编辑,并使用参数来调整编辑器的行为。

操作程序

Redis

在 Linux 中,你可以通过命令行使用 redis-cli 命令来操作 Redis 数据库。redis-cli 是 Redis 提供的一个命令行客户端,可以执行各种 Redis 命令来管理和操作 Redis 数据库。

语法:

redis-cli [选项] [命令]

常用参数:

  • -h <主机>:指定连接的 Redis 主机地址。
  • -p <端口>:指定连接的 Redis 端口。
  • -a <密码>:指定连接的 Redis 密码。
  • -n <数据库编号>:指定操作的 Redis 数据库编号。

常用命令:

  • GET <键>:获取指定键的值。
  • SET <键> <值>:设置指定键的值。
  • DEL <键>:删除指定键及其对应的值。
  • KEYS <模式>:根据给定的模式查找匹配的键。
  • INFO:获取 Redis 服务器的信息。
  • SELECT <数据库编号>:切换到指定编号的数据库。
  • DBSIZE:切换到指定编号的数据库。
  • FLUSHDB:清空当前数据库的所有数据。
  • FLUSHALL:清空所有数据库的数据。

常用快捷方式:

  • Tab 键:自动补全命令或键的名称。
  • Ctrl + C:终止当前的命令执行。
  • Ctrl + D:退出 redis-cli 客户端。