首页 > 代码库 > shell

shell

创建用户相关的文件

/etc/passwd   /etc/shadow   /etc/group   /etc/gshadow

userdel 只是删除了这四个文件,并不能完全删除用户,

完全删除:userdel -r 用户

    或者  userder  用户  ,然后再删除  find / -name “*用户*”查找到的文件



什么是shell?

在linux内核与用户之间的解释器程序


使用方式:

交互式-----命令行

非交互式------脚本


cat /etc/shells

/bin/sh         多数unix默认使用的shell

/bin/bash       多数linux默认使用的shell

/sbin/nologin   非登录shell


/etc/profile  控制历史命令的数量


标准输入      /dev/stdin   0  键盘

标准输出      /dev/stdout  1  显示器

标准错误输出  /dev/stderr  2  显示器


重定向

重定向输入   < 

重定向输出   >   >> 追加

重定向错误   2>  将命令行执行出错的信息保存到文件

             2>> 错误信息追加输出

混合重定向   &>  相当与 > 和 2> ,覆盖到同一个文件


#! 脚本声明(使用哪种解释器)

#!/bin/bash       //sha-bang调用标记


执行脚本的方式

1     x权限  脚本文件路径

2     sh 脚本文件路径

      source  脚本文件路径

      .  脚本文件路径


调试shell

  1. 直接观察执行后的输出错误信息

  2. sh  -x  开启调试模式

  3. 在可能出错的地方设置echo断点



shell变量


定义/赋值/查看 变量


定义赋值变量

变量名=变量值

注意:

  1. 若变量已经有值,相当于重新赋值

  2. 等号两边不要有空格

  3. 变量由字母、数字、下划线组成,区分大小写

  4. 不能以数字开头,不能使用关键字和特殊字符



查看变量

引用变量值:$变量名

查看变量值: echo $变量名    echo ${变量名}

查看变量时,若变量名称与后面要输出的字符串连在一起,则应该以{}将变量名括起来以便区分


取消变量

  1. 退出定义shell的变量环境时,定义的变量会自动失效

  2. 手动取消,uset 变量名


变量的种类

存储类型   整数  浮点  双精度  字符型

使用类型

  1. 环境变量    通常大写,由系统维护,用来设置工作环境,只有个别变量用户可以直接更改,

    全局文件为/etc/profile,,对所有用户有效;用户文件为~/.bash_profile,仅对指定的用户有效。

    PWD   USER   SHELL  HOME  OLDPWD记录了上次执行cd之前所在的路径

  1. 位置变量    bash内置,存储执行脚本时提供的参数

     $n  n为序号    $1  $2  ${10}

  2. 预定义变量   bash内置,有特殊用途, 可直接调用,但不能赋值或修改

    $0   当前所在的进程或脚本名

    $$   当前运行进程的PID号

    $?   命令执行后的返回状态,0正常,1或其他值异常

    $#   已加载位置变量的个数

    $*   所有位置变量的值

  3. 自定义变量   用户自主设置,修改及使用



变量值及范围控制

扩展赋值操作

三种定界符 

            “”  允许扩展,界定一个完整字符串,允许在范围内通过$调用其他变量的值,有时可省略

            ‘’  禁用扩展,位于范围内的特殊字符均视为普通字符。比如$

             ``   命令的执行输出作为变量值  $()与``等效,但$()更方便嵌套使用


 read   从键盘读入变量值完成赋值

格式:   read  [ -p 提示信息 ]  变量名 

         -p 可选   -t 可指定超时秒数

终端显示控制

        stty  -echo   关闭终端输出(无显示)

        stty   echo   恢复终端输出(显示)


变量的作用范围

局部变量  只在当前shell环境有效,无法在子shell中使用

全局变量  在当前shell及子shell中均有效,使用export可将局部变量升级为全局变量


wc  -l 统计行数

          

本文出自 “12452511” 博客,请务必保留此出处http://12462511.blog.51cto.com/12452511/1905983

shell