1. Linux基础命令入门指南
作为一位使用Linux系统超过十年的老用户,我经常被问到如何快速掌握Linux基础命令。今天我将分享最实用的20个基础命令及其应用场景,这些命令构成了Linux日常操作的骨架。无论你是系统管理员、开发者还是普通用户,掌握这些命令都能显著提升工作效率。
Linux命令行的强大之处在于其简洁高效。与图形界面相比,命令行能更快完成复杂操作,特别是在远程服务器管理、批量文件处理等场景。我仍记得第一次用grep命令在数千个日志文件中快速定位问题的震撼——这种效率是GUI工具难以企及的。
2. 文件与目录操作命令
2.1 导航与查看命令
pwd命令是每个Linux用户的起点。它像是一个路标,告诉你当前所处的位置。当你在复杂的目录结构中迷失时,只需输入:
bash复制$ pwd
/home/user/projects/linux-commands
ls命令则是你的"眼睛"。添加-l参数可以看到详细信息,-a显示隐藏文件(以点开头的文件),而-h让文件大小更易读:
bash复制$ ls -lah
total 48K
drwxr-xr-x 5 user user 4.0K Jun 15 10:30 .
drwxr-xr-x 12 user user 4.0K Jun 14 09:15 ..
-rw-r--r-- 1 user user 220 Jun 10 14:25 .bashrc
经验之谈:使用
ls -lht可以按时间倒序列出文件,这在查找最新修改的文件时特别有用。
2.2 目录操作命令
cd是使用最频繁的命令之一。几个实用技巧:
cd ~:回到家目录cd -:返回上一个目录cd ../..:向上移动两级目录
mkdir创建目录时,使用-p参数可以自动创建不存在的父目录:
bash复制$ mkdir -p project/{src,doc,test}
这会在project目录下同时创建src、doc和test三个子目录,省去多次创建的麻烦。
3. 文件操作核心命令
3.1 文件查看与编辑
cat命令虽然简单,但结合重定向非常强大。例如快速创建文件:
bash复制$ cat > hello.txt <<EOF
> Hello Linux!
> This is a test file.
> EOF
less是查看大文件的最佳工具。它支持搜索(/键)、跳转(G到文件末尾)等操作,比more命令更强大。
3.2 文件操作命令
cp命令的-r参数用于复制目录,而-i参数会在覆盖前询问,避免误操作:
bash复制$ cp -ri old_dir/ new_dir/
mv命令除了移动文件,也是重命名的标准方式。注意:移动大文件时,使用rsync更可靠。
rm命令要格外小心。建议新手先使用-i参数,或者设置别名:
bash复制alias rm='rm -i'
致命警告:永远不要执行
rm -rf /或类似命令,这会删除系统所有文件!
4. 系统信息与进程管理
4.1 系统状态命令
df显示磁盘空间,加上-h参数更友好:
bash复制$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 15G 33G 32% /
free查看内存使用情况,-m以MB为单位显示:
bash复制$ free -m
total used free shared buff/cache available
Mem: 7982 1523 4201 123 2257 6053
Swap: 2047 0 2047
4.2 进程管理命令
ps命令的常用组合:
bash复制$ ps aux | grep nginx
显示所有进程并过滤出nginx相关进程。
top是交互式进程查看器。按M按内存排序,P按CPU排序,q退出。
kill终止进程时,先用-15(SIGTERM)温和终止,无效时再用-9(SIGKILL)强制终止:
bash复制$ kill -15 1234
$ kill -9 1234
5. 网络与权限管理
5.1 网络相关命令
ping测试网络连通性,-c指定次数:
bash复制$ ping -c 4 google.com
ifconfig(旧)或ip addr(新)查看网络接口信息:
bash复制$ ip addr show eth0
netstat查看网络连接,常用参数组合:
bash复制$ netstat -tulnp
5.2 权限管理命令
chmod修改权限的数字表示法:
- 4 = 读(r)
- 2 = 写(w)
- 1 = 执行(x)
例如设置脚本可执行:
bash复制$ chmod 755 script.sh
chown改变文件所有者:
bash复制$ chown user:group file.txt
6. 文本处理三剑客
6.1 grep文本搜索
grep是文本搜索利器,常用参数:
-i:忽略大小写-v:反向匹配-r:递归搜索-n:显示行号
示例:在项目中搜索所有包含"error"的Python文件:
bash复制$ grep -rn 'error' --include='*.py' .
6.2 sed流编辑器
sed适合批量替换文本。例如替换文件中的所有"old"为"new":
bash复制$ sed -i 's/old/new/g' file.txt
6.3 awk文本分析
awk适合处理结构化文本。例如显示ps输出的前两列:
bash复制$ ps aux | awk '{print $1,$2}'
7. 实用技巧与常见问题
7.1 命令组合技巧
管道(|)将前一个命令的输出作为后一个命令的输入:
bash复制$ cat access.log | grep "404" | awk '{print $7}' | sort | uniq -c | sort -nr
这行命令分析日志中404错误的URL及其出现次数,按频率排序。
7.2 常见问题解决
问题1:命令找不到?
- 检查命令是否拼写错误
- 使用
which cmd查看命令位置 - 检查
$PATH变量是否包含命令所在目录
问题2:权限被拒绝?
- 使用
sudo以root权限执行 - 检查文件权限(
ls -l) - 必要时用
chmod或chown修改权限
问题3:磁盘空间不足?
- 使用
df -h查看磁盘使用情况 - 用
du -sh *查看当前目录各文件/目录大小 - 查找并删除大文件/日志
7.3 提高效率的技巧
- 使用
history查看命令历史,用!编号快速执行历史命令 - 设置常用命令的别名:
bash复制alias ll='ls -lah'
alias gs='git status'
- 使用
tab键自动补全命令和文件名 - 学习基本的bash脚本自动化重复任务
掌握这些基础命令后,你会发现Linux命令行不再是障碍,而是提升效率的利器。记住,最好的学习方式是实践——创建一个测试目录,尝试各种命令组合,观察它们的效果。遇到问题时,别忘了Linux强大的帮助系统:man 命令名或命令名 --help。
