linux命令(3) 链接ln和搜索locate,find, whereis, which, grep命令

1. 链接命令

链接有硬链接和软链接之分, 硬链接可以认为是原文件的复制文件,也可以看作是同一个文件, 类似一个教室有两个门.
软链接可以认为是原文件的快捷方式,原文修改, 软链接同时修改, 原文件被删除, 软链接失效.

  • 命令格式ln -s [原文件] [目标文件] 英文原意 link
    • -s 创建软链接,原文件一定要写绝对路径
    • 应用举例:
      • ln a.py /tmp/a_hard.py 创建a.py的硬链接
      • ln -s a.py /tmp/a_soft.py 创建a.py的软链接

2. 搜索命令

2.1 文件搜索命令

  • locate, find
    • locate 搜索快, 功能单一, 只能按照文件名来搜索

      • 命令格式: locate 文件名
      • 是在/var/lib/mlocate目录下搜索,所以搜索速度比较快, 更新频率为一天一更新,所以新建的文件不能马上搜索到. 可以使用updatedb命令强制更新.
      • 有些明明创建了,却不能被搜索到, 是因为/etc/updatedb.conf的配置文件中PRUNE_BIND_MOUNTS= "yes"这句话, 导致配置文件中的搜索规则都生效了. 当然可以改为"no",再试一下.
    • find 搜索慢, 耗费资源大,功能强大

      • 命令格式 find [搜索范围] [搜索条件]
      • 是在系统当中搜索符合条件的文件名. 如果需要匹配, 使用通配符匹配, 通配符是完全匹配.
        • 通配符 * 任意内容
        • 通配符 ? 任意一个字符
        • 通配符 [] 任意一个中括号内的字符 find /root -name "ab[cd]" 可以找出abcabd两个文件
      • find /root -iname install.log 不区分大小写
      • find /root -user root 按所有者搜索文件
      • find /root -nouser 搜索没有所有者的文件, 一般情况下,没有所有者的文件是垃圾文件.注意区分.
      • find /var/log -mtime +10 查找10天前修改的文件
        • -10 10天内修改的文件
        • 10 10天当天修改的文件
        • +10 10天前修改的文件
        • -mtime 修改文件的时间
        • -ctime 创建文件的时间
        • -atime 文件访问的时间
      • find . -size 25k 查找当前目录下文件大小是25k的文件
      • find . -inum 231623 查找当前目录下inode 为231623的文件
      • find /etc -size +20k -a -size -50k 查找/etc目录下, 大于20k并且小于50k的文件
        • -a and 逻辑与
        • ‘-o’ or 逻辑或
      • find /etc -size +20k -a -size -50k -exec ls -lh {} \; 查找/etc目录下, 大于20k并且小于50k的文件, 并显示详细信息
        • 总体意思就是find /etc -size +20k -a -size -50k 的查找结果交给ls -lh再来处理一次, 命令的标准格式即是: -exec 命令 {} \;.
        • 需要注意的是: 第一个命令的结果要可以被第二个命令来处理才能保证正确执行.
      • 避免大范围搜索, 会非常消耗资源
      • 示例: find / -name install.log 在根目录下搜索文件名为install.log的文件, 不建议这么使用, 因为从根目录下搜索, 范围太大了.

2.2 命令搜索命令

  • whereiswhich
    • whereis 搜索命令所在路径及帮助文档所在位置
      • -b: 只查找可执行文件
      • -m: 只查找帮助文件
    • whichwhereis非常相似, 但which除了返回命令的路径以外, 还可以看到命令的别名信息,
    • whoami 查看当前用户
    • whatis 命令的使用方法
  • 字符串搜索命令: grep
    • 命令格式: grep [选项] 字符串 文件名 在文件当中匹配符合条件的字符串
    • -i 忽略大小写
    • -v 排除指定字符串
  • find命令与grep命令的区别
    • find 是在系统当中搜索符合条件的文件名, 是对文件名进行搜索, 是完全匹配, 使用通配符模糊查询
    • grep是对文件中的内容进行搜索, 匹配符合条件的行或内容, 是包含匹配, 使用正则表达式模糊查询.

3 常用命令组合

// 在某个目录下查找含有关键字的文件(适用场景:查找含有关键字的文件)
grep -r "test"  /data/reports

// 在log文件中检索带有‘error’字符的所有行
cat log | grep 'error'

// 在log文件中检索带有“keyword1”或“keyword2”或“keyword3”三个关键字的所有行
cat log | grep "keyword1\|keyword2\|keyword3"

// 在log文件中检索带有“keyword1”或“keyword2”或“keyword3”三个关键字的第一行(以下两行命令等效)
cat log | grep --max-count=1 "keyword1\|keyword2"
cat log | grep -m 1 "keyword1\|keyword2"

// 在log文件中检索带有“keyword1”或“keyword2”或“keyword3”三个关键字的所有行的前10行及后10行。
cat log | grep -C 10 "keyword1\|keyword2\|keyword3"

可以自由组合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值