shell启动脚本

来源:互联网 发布:voa在线收听软件 编辑:程序博客网 时间:2024/06/06 03:59
主题: 再学shell,shell脚本的启动。自己编写的脚本在系统启动时自动运行(在本地启动文件rc.local内部添加自己的脚本或脚本的全路径)。随新的shell一起启动。
这里主要介绍从头开始。
启动shell脚本的最后一种方法是,让脚本在“linux系统一启动”或者“用户启动新的shell会话”时便自动运行。
在“启动时启动脚本”的方法通常保留供特殊的脚本使用,这些脚本执行系统功能,比如“配置网络接口”或者
“启动服务器进程”。
但是,如果您是linux系统管理员,在每次linux系统启动时也可能需要执行一些任务,比如重置自定义日志文件或者启动
自定义应用程序等。
每次用户启动新的bash shell时,运行脚本的功能也很有用。经常会需要设置shell特性以进行shell会话,有时要确定
已经设置了特定的文件。
//*********************************************************************************************************
在启动时启动脚本
Linux系统的启动过程,Linux内核加载到内存并运行。最先运行的是init程序。因为init程序(通常位于/sbin/init)总是第一个运行,因此内核总是向它分配PID 1。然后,init进程负责启动linux系统的所有其他进程。
 
在启动过程中,init程序读取/ect/inittab文件。inittab文件列出了init程序以不同的运行级别启动的脚本。
 
Linux运行级别定义linux系统的操作状态。不同的运行级别启动不同的程序和脚本。
Linux系统的运行级别
0      停止
1      单用户模式
2      多用户模式,通常没有网路支持。
3      完全多用户模式,有网络
4      未使用
5      多用户模式,有网路和X-Window会话
6      重启

每个运行级别都定义了init程序启动或终止的脚本。图形linux系统常见运行级别是5.大部分linux发行版以运行级别3启动所有服务器软件。

Linux系统通常以rc脚本确定以那种运行级别启动那些程序。rc脚本确定当前系统的运行级别并在该运行级别上运行相应的脚本。所以rc脚本是用0到6的。//不同的运行级别,运行不太那个的rc.d目录下的启动脚本。
 
Linux系统使用启动脚本启动应用程序。启动脚本是启动应用程序的shell脚本,为运行的程序提供必要的环境变量。
 
Linux启动过程的这部分使事情变得有些混乱,主要是因为不同的Linux发行版放置启动脚本的位置稍有不同。
一些在/etc/init.d目录下,每种运行级别使用不同的目录。
另一些在/etc/rc.d 目录下,
还有些在/ect/init.d/rc.d
//*****************************************************************************************************
注意:://rc.local专门用来放用户登录时,用户自定义脚本的运行。
大部分linux发行版专门提供一个“本地启动”文件。允许“系统管理员输入在启动是运行的脚本”。
在Debian 中在/etc/init.d/rc.local
在Fedora 中在/etc/rc.d/rc.local
在opensuse中在/etc/init.d/boot.local
在本地启动文件内部,可以指定“特定命令和语句”,或者“输入希望在系统启动时启动的脚本”。
注意::
      如果使用脚本,您必须指定该脚本的“完整路径名”,以便系统能够在启动时找到它。
注意::
不同的Linux发行版可能在启动过程中的不同时间点执行本地启动脚本。有些脚本在启动某些功能
(如支持网络)之前运行。
//*******************************************************************************************************
随新shell一起启动。
每个用户的“主目录”都包含两个文件,bash shell使用这两个文件“自动启动脚本”和“设置环境变量”。
.bash_pro
file文件(该文件在每次用户登录时系统是运行脚本,或切换用户时,运行)
.bashrc文件(该文件在每个新shell启动时运行脚本,即每当打开新的终端就将运行该脚本)

bash shell在由于新用户登录,而运行新的shell时,运行.bash_profile文件。在该文件中放置任何希望登录时运行的脚本。并且设置了环境变量。
这是一台机子上的.bash_profile文件。
if [ -f ~/.bashrc ];then
        .~/.bashrc
fi
PATH=$PSTH:$HOME/bin
export  PATH
unset USERNAME
bash shell在每次启动新shell时(包括新用户登录时)运行.bashrc文件。可以向主目录的.bashrc文件添加一个简单
的echo语句,然后启动一个新的shell以测试该特性。
这是一台机子上的.bashrc文件。
alias  cp='cp -i'     //使用alias命令个cp -i命令起别名,使用的是单引号。
alias  mv='mv -i'
if [ -f /etc/bashrc ];then
       ./etc/bashrc
fi
如果在.bashrc中添加echo "欢迎登录新shell",即::
echo "欢迎登录新shell"
alias  cp='cp -i'     //使用alias命令个cp -i命令起别名,使用的是单引号。
alias  mv='mv -i'
if [ -f /etc/bashrc ];then
       ./etc/bashrc
fi
当重新打开终端时,就会显示“欢迎登录新shell”

注意::
如果希望为系统的每个用户运行脚本。可以使用大部分linux发行版提供的/etc/bashrc文件(注意是bashrc文件,而不是.bashrc文件)。bash shell在系统任何用户启动一个新bash shell时执行该文件的语句。

原创粉丝点击