Linux Shell 基础命令速查表(非完整版)
观前须知
此文章将以表格的形式呈现,若需要更为直观的 Linux 命令,请直接查看 Linux 教程 | 菜鸟教程 (runoob.com)
表格注释: 💡 = 提示,❗ = 注意(需要安装的软件包)
终端与用户
名称 | 用法 / 选项(简略) | 注释 |
---|---|---|
用户名 | whoami |
显示当前登录的用户 |
正在登录的用户 | 1. who 2. w |
1. 查看当前正在登录的用户 2. 详细查看当前登录的用户 |
上次登录 | last |
查看上次当前用户的详细信息 |
主机名 | 1. hostname 2. hostname -s |
1. 显示完整的主机名 2. 显示简单的主机名 |
关于主机 | 1. hostnamectl 2. hostnamectl set-hostname <hostname> |
1. 显示当前主机信息 2. 设置主机名 ❗:普通用户下需提权 |
提升权限(管理员权限) | sudo <command> |
以管理员身份执行命令 ❗:在该用户为管理员的前提下才可用 |
切换其它用户 | 1. su <用户名> 2. su 3. sudo su 4. sudo su - |
1. 切换指定用户 2. 切换至 root 用户 3. 当不知道 root 用户密码的情况下,使用管理员权限切换至 root 用户 4. 使用管理员权限切换至 root 用户并切换 Shell 环境 💡:若需查看当前使用的 Shell 环境, 执行: echo $SHELL |
输出内容 | 1. echo Hello world 2. echo "Hello world" 3. echo -n "Hello world" 4. echo -e "Hello\nworld" |
1. 直接输出 Hello world 2. 与上一条一致,但看起来更直观 3. 输出不换行 4. 输出时解释反转义符(如: \n 表示换行) |
命令变量 | 1. alias 2. 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. history 2. history n 3. history -c 4. history -d n |
1. 查看最近的历史记录 2. 显示最近 n 条记录 3. 清除所有记录 4. 删除第 n 条记录 |
快速执行命令 | 1. !! 2. !n 3. !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. cd 3. cd - |
1. 指定一个目录 2. 切换至主目录(家目录) 3. 回到之前访问过的目录 |
查看路径下的内容 | 1. ls 2. ls <DIR1> [DIR2] ... 3. ls -l / ll 4. ls -h 5. ls -a 6. ls -R 7. ls -d 8. ls -Z 9. 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. -r 3. -p 4. -v 5. -a |
1. 将文件复制到目标路径 2. 递归复制(复制目录) 3. 复制时再复制权限 4. 显示复制过程 5. 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。 |
删除文件目录 | 1. rm <file1> [file2]... 2. -r / -R 3. -f 4. -rf |
1. 删除单个或多个目录或文件,可能需确认 2. 递归删除(包括目录) 3. 强制性删除,跳过确认 4. 强制性递归删除该目录或文件(❗ 谨慎操作) |
移动 / 重命名文件目录 | 1. mv file1 /doc 2. 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> | more 2. <command> | less 3. more <file> 4. less <file> |
1. more 仅支持向下翻页,不支持向上翻页2. less 都支持向上向下翻页 |
统计字数、行数、单词数 | 1. wc <file1> [file2]... 2. -l 3. -m 4. -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. uname 2. uname -a 3. uname -m 4. uname -n 5. neofetch 6. screenfetch |
1. 使用的内核 2. 显示所有系统信息 3. 使用的物理架构 4. 主机名称 5. 查看主机信息 (需安装 neofetch 软件包)6. 查看主机信息 (需安装 screenfetch 软件包) |
日期时间格式 / 时区 | 1. date 2. date +<format> 3. timedatectl |
1. 显示现在的日期时间 2. 自定义显示日期时间格式(如: %F ,%T )3. 查看当前的日期时间、时区等详细信息 |
系统管理 | 1. systemctl 2. systemctl [is-active / is-enabled] <SERVICE> 3. systemctl [start / stop / enable / disable / restart / reload / status] <SERVICE> |
1. 用于查看系统下的所有设备、挂载、服务、接口等信息 2. 分别查看服务是否运行?是否开机自启? 3. 分别管理服务的启动、关闭、允许开机自启、禁用开机自启、重启、重新加载配置、查看状态服务 |
显示启动状态 | uptime |
简要显示电脑的启动状态、登录用户数等 |
任务管理器 | 1. top 2. htop |
1. 管理所有正在运行的进程 2. 需要额外安装 htop 软件包 |
查看指定目录所占空间 | 1. du 2. du -sh <文件/目录> |
1. 在当前目录下递归查看所有文件及目录的大小 2. 在指定目录或文件下查看大小 |
查看磁盘分区情况 | df -h |
查看所有磁盘分区的大小、占用情况、挂载点等 |
磁盘分区 | fdisk parted cfdisk |
磁盘分区工具 |
查看磁盘信息 | 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. nmcli 2. nmtui |
1. 命令行下查看所有网络配置 2. 图形化界面管理网络配置 ❗:需要安装 network-manager 软件包 |
测试网络连通 | 1. ping <IP / Hostname> 2. ping -c 4 <IP / Hostname> |
1. 测试指定 IP 地址或域名是否连通 2. 发送 4 个数据包以测试连通性 |
测试远程网络 | 1. curl ifconfig.io 2. curl ifconfig.io/all 3. curl ifconfig.io/all.json -o all.json |
1. 从 ifconfig.io 网站上获取 IP 地址2. 从 ifconfig.io 网站中获取所有信息3. 从 ifconfig.io 网站中下载并保存 JSON 格式的信息 |
显示网络状态 | 1. netstat -an 2. netstat -at 3. netstat -au 4. netstat -apu 5. netstat -i 6. netstat -r 7. 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. ifconfig 2. ifconfig <网卡名> |
1. 显示所有网卡配置 2. 显示指定网卡配置 ❗:需安装 net-tools 软件包 |
文件下载工具 | wget <file_url> |
从某个 url 中下载文件到当前工作路径 |
SSH 连接 | ssh username@<hostname / ip地址> [-p <22 / 指定端口号>] |
使用 SSH 方式连接远程主机,22 为 SSH 默认端口 |
SSH 密钥 | 1. ssh-keygen 2. 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:~/doc 3. 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 进行许可。
评论