前言
Linux 系统的强大源自其灵活的文件系统和丰富的命令行工具。本文将系统扩展 Linux 七大文件类型的操作命令,深度解析 100 + 实用命令技巧,帮助开发者全面掌握文件管理、系统监控、文本处理等核心技能,成为命令行操作的高手。
一、Linux 七大文件类型与操作命令(扩展 5 倍)
1. 普通文件(-)
核心特性
- 包含 ASCII 文本、二进制程序、数据文件等
- 用
-
标识,占系统文件的大多数
实用命令集
bash
# 文本文件操作
cat file.txt # 查看文件内容
more file.txt # 分页查看
less file.txt # 可回溯分页查看
head -n 20 file.txt # 查看前20行
tail -f log.txt # 实时监控日志
# 二进制文件处理
file program # 检测文件类型
ldd program # 查看依赖库
objdump -d program # 反汇编二进制文件
# 压缩文件操作
gzip file.txt # 压缩文件
gunzip file.txt.gz # 解压gzip文件
tar -czvf archive.tar.gz dir/ # 压缩目录
tar -xzvf archive.tar.gz # 解压tar.gz文件
zip -r archive.zip dir/ # 压缩为zip
unzip archive.zip # 解压zip
# 数据文件处理
convert image.jpg image.png # 图像格式转换(需安装imagemagick)
ffmpeg -i video.mp4 audio.mp3 # 提取音频(需安装ffmpeg)
高级技巧
bash
# 文本处理三剑客
grep "pattern" file.txt # 搜索匹配行
sed 's/old/new/g' file.txt # 替换文本
awk '{print $1}' file.txt # 格式化输出
# 二进制文件分析
strace program # 跟踪系统调用
ltrace program # 跟踪库函数调用
2. 目录文件(d)
核心特性
- 存储文件和子目录的索引结构
- 用
d
标识,是文件系统的骨架
实用命令集
bash
# 基础操作
mkdir dir # 创建目录
mkdir -p parent/child/sub # 递归创建目录
rmdir dir # 删除空目录
rm -rf dir # 递归删除目录
ls -la # 列出详细信息
ls -R # 递归列出所有内容
# 目录导航
cd dir # 进入目录
cd .. # 回到上级目录
cd ~ # 回到家目录
pwd # 显示当前路径
pushd dir; popd # 入栈出栈导航
# 目录信息
du -sh dir # 查看目录大小
df -h # 查看磁盘空间
find . -type d -name "dir" # 查找目录
高级技巧
bash
# 目录内容比较
diff dir1 dir2 # 比较目录内容
rsync -av dir1 dir2 # 同步目录
tree dir # 树形显示目录结构(需安装tree)
# 隐藏目录操作
ls -a # 显示隐藏文件
find . -type d -name ".*" # 查找隐藏目录
3. 块设备文件(b)
核心特性
- 存储设备如硬盘、U 盘的访问接口
- 以块为单位读写,用
b
标识
实用命令集
bash
# 设备查看
lsblk # 列出块设备
fdisk -l # 查看磁盘分区
blkid # 查看磁盘标签
# 磁盘操作
fdisk /dev/sda # 分区磁盘
mkfs.ext4 /dev/sda1 # 格式化分区
mount /dev/sda1 /mnt # 挂载分区
umount /mnt # 卸载分区
# 磁盘管理
dd if=/dev/zero of=file bs=1M count=10 # 创建测试文件
hdparm -t /dev/sda # 测试磁盘速度
smartctl -a /dev/sda # 检测磁盘健康(需安装smartmontools)
高级技巧
bash
# 磁盘镜像
dd if=/dev/sda of=disk.img # 克隆磁盘
dd if=disk.img of=/dev/sdb # 恢复磁盘镜像
partclone -s /dev/sda1 -o sda1.img # 分区克隆
4. 字符设备文件(c)
核心特性
- 串行设备如键盘、鼠标的访问接口
- 按字符流方式读写,用
c
标识
实用命令集
bash
# 设备查看
ls /dev/tty* # 查看终端设备
ls /dev/input/* # 查看输入设备
dmesg | grep tty # 查看终端日志
# 驱动管理
lsmod # 查看已加载模块
modprobe usbcore # 加载USB模块
rmmod usbcore # 卸载模块
dmesg | grep "usb" # 查看USB设备日志
# 串口操作
stty -F /dev/ttyS0 # 查看串口设置
echo "data" > /dev/ttyS0 # 向串口发送数据
cat /dev/ttyS0 # 从串口接收数据
高级技巧
bash
# 设备调试
hexdump /dev/input/mice # 查看鼠标输入
tcpdump -i eth0 # 抓包网络设备(需root)
strace -e open /dev/* # 跟踪设备打开操作
5. 符号链接文件(l)
核心特性
- 类似快捷方式,用
l
标识 - 指向另一个文件的引用
实用命令集
bash
# 链接操作
ln -s target link # 创建符号链接
ln file hardlink # 创建硬链接
readlink link # 查看链接目标
ls -l link # 查看链接信息
# 链接管理
find . -type l # 查找所有链接
broken-link-check . # 检查 broken link(需安装checklink)
symbolic-link-tree . # 可视化链接树(需安装sltt)
高级技巧
bash
# 链接高级应用
ln -sf new_target link # 强制更新链接
find . -type l -exec file {} \; # 查看链接目标类型
cp -a source dest # 复制时保留链接
6. 套接字文件(s)
核心特性
- 进程间网络通信接口
- 用
s
标识,常用于本地 IPC
实用命令集
bash
# 套接字查看
ls -la /var/run/*.sock # 查看系统套接字
netstat -ap | grep sock # 查看套接字连接
ss -a | grep sock # 更高效的套接字查看
# 套接字操作
nc -U socket.sock # 连接UNIX套接字
socat - UNIX-CONNECT:socket # 高级套接字工具
lsof -p PID | grep sock # 查看进程打开的套接字
高级技巧
bash
# 套接字编程辅助
strace -e socket,connect,accept # 跟踪套接字系统调用
ltrace -e socket # 跟踪套接字库调用
7. 命名管道文件(p)
核心特性
- 进程间通信的管道
- 用
p
标识,实现数据流传输
实用命令集
bash
# 管道操作
mkfifo pipe # 创建命名管道
ls -la pipe # 查看管道
cat < pipe # 从管道读取
echo "data" > pipe # 向管道写入
# 管道应用
grep "error" log.txt > pipe # 过滤日志到管道
tail -f pipe | mail user # 管道内容发送邮件
高级技巧
bash
# 管道高级应用
mkfifo -m 777 pipe # 创建可读写管道
named-pipe-food-poller pipe # 监控管道数据(需安装fpp)
二、命令行奇技淫巧(扩展 5 倍)
1. 高效文件操作
bash
# 高级文件查找
find . -type f -size +100M -exec du -sh {} \; # 查找大文件
find . -type f -name "*.log" -mtime -1 # 查找一天内修改的日志
locate "keyword" # 快速定位文件(需updatedb)
whereis command # 查找命令位置
which command # 查找命令执行路径
# 文件内容处理
grep -r "pattern" . --color # 递归搜索带颜色标记
grep -E "[0-9]{4}-[0-9]{2}-[0-9]{2}" log.txt # 日期格式匹配
sed -i 's/old/new/g' *.txt # 批量替换
awk '{sum+=$1} END {print sum}' numbers.txt # 数值求和
# 压缩技巧
tar -czvf --exclude="*.log" archive.tar.gz dir/ # 排除日志压缩
zip -r -0 archive.zip *.txt # 只存储不压缩
7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir/ # 极致压缩
2. 系统监控与进程管理
bash
# 资源监控
htop # 交互式进程监控
iotop # 磁盘I/O监控
iftop -i eth0 # 网络流量监控
glances # 系统综合监控
dstat -cdngy 1 # 每秒刷新系统统计
# 进程操作
ps -ef | grep "process" | awk '{print $2}' | xargs kill -9 # 批量杀进程
pgrep -f "process" # 按名称查PID
pstree -p PID # 查看进程树
nice -n 10 program # 降低进程优先级
renice -n -5 -p PID # 提高进程优先级
# 内存分析
free -h # 查看内存使用
vmstat 1 # 每秒查看虚拟内存状态
pmap PID # 查看进程内存映射
strace -p PID # 跟踪进程系统调用
3. 高级文本处理
bash
# 正则表达式进阶
grep -P "(https?|ftp)://[^\s/$.?#].[^\s]*" text.txt # 匹配URL
sed 's/\b[a-z]\+\b/\U&/g' text.txt # 转大写
awk '{print toupper($0)}' text.txt # 转大写(另一种方式)
tr 'a-z' 'A-Z' < text.txt > new.txt # 全局转大写
sort -u file.txt > unique.txt # 去重并排序
# 数据处理
cut -d: -f1 /etc/passwd # 提取用户名
paste file1 file2 # 合并文件列
join file1 file2 # 按公共列合并
split -l 100 bigfile # 分割文件为100行块
csplit -n 3 -f part bigfile '/ERROR/' '{*}' # 按ERROR分割文件
4. 网络与远程操作
bash
# 网络工具
curl -I https://example.com # 查看HTTP头
wget -r -p --html-extension example.com # 下载网站
nc -vz example.com 80 # 端口检测
traceroute example.com # 路由跟踪
mtr example.com # 网络质量监控
# 远程操作
ssh user@server "command" # 远程执行命令
scp file user@server:/path # 复制文件
rsync -avz local/ user@server:remote/ # 同步目录
sshfs user@server:/path local/mount # 远程挂载
telnet server port # 远程登录(不安全)
5. 命令行效率提升
bash
# 快捷键
Ctrl+A # 光标到行首
Ctrl+E # 光标到行尾
Ctrl+U # 删除到行首
Ctrl+K # 删除到行尾
Ctrl+R # 搜索历史命令
Alt+. # 粘贴上一个命令的最后参数
!! # 执行上一条命令
!$ # 上一条命令的最后参数
# 别名与脚本
alias ll='ls -la' # 创建别名
cat > ~/.bash_aliases # 永久保存别名
source ~/.bashrc # 生效别名
echo "alias mycmd='command'" >> ~/.bashrc # 脚本化别名
# 高级终端技巧
tmux new -s session # 创建会话
tmux attach -t session # 连接会话
screen -S session # 另一种会话工具
setterm -foreground red # 设置终端颜色
tput setaf 1; echo "red text"; tput sgr0 # 临时设置颜色
三、系统管理深度总结(扩展 5 倍)
1. 文件类型与对应命令分类
文件类型 | 标识 | 典型命令 | 应用场景 |
---|---|---|---|
普通文件 | - | cat, grep, tar | 文本处理、压缩 |
目录文件 | d | ls, mkdir, cd | 目录导航 |
块设备 | b | fdisk, mount, dd | 磁盘管理 |
字符设备 | c | dmesg, modprobe | 驱动管理 |
符号链接 | l | ln, readlink | 快捷引用 |
套接字 | s | netstat, ss | 进程通信 |
命名管道 | p | mkfifo, cat | 进程数据传输 |
2. 十大危险命令与安全替代
危险命令 | 风险 | 安全替代 |
---|---|---|
rm -rf /* | 删除整个系统 | rm -rf /path/ 或使用确认机制 |
mkfs /dev/sda | 格式化整个磁盘 | mkfs /dev/sda1 或使用图形工具 |
kill -9 1 | 杀死 init 进程 | 谨慎使用,优先 kill -15 |
dd if=/dev/zero of=/dev/sda | 擦除磁盘 | dd if=/dev/zero of=file |
chmod 777 / -R | 全系统读写执行 | 针对具体文件 chmod |
apt-get remove --purge * | 删除所有包 | 明确指定包名 |
update-rc.d -f * remove | 移除所有服务 | 逐个管理服务 |
ln -sf /dev/null /etc/passwd | 破坏用户认证 | 谨慎操作配置文件 |
echo "" > /etc/fstab | 破坏挂载配置 | 使用文本编辑器修改 |
export PATH= | 清空路径 | 谨慎修改 PATH |
3. 系统维护必备命令集
文件系统维护
fsck /dev/sda1 # 检查文件系统
mount -o remount,rw / # 重新挂载根目录为读写
df -h # 查看磁盘空间
du -sh /var/log # 查看日志大小
find / -size 0 -type f # 查找空文件
日志分析
grep "error" /var/log/syslog | less # 查找错误日志
journalctl -p 3 -xb # 查看错误级别日志
last | head # 查看登录历史
wtmpdump /var/log/wtmp | less # 查看详细登录记录
网络故障排查
ifconfig # 查看网络接口
ping example.com # 测试连通性
dig example.com # 域名解析
route -n # 查看路由表
iptables -L # 查看防火墙规则
4. 高效命令组合实例
日志分析组合
bash
# 查找今天的错误日志并统计
grep $(date +"%b %d") /var/log/syslog | grep "error" | wc -l
# 跟踪最新100行日志并高亮错误
tail -100f /var/log/syslog | grep --line-buffered "error" --color
# 分析日志中的IP地址
grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log/access.log | sort | uniq -c | sort -nr
磁盘空间清理
bash
# 查找大日志文件
find /var/log -type f -size +100M -exec du -sh {} \;
# 压缩一个月前的日志
find /var/log -type f -mtime +30 -name "*.log" -exec gzip {} \;
# 清理临时文件
find /tmp -type f -mtime +7 -exec rm {} \;
进程性能优化
# 找出占用CPU最高的5个进程
ps -eo pid,ppid,%cpu,%mem,comm | sort -k3 -r | head -6
# 找出占用内存最高的进程
ps -eo pid,ppid,%mem,comm | sort -k3 -r | head -6
# 监控进程内存变化
watch -n 1 "ps -p PID -o pid,ppid,%mem,comm"
在线
掌握 Linux 文件类型和命令行技巧是开发者进阶的必经之路。从基础的文件操作到复杂的系统维护,每一个命令都是提升效率的利器。记住:
- 危险命令务必谨慎执行,先理解后操作
- 善用
man
和--help
获取帮助 - 复杂操作先在测试环境验证
- 养成记录常用命令的习惯
- 持续学习新工具和技巧
看完了哥们的这篇文章看,恭喜你,已经入门!
接下来就是在实践中不断精进,享受命令行带来的高效与掌控感!