Linux 用户管理&变量-Linux学习(三)

用户体系

  1. useradd username管理
    • /home/username 创建目录
    • /etc/passwd
    • /etc/shadow 用户密码相关的文件
    • id
  2. userdel username -r (加了-r 会删除对应家目录)
  3. usermod -d 可以修改用户家目录的位置userod -d /home/w1 w(usermod -g group2 user2)
  4. change 修改用户的生命周期
  5. groupadd groupdel(useradd -g group1 user2)
  6. su - username 临时用户切换
  7. sudo 管理员授权给普通用户 。root用户可以通过visudo 来添加命令的授权
  8. /etc/passwd
    wilson:x:1000:1000::/home/wilson:/bin/bash
    :x(x代表切换用户需要输入密码,为空则不需要密码):uid:gid:comment:家目录位置:用户登录后的命令解释器  
    (如果设置为 /sbin/nologin 则用户不能登录)
    

管道和重定向

  1. 管道和管道符
    • 管道和信号一样,也是进程通信的方式之一
    • 匿名管道(管道符)是Shell 编程经常用到的通信工具
    • 管道符是“|”,将前一个命令执行结果传递给后面的命令
  2. 重定向
    • 一个进程默认会打开标准输入,标准输出,错误输出三个文件描述符
    • 输入重定向符号“<”
    • 输出重定向符号“>”(清空输入),“>>”(追加),“2>”(仅输出错误内容),"&>"(输出所有内容)
    #!/bin/bash
    cat > /path/to/a/file << EOF
    I am $USER
    EOF
    
    以上脚本会生成一个新文件,文件里包含一行I am xx的字符

变量的赋值

  • 交互式变量赋值 read var

  • 变量名=变量值

    a=123(等号两边不能有空格)

  • 使用let为变量赋值

    let a=10+20(不建议,因为bash的计算性能非常差)

  • 将命令赋值给变量

    l=ls

  • 将命令结果赋值给变量,使用$()或者``

    letc=$(ls -l /etc)

  • 变量值由空格等特殊字符可以包含在“ ”或‘ ’中

  • 输出变量的内容使用 $进行引用 例如 echo $var

  • 变量的引用

    ${变量名}
    $变量名

  • 如果是需要在变量输出结果后面追加内容,则需要使用第一种,否则会识别成别的变量名称

  • 变量的默认作用范围(只在自己的范围内有效)

  • 使用source 或 . 在当前环境下执行 .sh 脚本

    • 变量的导出
      • export(可以将变量导出,让子进程读取到变量)
    • 变量的导出
      • unset

  • 系统环境变量
    • 环境变量:每个Shell打开都可以获得到的变量
      • set(查看更多变量–预定义便利和话环境变量) env(查看所有的环境变量)
      • 仅查看某一个变量 echo $USER
      • $PS1 控制台日志输出格式
      • $? 上一条命令是否正确执行【返回0正确执行,1执行异常】 $$ pid $0当前进程的名称
      • 参数位置 $1 $2 …… ${10}

  • 数组类型
    • 定义数组:IPTS=( 10.0.0.1 10.0.0.2 )
      • 括号和内容直接有空格,以空格来分隔各个元素
    • 显示数组的所有元素
      • echo ${IPTS[@]}
    • 显示数组元素的个数
      • echo ${#IPTS[@]}
    • 显示数组的第一个元素
      • echo ${IPTS[0]}

  • 特殊字符:一个字符不仅有字面意义,还有元意(meta-meaning)

    • #注释
    • ; 分号 ——分隔语句
    • \ 转义符号
    • “和‘引号
      • ” 双引号 对变量不完全引用
      • ’ 单引号 对变量进行完全引用
      • `反引号——可以执行一条命令

  • 运算符(shell 只是支持整数运算)

    • 赋值运算符
      • = 赋值
      • unset 取消赋值
      • expr 进行运算赋值
        • 符号和运算符要有空格
    • 算数运算符
    • 数字常量
    • 双圆括号
      • (( a++))
  • 特殊符号

    • 引号
    • ‘完全引用
    • “不完全引用
    • `执行命令
    • 括号
      • ()(()) $()
        • 单独使用圆括号会产生一个shell
        • 数组初始化也是用圆括号 IPS=( 21.23 23.23 )
      • [] [[]]
        • 用来做测试
      • > <输入和输出
      • echo {0…9} 输出0到9 的数字
      • && ||
      • & 后台运行

vim、sed、awk编辑器

  • vim 是全文本编辑器 sed、awk是行编辑器
  • sed awk 是非交互式的文本编辑
  • sed awk 是对文本一行一行的处理
  • sed 的介绍
    • 将文件以行为单位读取到内存(模式空间)
    • 使用sed的每个脚本对该行进行操作
    • 处理完成后输出该行

猜你喜欢

转载自blog.csdn.net/u013795102/article/details/118966150
今日推荐