bash shell执行、排错、启动配置文件

一 执行bash shell的方法:
(1)进入shell script所在的目录:cd /root/tmp,执行./test.sh

(2)以绝对路径方式执行shell script: /root/tmp/test.sh

(3)直接使用bash 或者 sh执行script: cd /root/tmp   bash test.sh 或者 sh test.sh 或者 bash /root/tmp/test.sh

(4)在现行的shell中执行: . /root/tmp/test.sh 或者 source /root/tmp/test.sh
其中,方法(1)(2)需要设定script的执行权限: chmod +x test.sh 或者 chmod 755 test.sh;方法(3)(4)无需此步。 方法(1)(2)(3)执行时,现行的shell会开启一个子shell,这个子shell执行用户的script,执行完毕,此子shell随机关闭,回到现行的shell中;方法(4)是在现行的shell中直接运行script,但这种方式会影响父shell的环境,通常在系统调教时才使用。 方法(4)注意. 和/之间要有空格!


二 Bash Script排错: bash -x test.sh: 执行script时输出命令和它们的参数,追踪script的执行; bash -n test.sh: 读取命令但不执行; bash -v test.sh: 读取命令并打印;
帐号的用户组,主目录位置,默认shell放在文件 /etc/passwd中,加密后的密码放在/etc/shadow中。
ps axf:查看内存中各进程的层级关系; echo $SHLVL:查看目前位于第几层shell中; exit:退出本层shell;


三 bash shell的启动配置文件: bash的5种运行模式:互动模式/非互动模式(执行script)/以sh名称调用/posix模式/限制功能模式。 1 登录:login shell(即bash)先执行/etc/profile,接着依次检查用户的主目录是否包含.bash_profile,.bash_login,.profile,如果其中一个存在,则读取并执行之。 2 注销:bash会检查主目录中是否有.bash_logout,有,则读取并执行之。 3 执行新shell: (1)执行交互式的shell:读取并执行/etc/bash.bashrc,以及主目录中的.bashrc (2)执行shell script:检查BASH_ENV变量的内容,如果有定以,则执行该变量所定义的启动文件的内容。 4 以sh文件名调用bash: 以sh调用bash,则bash将仿照旧版的sh调用启动文件,会尽量兼容POSIX标准,而不使用bash特有的功能: (1)login shell 调用/bin/sh: 读取并执行/etc/profile和主目录中的.profile (2)交互式shell: 检查ENV变量的内容,如果有定以,则执行该变量所定义的启动文件的内容。 (3)shell script:不执行任何启动配置文件。 5 以bash --posix方式执行: bash兼容排POSIX,检查ENV变量的内容,如果有定以,则执行该变量所定义的启动文件的内容。 6 执行bash -r 或者 rbash:称为受限模式,bash功能受限,如不能用cd指令,不能设定或取消环境变量,不能做转向传输等, 目的时让登录者只能有少数的功能,建立安全shell环境。此时bash会读取执行主目录中的.bashrc配置文件。

posted @ 2012-03-24 11:52  google4y  阅读(478)  评论(0编辑  收藏  举报
不在家,就在公司,不在公司,就在去公司的路上,無家無根,如風如萍,只有漂