一、文件与目录操作
1. 基本操作
ls
:列出目录内容
ls -l # 显示详细信息(权限、大小、时间)
ls -a # 显示隐藏文件(以.开头的文件)
ls -lh # 显示文件大小(如KB/MB)
cd
:切换目录
cd ~ # 进入用户家目录
cd .. # 返回上级目录
cd - # 返回上一次所在的目录
pwd
:显示当前目录路径
pwd # 输出:/home/username/projects
mkdir
:创建目录
mkdir new_folder # 创建单层目录
mkdir -p parent/child # 递归创建多级目录
rm
:删除文件或目录
rm file.txt # 删除文件
rm -r folder/ # 递归删除目录(慎用!)
rm -f *.log # 强制删除所有.log文件(无确认)
cp
:复制文件/目录
cp source.txt dest.txt # 复制文件
cp -r src_dir/ dest_dir/ # 递归复制目录
mv
:移动或重命名
mv old.txt new.txt # 重命名文件
mv file.txt /tmp/ # 移动文件到/tmp目录
2. 文件内容查看
cat
:查看文件内容cat app.log # 显示整个文件内容 cat file1 file2 > merged # 合并多个文件
head
/tail
:查看文件开头/结尾head -n 10 app.log # 显示前10行 tail -f app.log # 实时追踪日志新增内容(调试神器)
less
:分页查看文件(支持搜索)less large_file.log # 按空格翻页,/keyword搜索,q退出
3. 文件查找
find
:按条件搜索文件find /var/log -name "*.log" # 查找/var/log下所有.log文件 find . -type f -mtime -7 # 查找当前目录下7天内修改过的文件 find /home -user root -exec rm {} \; # 查找并删除root用户的所有文件(危险!)
grep
:文本搜索工具grep "ERROR" app.log # 查找包含ERROR的行 grep -r "TODO" ./src/ # 递归搜索src目录下的TODO注释 grep -v "debug" file.txt # 排除包含debug的行
二、文本处理与管道
1. 文本处理三剑客
sed
:流编辑器(批量替换/删除)sed 's/foo/bar/g' file.txt # 将文件中所有foo替换为bar sed -i.bak 's/old/new/' config.conf # 直接修改文件并备份原文件
awk
:文本分析工具(按列处理)awk '{print $1}' access.log # 输出第一列(如IP地址) awk -F':' '{print $3}' /etc/passwd # 以冒号分隔,输出第三列(用户ID) awk '/ERROR/ {count++} END {print count}' app.log # 统计ERROR出现次数
sort
/uniq
:排序与去重sort file.txt | uniq -c # 排序后统计每行出现次数 ps aux | sort -nk 4 # 按内存使用率排序进程
2. 管道与重定向
管道
|
:将前一个命令的输出作为下一个命令的输入cat app.log | grep "ERROR" | wc -l # 统计ERROR出现的总行数
重定向
>
或
>>
:输出到文件echo "Hello" > output.txt # 覆盖写入文件 echo "World" >> output.txt # 追加到文件末尾
三、系统监控与进程管理
1. 资源监控
top
:实时查看系统资源占用top # 按CPU排序进程,按M切换内存排序
htop
(需安装):增强版交互式监控工具htop # 支持鼠标操作,颜色高亮
free
:查看内存使用free -h # 以GB/MB显示内存情况
df
/du
:磁盘空间分析df -h # 查看磁盘分区使用情况 du -sh /var/log/ # 统计/var/log目录总大小
2. 进程管理
ps
:查看进程状态ps aux | grep nginx # 查找nginx相关进程 ps -ef --forest # 显示进程树
kill
:终止进程kill -9 1234 # 强制终止PID为1234的进程 pkill -f "python app.py" # 根据名称杀死进程
nohup
:后台运行程序nohup ./start.sh > output.log 2>&1 & # 后台运行并将输出重定向到日志
四、权限与用户管理
1. 文件权限
chmod
:修改文件权限chmod 755 script.sh # 设置权限为rwxr-xr-x chmod +x script.sh # 添加可执行权限 chmod u=rw,go=r file.txt # 用户读写,组和其他只读
chown
:修改文件所有者chown user:group file.txt # 修改所有者和所属组
2. 用户与组
sudo
:以超级用户权限执行命令sudo apt update # 更新软件包列表(需管理员权限)
useradd
/usermod
:管理用户sudo useradd devuser # 创建新用户 sudo usermod -aG sudo devuser # 将用户加入sudo组
passwd
:修改密码passwd # 修改当前用户密码 sudo passwd root # 修改root密码(需sudo权限)
五、网络调试与工具
1. 网络连接
ping
:测试网络连通性ping google.com # 检查是否可达
curl
:发送HTTP请求curl -I http://example.com # 仅显示响应头 curl -O https://example.com/file.zip # 下载文件
wget
:下载文件wget -c http://example.com/large.iso # 断点续传下载
2. 端口与连接
netstat
/ss
:查看网络连接netstat -tulnp # 查看监听中的TCP/UDP端口 ss -s # 显示简化的统计信息
lsof
:列出打开的文件与端口lsof -i :8080 # 查看占用8080端口的进程
nc
(netcat):网络调试工具nc -zv 192.168.1.1 1-100 # 扫描目标主机的1-100端口
六、开发实用命令
1. 压缩与解压
tar
:归档与压缩tar -czvf archive.tar.gz folder/ # 压缩为gzip格式 tar -xzvf archive.tar.gz # 解压gzip文件
zip
/unzip
:处理zip文件zip -r project.zip project/ # 递归压缩目录 unzip project.zip -d dest/ # 解压到指定目录
2. 环境变量与路径
export
:设置环境变量export PATH=$PATH:/opt/bin # 临时添加路径 echo 'export PATH=$PATH:/opt/bin' >> ~/.bashrc # 永久生效
which
/whereis
:查找命令路径which python # 显示python命令的路径 whereis java # 查找Java相关文件
七、实战场景案例
1. 日志分析
# 统计Nginx日志中每个IP的访问次数(Top 10) cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10
2. 批量重命名文件
# 将所有.txt文件后缀改为.md for file in *.txt; do mv "$file" "${file%.txt}.md"; done
3. 监控高内存进程
watch -n 1 'ps aux --sort=-%mem | head -n 5' # 每秒刷新内存占用Top5进程
4. 快速搭建HTTP服务器
python3 -m http.server 8000 # 在当前目录启动HTTP服务(端口8000)