1.基础文件与目录操作
2.文件查找与内容处理
3.文本编辑与数据处理
4.系统相关命令
5.综合练习
1.基础文件与目录操作
- 列出当前目录下所有文件(包括隐藏文件),并以长格式显示:
- 创建一个名为test_dir的目录,再在其中创建一个名为file1.txt的文件:
- mkdir -p test_dir
- touch test_dir/file1.txt
复制代码
- 拷贝file1.txt到当前目录,并重命名为file2.txt:
- cp test_dir/file1.txt file2.txt
复制代码
- 将file2.txt移动到test_dir目录下,并改名为moved_file.txt:
- mv file2.txt test_dir/moved_file.txt
复制代码
- 删除test_dir目录下的moved_file.txt文件:
- rm test_dir/moved_file.txt
复制代码
- 批量创建10个以test_开头、数字结尾的文件(如test_01.txt到test_10.txt):
- for i in {01..10}; do touch test_$i.txt; done
复制代码
- 在/tmp目录下递归创建dir1/dir2/dir3三级目录,并在dir3中创建test.txt:
- mkdir -p /tmp/dir1/dir2/dir3 && touch /tmp/dir1/dir2/dir3/test.txt
复制代码
- 将/etc/hosts文件拷贝到/tmp目录并改名为hosts_backup,同时保留属性:
- cp -a /etc/hosts /tmp/hosts_backup
复制代码
- 移动/tmp/dir1目录到当前用户家目录,并查看移动后的路径:
- mv /tmp/dir1 ~/ && echo "移动后路径: $(realpath ~/dir1)"
复制代码
- 删除/tmp目录下所有以tmp开头的文件(需确认提示):
- 批量创建5个带空格文件名的文件(如file 01.txt):
- for i in {01..05}; do touch "file $i.txt"; done
复制代码
- 用ls命令查看当前目录,按文件修改时间倒序排列并显示详细信息:
- 查看/usr/bin目录下文件数量(不包含子目录):
- 将~/.bashrc文件复制到当前目录,并重命名为bashrc_config:
- cp ~/.bashrc bashrc_config
复制代码 2.文件查找与内容处理
- find . -name "*.txt" | xargs wc -l
复制代码
- 实时查看/var/log/messages日志文件:
- tail -f /var/log/messages
复制代码
- 查看/usr/bin/python文件的属性信息:
- 查找/usr/share目录下大小超过10MB的文件:
- find /usr/share -type f -size +10M
复制代码
- 查看/var/log/messages日志中近10分钟的内容(假设日志按时间排序):
- tail -n 100 /var/log/messages | grep "$(date +'%b %d %H:%M')" -A 10
复制代码
- 用wc统计/usr/share/dict/words文件的单词数和字符数(若无该文件可跳过):
- wc -w -c /usr/share/dict/words
复制代码
- 查看/bin/bash文件的inode号,并通过inode号查找相同文件:
- ls -i /bin/bash | awk '{print $1}' | xargs find / -inum
复制代码
- 过滤/etc/passwd中以bash结尾的行(表示用户默认shell为bash):
- 查找/root目录下所有以.sh结尾且7天内未修改的文件:
- find /root -name "*.sh" -mtime +7
复制代码 3.文本编辑与数据处理
- 使用vim编辑test_vim.txt文件,输入内容并保存:
- 在test_vim.txt中查找包含test的行,并显示行号:
- grep -n "test" test_vim.txt
复制代码
- 提取/etc/passwd文件中每行的第一个字段(用户名):
- cut -d ':' -f 1 /etc/passwd
复制代码
- 使用awk统计/etc/passwd文件中的用户数量:
- awk -F ':' '{print $1}' /etc/passwd | wc -l
复制代码- grep -v "test" test_vim.txt
复制代码- vim /etc/nginx/nginx.conf
复制代码
- 用sed将test_vim.txt中的Linux替换为CentOS:
- sed -i 's/Linux/CentOS/g' test_vim.txt
复制代码
- 用awk提取/proc/meminfo中内存总量和空闲内存:
- awk '/MemTotal/ {print $2,$3} /MemFree/ {print $2,$3}' /proc/meminfo
复制代码
- 对/etc/group文件按第三列(GID)升序排序:
- 统计/var/log/secure中失败登录的次数:
- grep "Failed password" /var/log/secure | wc -l
复制代码
- 用cut提取ifconfig命令输出中的IPv4地址:
- ifconfig enp* | grep "inet " | cut -d ' ' -f 10
复制代码
- 过滤test_vim.txt中包含Hello或World的行:
- grep -E "Hello|World" test_vim.txt
复制代码
- 用tr将test_vim.txt中的小写字母转为大写:
- tr 'a-z' 'A-Z' < test_vim.txt
复制代码 4.系统相关命令
- ps -eo pid,ppid,user,comm,etimes | sort -k 5 -r | head -1
复制代码
- 模拟系统负载(用dd命令占用CPU,需Ctrl+C终止):
- dd if=/dev/zero of=/dev/null
复制代码
- 查看系统中所有用户的登录历史(需last命令支持):
- top -b -n 1 | head -20 | grep -v "^top" | sort -k 9 -r | head -5
复制代码- ps -ef | grep httpd | grep -v grep | awk '{print $2,"-",$6/1024,"MB"}'
复制代码- netstat -tuln | grep LISTEN
复制代码 5.综合练习
- 查找/var/log目录下7天前修改过的、以.log结尾的文件,并显示其修改时间:
- find /var/log -mtime +7 -name "*.log" -ls
复制代码
- 统计/usr/share/doc目录下所有文件的数量:
- find /usr/share/doc -type f | wc -l
复制代码- cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
- vim /etc/ssh/sshd_config
复制代码
- 过滤/var/log/secure日志中包含Failed password的行,并显示行号:
- grep -n "Failed password" /var/log/secure
复制代码
- 对/etc/services文件按端口号进行排序(端口号在第二列):
- sort -n -k 2 /etc/services
复制代码
- 查看/proc/cpuinfo文件,提取CPU核心数:
- grep "cpu cores" /proc/cpuinfo | uniq
复制代码
- 创建一个大小为100KB的文件,并计算其MD5值:
- dd if=/dev/zero of=100KB_file bs=1024 count=100
- md5sum 100KB_file
复制代码
- 将/etc/issue文件的内容追加到test_append.txt文件中:
- cat /etc/issue >> test_append.txt
复制代码
- 查找/var/log目录下所有日志文件,按大小降序排列并显示前5个:
- find /var/log -type f -name "*.log" -exec du -sh {} \; | sort -hr | head -5
复制代码
- 备份/etc目录下所有配置文件(以.conf结尾)到/backup目录:
- mkdir -p /backup && find /etc -name "*.conf" -exec cp {} /backup \;
复制代码
- 统计/usr/src目录下C语言文件(.c)的总行数(含空行):
- find /usr/src -name "*.c" | xargs wc -l
复制代码
- 用vim批量注释test_vim.txt中所有以#开头的行:
- 过滤/var/log/httpd/access_log中访问量最高的IP地址:
- grep -v "localhost" /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c | sort -nr | head -1
复制代码- dd if=/dev/zero of=1GB_file bs=1M count=1024
- ls -lh 1GB_file
- du -sh 1GB_file
复制代码- awk -F ':' '{if ($3 == $4) print $1,"UID=GID=",$3}' /etc/passwd
复制代码
- 用chattr给/etc/fstab文件添加不可修改属性,尝试修改并观察提示:
- chattr +i /etc/fstab
- echo "test" >> /etc/fstab
- chattr -i /etc/fstab
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |