一、文件与目录操作
1. 创建空文件
题目:在~/test
目录下创建三个空文件file1.txt、file2.log、file3.conf
答案:
mkdir -p ~/test
touch ~/test/file{1.txt,2.log,3.conf}
2. 递归创建目录
题目:一次性创建/data/project/{src,backup,logs/2024}
目录结构
答案:
mkdir -p /data/project/{src,backup,logs/2024}
3. 复制目录
题目:将/etc/nginx
目录完整复制到/backup
目录下(保留权限)
答案:
cp -rp /etc/nginx /backup/
# -r 递归复制 -p 保留属性
4. 批量移动文件
题目:移动~/Downloads
目录下所有.mp4
文件到~/Videos
目录
答案:
mv ~/Downloads/*.mp4 ~/Videos/
5. 安全删除
题目:交互式删除/tmp
下所有.cache
文件
答案:
#法1
rm -i /tmp/*.cache
#法2
find /tmp -name "*.cache" -exec rm -i {} \;
6. 查看文件类型
题目:显示/bin/ls
的文件类型信息
答案:
file /bin/ls
7. 链接操作
题目:为/usr/bin/python3
创建硬链接mypython
到当前目录
答案:
ln /usr/bin/python3 ./mypython
8. 查找最近修改文件
题目:列出当前目录下24小时内修改过的文件
答案:
find . -mtime 0
9. 计算目录大小
题目:查看/var/log
目录的磁盘占用
答案:
du -sh /var/log
# -s汇总 -h易读格式
10. 文件内容统计
题目:统计/etc/passwd
的总行数
答案:
wc -l /etc/passwd
二、文本处理与查看
11. 查看文件头部
题目:显示access.log
的前20行内容
答案:
head -n 20 access.log
12. 查看文件尾部
题目:实时监控error.log
的新增内容
答案:
tail -f error.log
13. 过滤关键信息
题目:从system.log
中筛选包含"ERROR"的行
答案:
grep "ERROR" system.log
14. 行号显示
题目:查看config.conf
时显示行号
答案:
cat -n config.conf
# 或 nl config.conf
15. 排序去重
题目:对data.txt
内容排序并去重
答案:
sort data.txt | uniq
#或sort -u data.txt
16. 字段提取
题目:提取/etc/passwd
中所有用户名(第一列)
答案:
cut -d: -f1 /etc/passwd
17. 文本替换
题目:将file.txt
中所有"old"替换为"new"
答案:
sed 's/old/new/g' file.txt
三、权限与属性管理
18. 权限修改
题目:设置script.sh
为755权限(rwxr-xr-x)
答案:
chmod 755 script.sh
19. 所有权变更
题目:将/data
目录所有者改为www-data
用户
答案:
chown -R www-data:www-data /data
20. 特殊权限设置
题目:为/usr/bin/myscript
添加SUID权限
答案:
chmod u+s /usr/bin/myscript
21. 默认权限控制
题目:设置新建文件的默认权限为644
答案:
umask 022
22. ACL权限设置
题目:允许user1
用户读写/shared/file
答案:
setfacl -m u:user1:rw /shared/file
四、答案验证与扩展
操作验证技巧
# 查看命令执行结果
ls -l /backup/nginx # 验证复制结果
stat script.sh # 验证权限修改
危险操作防护
# 在rm命令前先确认文件列表
find /tmp -name "*.cache" -exec echo {} \;
# 确认无误后再执行删除
练习建议
-
分阶段练习:先完成基础题,掌握语法后再挑战进阶和综合题
-
善用手册:不熟悉的命令随时通过
man [命令]
或[命令] --help
查询 -
安全操作:危险操作(如
rm -rf
)可先在/tmp
目录测试 -
环境隔离:推荐使用虚拟机或Docker容器练习,避免影响主机系统
扩展练习建议
-
尝试用
awk
实现更复杂的文本处理 -
组合
find
和xargs
处理批量操作 -
编写Shell脚本自动化重复任务
通过系统化练习可快速掌握Linux核心操作技能,为运维、开发等岗位打下坚实基础。