美文网首页
linux 常用指令

linux 常用指令

作者: taobao | 来源:发表于2021-12-19 16:46 被阅读0次
    // 获取文件大小 ,并去除后面的换行
    stat -c %s 1.txt | tr -d '\n'
    // 使用ffmpeg指令 获取视频播放时长
    ffmpeg -i test.mp4 2>$1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/...,//
    // 按空格切割,获取第四列
    cut -d '  ' -f 4
    docker ps -a | awk '{print $1}'
    docker ps -a | cut -d ' ' -f 1
    //sed 替换 .代表任意字符
    sed s/...,//  // 00:06:09.80, 字符替换后为 00:06:09
    
    // ffmpeg 
    参考地址:https://www.cnblogs.com/tinywan/p/6120995.html
    

    find指令

    // 查找tmp目录
    find /tmp
    // 根据名称查找
    find /tmp -name sys*
    // 忽略大小写
    find /tmp -iname Sys*
    // 查找目录
    find / -type d -name tmp
    // 查找文件
    find / -type f -name test.php
    
    // 根据权限查找
    // 查找777权限的文件
    find /root -type f -perm 777
    // 查找非777权限的文件
    find /root -type f ! -perm 777
    // 查找只读文件
    find /root -perm /u=r
    // 查找可执行文件
    find /root -perm /a=x
    // 查找删除单个、或文件
    find /root -type f -name test*.txt -exec rm -f {} \;
    // 查找所有空文件
    find /root -type -f -empty
    // 查找所有空目录
    find /root -type d -empty
    // 查找基于用户的的文件
    find /root -user root -name test.txt
    // 查找基于组的文件
    find /root -gropu root
    
    // 根据日期查找
    // 查找50天后修改的文件
    find /root -mtime 50
    // 查找最近50天访问的文件
    find /root -atime 50
    // 最近50 到 100天修改的文件
    find /root -mtime 50 -mtime 100
    // 查找过去1小时内修改的文件
    find /root -cmin -60
    // 查找一小时内访问过的文件
    find /root -amin -60
    
    // 根据大小查找文件和目录
    // 查找50MB的文件
    find / -size 50M
    // 查找50M 到 100M的文件
    find / -size +50M -size -100M
    // 查找大于1G的文件,并删除
    find / -size +1024M -exec rm {} \;
    

    SUID 和 SGID

    1. 概念
      SUID 是 Set User ID,
      SGID 是 Set Group ID

    linux权限

    ls -l 命令来看到文件的权限
    类似这样的:-rwxr-xr-x 。这种表示方法一共有十位
    9 8 7 6 5 4 3 2 1 0
    - r w x r - x r - x

    1. 第9位表示文件类型,可以为p、d、l、s、c、b和-
      p表示命名管道文件
      d表示目录文件
      l表示符号连接文件
      -表示普通文件
      s表示socket文件
      c表示字符设备文件
      b表示块设备文件
    2. 第8-6位、5-3位、2-0位分别表示文件所有者的权限,同组用户的权限,其他用户的权限,其形式为rwx:
      r表示可读,可以读出文件的内容
      w表示可写,可以修改文件的内容
      x表示可执行,可运行这个程序
      没有权限的位置用-表示
      例如: ls -l myfile显示为:
      -rwxr-x— 1 foo staff 7734 Apr 05 17:07 myfile
      所有者foo对文件有读写执行权限,
      staff组的成员对文件有读和执行权限,
      其他的用户对这个文件没有权限。
    3. 如果一个文件被设置了SUID或SGID位,会分别表现在所有者或同组用户的权限的可执行位上。例如:
      1、-rwsr-xr-x 表示SUID和所有者权限中可执行位被设置
      2、-rwSr–r– 表示SUID被设置,但所有者权限中可执行位没有被设置
      3、-rwxr-sr-x 表示SGID和同组用户权限中可执行位被设置
      4、-rw-r-Sr– 表示SGID被设置,但同组用户权限中可执行位没有被设置

    UNIX权限

    其实在UNIX的实现中,文件权限用12个二进制位表示,如果该位置上的值是
    1,表示有相应的权限:
    11 10 9 8 7 6 5 4 3 2 1 0
    S G T r w x r w x r w x
    第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上面的三组rwx位。

    1. 给文件加SUID和SUID的命令如下:
      chmod u+s filename 设置SUID位
      chmod u-s filename 去掉SUID设置
      chmod g+s filename 设置SGID位
      chmod g-s filename 去掉SGID设置

    相关文章

      网友评论

          本文标题:linux 常用指令

          本文链接:https://www.haomeiwen.com/subject/cjfnxrtx.html