1. Linux命令基础与学习路径
刚接触Linux系统的朋友往往会被命令行界面吓到,但掌握基础命令后你会发现,这个看似复杂的系统其实比图形界面更高效。我至今记得第一次用ls命令列出目录内容时的惊喜——原来不用鼠标也能完成文件管理。作为从Windows转战Linux的老用户,我想分享这些年积累的实用命令手册,特别适合新手作为日常参考。
Linux命令通常由三部分组成:命令本身、选项(以-或--开头)和参数。比如ls -l /home中,ls是命令,-l是选项,/home是参数。选项可以组合使用,像ls -la就同时使用了-l(长格式显示)和-a(显示隐藏文件)两个选项。
提示:所有Linux命令都支持
--help选项,输入命令名 --help可以快速查看用法说明,这比上网搜索更高效。
学习命令建议从以下路径循序渐进:
- 文件操作(ls/cd/mkdir等)
- 文本处理(cat/grep/awk等)
- 系统管理(ps/top/df等)
- 网络相关(ping/curl/ssh等)
- 权限管理(chmod/chown等)
2. 文件与目录操作命令
2.1 基础导航命令
pwd:显示当前工作目录的绝对路径。在复杂的目录结构中特别有用,避免"迷路"。
ls:我最常用的命令之一,有几个实用组合:
ls -l # 长格式显示(权限/所有者/大小/修改时间) ls -a # 显示隐藏文件(以.开头的文件) ls -lh # 人类可读的文件大小(自动转换为KB/MB) ls -t # 按修改时间排序cd:切换目录时,这些技巧能提升效率:
cd ~ # 返回家目录 cd - # 返回上一个目录 cd .. # 返回上级目录 cd ../../folder # 跨级跳转2.2 文件操作命令
cp:复制文件时,-r选项用于递归复制目录,-i选项在覆盖前提示确认:
cp file1.txt file2.txt # 基本复制 cp -r dir1 dir2 # 复制整个目录mv:移动或重命名文件。实测重命名大文件时,移动操作是瞬间完成的:
mv oldname.txt newname.txt # 重命名 mv file.txt /target/path/ # 移动文件rm:删除命令要格外小心!建议新手先用-i交互模式:
rm -i file.txt # 删除前确认 rm -rf dir # 强制递归删除目录(慎用!)警告:
rm -rf /会删除整个系统!建议设置alias rm='rm -i'在shell配置中。
3. 文本处理与查看命令
3.1 基础文本查看
cat:虽然简单但使用频率超高,几个实用场景:
cat file.txt # 查看内容 cat file1.txt file2.txt # 合并显示多个文件 cat > newfile.txt # 创建新文件(输入内容后Ctrl+D保存)less:查看大文件的神器,支持搜索(/关键词)和翻页(空格):
less /var/log/syslog # 查看系统日志3.2 文本处理三剑客
grep:文本搜索利器,我每天至少用20次:
grep "error" log.txt # 基础搜索 grep -i "warning" *.log # 忽略大小写 grep -r "function" /code # 递归搜索目录 grep -v "debug" output.log # 反向搜索(排除包含debug的行)awk:处理结构化文本(如日志)时无可替代:
awk '{print $1}' access.log # 打印第一列 awk -F: '{print $1}' /etc/passwd # 以冒号为分隔符 awk '$3 > 100 {print $0}' data.txt # 过滤第三列大于100的行sed:流编辑器,适合批量替换:
sed 's/foo/bar/g' file.txt # 全局替换 sed -i.bak 's/old/new/' config.ini # 直接修改文件(自动备份) sed '/pattern/d' file.txt # 删除匹配行4. 系统监控与管理命令
4.1 进程管理
ps:查看进程信息,我最常用的组合:
ps aux # 显示所有用户的所有进程 ps -ef | grep nginx # 查找特定进程top:实时系统监控工具。运行后按这些键更有用:
M:按内存使用排序P:按CPU使用排序1:显示所有CPU核心详情q:退出
htop:top的增强版(需安装),支持鼠标操作和彩色显示,强烈推荐。
4.2 磁盘与内存
df:磁盘空间检查,加上-h选项更友好:
df -h # 人类可读格式 df -h /home # 查看指定分区du:查看目录占用空间:
du -sh * # 查看当前目录各文件/文件夹大小 du -h --max-depth=1 /var # 查看/var下一级子目录大小free:内存使用情况,-m以MB为单位显示:
free -m5. 网络相关命令
5.1 连接测试
ping:基础网络测试,-c指定次数:
ping -c 4 google.com # 发送4个测试包traceroute:追踪网络路径(需安装):
traceroute example.comtelnet:测试端口连通性(很多系统默认未安装):
telnet example.com 805.2 文件传输
curl:网络请求神器,支持HTTP/FTP等协议:
curl -O https://example.com/file.zip # 下载文件 curl -I https://example.com # 只显示头部信息wget:另一个下载工具,更适合递归下载:
wget -c http://example.com/bigfile.iso # 断点续传 wget -r --level=1 http://example.com # 递归下载一级链接scp:安全拷贝,我每天同步文件都用它:
scp file.txt user@remote:/path/ # 上传 scp user@remote:/path/file.txt ./ # 下载 scp -r dir user@remote:/path/ # 递归拷贝目录6. 权限与用户管理
6.1 权限设置
chmod:改变文件权限,数字模式和符号模式都要会:
chmod 755 script.sh # 常用可执行权限 chmod +x program # 添加执行权限 chmod u=rw,g=r,o= file # 详细设置用户/组/其他权限chown:改变文件所有者:
chown user:group file.txt6.2 用户管理
sudo:以root权限执行命令,配置在/etc/sudoers中:
sudo apt update # 典型用法passwd:修改密码:
passwd # 修改当前用户密码 sudo passwd user # root修改其他用户密码7. 实用技巧与组合命令
7.1 命令组合
管道|是Linux最强大的特性之一,几个实用组合:
ps aux | grep nginx # 查找进程 cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr # 统计IP访问次数 find / -name "*.log" -type f -mtime +30 -exec rm {} \; # 删除30天前的日志7.2 历史命令
history:查看和重用历史命令的技巧:
history | grep "apt install" # 查找特定历史命令 !203 # 执行历史记录中第203条命令 !! # 执行上一条命令7.3 后台任务
&和nohup让命令在后台运行:
long_running_command & # 后台运行 nohup command > log.txt 2>&1 & # 退出终端仍继续运行8. 常见问题解决方案
8.1 命令找不到
如果遇到command not found:
- 检查拼写错误
- 用
which command查看是否安装 - 可能需要添加PATH:
export PATH=$PATH:/new/path8.2 权限不足
Permission denied时:
- 检查文件权限
ls -l - 尝试用
sudo - 可能需要修改权限或所有者
8.3 磁盘空间不足
快速定位大文件:
du -ah / | sort -rh | head -n 209. 进阶学习建议
掌握基础命令后,可以进一步学习:
- Shell脚本编程(自动化重复任务)
- 正则表达式(增强文本处理能力)
- SSH高级用法(端口转发等)
- 系统性能分析工具(vmstat, iostat等)
建议在~/.bashrc中添加常用别名提高效率:
alias ll='ls -alF' alias grep='grep --color=auto' alias update='sudo apt update && sudo apt upgrade'