zoukankan      html  css  js  c++  java
  • find,locate,whereis,which,重定向

    locate 命令

    (模糊查找文件或文件夹)

    • 从系统的根目录/开始查找文件或者文件夹,根据文件名来查找,模糊匹配文件名。
    • 只要文件名里有我们要查找的内容,就会帮助我们查找出来,相当于windows里的搜索功能。
    • 缺点:新建的文件或者文件夹查找不到,需要手动更新数据库。

    whereis和which的区别

    • whereis 用来查找系统里的命令存放的路径。主要到PATH变量指定的目录下查找。作用和which非常的相似。
    • which 不能显示man手册相关文件的存放路径

    共同点:

    • 都是查找系统的命令
    • 都是到PATH变量指定的目录下查找

    差异点:

    • whereis 会显示man手册的路径

    PS:cd是shell的内部命令,因此用which是查不到的!

    shell的内部命令和外部命令

    shell的作用:

    • 是人和计算机进行交互的程序,也可以说是一个翻译。

    • bash 程序自带的命令—》内部命令

    PS:外部命令—-》需要额外安装的命令(程序)

    find命令

    find命令 范围 条件 动作
    用途:用于查找文件或目录

    格式:find  [查找范围]  [查找条件] [动作]

    常用查找条件

    • -name:按文件名称查找
    • -size: 按文件大小查找
    • -user: 按文件属主查找 owner
    • -type: 按文件类型查找
    • -perm :按文件权限查找
    • -mtime :按文件更改时间查找
    • -newer : 按比某个文件更新的查找

    特殊查找条件

    • -o :逻辑或,只要所给的条件中有一个满足,寻找条件就算满足。o即or;
    • -not :逻辑非,在命令中可用“!”表示。该运算符表示查找不满足所给条件的文件 —>取反
    • -a:逻辑与,系统默认是与,可不加,表示只有当所给的条件都满足时,寻找条件才算满足。 and

    -type 类型

    • f (file) 普通文件
    • d (directory) 目录(文件夹)
    • c 字符设备(character)
    • b 块设备 (block)
    • l (link) 链接文件
    • p 管道 pipe

    find高级用法

    # find /boot -size +1M -o -name "vmlinuz*"
    +1M:大于1M
    -1M:小于1M
    1M:等于1M
    *:通配符号,代表任意个字符
    文件名里包含vm的文件查找出来:
    # find /boot -size +1M -o -name "*vm*"
    -mtime  n (modify time)修改时间

    +4:4天之前
    -4:4天内
    4:4天那一天

    # find  /root  -mtime  -2          
    查找2天以内的文件在/root目录下

    PS:

    • -mmin 根据分钟来查找
    • 三个时间:
      • atime: access time 访问时间 cat more less
      • ctime: change time 改变属性的时间 chmod chown
      • mtime: modified time 修改时间—》修改内容 vim
    #stat lp.txt 可以查看以上三个时间

    find的补充说明

    find 范围 条件 动作

    # find /lianxi -name "*.txt" -exec cp {} /backup ;
    • find 是命令
    • /lianxi:查找的目录—》范围
    • -name:根据名字来查找
    • *.txt:以.txt结尾的文件
    • -exec:后面接执行的命令 (execute)
    • cp:就是要执行的命令(动作) copy
    • {} :用来存放find命令查找到的结果 —》相当于一个容器,用来存放前面find命令查找出来的结果
    • /backup :目地文件夹
    • ; 这条命令的结束符号

    PS:

    • -ok 就多了一个确认,每步操作都需要输入y或者n确认。
    # find /lianxi -name "*.txt" -ok  cp  {} /back ;
    < cp ... /lianxi/wenlijun.txt > ? y
    < cp ... /lianxi/lihong.txt > ? y
    < cp ... /lianxi/wangshuo.txt > ? y
    < cp ... /lianxi/surunze.txt > ? y

    练习:

    1. 在根目录下新建一个目录叫find;
    2. 进入find目录,复制/etc/passwd 到当前目录;
    3. 复制/boot目录到当前目录下;
    4. 新建一个目录叫hunantv;
    5. 新建一个空文件叫daydayup;
    6. 查找mkdir和touch命令的路径;
    7. 使用locate命令查找出ifconfig文件的路径;
    8. 使用find命令查找出/find目录下大小大于1M并且名字里包含vmlinuz的文件;
      9. 使用find命令查找出/find目录下大小大于1M小于4M的文件;
    9. 查找出你机器里包含rhel*.iso的文件并且此文件大小大于2G;
    10. 查找出mkdir的文件复制到/find目录下;
    11. 查找出daydayup的文件然后删除它;
    12. 查找出find目录下大于10K的文件复制到/tmp目录下;
    13. 查找出属于linghu这个用户的所有文件并且文件的大小大于5k;
    14. 查找出/tmp目录下最近3个小时内修改过的文件;
    15. 查找出/find目录下最近30分钟前修改过的文件。
    8-16题参考答案:
    # find /find -size +1M -name "*vmlinuz*" -type f 
    # find /find -size +1M ! -size +4M  
    # find / -name "rhel*.iso" -type f -size +2G 
    # find / -name mkdir -exec cp {} /find  ;
    # find /find -name "daydayup" -type f -exec rm -rf {} ;
    # find /find -size +10k -type f -exec cp {} /tmp ;
    # find / -user linghu -type f -size +5k
    # find /tmp -mmin -180 -type f
    # find /find -mmin +30 -type f

    mkdir -p 命令

    # mkdir  -p a/b/c/d/e/f
    • mkdir 是命令
    • -p 选项—》可供你选择的项目 option ,接选项会使命令有不一样的效果。
    • a/b/c/d/e/f 参数 —》参与进来的操作数 arguments parameter
    • -p, –parents
      no error if existing, make parent directories as needed

    • 新建文件夹的时候,如果父目录不存在,就将父目录一起新建了。

    扩展练习:

    1. 查找出/lianxi目录下有多少个文件夹,但是不能算上包含文件夹下的子文件夹
    [root@chinaitsoft lianxi]# find .  -maxdepth 1 -type d |tail -n +2|wc -l
    9
    • | 管道符号:将前面一个命令的输出送给后面的命令作为输入。
    • wc 统计命令
    • -l 统计行数 line
    • depth 深度
    • -maxdepth levels
      Descend at most levels (a non-negative integer) levels
      PS:“深度”
      ./tar/boot/grub
      0 1 2 3
      目录的深度从0开始算 ,0代表目录本身,1 代表当前目录下的文件夹 2代表当前目录下的文件夹里的子文件夹 ,以此类推。

    初识 /proc 目录

    /proc 此目录用来存放内核信息及相关的进程信息。process

    • 此目录存放的信息是在内存里,停电会丢失。
    • 每一个进程都有一个文件夹,一一对应。 根据进程的PID(进程号)建立

    kernel:内核

    其实就是一个软件,比较核心而已。

    内核的作用

    1. 对cpu进行调度管理;
    2. 对内存进行管理;
    3. 对进程进行管理;
    4. 对文件系统进行管理;
    5. 对其他的硬件管理
    # find / -user linghu -type f -size +1k 2>/dev/null
    • > (正确的输出重定向):将在屏幕上的输出,重新转到别的地方。(乾坤大挪移),如果后面接的文件不存在,会自动新建。如果存在,会覆盖原文件里的内容。
    • >>(追加输出重定向):不覆盖原来的内容,只是在末尾追加进去。如果后面接的文件不存在,会自动新建。
    • 2>(错误的输出重定向):前面命令执行不成功或者出错的信息,重新定向到别的地方。
    • 2>>(追加错误的输出重定向):前面命令执行不成功或者出错的信息,重新定向到别的地方。不会覆盖原来文件里的内容。

    /dev/null

    • 黑洞文件,任何内容只要重定向到此,都会消失,不保存。
  • 相关阅读:
    适配器模式(Adapter)
    状态模式(State)
    观察者模式(Publish/Subscribe)
    建造者模式(Builder)
    数据库,知识点汇总
    数据库
    css样式大全
    遮罩层
    js数组冒泡
    js基本方法
  • 原文地址:https://www.cnblogs.com/lpeng94/p/12546513.html
Copyright © 2011-2022 走看看