服务器测评网
我们一直在努力

linux命令习题

Linux命令习题:从基础到进阶的实践指南

Linux命令是系统管理和开发的核心技能,通过习题练习可以快速掌握命令行的使用方法,本文将从基础文件操作、系统管理、文本处理、网络工具和Shell脚本五个维度,提供一系列精心设计的习题,帮助读者逐步提升Linux命令的应用能力。

linux命令习题

基础文件与目录操作

习题1:在当前用户家目录下创建一个名为project的文件夹,并在其中创建三个子文件夹srcdocslogs
解答

mkdir -p ~/project/{src,docs,logs}  

-p参数确保父目录存在,避免因目录已报错。

习题2:将/etc/passwd文件复制到project/docs目录,并重命名为users.txt
解答

cp /etc/passwd ~/project/docs/users.txt  

习题3:使用ls命令以长格式列出project目录及其子目录的所有文件,包括隐藏文件,并按修改时间倒序排列。
解答

ls -laR ~/project | sort -k 8 -r  

-l显示详细信息,-a包含隐藏文件,-R递归列出子目录,sort -k 8 -r按第8列(修改时间)倒序。

系统管理与监控

习题4:查看当前系统的CPU使用率,并找出占用CPU最高的三个进程。
解答

top -b -n 1 | head -n 12 | tail -n 6  
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 4  

top-b -n 1以批处理模式运行一次,ps通过--sort按CPU使用率排序。

习题5:查看系统内存使用情况,并计算可用内存百分比。
解答

free -h | awk 'NR==2{printf "可用内存: %.2f%%\n", $7/$2*100}'  

free -h以人类可读格式显示内存,awk提取第二行(内存总览)并计算可用内存比例。

习题6:查找最近24小时内修改过的.log文件,并移动到project/logs目录。
解答

linux命令习题

find /var/log -name "*.log" -mtime -1 -exec mv {} ~/project/logs/ \;  

find-mtime -1匹配24小时内修改的文件,-exec对结果执行移动操作。

文本处理与过滤

习题7:从users.txt中提取所有以root开头的行,并输出到project/src/admins.txt
解答

grep "^root" ~/project/docs/users.txt > ~/project/src/admins.txt  

^在正则中表示行首。

习题8:统计users.txt中每行出现的冒号()数量,并输出总数。
解答

grep -o ":" ~/project/docs/users.txt | wc -l  

-o只匹配符合条件的字符,wc -l统计行数(即冒号总数)。

习题9:将users.txt的第三行到第五行内容反转顺序后输出。
解答

sed -n '3,5p' ~/project/docs/users.txt | tac  

sed -n '3,5p'提取指定行,tac反转行顺序(与cat相反)。

网络工具与进程管理

习题10:检查本地80端口是否被占用,并显示占用进程的PID。
解答

netstat -tuln | grep ":80 " || echo "端口未被占用"  
ss -tuln | grep ":80 " | awk '{print $7}'  

netstatss均可查看端口状态,awk提取进程PID。

习题11:下载http://example.com/file.zip,并限制下载速度为1MB/s。
解答

linux命令习题

wget --limit-rate=1m http://example.com/file.zip  

--limit-rate参数控制下载速率。

习题12:终止所有名为nginx的进程。
解答

pkill nginx  

pkill通过进程名终止进程,若需强制终止可加-9

Shell脚本综合练习

习题13:编写一个脚本backup.sh,将project目录压缩为project_backup_YYYYMMDD.tar.gz,并删除30天前的备份文件。
解答

#!/bin/bash
DATE=$(date +%Y%m%d)
tar -czf ~/project_backup_$DATE.tar.gz ~/project
find ~ -name "project_backup_*.tar.gz" -mtime +30 -delete

保存后通过chmod +x backup.sh赋予执行权限。

习题14:使用循环检测http://example.com是否可访问,若不可访问则每5秒重试,最多尝试10次。
解答

#!/bin/bash
for i in {1..10}; do
  if curl -s --head http://example.com >/dev/null; then
    echo "服务正常"
    exit 0
  else
    echo "尝试 $i/10,等待5秒..."
    sleep 5
  fi
done
echo "服务不可达"

通过以上习题,读者可以系统掌握Linux命令的实用技巧,从基础的文件操作到复杂的脚本编写,逐步练习将显著提升命令行效率,建议结合实际场景灵活运用,例如结合cron定时任务自动化备份,或通过awksed处理日志数据,持续实践是精通Linux命令的关键。

赞(0)
未经允许不得转载:好主机测评网 » linux命令习题