Linux 命令速查

Linux 常用命令速查表,支持搜索和一键复制

文件操作(5)

复制文件 cp

复制文件或目录,-r 递归复制目录

# 复制文件
cp file.txt backup.txt
# 递归复制目录
cp -r dir1 dir2
# 保留属性
cp -a source dest

移动/重命名 mv

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

# 移动文件
mv file.txt /path/to/dest/
# 重命名
mv oldname.txt newname.txt
# 强制覆盖(不提示)
mv -f source dest

删除文件 rm

删除文件或目录,-r 递归删除,-f 强制

# 删除文件
rm file.txt
# 递归删除目录
rm -r dir/
# 强制删除(不提示)
rm -rf dir/
# 交互式删除
rm -i file.txt

创建空文件 touch

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

# 创建空文件
touch newfile.txt
# 更新多个文件的时间戳
touch file1.txt file2.txt

创建链接 ln

创建硬链接或软链接(符号链接)

# 创建硬链接
ln file.txt hardlink.txt
# 创建软链接(符号链接)
ln -s /path/to/file link_name

目录操作(5)

列出目录 ls

列出目录内容,-l 详细信息,-a 显示隐藏文件

# 简单列出
ls
# 详细信息(含权限、大小)
ls -l
# 显示隐藏文件
ls -la
# 按大小排序
ls -lhS
# 递归列出子目录
ls -R

创建目录 mkdir

创建新目录,-p 递归创建多级目录

# 创建单个目录
mkdir mydir
# 递归创建多级目录
mkdir -p parent/child/grandchild
# 创建时设置权限
mkdir -m 755 mydir

切换目录 cd

切换当前工作目录

# 进入目录
cd /path/to/dir
# 进入家目录
cd ~
# 返回上级目录
cd ..
# 返回上上次目录
cd -

当前目录 pwd

显示当前工作目录的绝对路径

pwd

目录大小 du

显示目录或文件的磁盘使用量

# 当前目录大小
du -sh .
# 显示子目录大小
du -h --max-depth=1
# 人类可读格式
du -sh *

文件查看(5)

查看文件 cat

连接并显示文件内容

# 查看文件
cat file.txt
# 显示行号
cat -n file.txt
# 合并多个文件
cat file1.txt file2.txt > combined.txt

分页查看 less

分页查看大文件,支持上下翻页和搜索

# 分页查看
less file.txt
# 常用操作:空格翻页,b 回翻,/ 搜索,q 退出

查看头部 head

显示文件开头若干行

# 默认显示前 10 行
head file.txt
# 显示前 20 行
head -n 20 file.txt
# 或
head -20 file.txt

查看尾部 tail

显示文件末尾若干行,-f 实时跟踪

# 默认显示后 10 行
tail file.txt
# 显示后 50 行
tail -n 50 file.txt
# 实时跟踪日志
tail -f /var/log/app.log

统计字数 wc

统计文件行数、字数、字节数

# 显示行数、字数、字节数
wc file.txt
# 只显示行数
wc -l file.txt
# 只显示字数
wc -w file.txt

搜索查找(5)

文本搜索 grep

在文件中搜索匹配的文本行

# 基本搜索
grep "pattern" file.txt
# 忽略大小写
grep -i "pattern" file.txt
# 递归搜索目录
grep -r "pattern" ./dir
# 显示行号
grep -n "pattern" file.txt

查找文件 find

在目录树中查找文件

# 按名称查找
find . -name "*.txt"
# 按类型查找
find . -type f -name "*.log"
# 按时间查找(7天内修改)
find . -mtime -7
# 执行命令
find . -name "*.tmp" -exec rm {} \;

快速查找 locate

通过数据库快速查找文件(需先 updatedb)

# 查找文件
locate filename
# 忽略大小写
locate -i pattern
# 限制结果数量
locate -n 20 pattern

查找命令 which

显示命令的完整路径

which python
which git
which node

查找命令 whereis

查找命令、源码和手册页位置

whereis python
whereis ls

权限管理(5)

修改权限 chmod

修改文件或目录的访问权限

# 数字模式:755 = rwxr-xr-x
chmod 755 script.sh
# 符号模式:给所有用户加执行权限
chmod +x file.sh
# 递归修改目录
chmod -R 755 mydir

修改所有者 chown

修改文件或目录的所有者和所属组

# 修改所有者
chown user file.txt
# 修改所有者和组
chown user:group file.txt
# 递归修改
chown -R user:group dir/

修改所属组 chgrp

修改文件或目录的所属组

chgrp developers file.txt
chgrp -R www-data /var/www/

默认权限 umask

设置新建文件的默认权限掩码

# 查看当前 umask
umask
# 设置 umask(如 022)
umask 022

查看权限 stat

显示文件或文件系统的详细状态信息

stat file.txt
# 简洁格式
stat -c '%a %n' file.txt

进程管理(5)

查看进程 ps

显示当前进程状态

# 显示所有进程
ps aux
# 树形显示
ps auxf
# 显示指定用户进程
ps -u username

实时监控 top

实时显示系统进程和资源使用情况

# 启动 top
top
# 按 P 按 CPU 排序,M 按内存排序,q 退出

终止进程 kill

向进程发送信号,默认 SIGTERM

# 优雅终止(默认)
kill 12345
# 强制终止
kill -9 12345
# 按名称终止
killall process_name

后台运行 nohup

忽略挂断信号,使进程在退出终端后继续运行

# 后台运行,输出到 nohup.out
nohup command &
# 指定输出文件
nohup python app.py > output.log 2>&1 &

进程树 pstree

以树形结构显示进程关系

pstree
pstree -p  # 显示 PID
pstree -u  # 显示用户名

网络(6)

测试连通性 ping

测试与目标主机的网络连通性

# 持续 ping
ping example.com
# 指定次数
ping -c 4 example.com
# 指定间隔(秒)
ping -i 2 192.168.1.1

下载文件 wget

从网络下载文件

# 下载文件
wget https://example.com/file.zip
# 断点续传
wget -c url
# 后台下载
wget -b url

HTTP 请求 curl

发送 HTTP 请求,支持多种协议

# GET 请求
curl https://api.example.com
# POST 请求
curl -X POST -d 'data' url
# 显示响应头
curl -i url
# 保存到文件
curl -o file.txt url

网络状态 netstat

显示网络连接、路由表、接口统计

# 显示所有连接
netstat -a
# 显示监听端口
netstat -tuln
# 显示进程
netstat -tulnp

SSH 远程连接

安全连接到远程主机

# 基本连接
ssh user@host
# 指定端口
ssh -p 2222 user@host
# 使用密钥
ssh -i ~/.ssh/id_rsa user@host

SCP 文件传输

通过 SSH 安全复制文件

# 上传到远程
scp file.txt user@host:/path/
# 从远程下载
scp user@host:/path/file.txt .
# 递归复制目录
scp -r dir/ user@host:/path/

磁盘与系统(5)

磁盘空间 df

显示文件系统磁盘空间使用情况

# 人类可读格式
df -h
# 显示 inode 使用
df -i
# 指定文件系统类型
df -t ext4

内存使用 free

显示系统内存使用情况

# 人类可读格式
free -h
# 持续监控
free -h -s 2

系统信息 uname

显示系统信息

# 内核名称
uname
# 详细信息
uname -a
# 内核版本
uname -r
# 机器架构
uname -m

系统负载 uptime

显示系统运行时间和负载

uptime

环境变量 env

显示或设置环境变量

# 显示所有环境变量
env
# 在指定环境下执行命令
env VAR=value command

压缩解压(5)

tar 打包压缩

打包和压缩文件,常用 .tar.gz 格式

# 打包(不压缩)
tar -cvf archive.tar dir/
# 打包并 gzip 压缩
tar -czvf archive.tar.gz dir/
# 解压 .tar.gz
tar -xzvf archive.tar.gz
# 解压到指定目录
tar -xzvf archive.tar.gz -C /path/to/dest/

zip 压缩

创建和解压 zip 格式压缩包

# 压缩文件
zip archive.zip file1 file2
# 递归压缩目录
zip -r archive.zip dir/
# 解压
unzip archive.zip
# 解压到指定目录
unzip archive.zip -d /path/to/dest/

gzip 压缩

压缩单个文件,生成 .gz 文件

# 压缩(会删除原文件)
gzip file.txt
# 保留原文件
gzip -k file.txt
# 解压
gunzip file.txt.gz

xz 高压缩

高压缩比格式,适合大文件

# 压缩
xz file.txt
# 解压
xz -d file.txt.xz
# 或
unxz file.txt.xz

7z 多格式

支持多种压缩格式

# 压缩
7z a archive.7z dir/
# 解压
7z x archive.7z

用户管理(5)

当前用户 whoami

显示当前登录用户名

whoami

切换用户 su

切换到其他用户,默认切换到 root

# 切换到 root
su
# 切换到指定用户
su username
# 切换用户并加载环境
su - username

添加用户 useradd

创建新用户账户

# 创建用户
useradd -m username
# 指定家目录和 shell
useradd -m -s /bin/bash username
# 指定 UID
useradd -u 1001 username

修改密码 passwd

修改用户密码

# 修改当前用户密码
passwd
# 修改指定用户密码(需 root)
passwd username

用户信息 id

显示用户和组的 ID 信息

# 当前用户
id
# 指定用户
id username

相关工具