zoukankan      html  css  js  c++  java
  • 【linux之文件查看,操作,权限管理】

    一、shell如何处理命令

    • 1.shell会根据在命令中出现的空格字符,将命令划分为多个部分
    • 2.判断第一个字段是内部命令还是外部命令
    内部命令:内置于shell的命令(shell builtin)
    外部命令:通过安装其他应用程序或服务而安装来的命令
    
    路径:为了查找或定位某个文件所必需经过的目录的层次结构
    相对路径:从工作目录开始查找的路径
    . 当前的工作目录
    .. 当前的工作目录的父目录
    根的父目录还是根
    绝对路径:从根(/)开始查找的路径
    
    变量:内存空间
    变量值:存放在内存空间中的数据
    空变量:NULL
    环境变量PATH(路径),绝对路径:PATH=PATH1:PATH2:PATH3:...
    • 3.判断其他的字段是选项还是参数,判断正确与否,如果正确就执行,如果错误就返回错误信息
    • 4.在命令书写过程中按回车键将书写的内容提交给shell执行
    • 5.如果想要在提交shell之前取消命令就用ctrl+C

    二、文件查看,操作

    帮助类
    man,help,info,whereis,which,whatis
    目录操作类
    ls,pwd,cd,mkdir,rmdir
    文件操作类
    nano,touch,rm,cp,mv,stat
    文件查看类
    cat,tac,head,tail,less,more
    文本处理
    cut,sort,uniq,tr,sed,awk

    1、查看

    • ls-->list
    列表显示目录的内容
    用法:
    
    ls [OPTION]... [FILE]...
    []:可选的内容
    {}:必选的内容
    |:多选一
    
    默认的参数就是工作目录
    
    选项:
    
    -l: 长格式输出
    -rw-------. 1 root root 1211 May 11 06:03 anaconda-ks.cfg
    
    第一位表示文件的类型:
    -:表示普通文件(f,file)
    b:表示块设备文件(block)
    c:字符设备文件(charact)
    d:目录文件
    l:符号链接文件(symbol link)
    p:管道文件(pipe)
    s:套接字文件(socket)
    第二到第十位:文件的权限位,三组权限位,每组包括三个权限字符,rwx,读写执行。若没有权限就使用-代替
    第二段的数字1:表示文件被硬链接的次数
    第三段:文件的所有者,root
    第四段:文件见的所属组,root
    第五段:文件的大小,默认以byte为单位进行显示
    第六段:时间戳(访问时间,修改时间,改变时间)
    访问时间:access timestamp
    修改时间:modified timestamp(改的是数据内容,对数据的内容进行编辑,叫修改)    
    改变时间:change timestamp(metadata,元数据,对元数据的编辑叫改变)
    第七段:文件名
    在linux中,以.字符作为文件名第一个字符的文件,就是隐藏文件
    
    -a: 显示所有文件,包括隐藏文件
    
    -A: 显示所有文件,包括隐藏文件,但不包括.和..
    
    -h: 以人类方便读的方式显示
    
    -d: 以文件夹的属性代替内部子文件的属性输出
    
    -r: 倒序显示
    
    -R: 递归显示(recursive)
    
    -Z: 显示文件安全上下文
    • cat 
    查看文件
    -n:给所有行编号 -b: 不对空白行编号
    tac cat的倒序显示
    • head
    从头开始查看,默认前十行 
    head -n 3 :查看前三行 还可以直接写成 head -3
    head -c 50:查看50字节
    head -c 1b:查看一个扇区512字节的内容
    • tail
    从结尾开始查看。选项类比head
    -f :实时监控的文件末尾的内容变化
    • more
    分页显示文件内容 只能往后看
    • less
    • whereis
    显示命令的二进制文件,帮助手册路径
    • which
    查看文件在哪,只显示二进制文件路径
    • whatis
    只显示帮助手册路径
    • stat
    查看文件属性(访问时间,修改时间,改变时间)

      

    2、目录操作

    • pwd

    显示工作目录(绝对路径)默认的工作目录是/root,root用户的家(宿主目录),默认用户登录的第一个目录就是宿主目录

    • cd

    切换工作目录
    如果没有参数,那么默认的参数是用户的宿主目录
    cd ~ :切换到宿主目录
    cd - :切换到上一次使用的工作目录

    • mkdir

    创建目录

    mkdir [OPTION]... DIRECTORY...
    选项: -p :在创建子目录之前,先创建父母录
    -v :显示创建文件夹详细的过程
    命令展开功能,使用{},中间用逗号分隔
    • rmdir

    删除目录(只能删除空目录)若一个目录只有.和..,那么就认为这个目录为空
    rmdir [OPTION]... DIRECTORY...

    • rm

    移除

    rm [OPTION]... FILE...
    选项:-r:可以删除目录
    -f:强制删除
    • type

    区分命令为内部命令还是外部命令

    获得帮助
    内部命令:help 内部命令
    外部命令:
    man 外部命令 
    info
    --help

    3、文件编辑

    • echo

    -n:不输出换行符号
    -e:使得反斜杠生效

    • nano
    文本编辑工具,增强版的pico
    ^:脱字符
    1.一般在编辑模式中相当于ctrl键
    2.在其他的用途中,有不同的意义,如:可以取反,可以表示行首
    默认有换行符,一个换行符相当于一个字节
    ctrl+o保存
    ctrl+x退出
    • touch

    改变文件的时间戳。当文件不存在时,会创建文件
    -a:只修改文件的访问时间
    -m:只修改文件的修改时间
    -c:不创建文件

    4、时间命令

    • clock

    硬件时间

    • date

    系统时间

    设置时间:
    1.date 月日时分年.秒
    date 091703282015
    Thu Sep 17 03:28:00 CST 2015
    2.date -s ”年/月/日 时:分:秒”
    date -s "2015/09/17 15:32:11"
    Thu Sep 17 15:32:11 CST 2015
    3.date +%Y
    • hwclock
    RTC:实时时钟
    -s 把硬件时间同步到系统时间
    -w 把系统时间同步到硬件时间
    
    touch的时间默认来源于系统时间
    • bc  计算器
    • cal:日历

    5、文本处理

    • cut
    remove sections from each line of files
    -d 指明分隔符号,默认空格
    -f 指明操作区域 -f 1 第一列
    eg:cut -d : -f 1 /etc/passwd
    cut -d : -f 7 /etc/passwd | sort | uniq -c
    • sort
    sort lines of text files 排序,默认顺序ASCII编码
    -n : 按数字大小排列,从小到大
    -r : 倒序
    -t : 指明分隔符号
    -k : 指明操作区域
    -u : 如果存在多个重复的内容则显示为一行,相当于uniq命令
    
    sort -n -t : -k 3 /etc/passwd
    • uniq
    类似于 sort -u
    -c :统计连续的重复行的数量
    -u :只输出唯一的行,(不连续重复出现的)
    • tr
    字符集转换
    tr 'ab' 'AB' < /etc/passwd 对位替换
    • wc
    字计数器
    wc - print newline, word, and byte counts for each file
    -l 只显示行数
    -w 只显示字数
    -c 只显示字符数
    wc /etc/passwd
    30 54 1427 /etc/passwd

    三、文件类型介绍

    • 通过颜色来区分文件类型

    黑色或白色:普通文件
    黄色:设备文件
    深蓝色:目录文件
    浅蓝色:符号链接
    棕色:管道
    紫色:套接字文件
    红色:软件包,压缩包
    绿色:可执行文件FI

    file命令 查看文件类型

    FHS:文件系统层级标准

    /:根目录
    /bin:通常存放普通的命令,这些命令可以被所有用户执行,二进制文件
    /sbin:超级用户的bin,通常存放管理类命令,只有root才可以执行
    /boot:存放着跟系统启动有关的文件,引导系统的程序,内核,ramfs镜像
    /dev:存放设备文件目录

    每个设备文件都有俩个设备号:主设备号,次设备号
    主设备号:当前设备所使用的驱动程序的数字编号,MAJOR
    次设备号:使用相同驱动程序的不同设备编号,MINO

    设备文件又分为两类:
    块设备文件:用于进行数据的存储和交换的设备,随机访问,比如:硬盘,光驱,内存
    字符设备文件:用于进行数据的传输和处理的设备,线性访问,比如:网卡,总线,键盘


    /etc:配置文件
    /home:所有普通用户的家目录的根目录,每个用户的家目录名称都默认与用户名相同,
    但是此目录不包括root用户的家目录
    /root:root用户的家目录,宿主目录
    /lib:库文件存放目录
    /lib/modules:内核专用的库

    库文件分为两类:
    静态库:.a
    动态库:.so 
    内核专用库:.ko
    
    ldd 查看命令用了哪些库

    /media:挂载点,常用块文件的默认挂载点,光驱、硬盘、软驱等设备的默认挂载点
    /mnt:挂载点,常用的其他外部设备的自定义挂载点
    挂载点:用来链接或者存放分区的文件夹
    /proc:伪文件系统,内存信息中的映射
    /sys:伪文件系统,将/proc里面的有关硬件设备的信息进行映射
    /tmp:临时文件夹,缓存数据的存放地
    /var:可变化的文件,如:日志、文件锁等
    /usr:通用共享资源,第三方软件的安装目录
    /usr/bin
    /usr/sbin
    /usr/etc
    上述目录一般是安装二进制软件包时候使用的

    /usr/local/etc/
    /usr/local/bin
    /usr/local/sbin
    上述目录一般是编译源代码安装软件包时候使用的

    四、文件权限

    • DAC:自主访问控制

                     文件             目录    
    r:读 获得文件的内容          查看目录中的文件
    w:写 编辑文件的内容          创建,修改删除文件名
    x:执行 将文件当作命令执行     可以进入,引用目录,查看详细信息
    
    rwxrwxrwx
    第一段:所有者权限
    第二段:所有组权限
    第三段:其他人权限
    • chmod 修改指定文件的权限位值

    chmod 权限位值 文件名
    权限位值有两种表示方式:
    符号标识:
    权限位标识:
    u:表示所有者
    g:所属组
    o:其他人
    a:u+g+o
    赋值标识:
    +:在原有的权限基础上添加新的权限
    -:在原有的权限基础上删除权限
    =:不管原有的权限如何,直接设定新的权限
    权限标识:
    r w x 
    举例:
    chmod u+x textfile 在原有的权限基础上给所有者添加执行的权限
    chmod g+x,o+x textfile
    chmod a+x textfile 可以写成 chmod +x textfile
    
    数字标识:
    r:100 4
    w: 010 2
    x: 001 1
    r-x:5

    chmod 500 testfile

    若使用符号标识法,可以针对某个权限位单独设置
    使用数字标识法,必须完整的写出三个权限位的权限值
    • umask 权限遮罩码 002 022

    创建新的目录,目录的默认权限 777-umask
    创建新的文件,文件的默认权限 666-umask
    注意:
    文件的最高权限为666,目录的最高权限是777
    权限不能使用数字进行换算,必须使用字母;
    umask定义的权限是系统默认权限准备丢弃的权限
    Umask的来源    
    cat /etc/bashrc    
    f [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002
    else
        umask 022
    fi
    • chown 改变文件的所有者和所属组

    -R 递归修改目录的所有权以及目录中子文件、子目录的所有权
    chown USERNAME FILE 只修改文件的所有者
    chown :GROUPNAME FILE 只修改文件的所属组
    chown USERNAME: FILE 同时修改文件的所有者和所属组,所属组就是用户的主要组
    chown USERNAME:GROUPNAME FILE 修改文件的所有者和所属组,所有者是USERNAME,所属组是GROUPNAME
    • chgrp 改变文件的所属组

    • facl 文件系统访问控制列表,对于权限的扩展属性的设定

    • getfacl 查看文件的扩展属性列表
      setfacl 设置文件的扩展属性列表

    -m:修改
    setfacl -m u:UID或用户名:权限 FILE
    setfacl -m g:GID:权限 FILE
    -x:撤销修改
    setfacl -x u:UID FILE
    setfacl -x g:GID FILE
    特殊权限
        SUID:超级用户权限    s或S  (出现在所有者的执行权限位置)    4     
        SGID:超级组权限     s或S  (出现在所属组的执行权限位置)    2
        Sticky:粘滞位       t或T (出现在其他人的执行权限位置)   1
        如果在设置特殊权限位之前,文件具有执行权限,那么特殊权限就是小写字母,反之大写字母
        
                                 文件                                       目录
                                
        SUID    在执行一个具有SUID命令时,执行者会                        没有意义
                以该命令的所有者身份来执行
        SGID    在执行一个具有SGID命令时,执行者会                具有这样权限的目录,在其中
                以该命令的所属组身份来执行(几乎不用)            建立的所有文件,所属组自动继承目录的所属组
        Sticky                 没有意义                           如果用户对于一个有sticky权限的目录有写权限,用户只能修改
                                                                  那些所有者为自己的文件
        
        

    补充:

    • ln:创建链接文件,默认创建硬链接

    链接文件的类型:
    硬链接:
    一个文件的多个文件名
    软连接(符号链接):快捷方式(访问路径) 
    -s:创建符号链接
    -v:显示链接创建过程
    注意:创建链接时,最好写绝对路径
  • 相关阅读:
    Zabbix通过进程名监控进程状态配置详解
    kibana 统计field所有值百分比
    使用Logstash filter grok过滤日志文件
    python 修改文件内容
    清理elasticsearch的索引
    zabbix3.2.1安装graphtrees插件
    snmpwalk用法
    Zabbix通过SNMPv2监控DELL服务器的硬件信息
    zabbix上的宏(macro)介绍
    解决TeamViewer无法按给定网络地址联系伙伴
  • 原文地址:https://www.cnblogs.com/smallmars/p/8436556.html
Copyright © 2011-2022 走看看