Linux Shell 基础命令速查表(非完整版)
观前须知
此文章将以表格的形式呈现,若需要更为直观的 Linux 命令,请直接查看 Linux 教程 | 菜鸟教程 (runoob.com)
表格注释: 💡 = 提示,❗ = 注意(需要安装的软件包)
终端与用户
| 名称 | 用法 / 选项(简略) | 注释 |
|---|---|---|
| 用户名 | whoami |
显示当前登录的用户 |
| 正在登录的用户 | 1. who2. w |
1. 查看当前正在登录的用户 2. 详细查看当前登录的用户 |
| 上次登录 | last |
查看上次当前用户的详细信息 |
| 主机名 | 1. hostname2. hostname -s |
1. 显示完整的主机名 2. 显示简单的主机名 |
| 关于主机 | 1. hostnamectl2. hostnamectl set-hostname <hostname> |
1. 显示当前主机信息 2. 设置主机名 ❗:普通用户下需提权 |
| 提升权限(管理员权限) | sudo <command> |
以管理员身份执行命令 ❗:在该用户为管理员的前提下才可用 |
| 切换其它用户 | 1. su <用户名>2. su3. sudo su4. sudo su - |
1. 切换指定用户 2. 切换至 root 用户 3. 当不知道 root 用户密码的情况下,使用管理员权限切换至 root 用户 4. 使用管理员权限切换至 root 用户并切换 Shell 环境 💡:若需查看当前使用的 Shell 环境, 执行: echo $SHELL |
| 输出内容 | 1. echo Hello world2. echo "Hello world"3. echo -n "Hello world"4. echo -e "Hello\nworld" |
1. 直接输出 Hello world 2. 与上一条一致,但看起来更直观 3. 输出不换行 4. 输出时解释反转义符(如: \n 表示换行) |
| 命令变量 | 1. alias2. alias n='command'3. unalias n |
1. 显示所有已被定义的变量 2. 定义一个新变量 n,以代替某个指令 3. 删除新变量 n |
| 指令搜索 | which <command> |
搜索指定指令所在的路径 |
| 指令搜索 | whereis <keyword> |
搜索二进制文件、帮助文件等 |
| 帮助手册 | 1. man <command>2. man -k <keyword>3. man -K <keyword> |
1. 查看关于<command>的帮助2. 搜索帮助 3. 全局搜索帮助 |
| 指令历史记录 | 1. history2. history n3. history -c4. history -d n |
1. 查看最近的历史记录 2. 显示最近 n 条记录 3. 清除所有记录 4. 删除第 n 条记录 |
| 快速执行命令 | 1. !!2. !n3. !keyword |
1. 执行上一条指令 2. 执行第 n 条指令 3. 执行上一条包含 keyword 的指令💡:使用Ctrl+R 可直接进行指令回溯 |
| 更改用户密码 | 1. passwd <user_name>2. passwd |
1. 修改指定用户密码 2. 修改当前用户密码 |
| 启动桌面环境 | startx |
启动 X.org 桌面环境(GNOME 桌面环境) |
| 清屏 | clear |
快捷键:Ctrl+L |
| 注销用户 | logout |
快捷键:Ctrl+D |
| 注销或退出终端 | exit |
❗:在装有桌面环境的主机下执行,只会关闭终端窗口;使用远程连接时,则会直接断开连接 |
目录与文件管理
| 名称 | 用法 / 选项(简略) | 注释 |
|---|---|---|
| 查看当前路径 | pwd |
查看当前的工作路径 |
| 切换工作路径 | 1. cd <DIR>2. cd3. cd - |
1. 指定一个目录 2. 切换至主目录(家目录) 3. 回到之前访问过的目录 |
| 查看路径下的内容 | 1. ls 2. ls <DIR1> [DIR2] ...3. ls -l / ll4. ls -h5. ls -a6. ls -R7. ls -d8. ls -Z9. ls -1 |
1. 查看当前路径下的内容 2. 查看指定单个或多个路径下的内容 3. 以详细列表形式显示文件内容 4. 显示能看得懂的文件大小 5. 显示所有内容(包含隐藏目录或文件) 6. 完整显示目录下的所有文件(递归查看) 7. 将目录像其它文件一样列出,而不是列出它们的内容 8. 显示对应的 SELinux 标签 9. 显示一行一个文件或目录 |
| 新建目录 | 1. mkdir <dir1> [dir2]...2. -p |
1. 新建单个或多个空目录 2. 递归新建单个或多个空目录 |
| 删除空目录 | 1. rmdir <dir1> [dir2]...2. -p |
1. 删除指定的空目录 2. 删除父目录及内部的所有空目录 |
| 新建文件 | touch <file1> [file2]... |
新建一个或多个空白的文件 |
| 复制文件目录 | 1. cp <file1> <file2/dir>2. -r3. -p4. -v5. -a |
1. 将文件复制到目标路径 2. 递归复制(复制目录) 3. 复制时再复制权限 4. 显示复制过程 5. 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。 |
| 删除文件目录 | 1. rm <file1> [file2]...2. -r / -R3. -f4. -rf |
1. 删除单个或多个目录或文件,可能需确认 2. 递归删除**(包括目录) 3. 强制性删除,跳过确认 4. 强制性递归删除该目录或文件(❗ 谨慎操作)** |
| 移动 / 重命名文件目录 | 1. mv file1 /doc2. mv a.file b.txt |
1. 将当前目录下的 file1 文件移动到 /doc 目录下2. 将当前目录下的 a.file 文件重命名为 b.txt |
| 文件类型 | file <file1> [file2]... |
查看单个或多个文件类型 |
| 文件属性 | stat <file1> [file2] |
查看单个或多个文件的详细属性 |
| 链接(快捷方式) | 1. ln <file> <link>2. ln -s <file> <link> |
1. 创建一个硬链接 ❗:删除源文件后仍可用,但不能在目录上创建) 2. 创建一个软链接 ❗:删除源文件后不可用 |
| 以树目录显示内容 | tree <dir> |
❗:其它 Linux 发行版需下载安装 tree 软件包即可 |
文件操作编辑
| 名称 | 用法 / 选项(简略) | 注释 |
|---|---|---|
| 显示/编辑文件内容 | 1. cat <file1> [file2]...2. cat -n <file>2. cat > <file>3. cat >> <file> |
1. 显示完整的文件内容 2. 带行号显示文件里的内容 3. 以行编辑模式下编辑文件并将其覆盖写入到文件中 4. 以行编辑模式下编辑文件并将其追加写入到文件中 |
| 显示头部文件内容 | 1. head <file1> [file2]...2. head -n x <file1> [file2]... |
1. 默认查看前 10 行 2. 查看前 x 行 |
| 显示尾部文件内容 | 1. tail <file1> [file2]...2. tail -n x <file1> [file2]...3. tail -f <file1> [file2]... |
1. 默认查看尾 10 行 2. 查看尾 x 行 3. 监视文件的内容(常用于查看日志) |
| 翻页信息 | 1. <command> | more2. <command> | less3. more <file>4. less <file> |
1. more 仅支持向下翻页,不支持向上翻页2. less 都支持向上向下翻页 |
| 统计字数、行数、单词数 | 1. wc <file1> [file2]...2. -l3. -m4. -w |
1. 统计所有 2. 统计行数 3. 统计字数 4. 统计词数 |
| 比较两个文件的不同 | diff <file1> <file2> |
比较 file1 与 file2 的不同 |
| 行筛选工具 | 1. <command> | grep <String>2. grep <keyword> <file1> [file2] |
1. 通过此方法可直接筛选所包含的行并输出 2. 在单个或多个文件中查找行内包含的关键字并输出 |
| 将输出结果写入文件 | 1. <command> > <file>2. <command> >> <file> |
1. 将命令的执行结果覆盖写入至文件中 2. 将命令的执行结果追加写入至文件中 |
| 以行编辑模式下编辑文件 | 1. tee <file>2. tee -a <file> |
1. 将写入的内容覆盖保存到文件中 2. 将写入的内容追加保存到文件中 💡:使用行编辑模式下可直接在行内编辑并回车,编辑完成后,按 Ctrl+C 结束编辑并保存 |
| vim 文本编辑器 / nano 文本编辑器 | 1. vi [file] / vim [file]2. nano [file] |
1. 使用 vi / vim 文本编辑器打开或新建文件 其中,vim 编辑器为 vi 的加强版 ❗:部分 Linux 发行版默认未安装 vim 软件包2. 使用 nano 文本编辑器打开或新建文件 |
| tar 压缩包 | 1. tar -xvf <file.tar> [-C <dir>]2. tar -xzvf <file.tar.gz/file.tgz> [-C <dir>]3. tar -cvf <file.tar> <压缩目标>4. tar -czvf <file.tar.gz>/<file.tgz> |
1. 解压 tar 包 · -C:指定解压目录· -x:解压压缩包· -v:显示压缩或解压进度· -f:指定存档文件2. 解压 tar.gz / tgz 包 · -z:使用 gzip 格式3. 压缩目录或文件为 tar 包 · -c:创建压缩包4. 压缩目录或文件为 tar.gz / tgz 包 |
| zip 压缩包 | 1. zip <file.zip> -r <dir/file> [-P <压缩密码> -<0-9>] 2. unzip <file.zip> [-d <dir> ] |
1. 压缩目录或文件为 zip 包 · -r:递归打包(常用于打包目录下的所有文件)· -P:设置压缩密码· -<0-9>: 表示压缩质量级别,默认值为 6。级别越高,压缩质量越好;级别越低,压缩速度越快2. 解压 zip 包到当前目录 · -d:指定解压目录 |
系统与硬件管理
| 名称 | 用法 / 选项(简略) | 注释 |
|---|---|---|
| 主机信息 | hostnamectl |
查看当前主机的所有信息 |
| 显示系统信息 | 1. uname2. uname -a3. uname -m4. uname -n5. neofetch6. screenfetch |
1. 使用的内核 2. 显示所有系统信息 3. 使用的物理架构 4. 主机名称 5. 查看主机信息 (需安装 neofetch 软件包)6. 查看主机信息 (需安装 screenfetch 软件包) |
| 日期时间格式 / 时区 | 1. date2. date +<format>3. timedatectl |
1. 显示现在的日期时间 2. 自定义显示日期时间格式(如: %F,%T)3. 查看当前的日期时间、时区等详细信息 |
| 系统管理 | 1. systemctl2. systemctl [is-active / is-enabled] <SERVICE>3. systemctl [start / stop / enable / disable / restart / reload / status] <SERVICE> |
1. 用于查看系统下的所有设备、挂载、服务、接口等信息 2. 分别查看服务是否运行?是否开机自启? 3. 分别管理服务的启动、关闭、允许开机自启、禁用开机自启、重启、重新加载配置、查看状态服务 |
| 显示启动状态 | uptime |
简要显示电脑的启动状态、登录用户数等 |
| 任务管理器 | 1. top2. htop |
1. 管理所有正在运行的进程 2. 需要额外安装 htop 软件包 |
| 查看指定目录所占空间 | 1. du2. du -sh <文件/目录> |
1. 在当前目录下递归查看所有文件及目录的大小 2. 在指定目录或文件下查看大小 |
| 查看磁盘分区情况 | df -h |
查看所有磁盘分区的大小、占用情况、挂载点等 |
| 磁盘分区 | fdiskpartedcfdisk |
磁盘分区工具 |
| 查看磁盘信息 | lsblk |
显示所有块设备的大小及挂载点 |
| 查看 CPU 信息 | lscpu |
显示 CPU 的详细信息 |
| 查看电池 | lspower |
显示电池电量及当前使用电池状态 |
| 内存使用情况 | free -h |
查看当前的内存使用情况 |
| 关机 | poweroff / shutdown now |
关闭电源 |
| 重启 | reboot |
按下 Ctrl+Alt+Delete 也可重启 |
| 电源管理 | halt [-p / -f / --reboot] |
1. halt:挂起电源2. -p:关机3. --reboot:重启4. -f:强制性操作**(❗ 谨慎操作)** |
| 运行选项 | init <X> |
其中的 <X> 表示运行级别,具体如下:- 0 :关机- 1:进入紧急模式- 2:多用户模式- 3:带网络的多用户模式- 4:未定义 没什么用- 5:图形界面- 6:重启 |
网络与传输
| 名称 | 用法 / 选项(简略) | 注释 |
|---|---|---|
| 网络配置 | 1. nmcli2. nmtui |
1. 命令行下查看所有网络配置 2. 图形化界面管理网络配置 ❗:需要安装 network-manager 软件包 |
| 测试网络连通 | 1. ping <IP / Hostname>2. ping -c 4 <IP / Hostname> |
1. 测试指定 IP 地址或域名是否连通 2. 发送 4 个数据包以测试连通性 |
| 测试远程网络 | 1. curl ifconfig.io2. curl ifconfig.io/all3. curl ifconfig.io/all.json -o all.json |
1. 从 ifconfig.io 网站上获取 IP 地址2. 从 ifconfig.io 网站中获取所有信息3. 从 ifconfig.io 网站中下载并保存 JSON 格式的信息 |
| 显示网络状态 | 1. netstat -an2. netstat -at3. netstat -au4. netstat -apu5. netstat -i6. netstat -r7. netstat -ap | grep [SERVICE]8. netstat -anlp | grep [PORT_NUMBER] |
1. 查看当前系统网络状态的所有连接信息 2. 查看所有 TCP 端口信息 3. 查看 UDP 连接信息 4. 查看 UDP 连接端口号使用信息 5. 查看网卡状态信息 6. 查看网络路由表状态信息 7. 搜索某个服务所对应的连接信息 8. 查看运行在指定端口的进程 ❗:若无法执行,需安装 net-tools 软件包 |
| IP 路由表 | route / ip route |
查看 IP 路由表 ❗:需安装 net-tools 、iproute2 软件包 |
| 查看物理网卡 IP 地址 | ip addr |
此命令可直接简写为 ip a❗:需安装 iproute2 软件包 |
| 查看物理网卡配置 | 1. ifconfig2. ifconfig <网卡名> |
1. 显示所有网卡配置 2. 显示指定网卡配置 ❗:需安装 net-tools 软件包 |
| 文件下载工具 | wget <file_url> |
从某个 url 中下载文件到当前工作路径 |
| SSH 连接 | ssh username@<hostname / ip地址> [-p <22 / 指定端口号>] |
使用 SSH 方式连接远程主机,22 为 SSH 默认端口 |
| SSH 密钥 | 1. ssh-keygen2. ssh-keygen -t [dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa] |
1. 生成一个新的密钥 2. 指定生成某个类型的密钥(常用 RSA 密钥) |
| 传输文件工具 | 1. scp [<用户名>@<主机名/IP地址>:]<需传输的文件目录> <用户名>@<主机名/IP地址>:<目标目录>2. scp user@hostA:~/a.txt user@hostB:~/doc3. scp test.txt user@hostA:/doc |
1. 将其中一台主机中的文件或目录传输到另一台主机的目录中 2. 将主机 hostA下的主目录里的 a.txt 文件传输到主机 hostB 下的 ~/doc 目录中3. 将自己主机下的当前目录里的 test.txt 文件传输到主机 hostA 下的/doc 目录中 |
- 标题: Linux Shell 基础命令速查表(非完整版)
- 作者: CatIsNotFound
- 创建于 : 2024-04-25 13:25:08
- 更新于 : 2024-07-31 14:46:48
- 链接: https://catisnotfound.github.io/2024/04/Linux-Shell-命令速查表/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论