👋 刚接触 Linux?这篇帮你快速上手
第一次打开 Linux 终端,面对黑底白字的界面,很多人心里都会犯嘀咕:这玩意儿咋用?敲错命令会不会把系统搞崩?
说实话,Linux 命令没那么难。平时真正高频使用的也就几十条,把这些练熟了,90% 的工作场景都能应付。
这篇把常用命令按用途分好类,每个都配上实际例子,照着敲一遍就能学会。建议先收藏,以后遇到问题直接翻对应分类,比到处百度省时间多了。
📂 一、文件和目录操作(最常用)
1. ls —— 查看目录里有什么
这条命令用得最多,看看当前目录有什么文件。
ls # 查看当前目录ls -l # 详细列表,能看到大小、权限、时间ls -a # 显示隐藏文件(以.开头的那些)ls -lh # 文件大小用 K/M/G 显示,更直观ls /home # 查看指定目录
💡 小贴士:ls -lh 输出里,开头是 d 的是目录,是 - 的是文件,4.0K、2.5M 这些就是大小。
2. cd —— 切换目录
从一个目录跳到另一个。
cd /home # 进入 home 目录cd Documents # 进入当前目录下的 Documentscd .. # 返回上一级cd ~ # 回到主目录cd - # 回到上一次所在的目录
💡 小贴士:cd 后面不写路径,默认回主目录,等于 cd ~。
3. pwd —— 我现在在哪?
有时候转了好几层,忘了自己在哪,pwd 告诉你当前位置。
pwd# 输出:/home/user/Documents/Projects
4. mkdir —— 创建目录
mkdir test # 创建一个目录mkdir -p a/b/c # 创建多层目录,a/b/c 一次性建好mkdir test1 test2 # 同时建多个目录
💡 小贴士:-p 参数很好用,一次建多层,不用一层一层建。
5. rm —— 删除文件和目录
这条命令有点危险,删了就找不回来了。
rm file.txt # 删除文件rm -r folder # 删除目录(必须加 -r)rm -rf folder # 删除目录且不提示确认rm -i file.txt # 删除前确认
⚠️ 注意:
- rm -rf 没确认提示,慎用,别手抖敲成 rm -rf /(会删掉整个系统)
6. cp —— 复制
cp file1.txt file2.txt # 复制一份叫 file2cp file.txt /home/backup/ # 复制到其他目录cp -r folder1 folder2 # 复制目录(必须加 -r)
7. mv —— 移动或重命名
mv 能移动文件,也能改名字。
mv old.txt new.txt # 重命名mv file.txt /home/docs/ # 移动到其他目录mv *.txt /home/docs/ # 把所有 txt 文件移走
8. touch —— 创建空文件
touch newfile.txt # 创建空文件touch a.txt b.txt # 同时创建多个
有时候脚本需要判断文件是否存在,先 touch 一个占位。
9. cat —— 查看文件内容
小文件用 cat,大文件别用,会刷屏。
cat file.txt # 显示全部内容cat -n file.txt # 带行号显示cat a.txt b.txt > c.txt # 把 a 和 b 合并成 c
10. more 和 less —— 分页看大文件
文件太大,cat 会刷屏,用这两个分页看。
more largefile.txt # 按空格翻页,按 q 退出less largefile.txt # 能上下翻,还能搜索(按 / 输入关键词)
💡 小贴士:less 比 more 好用,大文件建议用 less。
11. head 和 tail —— 只看开头或结尾
head file.txt # 显示前 10 行head -n 20 file.txt # 显示前 20 行tail file.txt # 显示后 10 行tail -n 50 file.txt # 显示后 50 行tail -f logfile.txt # 实时查看尾部(监控日志常用)
💡 小贴士:tail -f 监控日志特别有用,能实时看到新内容。
12. find —— 找文件
不知道文件在哪,find 帮你找。
find /home -name "*.txt" # 在 home 目录找所有 txt 文件find . -name "test*" # 在当前目录找 test 开头的find / -size +100M # 找大于 100M 的文件find /home -type d # 只找目录find . -mtime -7 # 找最近 7 天修改过的
13. grep —— 搜文件内容
在文件里找关键词,grep 是神器。
grep "error" logfile.txt # 找 error 这个词grep -i "error" logfile.txt # 忽略大小写grep -n "error" logfile.txt # 显示行号grep -r "error" /home/logs/ # 搜索整个目录grep -v "error" logfile.txt # 显示不包含 error 的行
配合其他命令更强:
cat logfile.txt | grep "error"ps aux | grep nginx # 查找 nginx 进程
14. ln —— 创建链接
链接分软链接和硬链接,软链接类似快捷方式。
ln -s /home/file.txt link.txt # 创建软链接(常用)ln /home/file.txt hardlink.txt # 创建硬链接
💡 小贴士:软链接更常用,删了原文件,软链接会失效。
15. tree —— 树状显示目录
比 ls 更直观,能看到层级结构。
tree # 显示当前目录结构tree -L 2 # 只显示 2 层深度tree /home # 显示指定目录
💡 小贴士:没有 tree 要先安装:yum install tree 或 apt install tree。
16. file —— 查看文件类型
文件没后缀名,不知道是什么,file 告诉你。
file photo.jpg # 输出:photo.jpg: JPEG image datafile script.sh # 输出:script.sh: shell script
📝 二、文件内容处理
17. echo —— 输出文本
echo "Hello World" # 输出文字echo "Hello" > file.txt # 写入文件(覆盖)echo "Hello" >> file.txt # 追加到文件末尾echo $PATH # 输出环境变量
18. wc —— 统计
wc file.txt # 行数、字数、字节数wc -l file.txt # 只显示行数wc -w file.txt # 只显示字数
19. sort —— 排序
sort file.txt # 按字母排序sort -n file.txt # 按数字排序sort -r file.txt # 反向排序sort -u file.txt # 排序并去重
20. uniq —— 去重
uniq file.txt # 去除连续重复行uniq -c file.txt # 显示每行出现次数sort file.txt | uniq # 先排序再去重(更彻底)
💡 小贴士:uniq 只去连续重复,配合 sort 用效果更好。
21. cut —— 提取列
cut -d ',' -f 1 file.csv # 用逗号分隔,取第 1 列cut -d ':' -f 1,3 /etc/passwd # 用冒号分隔,取第 1 和 3 列cut -c 1-5 file.txt # 取每行第 1-5 个字符
22. diff —— 比较差异
diff file1.txt file2.txt # 显示差异diff -u file1.txt file2.txt # 用 unified 格式(更易读)diff -r folder1 folder2 # 比较两个目录
23. sed —— 替换文本
sed 功能强大,最常用的是替换。
sed 's/old/new/' file.txt # 替换每行第一个 oldsed 's/old/new/g' file.txt # 替换所有 old(g 表示全局)sed -i 's/old/new/g' file.txt # 直接修改文件sed '/^$/d' file.txt # 删除空行
24. awk —— 文本处理
awk 比 sed 更强,能按列处理还能计算。
awk '{print $1}' file.txt # 打印第 1 列awk -F ',' '{print $1,$3}' file.csv # 用逗号分隔,打印第 1、3 列awk '{sum += $1} END {print sum}' numbers.txt # 计算第 1 列总和awk '$3 > 100' file.txt # 打印第 3 列大于 100 的行
💡 小贴士:awk 适合处理结构化文本,比如日志分析。
25. tr —— 字符转换
tr 'a-z' 'A-Z' file.txt # 小写转大写tr -d '0-9' file.txt # 删除所有数字tr -s ' ' file.txt # 多个空格压缩成一个
26. tee —— 同时输出到屏幕和文件
tee output.txt # 输出到屏幕并写入文件ls | tee list.txt # ls 结果显示在屏幕并保存
📦 三、压缩和解压
27. tar —— 打包压缩(最常用)
tar 是 Linux 最常用的打包工具。
tar -cvf archive.tar folder # 打包(不压缩)tar -czvf archive.tar.gz folder # 打包并用 gzip 压缩tar -cjvf archive.tar.bz2 folder # 打包并用 bzip2 压缩tar -xvf archive.tar # 解包tar -xzvf archive.tar.gz # 解压 gzip 压缩的tar -xzvf archive.tar.gz -C /home/ # 解压到指定目录
参数解释:
💡 小贴士:打包用 czvf,解压用 xzvf,记住这俩就够了。
28. gzip 和 gunzip —— gzip 压缩解压
gzip file.txt # 压缩,生成 file.txt.gz(原文件消失)gzip -k file.txt # 压缩但保留原文件gunzip file.txt.gz # 解压
💡 小贴士:gzip 只能压缩单个文件,要压缩多个先用 tar 打包。
29. zip 和 unzip —— zip 格式
zip 格式 Windows 上很常见。
zip archive.zip file1 file2 # 压缩多个文件zip -r archive.zip folder # 压缩目录unzip archive.zip # 解压unzip archive.zip -d /home/ # 解压到指定目录
🖥️ 四、系统信息查看
30. uname —— 查看系统信息
uname -a # 显示所有系统信息uname -r # 只显示内核版本uname -m # 显示系统架构
31. hostname —— 主机名
hostname # 显示主机名hostnamectl set-hostname newname # 永久设置主机名
32. uptime —— 运行时间和负载
uptime# 输出:10:30:00 up 5 days, load average: 0.5, 0.3, 0.1
load average 是系统负载,三个数分别是 1、5、15 分钟平均值。超过 CPU 核心数就说明负载较高。
33. free —— 内存使用
free # 显示内存(单位 KB)free -h # 用 MB/GB 显示,更直观
💡 小贴士:看内存够不够,主要看 available。
34. df —— 磁盘使用
df # 显示磁盘使用df -h # 用 MB/GB 显示df -i # 显示 inode 使用情况
💡 小贴士:inode 满了也无法创建新文件,有时空间还有但 inode 满了。
35. du —— 目录占用
du folder # 显示目录占用du -h folder # 用 MB/GB 显示du -sh folder # 只显示总大小du -h --max-depth=1 folder # 只显示 1 层
36. top —— 实时系统监控
top 是查看系统状态的"神器"。
进入 top 后:
37. htop —— 更友好的监控
htop 比 top 界面更美观,能鼠标操作。
💡 小贴士:没有 htop 要先安装:yum install htop 或 apt install htop。
⚙️ 五、进程管理
38. ps —— 查看进程
ps # 显示当前用户的进程ps aux # 显示所有进程详细信息ps aux | grep nginx # 查找 nginx 进程
39. pgrep 和 pkill —— 查找和杀死进程
pgrep nginx # 查找 nginx 进程的 PIDpkill nginx # 杀死所有 nginx 进程pkill -9 nginx # 强制杀死
💡 小贴士:比 ps | grep 再 kill 方便多了。
40. kill —— 杀死进程
kill 1234 # 杀死 PID 1234kill -9 1234 # 强制杀死
常用信号:
41. nohup —— 后台运行不中断
SSH 断开后进程会被杀,nohup 让它在后台持续运行。
nohup ./script.sh & # 后台运行,输出到 nohup.outnohup ./script.sh > output.log 2>&1 & # 输出到指定文件
💡 小贴士:& 表示后台运行,2>&1 表示错误输出也写进文件。
42. jobs、fg、bg —— 作业控制
jobs # 查看后台作业fg %1 # 把作业 1 调到前台bg %1 # 把作业 1 放到后台继续Ctrl+Z # 暂停当前前台进程Ctrl+C # 终止当前进程
🌐 六、网络相关
43. ifconfig —— 查看网络接口
ifconfig # 显示所有网络接口ifconfig eth0 # 只显示 eth0
💡 小贴士:CentOS 7+ 可能没有 ifconfig,用 ip 命令替代。
44. ip —— 新一代网络配置
ip addr # 显示所有 IPip addr show eth0 # 显示 eth0 的 IPip link set eth0 up # 启用网卡ip route # 显示路由表
45. ping —— 测试网络连通性
ping 192.168.1.1 # ping IPping www.baidu.com # ping 域名ping -c 5 192.168.1.1 # ping 5 次后停止
💡 小贴士:ping 不通不一定是网络问题,可能对方禁 ping 或防火墙拦截。
46. traceroute —— 查看网络路径
traceroute www.baidu.com # 查看经过哪些路由
能看到网络包经过哪些路由器,哪一段慢。
47. nslookup 和 dig —— DNS 查询
nslookup www.baidu.com # 查询域名解析dig www.baidu.com # 更详细的 DNS 信息
48. netstat —— 网络连接和端口
netstat # 显示所有网络连接netstat -tunlp # 显示 TCP/UDP 端口和进程netstat -an # 显示所有连接
💡 小贴士:看端口占用常用:netstat -tunlp | grep 80
49. ss —— 新一代网络统计
ss 比 netstat 更快。
ss # 显示所有 socketss -tunlp # 显示 TCP/UDP 端口和进程ss -tan | grep :80 # 查看端口 80 的连接
50. curl —— 发送 HTTP 请求
curl 功能很强,测试 API、下载文件都能用。
curl http://www.baidu.com # 获取网页内容curl -I http://www.baidu.com # 只获取响应头curl -o file.html http://www.baidu.com # 保存到文件curl -X POST -d "data=test" http://example.com/api # POST 请求
51. wget —— 下载文件
wget http://example.com/file.zip # 下载文件wget -c http://example.com/file.zip # 断点续传wget -r http://example.com/ # 递归下载整个网站
52. ssh —— 远程连接
ssh user@192.168.1.100 # 连接远程服务器ssh -p 2222 user@192.168.1.100 # 指定端口ssh -i key.pem user@192.168.1.100 # 使用密钥登录
53. scp —— 远程复制文件
scp file.txt user@192.168.1.100:/home/ # 上传文件到远程scp user@192.168.1.100:/home/file.txt ./ # 从远程下载scp -r folder user@192.168.1.100:/home/ # 上传目录
👤 七、用户和权限管理
54. useradd —— 创建用户
useradd username # 创建用户useradd -m username # 创建用户并建主目录useradd -s /bin/bash username # 指定 shell
55. userdel —— 删除用户
userdel username # 删除用户userdel -r username # 删除用户和主目录
56. passwd —— 设置密码
passwd # 修改自己的密码passwd username # 修改指定用户密码passwd -l username # 锁定用户密码passwd -u username # 解锁用户密码
57. su —— 切换用户
su # 切换到 rootsu username # 切换到指定用户su - username # 切换用户并加载环境变量
💡 小贴士:su - 会切换环境,su 只切换用户。
58. sudo —— 以 root 权限执行
普通用户需要 root 权限执行某些命令,用 sudo。
sudo command # 以 root 权限执行sudo -l # 查看自己能用 sudo 执行哪些命令
59. chmod —— 修改文件权限
Linux 文件权限分用户(u)、组(g)、其他人(o)。有读(r=4)、写(w=2)、执行(x=1)三种。
chmod 755 file.sh # 用户全权限,组和其他人可读可执行chmod 644 file.txt # 用户读写,组和其他人只读chmod +x file.sh # 给所有人添加执行权限chmod -R 755 folder # 递归修改目录权限
💡 小贴士:常用权限组合:
60. chown —— 修改文件所有者
chown user file.txt # 改用户chown user:group file.txt # 改用户和组chown -R user:group folder # 递归修改目录
💾 八、磁盘管理
61. fdisk —— 磁盘分区
fdisk -l # 查看所有磁盘分区fdisk /dev/sdb # 对 sdb 磁盘分区
进入 fdisk 后:
62. mkfs —— 格式化分区
mkfs.ext4 /dev/sdb1 # 格式化为 ext4mkfs.xfs /dev/sdb1 # 格式化为 xfs
63. mount 和 umount —— 挂载和卸载
mount /dev/sdb1 /mnt # 挂载分区到 /mntumount /mnt # 卸载
💡 小贴士:永久挂载要写入 /etc/fstab 文件。
📚 九、软件包管理
64. yum —— CentOS/RHEL 软件包管理
yum install package # 安装软件包yum remove package # 删除软件包yum update # 更新所有软件包yum search keyword # 搜索软件包yum list installed # 列出已安装软件包
65. apt —— Debian/Ubuntu 软件包管理
apt install package # 安装软件包apt remove package # 删除软件包apt update # 更新软件源apt upgrade # 升级所有软件包apt search keyword # 搜索软件包apt autoremove # 清理不需要的依赖包
💡 小贴士:apt 是 apt-get 的简化版,推荐用 apt。
66. pip —— Python 包管理
pip install package # 安装 Python 包pip uninstall package # 删除 Python 包pip list # 列出已安装包pip freeze # 导出依赖列表pip install -r requirements.txt # 从文件安装依赖
67. npm —— Node.js 包管理
npm install package # 安装包npm install -g package # 全局安装npm uninstall package # 删除包npm list # 列出已安装包npm run script # 运行脚本
🔧 十、服务管理
68. systemctl —— CentOS 7+/Ubuntu 16+ 服务管理
systemctl start service # 启动服务systemctl stop service # 停止服务systemctl restart service # 重启服务systemctl status service # 查看服务状态systemctl enable service # 设置开机自启systemctl disable service # 关闭开机自启systemctl list-units --type=service # 列出所有服务
69. journalctl —— 查看系统日志
journalctl # 查看所有日志journalctl -u nginx # 只看 nginx 服务日志journalctl -f # 实时查看日志journalctl --since today # 只看今天的日志
🔌 十一、系统关机和重启
70. shutdown —— 关机
shutdown # 一分钟后关机shutdown -h now # 立即关机shutdown -h +10 # 10 分钟后关机shutdown -c # 取消关机
71. reboot —— 重启
⏰ 十二、定时任务
72. crontab —— 定时任务管理
crontab -l # 查看定时任务crontab -e # 编辑定时任务crontab -r # 删除所有定时任务
定时任务格式:分 时 日 月 周 命令
例子:
# 每分钟执行* * * * * /path/script.sh# 每天 8 点执行0 8 * * * /path/script.sh# 每周一 8 点执行0 8 * * 1 /path/script.sh
🛠️ 十三、其他实用命令
73. history —— 命令历史
history # 显示所有历史命令history 10 # 显示最近 10 条!10 # 执行第 10 条历史命令!! # 执行上一条命令
74. alias —— 设置别名
alias # 显示所有别名alias ll='ls -l' # 设置 ll 别名unalias ll # 删除别名
💡 小贴士:写进 ~/.bashrc 永久生效。
75. man —— 查看命令手册
man ls # 查看 ls 命令手册man -k keyword # 搜索包含关键词的手册
76. which —— 查找命令路径
77. locate —— 快速查找文件
💡 小贴士:locate 比 find 快,因为它搜索预先建立的数据库。需要定期更新:updatedb。
78. xargs —— 构建命令行参数
find . -name "*.txt" | xargs rm # 找出所有 txt 文件并删除cat urls.txt | xargs -n 1 curl # 每行一个参数执行 curl
79. dd —— 复制和转换文件
dd 功能很强,常用于磁盘操作。
dd if=/dev/sda of=disk.img # 复制磁盘到文件dd if=/dev/zero of=test.bin bs=1M count=100 # 创建 100M 文件
80. time —— 测量命令执行时间
📋 小白入门建议
这篇整理了 140+ 条命令,实际经常用的也就 30-40 个,把这些练熟就够了。
几点建议:
1️⃣ 先把文件操作练熟:ls、cd、mkdir、rm、cp、mv 这几个是基本功,必须掌握
2️⃣ grep、find、tar 三个是高频命令:务必学会
3️⃣ 遇到不会的命令,先 man 一下:手册比百度靠谱
4️⃣ 建个自己的命令速查表:常用的记下来,忘了就翻
有问题欢迎留言讨论,这篇会持续更新。
📌 建议收藏,以后遇到问题直接翻对应分类,省时省力。