Skip to content

Linux 常用命令速查手册

欢迎使用本速查手册!本文档旨在为你提供最常用、最核心的 Linux 命令参考,帮助你快速上手和提升日常操作效率。无论你是初学者还是需要快速回顾的开发者,这里都能找到你需要的内容。

提示

  • 在终端中输入 man <命令> 可以查看该命令的详细手册页。
  • 使用 --help-h 参数(如 ls --help)通常可以获取简要的帮助信息。
  • Tab 键可以自动补全文件名和命令。

文件与目录操作

ls - 列出目录内容

列出当前目录下的文件和子目录。

bash
# 基本用法
ls

# 显示隐藏文件(以 . 开头的文件)
ls -a

# 以长格式显示(包含权限、所有者、大小、修改时间等)
ls -l

# 组合使用:显示所有文件的详细信息
ls -al

# 按修改时间排序(最新在前)
ls -lt

cd - 切换目录

改变当前工作目录。

bash
# 进入指定目录
cd /path/to/directory

# 返回用户主目录
cd ~
# 或简写
cd

# 返回上级目录
cd ..

# 返回之前所在的目录
cd -

pwd - 显示当前工作目录

打印当前所在目录的绝对路径。

bash
pwd

mkdir - 创建目录

创建新的目录。

bash
# 创建一个新目录
mkdir my_directory

# 递归创建多级目录(如果父目录不存在则一并创建)
mkdir -p parent/child/grandchild

touch - 创建空文件或更新文件时间戳

bash
# 创建一个或多个空文件
touch newfile.txt anotherfile.log

# 如果文件已存在,则更新其访问和修改时间为当前时间
touch existing_file.txt

cp - 复制文件或目录

复制文件或目录。

bash
# 复制文件
cp source.txt destination.txt

# 复制目录(需要 -r 选项进行递归复制)
cp -r source_directory/ target_directory/

# 复制时保留原文件的属性(权限、时间戳等)
cp -rp source_directory/ target_directory/

mv - 移动或重命名文件/目录

移动文件或目录,也可用于重命名。

bash
# 重命名文件
mv oldname.txt newname.txt

# 移动文件到另一个目录
mv file.txt /path/to/destination/

# 移动目录
mv old_directory/ /new/location/

rm - 删除文件或目录

删除文件或目录。使用此命令需格外小心!

bash
# 删除文件
rm unwanted_file.txt

# 递归删除目录及其内容(非常危险,请确认路径正确)
rm -r unwanted_directory/

# 强制删除,不提示确认(极其危险,慎用)
rm -rf unwanted_directory/

# 删除前提示确认(推荐安全做法)
rm -ri unwanted_directory/

警告

rm -rf / 是一个毁灭性的命令,会尝试删除整个根目录下的所有文件,可能导致系统崩溃和数据完全丢失。切勿执行!

find - 搜索文件

在指定目录下搜索文件。

bash
# 在当前目录及子目录中查找名为 "filename.txt" 的文件
find . -name "filename.txt"

# 查找所有以 .log 结尾的文件
find /var/log -name "*.log"

# 查找过去7天内修改过的 .txt 文件
find . -name "*.txt" -mtime -7

# 查找大小超过 100MB 的文件
find /home -size +100M

文件查看与编辑

cat - 连接并显示文件内容

一次性显示文件全部内容。

bash
# 显示文件内容
cat file.txt

# 同时显示多个文件内容
cat file1.txt file2.txt

# 将一个文件的内容追加到另一个文件末尾
cat additional.txt >> main.txt

less - 分页查看文件内容

更灵活地查看大文件,支持上下滚动、搜索。

bash
# 分页查看文件
less large_file.log

# 在 less 中:
#   - 按空格键向下翻页
#   - 按 b 键向上翻页
#   - 按 / 键后输入文本可进行向下搜索
#   - 按 ? 键后输入文本可进行向上搜索
#   - 按 q 键退出

headtail - 查看文件开头和结尾

bash
# 显示文件的前10行(默认)
head file.txt

# 显示前20行
head -n 20 file.txt

# 显示文件的最后10行(默认)
tail file.txt

# 显示最后20行
tail -n 20 file.txt

# 实时监控文件新增内容(常用于查看日志)
tail -f /var/log/syslog

grep - 文本搜索

在文件中搜索包含指定模式的行。

bash
# 在文件中搜索包含 "error" 的行
grep "error" log.txt

# 忽略大小写搜索
grep -i "error" log.txt

# 显示匹配行的行号
grep -n "warning" log.txt

# 递归搜索目录下所有文件
grep -r "function_name" /path/to/code/

# 反向匹配:显示不包含 "success" 的行
grep -v "success" log.txt

系统信息与管理

ps - 显示进程状态

查看当前运行的进程。

bash
# 显示当前用户的进程
ps

# 显示所有进程的详细信息(常用组合)
ps aux

# 以树状结构显示进程
ps axjf

top / htop - 实时显示系统资源和进程

动态查看系统负载、CPU、内存使用情况及进程信息。

bash
# 启动 top
top

# 启动 htop (功能更强大,界面更友好,可能需要安装)
htop

df - 显示磁盘空间使用情况

bash
# 以人类可读的格式(KB, MB, GB)显示磁盘使用情况
df -h

du - 显示目录或文件的磁盘使用情况

bash
# 显示当前目录下各子目录的大小
du -sh *

# 显示指定目录的总大小
du -sh /path/to/directory

free - 显示内存使用情况

bash
# 以人类可读的格式显示内存和交换空间使用情况
free -h

dmesg - 查看内核日志

dmesg 用于查看内核环形缓冲区的消息,常用于排查系统级问题。

bash
# 查看所有内核消息
dmesg

# 查看 OOM(Out of Memory)杀手记录
# 当系统内存不足时,内核会杀死一些进程以释放内存,此命令用于检查是否发生过此类事件
dmesg | grep -i oom

# 如果输出为空,表示系统没有发生过 OOM 事件
# 如果有输出,则显示被 OOM killer 杀死的进程信息

使用场景

当你的容器或应用异常退出时,可以用 dmesg | grep -i oom 检查是否因内存不足被系统强制杀死。这在排查 Docker 容器意外退出问题时尤其有用。

网络相关

ping - 测试网络连通性

bash
# 测试与 google.com 的连通性
ping google.com

# 发送5个包后停止
ping -c 5 google.com

curl - 传输数据

发送 HTTP 请求,下载文件等。

bash
# 获取网页内容并输出到终端
curl http://example.com

# 下载文件并保存为指定名称
curl -o filename.html http://example.com/page.html

# 发送 POST 请求
curl -X POST -d "param1=value1&param2=value2" http://api.example.com/submit

wget - 非交互式下载文件

bash
# 下载文件到当前目录
wget http://example.com/file.zip

# 下载并指定保存的文件名
wget -O myfile.zip http://example.com/download.php?file=123

权限与用户

chmod - 更改文件权限

bash
# 给文件所有者添加执行权限
chmod u+x script.sh

# 设置文件权限为 rwxr-xr-x (755)
chmod 755 script.sh

# 递归设置目录及内部所有文件的权限
chmod -R 755 my_directory/

chown - 更改文件所有者和所属组

bash
# 更改文件所有者
chown username file.txt

# 更改文件所有者和所属组
chown username:groupname file.txt

# 递归更改目录所有权
chown -R username:groupname /path/to/directory/

归档与压缩

tar - 打包和解包

常与 gzipbzip2 结合使用。

bash
# 创建 .tar.gz 压缩包
tar -czvf archive.tar.gz /path/to/files/

# 解压 .tar.gz 文件
tar -xzvf archive.tar.gz

# 解压到指定目录
tar -xzvf archive.tar.gz -C /target/directory/

# 查看压缩包内容(不解压)
tar -tzvf archive.tar.gz

gzip / gunzip - 压缩/解压

bash
# 压缩文件(生成 .gz 文件,原文件被删除)
gzip file.txt

# 解压 .gz 文件
gunzip file.txt.gz
# 或
gzip -d file.txt.gz

实用技巧

管道 | 和重定向 >, >>

将一个命令的输出作为另一个命令的输入,或将输出保存到文件。

bash
# 将 ps 的输出通过管道传给 grep 进行过滤
ps aux | grep nginx

# 将命令输出重定向到文件(覆盖)
echo "Hello World" > output.txt

# 将命令输出追加到文件末尾
echo "Another line" >> output.txt

# 将错误输出重定向到文件
command_that_might_fail 2> error.log

# 将标准输出和错误输出都重定向到同一个文件
command > output.log 2>&1

history - 查看命令历史

bash
# 显示最近执行过的命令列表
history

# 执行历史记录中的第 N 条命令
!N

# 执行最近一次以 'ls' 开头的命令
!!ls

Docker 相关

docker inspect - 查看容器详细信息

获取容器的详细配置和状态信息。

bash
# 查看容器的完整信息(JSON 格式)
docker inspect <容器名或ID>

# 查看容器的健康状态
docker inspect <容器> --format='{{.State.Health}}'
# 输出示例:{healthy 0 [0xc0003f0140 0xc0003f0190 ...]}
# healthy 表示健康,unhealthy 表示不健康

# 只获取健康状态字符串
docker inspect <容器> --format='{{.State.Health.Status}}'
# 输出:healthy / unhealthy / starting

# 查看容器的 IP 地址
docker inspect <容器> --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'

# 查看容器的端口映射
docker inspect <容器> --format='{{json .NetworkSettings.Ports}}'

使用场景

当容器配置了健康检查(HEALTHCHECK)时,可以使用此命令快速查看容器的健康状态,帮助排查服务异常问题。

服务器列出所有 Node LTS(稳定)版本

bash
curl -s https://nodejs.org/dist/index.json | jq -r '
  .[] |
  select(.lts != false) |
  "\(.version) (LTS: \(.lts), released: \(.date))"
'

🔧 下载并安装 v24.11.1 的操作步骤

1️⃣ 进入你的 Jenkins 工具目录

bash
cd /opt/compose/conf/jenkins

2️⃣ 下载 v24.11.1(Linux 64位)

bash
wget https://nodejs.org/dist/v24.11.1/node-v24.11.1-linux-x64.tar.xz

3️⃣ 解压并重命名

bash
tar -xf node-v24.11.1-linux-x64.tar.xz
mv node-v24.11.1-linux-x64 node-v24.11.1

4️⃣ 验证安装

bash
/opt/compose/conf/jenkins/node-v24.11.1/bin/node -v
# 输出:v24.11.1

/opt/compose/conf/jenkins/node-v24.11.1/bin/npm -v
# 输出:如 10.9.0+

5️⃣ (可选)在 Jenkinsfile 中使用

groovy
env.PATH = "/opt/compose/conf/jenkins/node-v24.11.1/bin:${env.PATH}"
sh 'node -v'   // 应显示 v24.11.1
sh 'corepack enable'
sh 'corepack prepare pnpm@latest --activate'

编辑文件 vi 与 nano 区别

bash
nano ~/.bashrc

Released under the MIT License.