bash shell的配置

来源:互联网 发布:js遍历jsonarray对象 编辑:程序博客网 时间:2024/06/06 01:19

bash是从Unix系统中的sh发展来的,是用户和Linux内核交互的工具,用户通过bash操作内核完成系统的使用和管理


查看系统支持的shell
cat /etc/shells

bin目录存放的都是一些可执行文件

cd /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" 用于查看变量的值aaaajax

不能以数字或者特殊字符开头如果设定的值中间包含空格,可以放在“”内或者是‘’内

‘KEY3=value is $KEY2’时  $KEY2会被当做一个常量  如果想引用它的值就应该用双引号引用

key3=“Test demo”

应用:可以将 /root/dirs/mysql/bin 赋值给一个变量 这样每次进入目录就可以直接用变量进入  cd $mysql
unset key3 删除变量

常见的变量
set|grep HIST

HISTFILESIZE :记录历史指令保存的最大值
HISTSIZE:执行history时显示的个数(history命令可以用来查看自己以前所执行过的命令)
COLUMNS:终端窗口显示的宽度
LINES:终端窗口显示的高度
PS1:设置提示符号前面的内容样式(\d,\h,\t,\u,\W,\!,$,\l 等)
\u 当前用户
\W 当前工作目录 
\w 当前完整的工作目录从/算起
\h 主机名
\t 当前时间
\# 登录后下达的第几个指令
比如  set |grep ps1
PS1='[\u@\h-\w-\t-\#]'
[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'

ps -ef|grep tomcat 可用来查看Tomcat的进程信息
删除别名定义
unalias cls

3.通过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 /*设置允许重定向覆盖*/

-o,+o
set -o vi
设置输入命令的模式为vi下
ls 按esc 进入vim命令行模式编辑状态

4.通过环境变量设置
自定义变量只能在当前shell环境下有效
环境变量在整个主机下的shell环境中有效

可使用 export variable name来设置

unset 变量名可以删除变量

定义过的普通变量和通过export 变量名来升级为环境变量,在子bash里生效

如果重新打开连接会话(root或者admin 身份登录)
key1,key2都是没有的

常用变量:

PATH

PATH=$PATH.: 
将隐藏的路径设置到PATH中,会带来安全问题

利用which可以查看该命令所存在的位置

[root@bogon ~]# which chgrp
/usr/bin/chgrp

[root@bogon ~]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls