常用特殊符号的使用

Linux系统下通配符起到了很大的作用,对于不确定的文档名称可以使用以下特殊字符表示

*常用的特殊符号,在文件名上,用来代表任意多个任意字符

? 常用的特殊符号,在文件名上,用来代表任意单个任意字符

[0-9] #在文件名上,用来代表多个字符或连续范围中的一个,若无则忽略

{a,b,cd,abcd} #在文件名上,用来代表多组不同的字符串,全匹配

  • 范例
  1. #查找以tab结尾的文件
  2. [root@localhost ~]# ls /etc/*tab
  3. [root@localhost ~]# ls /etc/*wd
  4. [root@localhost ~]# ls /etc/*.conf
  5. [root@localhost ~]# ls /etc/redhat*
  6. [root@localhost ~]# ls /etc/*ss*
  7. #查找以tty开头的文件,结尾以一个任意字符结尾
  8. [root@localhost ~]# ls /dev/tty?
  9. [root@localhost ~]# ls /etc/host?
  10. [root@localhost ~]# ls /etc/pass??
  11. #查找tty开头结尾以1-5连续字符结尾
  12. [root@localhost ~]# ls /dev/tty[1-5]
  13. [root@localhost ~]# ls /dev/tty[4-9]
  14. [root@localhost ~]# ls /dev/tty[1,3,5,7,9,15,20,30]
  15. #查找tty开头结尾为不连续字符结尾
  16. [root@localhost ~]# ls /dev/tty{1,3,5,7,9,15,20,30}
  17. [root@localhost ~]# ls /dev/tty{1..9}
  18. [root@localhost ~]# ls /dev/tty{1..10}
  19. [root@localhost ~]# ls /dev/tty[1-10]

grep文件内容过滤

  • grep用于查找文件中符合条件的字符串,它能利用正则表达式搜索文件中的字符串,并把匹配到的字符串的行打印出来
  • 命令格式:grep [-选项] “查找条件” 目标文件
  • 常用选项:
    • -n #以行号形式输出
    • -i #忽略字符串大小写
    • -v #显示不包含匹配的行(排除)
  • 常用正则表达式符号
    • ^字符串 #显示以该字符串开头的行
    • $字符串 #显示以该字符串结尾的行
    • ^$ #显示空行
  • grep命令示例
  1. #过滤包含root关键字的行
  2. [root@localhost ~]# grep root /etc/passwd
  3. root:x:0:0:root:/root:/bin/bash
  4. operator:x:11:0:operator:/root:/sbin/nologin
  5. #以行号形式过滤包含root关键字的行
  6. [root@localhost ~]# grep -n root /etc/passwd
  7. 1:root:x:0:0:root:/root:/bin/bash
  8. 10:operator:x:11:0:operator:/root:/sbin/nologin
  9. [root@localhost ~]# grep -n bash /etc/passwd
  10. [root@localhost ~]# grep -n : /etc/passwd
  11. #忽略大小写过滤
  12. [root@localhost ~]# grep -i -n ssh /etc/passwd
  13. 38:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
  14. #排除包含#号的行
  15. [root@localhost ~]# grep -n -v '^#' /etc/fstab
  16. #过滤以root开头的行
  17. [root@localhost ~]# grep ^root /etc/passwd
  18. #过滤以root结尾的行
  19. [root@localhost ~]# grep -n 'root$' /etc/passwd
  20. [root@localhost ~]# grep -n 'bash$' /etc/passwd
  21. #语法错误示范
  22. [root@localhost ~]# grep -n -v '^#' ^$ /etc/fstab
  23. grep: ^$: 没有那个文件或目录
  24. /etc/fstab:1:
  25. /etc/fstab:9:/dev/mapper/centos-root / xfs defaults 0 0
  26. /etc/fstab:10:UUID=ae55ec6b-973b-498e-a366-f35e14b3d153 /boot xfs defaults 0 0
  27. /etc/fstab:11:/dev/mapper/centos-swap swap
  28. #语法错误示范
  29. [root@localhost ~]# grep -n -v '^#' /etc/fstab | grep -v ^$
  30. 1:
  31. 9:/dev/mapper/centos-root / xfs defaults 0 0
  32. 10:UUID=ae55ec6b-973b-498e-a366-f35e14b3d153 /boot xfs defaults 0 0
  33. 11:/dev/mapper/centos-swap swap swap defaults 0 0
  34. #正确语法
  35. [root@localhost ~]# grep -v '^#' /etc/fstab | grep -v ^$ -n
  36. 2:/dev/mapper/centos-root / xfs defaults 0 0
  37. 3:UUID=ae55ec6b-973b-498e-a366-f35e14b3d153 /boot xfs defaults 0 0
  38. 4:/dev/mapper/centos-swap swap swap defaults 0 0
  39. #显示该文件内有效配置的行
  40. [root@localhost ~]# grep -v '^#' /etc/login.defs | grep -v ^$ -n | wc -l

find文件/目录查找命令

  • find 命令根据预设的条件递归查找文件或目录所在位置
  • 命令格式:find 查找路径 查找条件1 查找条件2 .. [-exec 处理命令 {} ; ]
    • –exec 可接额外的命令来处理查找到结果
    • {} 代表find查找到的内容被放置{}中
    • ; 代表额外处理命令结束
  • 常用查找条件
    • -type 类型(f文件 d目录 l链接文件)
    • -name “文件名”
    • -iname 按文件名查找忽略大小写
    • -size 文件大小(k、M、G + 大于 - 小于)
    • -a (并且)两个条件同时满足
    • -o (或者)两个条件满足任意一个即可
    • -user 用户名
    • -mtime 按日期查找(+ 代表多少天之前 - 代表多少天之内,0代表24小时之内)
  • find命令范例
  1. [root@localhost ~]# ls /var/log
  2. #按照类型查找,类型为文件
  3. [root@localhost ~]# find /var/log -type f
  4. [root@localhost ~]# ll boot.log-20210417
  5. [root@localhost ~]# ll /var/log/boot.log-20210417
  6. [root@localhost ~]# ll /var/log/vmware-network.2.log
  7. #按照类型查找,类型为目录
  8. [root@localhost ~]# find /var/log -type d
  9. [root@localhost ~]# ll -d /var/log/tuned
  10. [root@localhost ~]# ll -d /var/log/qemu-ga
  11. #按照类型查找,类型为链接文件
  12. [root@localhost ~]# find /var/log -type l
  13. [root@localhost ~]# fin /etc/ -type l
  14. [root@localhost ~]# find /etc/ -type l
  15. [root@localhost ~]# ll /etc/scl/conf
  16. #按照名字查找
  17. [root@localhost ~]# find /etc/ -name passwd
  18. /etc/passwd
  19. /etc/pam.d/passwd
  20. #按照名字查找,类型为文件
  21. [root@localhost ~]# find /etc/ -name passwd -type f
  22. #按照名字查找,以tab结尾,类型为文件
  23. [root@localhost ~]# find /etc/ -name '*tab' -type f
  24. #按照名字查找,以pass开头,类型为文件
  25. [root@localhost ~]# find /etc/ -name 'pass*' -type f
  26. [root@localhost etc]# find . -name '*.conf' -type f
  27. [root@localhost ~]# find /etc/ -name '*tab*' -type f
  28. #按照名字忽略大小写查找,类型为文件
  29. [root@localhost ~]# find /etc/ -iname FSTAB -type f
  30. /etc/fstab
  31. [root@localhost ~]# find /etc/ -name FSTAB -type f
  32. #查找大于10k的文件
  33. [root@localhost ~]# find /var/log -size +10k -type f
  34. [root@localhost ~]# du -h /var/log/boot.log-20210417
  35. 16K /var/log/boot.log-20210417
  36. #查找大于1M的文件
  37. [root@localhost ~]# find /var/log -size +1M -type f
  38. [root@localhost ~]# du -h /var/log/audit/audit.log
  39. 2.4M /var/log/audit/audit.log
  40. [root@localhost ~]# find /home -size +1M -type f
  41. #查找小于1M的文件
  42. [root@localhost ~]# find /var/log -size -1M -type f
  43. [root@localhost ~]# du -h /var/log/spooler
  44. 0 /var/log/spooler
  45. #查找大于10k并且下于20k,类型为文件
  46. [root@localhost ~]# find /var/log -size +10k -a -size -20k -type f
  47. #查找大于10k或者小于100k,类型为文件
  48. [root@localhost ~]# find /var/log -size +10k -o -size -100k -type f
  49. #查找属于lisi用户的文件/目录
  50. [root@localhost ~]# find /home -user lisi
  51. #查找30天之前被修改过,类型为文件
  52. [root@localhost ~]# find /var/log -mtime +30 -type f
  53. [root@localhost ~]# find /var/log -mtime +10 -type f
  54. #查找10天之内被修改过,类型为文件
  55. [root@localhost ~]# find /var/log -mtime -10 -type f
  56. root@localhost ~]# find /var/log -mtime -30 -type f
  57. #查找30之前被修改过,类型为文件,拷贝到/opt目录下
  58. [root@localhost ~]# find /var/log -mtime -30 -type f -exec cp {} /opt \;

题型:

  • 查找/etc/目录下以.conf结尾的文件(只能在/etc这一层目录去查找)
    [root@localhost ~]# ls /etc/*.conf
  • 查找/etc/目录下以.conf结尾的文件(包含所有的子目录)
    [root@localhost ~]# find /etc/ -name ‘*.conf’ -type f

压缩与解压缩

  • Linux独有压缩格式及命令工具:
    • gzip—-> .gz
    • bzip2—-> .bz2
    • xz—-> .xz
  • 压缩命令格式
    • gzip [选项…] 文件名
      • 常用选项:-d 解压缩
    • bzip2 [选项…] 文件名
      • 常用选项:-d 解压缩
    • xz [选项…] 文件名
      • 常用选项:-d 解压缩
  • 查看压缩文件内容
    • zcat [选项…] 文件名
    • bzcat [选项…] 文件名
    • xzcat [选项…] 文件名
  1. [root@localhost ~]# cp /etc/services /opt
  2. [root@localhost ~]# cd /opt
  3. [root@localhost opt]# ll services
  4. -rw-r--r--. 1 root root 670293 4 17 17:06 services
  5. [root@localhost opt]# ll -h services
  6. -rw-r--r--. 1 root root 655K 4 17 17:06 services
  7. #使用gzip格式对文件进行压缩
  8. [root@localhost opt]# gzip services
  9. [root@localhost opt]# ls
  10. services.gz
  11. [root@localhost opt]# ll -h services.gz
  12. -rw-r--r--. 1 root root 133K 4 17 17:06 services.gz
  13. #不解压查看压缩文件内容
  14. [root@localhost opt]# zcat services.gz
  15. #解压文件
  16. [root@localhost opt]# gzip -d services.gz
  17. #使用bzip2格式对文件进行压缩
  18. [root@localhost opt]# bzip2 services
  19. [root@localhost opt]# ls
  20. services.bz2
  21. [root@localhost opt]# ll -h services.bz2
  22. -rw-r--r--. 1 root root 122K 4 17 17:06 services.bz2
  23. #不解压查看文件内容
  24. [root@localhost opt]# bzcat services.bz2
  25. #解压文件
  26. [root@localhost opt]# bzip2 -d services.bz2
  27. #使用xz格式对文件进行压缩
  28. [root@localhost opt]# xz services
  29. [root@localhost opt]# ls
  30. services.xz
  31. [root@localhost opt]# ll -h services.xz
  32. -rw-r--r--. 1 root root 98K 4 17 17:06 services.xz
  33. #解压文件
  34. [root@localhost opt]# xz -d services.xz

tar打包工具

  • tar命令用在linux下用于对文件/目录打包,使用 tar 程序打出来的包常称为 tar 包,tar 包文件通常都是以 .tar 结尾
  • tar 命令格式:tar 选项 压缩包名字 被压缩文件
  • 常用选项:
    • -c 创建打包文件
    • -f 指定打包后的文件名称
    • -z 调用gzip压缩工具 -J 调用xz压缩工具 -j 调用bzip2压缩工具
    • -t 列出打包文档内容
    • -x 释放打包文件
    • -C 指定解压路径
    • -v 显示详细信息
  • tar命令范例
  1. #同时打包多个文件/目录并使用gzip格式压缩
  2. [root@localhost opt]# tar -czf xxx.tar.gz /etc/passwd /etc/fstab /home
  3. #将压缩包数据解压到/media目录
  4. [root@localhost opt]# tar -xf xxx.tar.gz -C /media/
  5. [root@localhost opt]# ls /media/etc
  6. [root@localhost opt]# rm -rf xxx.tar.gz
  7. #同时打包多个文件/目录并使用xz格式压缩
  8. [root@localhost opt]# tar -cJf xx.tar.xz /etc/hostname /etc/services /home
  9. #错误语法,f选项要放到所有选项右边
  10. [root@localhost opt]# tar -ft xx.tar.xz
  11. tar: 您必须从"-Acdtrux"或是"--test-label"选项中指定一个
  12. 请用“tar --help”或“tar --usage”获得更多信息。
  13. #不解压查看压缩包数据
  14. [root@localhost opt]# tar -tf xx.tar.xz
  15. etc/hostname
  16. #将压缩包数据解压到/tmp目录
  17. [root@localhost opt]# tar -vxf xx.tar.xz -C /tmp
  18. [root@localhost opt]# ls /tmp
  19. #同时打包多个文件/目录并使用bzip2格式压缩
  20. [root@localhost opt]# tar -cjf abc.tar.bz2 /etc/hostname /etc/group /home
  21. #解压缩
  22. [root@localhost opt]# tar -xf abc.tar.bz2 -C /media/