Linux 基础命令
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
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" 的进程。 - 使用
awk
或sed
对命令的输出进行文本处理和转换。 - 使用
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=参考文件/目录
:根据参考文件/目录的所有者和所属组更改指定文件/目录的权限。
快捷方式的使用示例:
-
- 更改文件的所有者和所属组:
chown 新所有者:新所属组 文件名
- 更改文件的所有者和所属组:
-
- 仅更改文件的所有者:
chown 新所有者 文件名
- 仅更改文件的所有者:
-
- 递归地更改目录及其下所有文件和子目录的所有者:
chown -R 新所有者:新所属组 目录名
- 递归地更改目录及其下所有文件和子目录的所有者:
-
- 仅更改文件夹的所有者:
chown 新所有者 目录名
- 仅更改文件夹的所有者:
-
- 仅更改文件的所属组:
chown :新所属组 文件名
- 仅更改文件的所属组:
-
- 使用
-c
选项以显示更改的详细信息:chown -c 新所有者:新所属组 文件名
- 使用
-
- 使用
-v
选项以显示详细信息,包括未更改的文件:chown -v 新所有者:新所属组 文件名
- 使用
-
- 根据参考文件/目录的权限更改文件/目录的权限:
chown --reference=参考文件/目录 文件/目录
- 根据参考文件/目录的权限更改文件/目录的权限:
ssh
ssh
命令用于远程登录到其他计算机,以及在网络上安全传输数据。
语法:
ssh [选项] [用户名]@[主机]
用户名
:要登录到远程主机的用户名(可选)。主机
:远程主机的IP地址或域名。
选项:
-p 端口
:指定SSH服务器的端口号。-i 私钥文件
:指定用于身份验证的私钥文件。-l 用户名
:指定登录到远程主机的用户名。-X
:启用X11转发,允许在SSH会话中运行图形应用程序。-C
:启用压缩以加速数据传输。-v
:增加详细级别的输出,用于故障排除。
快捷方式的使用示例:
-
- 基本SSH登录:
ssh 用户名@主机
- 基本SSH登录:
-
- 使用非默认端口登录:
ssh -p 端口号 用户名@主机
- 使用非默认端口登录:
-
- 使用密钥文件进行身份验证:
ssh -i 私钥文件 用户名@主机
- 使用密钥文件进行身份验证:
-
- 通过用户名和IP地址登录:
ssh 用户名@IP地址
- 通过用户名和IP地址登录:
-
- 启用X11转发以运行图形应用程序:
ssh -X 用户名@主机
- 启用X11转发以运行图形应用程序:
-
- 启用数据传输压缩:
ssh -C 用户名@主机
- 启用数据传输压缩:
-
- 使用-v选项以获取详细信息:
ssh -v 用户名@主机
- 使用-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
zip
和 unzip
是在 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
客户端。
- 感谢你赐予我前进的力量