1. 为什么需要掌握这些基础命令?
第一次接触Linux终端的新手,往往会被黑底白字的命令行界面吓到。记得2008年我刚从Windows转Linux时,面对闪烁的光标完全不知所措——没有开始菜单,没有资源管理器,连复制文件都不知道该点哪里。直到导师告诉我:"在Linux世界里,命令行才是真正的超级权限。"
经过15年运维生涯的验证,我总结出20个使用频率最高的基础命令。这些命令就像学英语时的26个字母,虽然简单但构成了所有复杂操作的基础。掌握它们之后,你会发现:
- 90%的日常操作都能用命令行更快完成
- 服务器管理不再依赖图形界面
- 自动化脚本编写有了基础支撑
2. 文件操作核心命令
2.1 目录导航三剑客
pwd、ls、cd这三个命令构成了Linux目录操作的黄金三角:
bash复制# 查看当前所在路径(Print Working Directory)
pwd
# /home/username
# 列出目录内容(List)
ls -lh
# -l 显示详细信息 -h 人类可读的文件大小
# 切换目录(Change Directory)
cd /var/log # 绝对路径
cd ../.. # 相对路径
cd ~ # 返回用户主目录
经验:总在终端提示符显示完整路径(PS1='\w$ '),这样就不会迷路。用
ls -F还能区分文件类型(/表示目录,*表示可执行文件)
2.2 文件操作四重奏
创建、查看、复制、移动和删除是文件管理的基本功:
bash复制# 创建空文件或更新文件时间戳
touch newfile.txt
# 查看文件内容(适合小文件)
cat /etc/hosts
# 分页查看(适合大文件)
less /var/log/syslog
# 空格翻页,q退出,/搜索
# 复制文件(Copy)
cp file.txt backup/
cp -r dir1 dir2 # 递归复制目录
# 移动/重命名(Move)
mv old.txt new.txt
mv file.txt ~/Documents/
# 删除(Remove)
rm temporary_file
rm -rf dangerous_dir # 强制递归删除(慎用!)
血泪教训:永远不要在根目录执行
rm -rf *。有一次我误删了整个/usr目录,最后只能重装系统。
3. 系统信息查询命令
3.1 硬件资源监控
bash复制# 查看磁盘使用情况(Disk Free)
df -h
# Filesystem Size Used Avail Use% Mounted on
# /dev/sda1 50G 12G 36G 25% /
# 查看目录占用空间(Disk Usage)
du -sh /home
# 4.2G /home
# 内存使用情况(Memory)
free -m
# total used free
# Mem: 7982 4523 3459
3.2 进程管理命令
bash复制# 动态查看系统状态(类似任务管理器)
top
# 按q退出,按M按内存排序,按P按CPU排序
# 查看进程快照
ps aux | grep nginx
# USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
# root 1234 0.0 0.1 12345 678 ? S May01 0:00 nginx: master
# 终止进程
kill 1234
kill -9 1234 # 强制杀死(最后手段)
4. 网络与权限管理
4.1 网络诊断工具
bash复制# 测试网络连通性
ping google.com
# PING google.com (142.250.190.46) 56(84) bytes of data.
# 显示网络连接信息
netstat -tulnp
# Active Internet connections (only servers)
# Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
# 下载文件
wget https://example.com/file.zip
curl -O https://example.com/file.zip
4.2 权限管理基础
bash复制# 查看文件权限
ls -l
# -rw-r--r-- 1 user group 1234 May 1 10:00 file.txt
# 修改权限(chmod)
chmod 755 script.sh # 所有者rwx,组和其他rx
chmod +x script.sh # 添加执行权限
# 修改所有者(chown)
sudo chown user:group file.txt
权限数字表示法:r=4, w=2, x=1。755即(4+2+1)(4+1)(4+1)=rwxr-xr-x
5. 文本处理利器
5.1 grep文本搜索
bash复制# 在文件中搜索关键词
grep "error" /var/log/syslog
grep -i "warning" *.log # -i忽略大小写
grep -r "function" /project # 递归搜索目录
5.2 文本流处理
bash复制# 统计行数字数
wc -l access.log
# 1234 access.log
# 排序和去重
sort file.txt | uniq -c
# 3 apple
# 2 banana
# 实时查看日志新增内容
tail -f /var/log/nginx/access.log
6. 打包压缩命令
bash复制# 打包目录(不压缩)
tar -cvf archive.tar dir/
# 解包
tar -xvf archive.tar
# 使用gzip压缩
tar -czvf archive.tar.gz dir/
# 解压.gz
tar -xzvf archive.tar.gz
# 查看压缩包内容
tar -tf archive.tar
7. 用户与软件管理
7.1 用户账户操作
bash复制# 切换用户
su - username
sudo -i # 切换到root
# 添加用户
sudo useradd -m newuser
sudo passwd newuser # 设置密码
7.2 软件包管理
不同Linux发行版命令不同:
bash复制# Debian/Ubuntu
sudo apt update
sudo apt install nginx
sudo apt remove package
# RedHat/CentOS
sudo yum install httpd
sudo dnf remove package
8. 命令使用技巧
8.1 历史与补全
bash复制# 查看命令历史
history
!123 # 执行历史记录中第123条命令
!! # 上一条命令
!ssh # 执行最近以ssh开头的命令
# 使用Tab键补全命令和文件名
cd /usr/loc<Tab> # 自动补全为/usr/local/
8.2 组合命令
bash复制# 命令串联
command1 && command2 # 前一个成功才执行下一个
command1 || command2 # 前一个失败才执行下一个
# 管道传递数据
cat access.log | grep "404" | wc -l
# 统计404错误出现次数
# 输出重定向
ls > filelist.txt # 覆盖写入
ls >> filelist.txt # 追加写入
command 2> error.log # 错误输出到文件
9. 必须知道的危险命令
有些命令威力巨大,使用前务必三思:
bash复制rm -rf / # 删除根目录所有文件(系统毁灭)
:(){ :|:& };: # fork炸弹(会卡死系统)
dd if=/dev/random of=/dev/sda # 擦除磁盘
chmod -R 777 / # 全盘权限开放(安全灾难)
实际工作中,我会在~/.bashrc里给这些命令设置别名提醒:
bash复制alias rm='rm -i' # 删除前确认 alias chmod='chmod --preserve-root' alias chown='chown --preserve-root'
10. 我的命令行效率秘籍
-
善用别名:把长命令简化,例如:
bash复制alias ll='ls -alF' alias update='sudo apt update && sudo apt upgrade' -
配置好用的提示符:在~/.bashrc添加:
bash复制PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' -
使用命令替代:避免频繁切换目录
bash复制# 不用先cd到目录再操作 (cd /path/to/dir && command) -
掌握man手册:遇到不熟悉的命令时:
bash复制man ls # 查看完整手册 ls --help # 快速帮助 -
建立个人知识库:把常用命令保存到~/notes/cmd.md,用markdown分类整理
经过多年实践,我发现最有效的学习方法是:每天刻意练习3个新命令,在实际任务中应用它们。比如今天处理日志就用grep和awk,明天管理用户就练useradd和passwd。坚持一个月后,你会发现自己已经能流畅地用命令行完成大部分日常工作。
