ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux文件目录管理操作

2022-01-08 23:06:31  阅读:173  来源: 互联网

标签:opt 文件目录 tar grep etc Linux 操作 root localhost


一、grep

  • 作用

    • 按条件过滤文件内容

  • 使用格式

    • grep [option] “PATTERN” 文件名称

      • option:可有可无

      • PATTERN:条件,

        • 由普通字符和正则表达式

1、grep基本使用

[root@localhost ~]# grep "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
  • grep的默认行为,某一行中带有符合条件的内容,整行都会显示

2、正则表达式

  • 由一类特殊字符【元字符】组成的表达式,可以去匹配一类具有相同特征的文本

1、匹配单个字符的元字符

  1. 任意单个字符

    a.b:akb aib amb

    [root@localhost ~]# grep "a..b" /etc/passwd
    tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    lijianhua:x:1000:1000:LIJIanHua:/home/lijianhua:/bin/bash
  2. [ab]:匹配方括号中任意一个都可以

    [root@localhost ~]# grep "a[kt]b" /etc/passwd
    1. [a-z]:- 表示连续的字符,匹配出任意一个小写字母

      [root@localhost ~]# grep "a[a-z]b" /etc/passwd
      
      [root@localhost ~]# grep "a[a-zA-Z]b" /etc/passwd	//任意一个字母,不区分大小写
    2. [0-9]:任意一个数字

      [root@localhost ~]# grep "a[0-9]b" /etc/passwd
    3. [a-zA-Z0-9]:任意一个字母或者数字

      [root@localhost ~]# grep "a[0-9a-zA-Z]b" /etc/passwd
    4. [^abc]:取出除了abc字符以外的

      [root@localhost ~]# grep "a[^abc]b" /etc/passwd
    5. \:转义字符

      [root@localhost ~]# grep "a\.b"/etc/passwd

2、匹配字符出现的次数

  • *:前一个字符出现任意次

    • .*:任意字符出现任意次

  • \?:前一个字符最多出现一次,最少0次,即可有可无

    [root@localhost ~]# grep "ak\?b" /opt/data/test.txt 

  • +:前一个字符至少出现一次

    [root@localhost ~]# grep "a[0-9]\+b" /opt/data/test.tx
  • \{3\}:前一个字符精确出现三次

    root@localhost ~]# grep "ak\{3\}b" /opt/data/test.txt 
    [root@localhost ~]# grep "a[0-9]\{3\}b" /opt/data/test.txt
  • \{2,5\}:前一个字符出现次数最少2次,最多5次

    [root@localhost ~]# grep "a[0-9]\{2,5\}b" /opt/data/test.txt 
  • \{2,\}:前一个字符最少出现2次,最多不限

    [root@localhost ~]# grep "a[0-9]\{2,\}b" /opt/data/test.txt 
  • a(ab){2,}b:ab这个整体在a和b中出现的次数

    [root@localhost ~]# grep "a\(ab\)\{2,\}b" /opt/data/test.txt 

3、匹配字符出现的位置

  • ^root:匹配以root开头的行

    [root@localhost ~]# grep "^root" /etc/passwd
  • bash$:匹配以bash结尾的行

    [root@localhost ~]# grep "bash$" /etc/passwd
  • ^$:空行

    [root@localhost ~]# grep "^$" /etc/passwd | wc -l
  1. 常用选项

    • -i:忽略大小写

    • -o:只显示符合条件的内容

    • -v:反向过滤

    • -e:实现多条件过滤

      • -e 条件1 -e 条件1 -e条件1

    • -n:显示符合条件的行的行号

    • -E:支持扩展正则表达式

      • 基本正则表达式:. * []

      • 扩展正则表达式:(){} + ?

二、find查找

1、find命令查找格式

find 目录名称 条件

find命令也会查找该目录下所有子目录,挨个查一遍,不会只查一层目录,可使用参数 -maxdepth

find /etc/ -maxdepth 2 -name “*.conf”

2、按文件名称查找

[root@localhost etc]# find /etc/ -name "*.conf"  

3、按文件大小查找

[root@localhost etc]# find /etc/ -size +20k 

4、 按文件类型查找

[root@localhost etc]# find /etc/ -type f 
  • -type:f - l b

5、按文件的修改时间

  • -mtime +2 -2

    • [root@localhost etc]# find /etc/ -mtime +2 //2天前修改的文件
    • [root@localhost etc]# find /etc/ -mtime -2	//2天内修改的文件

6、按文件的创建时间

  • -ctime

    • [root@localhost etc]# find /etc/ -ctime +2 //2天前创建的文件
    • [root@localhost etc]# find /etc/ -ctime -2 //2天内创建的文件

7、按多个条件同时查找

  • -a:and

    [root@localhost etc]# find /etc/ -name "*.conf" -a -type f
  • -o:or

[root@localhost etc]# find /etc/ -name "*.conf" -o -type f

7、对查找的文件及进行操作

[root@localhost etc]# find /etc/ -name "*.conf" -exec cp -a {} /tmp/ \;

三、tar 文件归档

  • 两种压缩方式压缩比不一样

1、gzip

  • 压缩文件

    [root@localhost ~]# gzip /opt/data/test2.txt
    [root@localhost ~]# file /opt/data/test2.txt.gz 
    /opt/data/test2.txt.gz: gzip compressed data, was "test2.txt", from Unix, last modified: Tue Dec 21 22:23:52 2021
    
  • 解压缩

    [root@localhost ~]# gzip -d /opt/data/test2.txt.gz 

2、bzip2

  • 压缩文件

    [root@localhost ~]# bzip2 /opt/data/test2.txt
    [root@localhost ~]# file /opt/data/test2.txt.bz2 
    /opt/data/test2.txt.gz: gzip compressed data, was "test2.txt", from Unix, last modified: Tue Dec 21 22:23:52 2021
    
  • 解压缩

    [root@localhost ~]# bzip2 -d /opt/data/test2.txt.bz2 

3、tar 文件归档

  • 创建归档文件

    • tar cf 归档文件.tar 源文件

    • c:创建

    • f:指定归档文件名称

  • 将/etc/目录下所有文件打包,存入/opt,名称test1.tar

    tar cvf /opt/test1.tar /etc/			//备份
  • tar命令本身没有任何压缩功能,但是支持调用gzip和bzip2

    • 调用gzip压缩

    tar zcvf /opt/test1.tar.gz 源文件			//z选项:调用gzip压缩
    • 调用bzip2压缩

    tar jcvf  /opt/test1.tar.bz2  源文件		//j选项:调用bzip2压缩
    du sh 
    • gzip,bzip2,.tar.gzip,.tar.bz2解压缩

      tar -xvf /opt/test1.tar.gz 
      tar -xvf /opt/test1.tar.bz2 -C /tmp/			//解压到指定路径 

四、uniq 去重

编辑文件
aaaaaaa
aaaaaaa
aaaaaaa
bbbbbbb
bbbbbbb
bbbbbbb
uniq /opt/file1
aaaaaaa
bbbbbbb

五、sort 排序

  • 对文件中的数据进行排序

编辑文件
123
2333
1233
31323
[root@bogon ~]#sort /opt/file1
//计算机默认排序,按照ACSII码表进行第一位排序,相同则看下一位
	1133
	123
	2333
	31323
  • -n:number 按数字排序

  • -r:倒叙

sort -n /opt/file1			//按数字排序
	123
	1133
	2333
	31323
  • -k n:按每行的第n列进行排序

sort -n -k 2 /opt/file1			//按每行的第2列进行排序,默认按照空白分列
  • -t:指定分隔符

aroot@bogon ~]# cat /etc/passwd | sort -n -k 3 -t: | head -1
admin:x:0:4005::/home/admin:/bin/bash

六、alias 别名

  • alias 别名=‘命令’ //临时修改,重启会失效

[root@bogon ~]# alias ld='ls -ldh'
  • 别名alias永久生效

    • /etc/bashrc //针对机器里的所有用户生效,重启机器

      • source /etc/bashec //重新加载配置文件信息

    • ~/.bashrc //只针对当前用户生效

      • source /etc/bashec //重新加载配置文件信息

  • 删除别名

    • unalias ld

七、$ 命令引用+date显示时间

  • $ ()

[root@bogon ~]# mkdir /tmp/$(date +%Y_%m_%d_%T)		//以时间命名文件夹名字
  • date +%F_%T

[root@bogon ~]# date +%F_%T
  • 备份文件要调用时间

[root@bogon ~]# tar -zcf /tmp/data_$(date +%Y_%m_%d_%T).tar.gz /etc/

七、例题

1、过滤ip地址

[root@localhost ~]# grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" /opt/data/test2.txt 

2、过滤邮箱

[root@localhost ~]# grep -E "[0-9a-zA-Z]{1,}@[0-9a-z]{1,}\.[a-z]{1,}" /opt/data/test2.txt 

3、自己搜集其他常用的

标签:opt,文件目录,tar,grep,etc,Linux,操作,root,localhost
来源: https://blog.csdn.net/ljh451321/article/details/122387938

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有