您的位置:首页 > 运维架构 > Shell

shell的特性

2016-01-23 16:35 525 查看
shell的特性
~/.bash_history命令历史存放文件,登出后保存。
$HISTSIZE命令历史条数,允许~/.bash_history文件存储的命令条数,默认1000.
!!:上一条命令
!$:上一条命令的最后一个参数
!命令标号:执行history输出中的对应的命令

*:通配符,任意个任意字符;?:通配符,一个任意字符
在当前shell定义的alias只在当前shell生效
>输出重定向 >>追加重定向 <输入重定向 2>错误重定向 2>>错误追加重定向
输入重定向是使用符号后文件的内容作为输入
错误重定向只记录错误信息

shell变量
变量分为系统预设变量和用户自定义变量
变量规则:
变量名=变量内容

=号两边不得有空格

变量名只能由字母、数字、下划线组成,并且不能以数字开头

当变量内容中含有特殊字符时,应使用单引号''

当变量内容中需要引用命令的运行结果,应使用反单引号``

当变量内容中需要引用其它变量值时,应使用双引号""

当变量内容中含有单引号时,可使用双引号""

总结:单引号会将特殊字符作为普通字符,双引号不会消除特殊字符的意义。(上列最后一条除外)
env:显示系统预设的环境变量
set:显示所有的变量,系统预设和用户自定义
export:在子shell中声明变量
unset 变量名:取消声明变量

交互式模式就是shell等待你的输入,并且执行你提交的命令。非交互式模式,在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。
当第一个用户登录时(login交互式shell),执行/etc/profile和~/.bash_profile;当运行bash shell时(nologin交互式shell),执行~/.bashrc。/etc/profile调用/etc/profile.d目录下的配置文件;~/.bash_profile会调用~/.bashrc;~/.bashrc会调用/etc/bashrc。
~/.bash_logout登出时执行一些清理任务
在当前shell定义的alias只在当前shell生效
所以如果要全局声明别名或者变量的话:变量写在/etc/profile.d/目录下,别名写在/etc/bashrc下
ssh user@hostname command:只向系统发送一条指令并不登陆系统

shell中的特殊符号
#:注释符,忽略后面的内容 \:脱意字符,消除特殊字符的作用,使其成为普通字符
~:用户的家目录 &:将命令放到后台运行 [ ]:字符组合,匹配中括号内任意一个字符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息