• Linux基础系列-Day2


    基础命令(文件内容管理)

    1.cat:在当前终端显示文本文件内容

      格式:cat [文件路径]

        -n  从1开始对所有输出的行数编号

        -b  和-n相似,只不过对于空白行不编号;
    2.head:从文件内容开头输出,默认头部10行

      格式:head [文件路径]

        -c N  输出文件头部的N(N为整数)个字节内容

        -n N  输出文件头部的N(N为整数)行的内容  

    3.tail:从文件尾部内容输出,默认尾部10行

      格式:tail [文件路径]

        -c N  输出文件尾部的N(N为整数)个字节内容
        -n N  输出文件的尾部N(N位数字)行的内容

        -f   动态监控文件内容是否有追加
    4.more:分屏显示文件内容

      格式:more [文件路径]

        -<数字>:指定每屏显示的行数
      操作:按Space键显示文本的下一屏内容

        按Enter键显示文本的下一行内容

        按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式

        按H键:显示帮助屏,该屏上有相关的帮助信息

        按B键:显示上一屏内容

        按Q键:退出more命令

    5.less:与more类似,分屏显示文件内容

      格式:less [文件路径]

        -e  文件内容显示完毕后,自动退出

        -N  每一行行首显示行号

      操作:PageUp键向上翻页

        PageDown键向下翻页
    6.grep:使用正则表达式筛选显示文件内容,一般应用于管道命令

      格式:grep [正则表达式或字符串] [文件路径]

        -s  不显示错误信息

        -v  反转查找

      示例:

      grep home home.txt  返回包含“home”的文本行

    基础命令(归档和压缩)

    1.tar:打包解包和压缩解压

      格式:tar [选项] [文件路径] 

        -c  建立新的备份文件

        -x  解包备份文件

        -C <目录>  这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项

        -t  列出备份文件的内容

        -z  通过gzip指令处理备份文件;

        -v  显示指令执行过程

        -r  添加文件到已经压缩的文件;

        -j  支持bzip2格式文件

      示例:

      tar -cvf log.tar log2012.log  仅打包,不压缩

      tar -zcvf log.tar.gz log2012.log  打包后,以 gzip 压缩,解压将c替换为x

      tar -jcvf log.tar.bz2 log2012.log   打包后,以 bzip2 压缩,解压将c替换为x 

      tar -zxvf log.tar.gz -C /root  解gzip方式压缩的包,存放到/root下

      tar -jxvf log.tar.bz2  解bzip2方式压缩的包,后面可用-C加存放路径 

    用户和组

    用户介绍

    系统中的每个进程(运行程序)都作为一个特定用户运行,每个文件归一个特定用户所有,对文件和目录的访问收到用户的显示,与运行进程相关联的用户可确定该进程可访问的文件和目录

    ·用户:用户是能够获取系统资源的权限的集合

    ·用户分类:

      a.管理员 root:具有使用系统所有权限的用户

          b.普通用户:即一般用户,其使用系统的权限受限

          c.系统用户:保障系统运行,一般不提供密码登录系统

    ·用户查询

      id                  查看当前用户信息

          id user          查看用户user信息

          ls –l              长格式显示文件属性,第三列为所属用户

          ps au            查看当前终端所关联的用户的进程,第一列为所属用户(进程管理详解)

    ·用户相关文件(用户):/etc/passwd

      文件内容格式:username:password:UID:GID:GECOS:diretory:shell

        username:用户名或帐号,不唯一

               password:用户密码占位符,具体密码存放在/etc/shadow文件中

               UID:用户的ID号,作为用户的唯一标识号

               GID:用户所在组的ID号,作为用户组的唯一标识号(为用户的主要组)

               GECOS:用户的详细信息(如姓名,年龄,电话等)

               diretory:用户个人数据和配置文件所的家目录

               shell:用户所在的shell环境

    ·用户相关文件(密码):/etc/shadow,一开始,加密的密码存储在全局可读的/etc/passwd文件中,被认为有最合理的安全性,但随密码暴力破解、字典攻击的普及,加密密码或’密码哈希’就被移到了更加安全的/etc/shadow中

      文件内容格式:name:password:lastchange:minage:maxage:warning:inactive:expire:blank

        name:有效登录名称

        password:已加密密码(开头!表示密码已锁定)

        lastchange:-d,最近更改密码的日期(以1970.1.1日的天数表示)

        minage:-m,不可更改密码的天数,0表示无要求

        maxage:-M,必须更改密码的最大天数

        warning:-W,密码即将到期的警告期,0表示不提供警告

        inactive:-I,密码过期后宽限的时间,过后失效无法登录

        expire:账户失效,以距离1970.1.1的天数表示

        blank:预留字段

      注:密码时间管理暂不说明

    组介绍

    ·组:用户的集合,权限的容器

    ·组分类:

      a.普通用户组(补充组/附加组):可以加入多个用户

          b.系统组:一般加入一些系统用户

          c.私有组(主要组):也称基本组,当创建用户时,如果没有为其指明所属组,则为其自动定义一个私有的用户组,名称与用户名同名。私有组可以变成普通用户组,其他用户加入该组时,则变成普通组

      注:每个用户只有一个主要组,一般由/etc/passwd第4个字段的组GID定义

      注:用户创建的新文件归主要组所有

      注:创建用户的主要组是名称和用户相同的新建组,该新建用户是其用户专用组的唯一成员

    ·与组相关的文件/etc/group

      文件内容格式:group_name:password:GID:user_list

        group_name:组名

               passwoerd:组密码

               GID:组的ID号,唯一标识号

               user_list:以group_name为附加组的用户列表

               

    基础命令用户和组管理命令

    1.useradd:创建用户

      格式:useradd [用户名]

        -u  指定用户UID

        -g  指定用户GID

        -d  指定用户家目录,默认是/home/username

        -s  指定用户所在的shell环境

        -G  指定用户的附加组

        注:大部分参数可应用于usermod命令修改用户

      示例:

      增加一用户wendy,指定UID为1888,家目录/home/oracle,shell为/bin/sh

          useradd –u 1888 –d /home/oracle –s /bin/sh wendy

    2.usermod:修改用户信息

      格式:usermod [选项] [用户名]

        -u  配置用户UID

        -g  配置用户GID

        -d  配置用户家目录,默认是/home/username

        -m  与-d 一起用表示把用户家目录的内容也移走

        -s  配置用户所在的shell环境

        -G  配置用户的附加组

        注:大部分参数可应用于usermod命令修改用户

      示例:

      修改用户wendy,UID为1000,家目录/oracle,shell为/bin/bash

          usermod –u 1000 –d /oracle –s /bin/bash -m wendy

    3.userdel:删除用户

      格式:userdel [用户名]

        -r  连同家目录一起删除

        注:不加-r只从/etc/passwd中删除,默认情况保存家目录及数据

      示例:

      删除用户wendy及家目录

      userdel –r wendy

      问题:

      存在无人拥有的文件和目录,只有UID号和GID号,没有所属用户和所属组

      是因为删除用户不加-r选项,保留的家目录及数据将继承原用户的UID和GID号,

    4.groupadd:创建组

      格式:groupadd [组名]

        -g  指定GID

        -r  指定/etc/login.defs文件中有效系统GID编号范围内的系统组

      示例:

      增加用户组grp,指定UID为1001

      groupadd  –g  1001  grp

      注:一般指定1000+,避免和系统组冲突

    5.groupmod:修改组信息

      格式:groupmod [选项] [组名]

        -n  修改组名

        -g  指定新GID号

      示例:

      修改harry组名为natasha

      groupmod  -n harry natasha

    6.groupdel:删除组

      格式:groupdel [组名]

      注:组内必须没有任何成员才能删除,同样要避免无组文件和目录 

    文件权限

    ·文件系统权限:linux通过文件权限控制用对文件的访问

    ·文件所属用户类别

      所属用户:通常为创建文件的用户

      所属组:通常为创建文件的用户的所在组

      其他用户:除了创建用户和该用户所在组内用户以外的用户

      注:一般同一文件的所属用户权限高于所属组高于其他用户

    ·文件基本权限

      三种文件权限:读取、写入、执行

        读取:r表示read,可以读取文件的内容,列出目录的内容

        写入:w表示write,可以更改文件的内容,可以创建或者删除目录中的内容

        执行:x表示execute,可以作为命令执行文件,可以访问目录中的内容

               注:三种权限根据情况进行组合以达到控制文件系统的目的

               注:文件被创建,所有者自动拥有所有权限

               注:对目录无执行权限,不能cd进入该目录,只能ls目录里的文件名字

               注:对目录无执行权限,目录内文件有操作权限可以正常操作目录内文件

               注:对目录没有读权限,看不到内容,但是可以cd进目录和对目录内进行操作

               注:对目录有写权限,可以删除目录内的任何文件,无关目录内文件的权限,后面会介绍特殊权限‘粘滞位’来覆盖这个问题

               注:对目录没有写权限,目录内文件文件可写则可写,但是不能删除或创建

    ·当创建一个文件的时候,系统保存了有关该文件的全部信息,包括:文件的位置、总计/总用量、文件类型、文件的权限位、SELinux的标记、链接数/目录数、属主属组、文件大小、文件的修改时间、文件名/文件链接名

    ·ls -l命令查看一个文件的详细属性

    [root@Linux ~]# ls -l abc.txt

    -rw-r--r--.  1  root root  762  07-29 18:19  abc.txt

    说明:

    1. -rw-r--r--        该文件的文件类型和权限位

    2. "."           支持SELinux标记

    3. "1"           该文件硬链接的数目/引用计数

    4. root root                文件属主&属组

    5. "762"                      字节来表示的文件长度,记住,不是K字节!

    6. 07-29 18:19            文件的最后更新时间。

    7. abc.txt                    文件名。

    ·第一字段:第一个字符,文件类型(七种)

    -rw-r--r--. :第一个横杠是该文件的文件类型,最后的点表示有selinux标识

      -  普通文件

      d  目录文件

      l  链接文件

      s  套接字文件

      b  块设备文件

      p  命名管道文件

      注:所创建的文件绝大多数都是普通文件、目录文件或符号链接文件

    ·第一字段:权限位置

    rw-r--r-- :这是该文件的权限位,一共是9个字符,他们分别对应9个权限位,三位一组,表示属主权限、属组权限和其他用户权限

      rw-:前三位,文件属主可读、写

      r--:中间三位,组内用户可读

      r--:最后三位,其他用户只可读

      注:为加强系统安全,创建文件时,系统不会自动的赋予属主执行权限

      注:与NTFS权限不同,linux权限只适用于设置了linux权限的目录或文件

      注:目录中的文件和子目录不会继承父目录的权限,通过特殊权限设置继承,此处不做说明

      注:root拥有完全控制文件权限,可以通过selinux策略或者存在问题的进程和文件的安全性上下文限制,此处不做说明

      注:除了基础三权限,linux系统下还有特殊权限和粘滞位,此处不做说明

    ·第二字段:链接占用的节点

      1

      普通文件:该文件的硬链接数

      目录:该目录所含子目录的个数,新建空目录,此目录的第二字段就是2,表示该目录下有两个子目录。

      注:每一个目录都有一个指向它本身的子目录"." 和指向它上级目录的子目录"..",此默认子目录是隐藏的。

    ·第三字段:文件(目录)属主&属组

      root root   该字段表示该文件(目录)属主&属组是谁,属组为属主所在的主组。

      注:只有文件的拥有者才具有改动文件属性的权利。

      注:root具有改动任何文件属性的权利。

      注:对目录,只有拥有该目录的用户,或具有w权限用户才有在目录下创建文件的权利。

      注:如果某一用户被删除,而该用户家目录还存在,ls -l 查看该文件将显示一个代表用户存在前ID号的数字。(无主无组文件)

    ·第四字段:文件大小

      768        文件或者目录所占用的系统空间,以字节为单位

      注:如果是目录,表示该目录大小,而非目录及其下面的文件的总大小

    ·第五字段:时间戳

      08-03 08:27       文件(目录)最近访问(修改)时间

      注:可通过touch、mkdir修改时间戳

    ·第六字段:文件/目录名

      abc.txt        如果是链接,会有"->"符号,跟着它指向的文件名

    基本命令(文件权限管理)

    1.chmod:修改文件权限

      符号法格式:chmod  [Who/What/Which]  [文件名]

        Who指权限组:    用户(u)、组(g)、其他(o)、全部(a)

        what指动作:     添加(+)、删除(-)、精确设置(=)

        which指权限:    读取(r)、写入(w)、执行(xX)

      注:符号法,适合进行单一权限添加或删除

      注:执行X,只对目录或者任意权限位置有执行权限的文件生效

      注:-R选项为递归,表示设置权限时,目录下的子目录和文件也生效设置,与X搭配使用,能够对所有目录设置执行(搜索)权限,但是要注意带执行权限的文件

      示例:

      为abc.txt的属主增加执行权限

      chmod u+x abc.txt

      数值法格式:chmod  [###]  [文件名]

        用数字表示权限:r=4,w=2,x=1,0表示无权限

               #表示一组权限rwx之和

        每个#代表一个权限位置:属主、属组、其他

      示例:

      将abc.txt权限修改为rwxr-xr--

      chmod 754 abc.txt

    2.chown:更改文件的所有权

      格式:chown [用户或组] [文件名]

        chown  user  file           #修改用户属主

               chown  :group  file           #修改用户属组

               chown  user:group  file     #修改用户属主和属组

               -R  为递归整个目录树

               -h  在改变符号链接文件的属主时不影响该链接所指向的目标文件

               注:只有root和属主可改文件所有权,普通用户只能改属组,改属主后无法回改

  • 相关阅读:
    Java中的Set List HashSet互转
    Java数组如何转为List集合
    Map
    Jave中的日期
    mybatis plus 条件构造器queryWrapper学习
    Error running 'JeecgSystemApplication': Command line is too long. Shorten command line for JeecgSystemApplication or also for Spring Boot default configuration.
    RBAC权限系统分析、设计与实现
    html拼接时onclick事件传递json对象
    PostgreSQL 大小写问题 一键修改表名、字段名为小写 阅读模式
    openssl创建的自签名证书,使用自签发证书--指定使用多域名、泛域名及直接使用IP地址
  • 原文地址:https://www.cnblogs.com/zero527/p/6895644.html
Copyright © 2020-2023  润新知