作为程序员、运维工程师的日常必备技能,Linux 命令总是让人又爱又恨 —— 常用命令记不住,生僻命令查半天,网上资料零散又杂乱?别慌!整理了一份超实用 Linux 命令大全,涵盖目录操作、文件管理、用户权限、系统管理、查找搜索等核心场景,格式清晰、拿来就用,新手也能快速上手,建议收藏备查。
一、基础操作:目录与路径
1. 目录切换
cd ~:切换到家目录(~ 是家目录快捷键)
cd -:切换到上一次所在目录
echo $PWD:显示当前工作目录
echo $OLDPWD:显示上一次工作目录
2. 目录查看
ls -A:显示所有文件(不含。和 ..)
ls -ld:显示目录本身的属性(而非目录内文件)
ls -R /home:递归显示目录下所有文件(包括子目录)
二、文件操作:创建、查看、修改
1. 文件 / 目录创建
mkdir 目录名:创建单个目录
mkdir -p /tmp/a/b/c:自动创建父目录(多级目录一键生成)
mkdir -v 目录名:显示创建过程
touch 文件名:创建空文件,若文件存在则修改时间戳
touch $(date -d "-2 day"+% F).log:生成 2 天前的日志文件(命令引用实战)
mktemp aa.XXXX:创建临时文件(X 需大写,自动过期删除)
mktemp -d aa.XX:创建临时目录
2. 文件查看
cat 文件名:正序查看文件内容
tac 文件名:倒序查看文件内容(cat 的反向命令)
head -n 10 文件名:查看文件前 10 行
tail -n 10 文件名:查看文件后 10 行
more 文件名 /less 文件名:分屏查看大文件(less 支持上下滚动)
stat 文件名:显示文件详细状态(含时间戳、权限等)
3. 文件复制 / 移动 / 删除
cp 源文件 目标路径:复制文件
cp -r 源目录 目标路径:递归复制目录(含子文件)
cp -a 源文件 目标路径:复制并保留文件所有属性(推荐用于重要文件)
cp /etc/{passwd,issue} /tmp:多源复制(一次性复制多个文件)
mv 源文件 目标路径:移动文件 / 目录,也可用于重命名
rm 文件名:删除文件
rm -r 目录名:递归删除目录(含子内容)
rm -f 文件名:强制删除(不提示)
rmdir 空目录名:删除空目录(仅能删空目录)
rename .txt .txt.bak *.txt:批量修改文件后缀(如 txt 转 txt.bak)
4. 链接创建
ln 源文件 链接名:创建硬链接(一个文件多个名字,不能跨磁盘 / 文件夹)
ln -s 源文件 链接名:创建软链接(相当于快捷方式,支持文件夹 / 跨磁盘)
注意:删除软链接时不要加 /,否则会删除源文件内容!正确命令:rm -f 链接名 或 unlink 链接名三、系统管理:用户、权限、进程
1. 用户与组管理
useradd 用户名:创建用户(默认配置在 /etc/login.defs)
usermod -u 1001 用户名:修改用户 UID
userdel 用户名:删除用户
passwd 用户名:修改用户密码(echo "新密码" | passwd --stdin 用户名 批量改密)
groupadd 组名:创建用户组
groupmod -g 1001 组名:修改组 GID
groupdel 组名:删除用户组
id 用户名:查看用户 UID、GID 等信息
su - 用户名:登录式切换用户(加载目标用户环境变量)
su -c "命令":以指定用户身份执行单个命令(不切换登录)
2. 权限管理
Linux 权限分读(r=4)、写(w=2)、执行(x=1),对应属主(u)、属组(g)、其他(o)三类用户。chmod u=rwx,g=rw,o=r 文件名:设置权限(如 764)
chmod +x 文件名:给所有用户添加执行权限
chmod -R a+X 目录名:递归给目录添加执行权限(仅目录生效)
chmod --reference=/etc/shadow 文件名:复制目标文件的权限
chown 用户名:组名 文件名:修改文件属主和属组
chgrp 组名 文件名:单独修改文件属组
umask:查看文件权限反向掩码(文件默认 666-umask,目录默认 777-umask)
chattr +i 文件名:设置文件不可删除 / 修改(隐藏权限)
chattr +a 文件名:设置文件仅可追加(不能删除)
lsattr 文件名:查看文件隐藏权限
setfacl -m u: 用户名:rwx 文件名:给指定用户单独设置权限(精细化控制)
3. 特殊权限
chmod u+s 命令名:设置 SUID 权限(用户执行命令时临时获得属主权限,如 passwd 命令)
4. 进程管理
pstree:查看进程树
pstree -p:显示进程树及 PID(进程 ID)
四、查找搜索:高效定位文件 / 内容
1. locate(快速模糊查找)
locate 关键词:模糊查找文件
updatedb:手动更新索引库(消耗系统资源,谨慎执行)
locate -b 关键词:仅显示文件名(不含路径)
locate -c 关键词:统计匹配文件个数
2. find(实时精确查找)
实时扫描文件系统,支持多条件组合,功能强大。基本语法:find [起始路径] [查找条件] [处理动作]常用条件:find /tmp -name "*.log":按文件名查找(支持通配符)
find /etc -iname "hosts":忽略大小写查找
find /home -user 用户名:按属主查找
find /dev -type b:按文件类型查找(b = 块设备,f = 普通文件,d = 目录)
find /var -size +200M:按大小查找(+ 大于,- 小于,单位 k/M/G)
find /etc -mtime -1:按修改时间查找(-1=1 天内,+1=1 天前)
find /tmp -perm 755:按权限查找
find /tmp -size +1G -ls:查找后显示详细信息
find /tmp -nouser -delete:删除无属主的文件
find /home -name "*.txt" -exec cp {} /tmp ;:查找后执行复制({} 代指找到的文件)
3. xargs(批量传递参数)
解决部分命令不支持管道传参的问题,拆分参数避免溢出。echo file {1..50000}.txt | xargs -n1 touch:批量创建 5 万个文件(-n1 = 每次传 1 个参数)
find /var -size +2G | xargs ls -hl:查找大于 2G 的文件并显示详情
五、系统常用:时间、主机、日志、压缩
1. 时间与时区
date:显示系统时间(软件时钟)
date +"% F % T":显示格式化时间(年 - 月 - 日 时:分: 秒)
date -d "+2 day":显示 2 天后的日期
hwclock:显示硬件时钟
hwclock -s:硬件时间同步到系统时间
hwclock -w:系统时间同步到硬件时钟
timedatectl set-timezone Asia/Shanghai:设置时区为上海
2. 主机与系统信息
hostname 主机名:临时修改主机名
hostnamectl set-hostname 主机名:永久修改主机名(修改 /etc/hostname)
cat /etc/os-release:查看系统版本
who:查看当前登录用户
who -b:查看系统启动时间
w:查看登录用户及正在执行的操作(增强版 who)
cal:显示日历(cal 2024 显示 2024 年日历,cal 8 2024 显示 2024 年 8 月日历)
3. 日志与磁盘
cat /dev/null > 大文件.log:清空大文件(立即释放磁盘空间)
df -h:查看磁盘空间使用情况(人类可读格式)
df -i:查看 inode 使用情况(inode 耗尽会导致磁盘无法写入)
shred -v /dev/sdb:磁盘擦除(覆盖写入,防止数据恢复)
dd if=/dev/urandom of=/dev/sdb bs=512 status=progress:用随机数据覆盖磁盘
4. 压缩与归档(tar 命令)
tar -zcvf 压缩包.tar.gz 目录名:用 gzip 压缩(最常用)
tar -zxvf 压缩包.tar.gz -C 目标目录:解压到指定目录(-C 指定路径)
tar -jcvf 压缩包.tar.bz2 目录名:用 bzip2 压缩(压缩率更高)
tar -Jcvf 压缩包.tar.xz 目录名:用 xz 压缩(压缩率最高)
六、bash 高级特性:快捷键与技巧
1. 快捷键(效率神器)
Ctrl+A:跳到命令行首
Ctrl+E:跳到命令行尾
Ctrl+U:删除光标前所有字符
Ctrl+K:删除光标后所有字符
Ctrl+L:清屏(等同于 clear)
Ctrl+R:搜索历史命令(重复按继续搜索)
Esc+.:快速调用上一条命令的参数(或用!$)
2. 命令行展开
~:自动展开为家目录(如 cd ~)
{}:批量生成路径 / 文件名,如:
3. 引用与变量
单引号 ' ':强引用(内部字符原样显示,不解析变量)
双引号 "":弱引用(解析变量值,如 echo"$SHELL" 显示 shell 路径)
反引号 或 $(命令):引用命令执行结果(如 mkdir $(date +%H-%M-%S))
4. 历史命令
history:查看执行过的历史命令(保存在~/.bash_history)
history -c:清空当前历史命令
history -d 102:删除第 102 条历史命令
!101:执行第 101 条历史命令
!!:重复执行上一条命令
5. IO 重定向
命令 > 文件:正常输出重定向到文件(覆盖)
命令 >> 文件:正常输出追加到文件
命令 2> 文件:错误输出重定向到文件
命令 &> 文件:正常 + 错误输出都重定向到文件
命令 < 文件:从文件读取输入(输入重定向)
命令 &>/dev/null:忽略所有输出(仅关注命令是否执行成功)
七、实用小命令与技巧
bc:终端计算器(直接输入 bc 启动)
wall 'hello everyone':给所有在线用户发消息
shutdown -r +10:10 分钟后重启(shutdown -c 取消)
init 3:切换到字符界面(关闭图形界面,立即生效)
alias 别名 =' 命令 ':定义命令别名(如 alias rm='mv -t /tmp' 防误删)
unalias 别名:删除命令别名
which 命令:显示命令所在路径
whereis 命令:显示命令二进制文件、源码、手册位置
echo -e '\a':让系统发出提示音(脚本执行完成通知)
echo -e "\E [1;31m 文字 \E [0m":输出彩色文字(31 = 红色,32 = 绿色,33 = 黄色)
最后
这份笔记覆盖了 Linux 日常使用的 90%+ 场景,建议收藏起来,遇到不会的命令直接搜索关键词!如果觉得有用,记得分享给身边的小伙伴~