zoukankan      html  css  js  c++  java
  • Linux的文件管理(8-27)

    Linux的文件管理

    1、创建文件:touch、vim/vi、echo重定向、cat重定向

           touch也可以用来修改时间(文件时间信息的Atime、Mtime)

            touch+文件名(如果文件不存在就创建文件)

           touch -a -t[[CC]YY]MMDDhhmm[.ss]

           -c:默认不创建文件

    2、删除文件:mv /tmp

            Find | xargs rm

            rm 删除文件  参数:-i(删除时提示)、-f(强制删除)、-r(删除目录)

            默认情况下,rm -rf是不让删除根目录(centos5及以下版本可以),Centos6和7要删除是要加参数的;--preserve-root可以删根

    3、移动文件:mv:移动文件,改名

               参数:-t:颠倒源目地址 

                   -i:当文件存在时会提示是否覆盖 

                   mv a b(当文件存在时,不提示,直接覆盖) 

                   例:mv a b c d / e(将多个文件移动到一个文件)   

                   mv a b(将a文件的名字修改为b)      

     复制文件:cp:参数:-t(颠倒源目地址)

                  -a(可以复制目录以及目录里面文件的属性)

            Install:复制文件和创建目录

              参数:-d:创建目录 、-t:

                     -g:指定所属组

                     -o:指定所属主

                     -m:指定复制文件的权限

            Scp--Linux之间进行文件传输的命令;

            两个虚拟机之间传输文件的两种方法:

            Linux1:scp 文件 root@ip(Linux2):/目录

            Linux2:scp root@ip(Linux1):/文件 本地的那个目录

    4、文件查找:locate:会生成一个查找库(不常用) yum install mlocate -y

            updatedb:在这个查找库中查找相对应的文件

             find:可以根据文件的任何一个属性,来查找文件

              文件属性:1、inode  2、文件类型(-type) 3、文件权限

                        4、硬链接数 5、所属主 6、所属组   

                        7、文件大小(-size)

                        8、修改时间(Atime、Ctime、Mtime)

                        9、文件名(-name)

                  文件类型:-type f (普通文件)d(目录文件) p(管道文件) c(字符设备文件)b(块设备文件) l(软链接) s(套接字文件)

                  文件权限:-maxdepth(查找最多几级目录)

                         -mindepth(查找做少几级目录)

                         -perm 007【权限值:r=4,w=2,x=1】

                    例:find ./ -maxdepth1 -perm +1

                  硬链接数:-links

                  文件大小:-size 【常用单位k、M、G】 

    5、压缩文件:gzip、bzip2、xz【只能对文件进行压缩,能让源文件变小】

    6、归档:tar【可以多目录进行操作,但是不会让源文件变小】

          参数:-j:bzip2  -J:xz  -z:gzip

              -f:filename指定压缩文件的名字【解压的时候最好不要指定压缩文件】

    7、编辑文件:全屏编辑器:vim/vi、nano编辑器【例:nano abc】

            流编辑器(行编辑器):sed

          Vim:默认为命令模式,敲i I a A o O进入编辑模式,敲esc键进入末行模式

          命令模式下常用技巧:上下左右移动k j h l

                         dd 删除一行 ndd删除n行   

                    p粘贴(粘几次敲几下p) 

                    u切回上一个操作

                    U退回到进入文件时的初始状态 

                    yy复制光标所在当前行

                    nyy复制光标后n行 

                    gg光标跳至文件内容行首 

                    G光标跳至文件内容行尾

                    c=dd+i 

                    r替换光标所在字符为指定字符 

                    v进入可视模式,选出指定内容,然后进行相应的操作

                    ZZ保存并退出

             末行模式下常用技巧:.,$s/#/ /g(光标当前行到结尾将#替换为空格) 

                     :$将光标移动到文件末尾 

                     :1将光标移动到第一行

                     :q保存  :wq保存并退出

                     :q!强制退出 

                     :w保存 

                     :w +文件名 将文件保存到新的文件中去

                     /向下查找 ?向上查找 n下一个 N上一个 

                      多个文件同时编辑:在末行模式下: :next切换到下一个文件

                     :prev切回到前面的文件

                     :last切换到最后一个文件

                     :first切换到第一个文件

                     :q退出当前文件

                     :aq退出所有文件                  

                比较查看:1、垂直分屏 vim -O a b

                             切换光标:ctrl+w 松开再敲w

                       在进行切屏:ctrl+w 松开再敲v

                     2、水平分屏  vim -o a b

                         切换光标:ctrl+w 松开再敲w

                       在进行切屏:ctrl+w 松开再敲s

                       :qa!全部退出 

                       :wq!全部保存并退出 

    Linux用户与用户权限、权限管理

    1、用户管理:useradd 创建用户

            参数:-c指定用户描述

              -d指定家目录【默认家目录为/home下同名目录】

             -g指定主组

             -G指定附加组【一个用户主组只能有一个,而附加组可以有多个】  

             -s指定shell程序【特殊:/sbin/nologin----->不允许登录系统的用户】

             -u指定UID

             -M不创建家目录

    userdel  参数:-r带着家目录一起删除【默认不删除家目录】 

    usermod(修改)参数:-c -d -m -g  -G -s -u 、-o【容许UID相同,和-u一起使用】 

    passwd 参数:-l(锁定) -u(解锁) -d(删除密码)

    常用命令:echo “密码” | passwd --stdin “用户名”【给用户添加密码】

    2、组管理:groupadd 参数:-g修改组ID

                     -o容许重复

           groupdel 删除组

           groupmod  参数:-g  -o  -n修改组名

                      -p指定组密码【如果一个文件输入这个用户的附加组,而你要访问整个文件,别人就可以为这个组设置密码】

    3、常用文件:

    ①/etc/passwd

     Uname:x:uid:gid:描述:家目录:shell程序

     

     超级用户---root

     系统用户----1-499 1-999 普通用户---500-65535 1000-6535 

    ②/etc/shadow

     uname:uid:密码:时间

    ③/etc/group

      组:组密码:组ID:附加组 

    ④/etc/gshadow

    ⑤/etc/skel:这个目录下的文件均会被复制到每一个普通用户的家目录中,一般用来做警告

    4、用户权限:r(读权限,权限为100【二进制】,权限值为4)

            w(写权限,010,权限值为2)

           x(执行权限,001,权限值为1)

    添加/删除权限:chmod [a|o|g|u] [+|-] [x|w|r] 文件

            chown :user10 文件

            chmod user10: 文件

           chmood user10:user10文件

    文件的访问控制列表

    1、ACL的授权管理:通过权限管理,给指定用户添加指定权限

    2、setfacl---添加权限

             setfacl -m u:用户名:要添加的权限(文件一定是该用户的文件)

             setfacl -x u:用户名 文件 (取消文件权限)

           getfacl:查看ACL添加的权限【用法:getfacl +文件名】  

             

             

    3、特殊权限位:

    临时借位;例如有A B两个用户,分别属于AA组和BB组,A创建了一个用户a.txt,B默认情况下去访问a.txt使用other;但是B想借用A的权限去访问a.txt,就需要将SUID借位为1;同时,也可以去借SGID的权限去访问这个文件,借位为2;

    SUID:chmod u+s 文件【授予SUID的特殊权限】

     (有执行权限的时候为s,没有执行权限为S)

    SGID:chmod g+s 文件【授予SGID的特殊权限】

        所属主有执行权限时显示为s,反之为S

    Sticky:chmod o+t 文件【授予粘粘位的特殊权限】

         所属主有执行权限时显示为t,反之为T

         粘粘位的作用:授权给一个目录,在该目录下所有用户只能删除自己的文件,别人不能删除自己的文件--------给目录文件授予的

    Sudo授权:/etc/sudoers【在这个文件中去添加权限】

    Su - 用户:切换用户

     

     

     

  • 相关阅读:
    bzoj 2784: [JLOI2012]时间流逝【树形期望dp】
    bzoj 3566: [SHOI2014]概率充电器【树形概率dp】
    bzoj 5277: [Usaco2018 Open]Out of Sorts【冒泡排序瞎搞】
    【04】在 PR 中关闭 issue
    【03】代码格式化+高亮
    【02】粘贴图像
    【01】在 Github 上编辑代码
    【02】GitHub 工具 Octotree
    【01】恶趣味玩转 GitHub commit 历史记录
    【07】Firebug监控网络情况
  • 原文地址:https://www.cnblogs.com/cqyyyyy/p/11422004.html
Copyright © 2011-2022 走看看