首页 > 代码库 > 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
直接观察执行后的输出错误信息
sh -x 开启调试模式
在可能出错的地方设置echo断点
shell变量
定义/赋值/查看 变量
定义赋值变量
变量名=变量值
注意:
若变量已经有值,相当于重新赋值
等号两边不要有空格
变量由字母、数字、下划线组成,区分大小写
不能以数字开头,不能使用关键字和特殊字符
查看变量
引用变量值:$变量名
查看变量值: echo $变量名 echo ${变量名}
查看变量时,若变量名称与后面要输出的字符串连在一起,则应该以{}将变量名括起来以便区分
取消变量
退出定义shell的变量环境时,定义的变量会自动失效
手动取消,uset 变量名
变量的种类
存储类型 整数 浮点 双精度 字符型
使用类型
环境变量 通常大写,由系统维护,用来设置工作环境,只有个别变量用户可以直接更改,
全局文件为/etc/profile,,对所有用户有效;用户文件为~/.bash_profile,仅对指定的用户有效。
PWD USER SHELL HOME OLDPWD记录了上次执行cd之前所在的路径
位置变量 bash内置,存储执行脚本时提供的参数
$n n为序号 $1 $2 ${10}
预定义变量 bash内置,有特殊用途, 可直接调用,但不能赋值或修改
$0 当前所在的进程或脚本名
$$ 当前运行进程的PID号
$? 命令执行后的返回状态,0正常,1或其他值异常
$# 已加载位置变量的个数
$* 所有位置变量的值
自定义变量 用户自主设置,修改及使用
变量值及范围控制
扩展赋值操作
三种定界符
“” 允许扩展,界定一个完整字符串,允许在范围内通过$调用其他变量的值,有时可省略
‘’ 禁用扩展,位于范围内的特殊字符均视为普通字符。比如$
`` 命令的执行输出作为变量值 $()与``等效,但$()更方便嵌套使用
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