• 9.18 Day55---用户和权限


    目录

    操作系统是多用户的程序

    useradd  用户名

    passwd  用户密码:

    命令提示符:

    解读权限字符表示法:

     权限的数字表示法:

    修改权限:

    用户和用户组的关系:

    修改用户的组信息(需要重新登录才能生效):

     如何以管理员身份执行命令:

     编辑命令:

     Shell编程:

    什么是shell:

    shell解释器:

     怎么执行shell程序:

     形式参数:

    流程判断:

    if的几种用法:

     循环执行:

     死循环:


    操作系统是多用户的程序

    默认有一个root目录,管理员用户,拥有系统中所有的权限

    useradd  用户名

         1.创建用户

         2.为用户创建一个家目录

         3.为用户创建一个同名用户组

    passwd  用户密码:

    命令提示符:

    [当前用户名@当前机器名 当前用户名]用户类型

    /etc/hostname文件修改当前机器名

    两个特殊的目录名 / 是系统根目录 ~是当前用户家目录

    如果当前用户是root,那么~是/root

    如果当前用户是zhangsan,那么~是/home/zhangsan

    当用户登录系统后,默认在自己的家目录里面,而不是在系统根目录

    解读权限字符表示法:

    - 代表没有权限

    r 代表有可读read权限

    w 代表有可写write权限

    x代表有可执行excute权限 

     

    123 表示当前用户的权限

    456 表示所属当前组的权限

    789 表示其他用户的权限

     权限的数字表示法:

    4个原始数字:0 1 2 3,由这4个原始数字组合出权限的8种情况,分别用0-7来表示

    原始数字权限字符
    0-
    1x
    2w
    4r

                       组合成8种情况:

    0000---都不可执行
    1001--x只能执行
    2020-w-只能写
    3021-wx可写可执行
    4400r--只能读
    5401r-x可读可执行
    6420rw-可读可写
    7421rwx可读可写可执行

    修改权限:

    chmod 权限数字 文件

    chmod -R 权限数字 文件 (文件夹中所有子文件权限全部修改)

    用户和用户组的关系:

    • 每个用户默认有一个与自己同名的用户组
    • 一个用户可以出现在多个组中
    • 用户可以享受自己所在的组的权限

    修改用户的组信息(需要重新登录才能生效):

    扩展用户组:

    usermod -G 组名 用户名

    变更用户组:

    usermod -g  组名 用户名

    id 用户名 (查看用户和组信息)

     如何以管理员身份执行命令:

    sudo 命令

    root用户本身就是管理员,自带管理员身份

    有些系统命令需要管理员身份才能执行,只有普通用户才会需要以管理员身份执行命令

    reboot 重启命令就是一个需要管理员身份才能执行的命令

     

     

     

     编辑命令:

    • 使用scp可视化工具
    • 使用vi命令
    • vim命令(高级版本的vi,系统没有预装这个命令,需要单独安装)

    系统未预装的命令可以通过yum install -y 进行安装,这个过程需要联网 

     Shell编程

    什么是shell:

    shell是Linux系统自带的一种编程语言,用于写系统脚本

    shell程序写在shell文件里,shell文件一般以.sh为文件后缀名

    shell解释器

    解释器本身也是一个程序,用于解释执行shell程序的代码

    解释器在/bin/bash

     

     

     怎么执行shell程序:

    如果在可视化的系统中,双击文件执行

    在命令行系统中,使用./文件执行

    另外,执行文件需要x权限

    chmod 744 文件

    chmod +x 文件

     

    shell01.sh

     

    shell02.sh

     

    shell03.sh

     

     

    shell04.sh

     

     

     

    shell05.sh

     

     

     形式参数:

    $0执行这个程序的指令
    $#实际参数的个数
    $*所有的实际参数
    $1第一个实际参数
    $2第二个实际参数(以此类推)

     shell06.sh

    做数学运算需要使用$[表达式]

     

     

    流程判断:

     shell07.sh

     

     shell08.sh

     

    if的几种用法:

    单if:

    if { 条件表达式 } then

       语句....

    fi

    if分支:

    if { 条件表达式 } then

       语句....

    else 

       语句....

    fi

    if多路分支:

    if { 条件表达式 } then

       语句....

    elif { 条件表达式 } then

       语句....

    else 

       语句....

    fi

    if嵌套:

    if { 条件表达式 } then

        if { 条件表达式 } then

        fi

    fi

    shell09.sh

     

     

     

     循环执行:

    shell10.sh

    for i in {1..5}

    do

    done

     

     

     shell11.sh

    i=1

    while [ $i -le 4]

    do

    ((i++))

     

      

     

     死循环:

    shell12.sh

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    高效操作Golang字符串实战教程
    [iOS开发]编译过程
    python----破解数据库密码(不需要重启数据库以覆盖的形式)
    MyBatisPlus 多数据源配置
    基于JAVA水果食品顺溯源系统计算机毕业设计源码+数据库+lw文档+系统+部署
    MATMacOS安装
    网络安全(黑客技术)—2024自学
    71.【MySQL-二刷】
    【深度学习基础课程】单一神经元
    C#算法(12)—对图像像素做X/Y方向的偏移
  • 原文地址:https://blog.csdn.net/qq_63771774/article/details/126913699