bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来查看当前shell echo $SHELL 查看系统支持的shell cat /etc/shellscd /bin ls -la *sh一、 bash shell的配置 变量可分为自定义变量和环境变量 他们作用范围不同 set 可以查看所有变量 set|more 查看 enter一行一行查看 set|less enter换行 pagedown换页 q退出env只能查看环境变量bash shell的设置方式 1.通过自定义变量设置 key=value 比如 aaa=ajax echo aaa即可得到ajax变量名不能以数字或者特殊字符开头key1=testone不可key1= ′ testone ′ 而且等号左右2边不可有空格key2="key2is aaa即可得到ajax变量名不能以数字或者特殊字符开头key1=testone不可key1=′testone′而且等号左右2边不可有空格key2="key2is key1" 双引号能解析 key1="kkk" key2="kk2" key3=key1−−−− key1−−−− key2 echo $key3 kkk----kk2 unset key3 删除变量常见的变量 set|grep HIST HISTFILESIZE :记录历史指令保存的最大值 HISTSIZE:执行history时显示的个数 COLUMNS:终端窗口显示的宽度 LINES:终端窗口显示的高度 PS1:设置提示符号前面的内容样式(d,h, ,u,W,!,$,l 等) u 当前用户 W 当前工作目录 w 当前完整的工作目录从/算起 h 主机名 当前时间 # 登录后下达的第几个指令 比如 PS1="[u@h-w- -#]" [root@bogon-/var/var/lib-08:35:26-38]2.通过别名(Aliases)设置 设置,查看所有,查看某别名值,type -a ,删除 type ll [root@bogon-/var/var/lib-08:35:26-38]type ll ll 是 `ls -l --color=auto" 的别名 [root@bogon ~]# alias ll alias ll="ls -l --color=auto" [root@bogon-/var/var/lib-08:35:43-39]type -a ls ls 是 `ls --color=auto" 的别名 [root@bogon-/var/var/lib-08:35:45-40]type cd cd 是 shell 内嵌 查看所有别名 alias 设置 alias cls="clear" [root@bogon-/var/var/lib-08:42:55-51]type cls cls 是 `clear" 的别名 查看alias的值 alias cls [root@bogon-/var/var/lib-08:43:00-52]alias cls alias cls="clear" 删除别名定义 unalias cls3.通过set指令设置 set自身查看所有变量的值 设置shell内部的属性值(set -o noclobber,set -o vi) ll>a.txt 可以写入 ll>a.txt 可以覆盖ll>a.txt -bash: a.txt: 无法覆盖已存在的文件 ll>>a.txt 可以追加 set -o noclobber /*设置禁止重定向覆盖*/ set +o noclobber /*设置允许重定向覆盖*/ [root@bogon ~]# set -o allexport off braceexpand on emacs on errexit off errtrace off functrace off hashall on histexpand on history on ignoreeof off interactive-comments on keyword off monitor on noclobber off noexec off noglob off nolog off notify off nounset off onecmd off physical off pipefail off posix off privileged off verbose off vi off xtrace off[root@bogon ~]# set +o set +o allexport set -o braceexpand set -o emacs set +o errexit set +o errtrace set +o functrace set -o hashall set -o histexpand set -o history set +o ignoreeof set -o interactive-comments set +o keyword set -o monitor set +o noclobber set +o noexec set +o noglob set +o nolog set +o notify set +o nounset set +o onecmd set +o physical set +o pipefail set +o posix set +o privileged set +o verbose set +o vi set +o xtrace-o,+o set -o vi 设置输入命令的模式为vi下 ls 按esc 进入vim命令行模式编辑状态4.通过环境变量设置 自定义变量只能在当前shell环境下有效 环境变量在整个主机下的shell环境中有效可使用 export variable name来设置 定义过的普通变量和通过export 变量名来升级为环境变量如果重新打开连接会话(root或者admin 身份登录) key1,key2都是没有的常用变量: PATHPATH=$PATH.: 将隐藏的路径设置到PATH中,会带来安全问题?[root@bogon ~]# which chgrp /usr/bin/chgrp[root@bogon ~]# which ll alias ll="ls -l --color=auto" /usr/bin/ls二、shell startup scripts原理 login和non-login 用户登录或者其它非登录动作时自动执行的一些脚本 建立自定义变量或者执行set设置shell 建立环境变量,设置其它程序 使用alias 简化后续操作 登录时执行哪些程序login完整登录流程(CentOS) /etc/profile (PATH/USR/HOSTNAME/HISTSIZE等)) /etc/profile.d/*.sh (颜色语言 指令别名) ~/.bash_profile ~/.bashrc /etc/bashrc ~/.bash_login ~/.profile~/.bash_profile,~/.bash_login,~/.profile (只能依次读取其中一个)任何一个读取成功,不再读取下一个各自home目录的只对各自生效 修改完成功后 source 重新加载脚本即可non-login 无需登录即可运行的shell,如su和 原bssh下的新bash动作 涉及到的脚本 ~/.bashrc 和/etc/bashrc /etc/profile.d/*.sh (颜色语言 指令别名) 执行bash命令~/.bash_logout 用户注销时执行的命令,备份,清理等source 别名 .本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137226.htm