常用特殊符号的使用

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

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

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

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

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

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

grep文件内容过滤

  • grep用于查找文件中符合条件的字符串,它能利用正则表达式搜索文件中的字符串,并把匹配到的字符串的行打印出来

  • 命令格式:grep [-选项] "查找条件" 目标文件

  • 常用选项:

  • -n #以行号形式输出

  • -i #忽略字符串大小写

  • -v #显示不包含匹配的行(排除)

  • 常用正则表达式符号

  • ^字符串 #显示以该字符串开头的行

  • $字符串 #显示以该字符串结尾的行

  • ^$ #显示空行

  • grep命令示例

#过滤包含root关键字的行
[root@localhost ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin #以行号形式过滤包含root关键字的行
[root@localhost ~]# grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin [root@localhost ~]# grep -n bash /etc/passwd
[root@localhost ~]# grep -n : /etc/passwd #忽略大小写过滤
[root@localhost ~]# grep -i -n ssh /etc/passwd
38:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin #排除包含#号的行
[root@localhost ~]# grep -n -v '^#' /etc/fstab #过滤以root开头的行
[root@localhost ~]# grep ^root /etc/passwd #过滤以root结尾的行
[root@localhost ~]# grep -n 'root$' /etc/passwd
[root@localhost ~]# grep -n 'bash$' /etc/passwd #语法错误示范
[root@localhost ~]# grep -n -v '^#' ^$ /etc/fstab
grep: ^$: 没有那个文件或目录
/etc/fstab:1:
/etc/fstab:9:/dev/mapper/centos-root / xfs defaults 0 0
/etc/fstab:10:UUID=ae55ec6b-973b-498e-a366-f35e14b3d153 /boot xfs defaults 0 0
/etc/fstab:11:/dev/mapper/centos-swap swap #语法错误示范
[root@localhost ~]# grep -n -v '^#' /etc/fstab | grep -v ^$
1:
9:/dev/mapper/centos-root / xfs defaults 0 0
10:UUID=ae55ec6b-973b-498e-a366-f35e14b3d153 /boot xfs defaults 0 0
11:/dev/mapper/centos-swap swap swap defaults 0 0 #正确语法
[root@localhost ~]# grep -v '^#' /etc/fstab | grep -v ^$ -n
2:/dev/mapper/centos-root / xfs defaults 0 0
3:UUID=ae55ec6b-973b-498e-a366-f35e14b3d153 /boot xfs defaults 0 0
4:/dev/mapper/centos-swap swap swap defaults 0 0 #显示该文件内有效配置的行
[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命令范例

[root@localhost ~]# ls /var/log

#按照类型查找,类型为文件
[root@localhost ~]# find /var/log -type f
[root@localhost ~]# ll boot.log-20210417
[root@localhost ~]# ll /var/log/boot.log-20210417
[root@localhost ~]# ll /var/log/vmware-network.2.log #按照类型查找,类型为目录
[root@localhost ~]# find /var/log -type d
[root@localhost ~]# ll -d /var/log/tuned
[root@localhost ~]# ll -d /var/log/qemu-ga #按照类型查找,类型为链接文件
[root@localhost ~]# find /var/log -type l
[root@localhost ~]# fin /etc/ -type l
[root@localhost ~]# find /etc/ -type l
[root@localhost ~]# ll /etc/scl/conf #按照名字查找
[root@localhost ~]# find /etc/ -name passwd
/etc/passwd
/etc/pam.d/passwd #按照名字查找,类型为文件
[root@localhost ~]# find /etc/ -name passwd -type f #按照名字查找,以tab结尾,类型为文件
[root@localhost ~]# find /etc/ -name '*tab' -type f #按照名字查找,以pass开头,类型为文件
[root@localhost ~]# find /etc/ -name 'pass*' -type f
[root@localhost etc]# find . -name '*.conf' -type f [root@localhost ~]# find /etc/ -name '*tab*' -type f #按照名字忽略大小写查找,类型为文件
[root@localhost ~]# find /etc/ -iname FSTAB -type f
/etc/fstab
[root@localhost ~]# find /etc/ -name FSTAB -type f #查找大于10k的文件
[root@localhost ~]# find /var/log -size +10k -type f
[root@localhost ~]# du -h /var/log/boot.log-20210417
16K /var/log/boot.log-20210417 #查找大于1M的文件
[root@localhost ~]# find /var/log -size +1M -type f
[root@localhost ~]# du -h /var/log/audit/audit.log
2.4M /var/log/audit/audit.log [root@localhost ~]# find /home -size +1M -type f #查找小于1M的文件
[root@localhost ~]# find /var/log -size -1M -type f
[root@localhost ~]# du -h /var/log/spooler
0 /var/log/spooler #查找大于10k并且下于20k,类型为文件
[root@localhost ~]# find /var/log -size +10k -a -size -20k -type f #查找大于10k或者小于100k,类型为文件
[root@localhost ~]# find /var/log -size +10k -o -size -100k -type f #查找属于lisi用户的文件/目录
[root@localhost ~]# find /home -user lisi #查找30天之前被修改过,类型为文件
[root@localhost ~]# find /var/log -mtime +30 -type f
[root@localhost ~]# find /var/log -mtime +10 -type f #查找10天之内被修改过,类型为文件
[root@localhost ~]# find /var/log -mtime -10 -type f
root@localhost ~]# find /var/log -mtime -30 -type f #查找30之前被修改过,类型为文件,拷贝到/opt目录下
[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 [选项...] 文件名

[root@localhost ~]# cp /etc/services /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# ll services
-rw-r--r--. 1 root root 670293 4月 17 17:06 services
[root@localhost opt]# ll -h services
-rw-r--r--. 1 root root 655K 4月 17 17:06 services #使用gzip格式对文件进行压缩
[root@localhost opt]# gzip services
[root@localhost opt]# ls
services.gz
[root@localhost opt]# ll -h services.gz
-rw-r--r--. 1 root root 133K 4月 17 17:06 services.gz #不解压查看压缩文件内容
[root@localhost opt]# zcat services.gz #解压文件
[root@localhost opt]# gzip -d services.gz #使用bzip2格式对文件进行压缩
[root@localhost opt]# bzip2 services
[root@localhost opt]# ls
services.bz2
[root@localhost opt]# ll -h services.bz2
-rw-r--r--. 1 root root 122K 4月 17 17:06 services.bz2 #不解压查看文件内容
[root@localhost opt]# bzcat services.bz2 #解压文件
[root@localhost opt]# bzip2 -d services.bz2 #使用xz格式对文件进行压缩
[root@localhost opt]# xz services
[root@localhost opt]# ls
services.xz
[root@localhost opt]# ll -h services.xz
-rw-r--r--. 1 root root 98K 4月 17 17:06 services.xz #解压文件
[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命令范例

#同时打包多个文件/目录并使用gzip格式压缩
[root@localhost opt]# tar -czf xxx.tar.gz /etc/passwd /etc/fstab /home #将压缩包数据解压到/media目录
[root@localhost opt]# tar -xf xxx.tar.gz -C /media/
[root@localhost opt]# ls /media/etc
[root@localhost opt]# rm -rf xxx.tar.gz #同时打包多个文件/目录并使用xz格式压缩
[root@localhost opt]# tar -cJf xx.tar.xz /etc/hostname /etc/services /home #错误语法,f选项要放到所有选项右边
[root@localhost opt]# tar -ft xx.tar.xz
tar: 您必须从"-Acdtrux"或是"--test-label"选项中指定一个
请用“tar --help”或“tar --usage”获得更多信息。 #不解压查看压缩包数据
[root@localhost opt]# tar -tf xx.tar.xz
etc/hostname #将压缩包数据解压到/tmp目录
[root@localhost opt]# tar -vxf xx.tar.xz -C /tmp
[root@localhost opt]# ls /tmp #同时打包多个文件/目录并使用bzip2格式压缩
[root@localhost opt]# tar -cjf abc.tar.bz2 /etc/hostname /etc/group /home #解压缩
[root@localhost opt]# tar -xf abc.tar.bz2 -C /media/

RHCSA_DAY09的更多相关文章

随机推荐

  1. Flannel和Calico网络插件对比

    1.Kubernetes通信问题 1.容器间通信:即同一个Pod内多个容器间通信,通常使用loopback来实现. 2.Pod间通信:K8s要求,Pod和Pod之间通信必须使用Pod-IP 直接访问另 ...

  2. Linux中cut,sort,uniq和wc的用法

    一.cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对"行"来进行分析的,并不是整篇信息分析的.1.语法格式为:cut [-bn] [fil ...

  3. CentOS中按tab键不能自动补全问题解决办法

    CentOS中按tab键不能自动补全问题解决办法 一:检查一下系统有没有安装bash-completion包. 二:yum查找一下 三:yum安装bash-completion包 前言 在CentOS ...

  4. gRPC(3):拦截器

    在 gRPC 调用过程中,我们可以拦截 RPC 的执行,在 RPC 服务执行前或执行后运行一些自定义逻辑,这在某些场景下很有用,例如身份验证.日志等,我们可以在 RPC 服务执行前检查调用方的身份信息 ...

  5. 企业实施CRM系统 创造更多利润 - Zoho CRM

    对企业来说,客户关系是一种投资.我们都知道企业的资源是有限的,因此必须要将这些有限的资源投入到能够带来持续价值的客户身上.而只有良好的客户关系才能够提高客户的忠诚度,多次购买甚至溢价购买企业的产品,持 ...

  6. 资源:Intellij IDEA 最新旗舰版注册激活破解*附注册码(2020年亲测)

    永久激活 1. 下载jetbrains-agent.jar包(2020.03.22亲测) 链接: https://pan.baidu.com/s/1BFXPwlROEF03BkhGzGIgEA 提取码 ...

  7. Java:jar包与war包的差异

    一般将项目分为两层:服务层和表现层(视图层),通常我们把服务层打包成jar,而把视图层的包打成war包. 仔细对比可以发现: jar包中包含了你写程序的所有服务或者第三方类库,它通常是作为幕后工作者, ...

  8. 重学Docker

    转了云方向,代码都少写了 1. 为什么出现Docker 以前开发项目有开发的环境.测试的环境.还有生产的环境,每经过一阶段就要迁移项目.不同的环境有不同的配置,可能导致不可预估的错误,运维要经常性的改 ...

  9. mybatis常用标签(转)

    1. 定义sql语句 select 标签 属性介绍: id :唯一的标识符. parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user resu ...

  10. Log4.net示例

    //先用Nuget安装最新Log4net using System; using System.IO; using log4net; using log4net.Config; using log4n ...