oracle home和bash,Linux的.bash_profile和.bashrc与子Shell的关系

1)为了快速动态连续的到alert警告文件的最后200行内容,可以在.bash_profile文件中添加如下的同名,这样就可以简单的在Shell里输入“alert”得到及时的alert信息了。alias alert='tail -200f $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log'2)为了快速使用vi编辑器编辑网络配置文件tnsnames.ora,可以在.bash_profile文件中添加如下的同名,使用方法同上。alias tnsnames='vi $ORACLE_HOME/network/admin/tnsnames.ora'3)使用vi编辑习惯使用曾经使用过的命令。set -o vi这个配置文件可以根据自己的操作习惯个性化定制,因人而异,不过宜少不宜多,在设置之后一定要进行,防止出现不该有的副作用,这一点我是吃过亏的。吃亏经历在此,请勿效尤:《【故障处理】因GREP“花哨”功能导致ORA-12157错误的排查过程》http://space.itpub.net/519536/viewspace-6130432.对于配置文件的修改是在下一次登陆时生效的,如果想要修改的配置文件立即生效,有如下几种方法(效果相同)ora10g@Tdb /home/oracle$ source .bash_profileora10g@Tdb /home/oracle$ . ./.bash_profileora10g@Tdb /home/oracle$ . .bash_profileora10g@Tdb /home/oracle$ . ~/.bash_profile3.这个.bashrc文件是做什么用的呢?功能:在启用的时候系统读取配置文件时.bashrc这个文件,而不是.bash_profile。关于子Shell这个概念我举一个很有趣的例子,这个例子也包含一个我遇到的在运维中操作习惯上一个小问题。我习惯在.bash_profile文件中添加“set -o vi”一行,启用vi编辑习惯编辑并重用曾经使用过的命令。当我在的sqlplus命令行界面里想要暂时退出sqlplus执行一个Shell命令时,我习惯使用“!”或“host”临时退出到 Shell界面,注意,这是我们进入到的不是登录sqlplus之前的Shell环境,而是一个新的子Shell环境,通过下面的操作过程您就知道确实是不同的Shell环境。1)先使用“w”命令确定一下只有我一个人登陆在系统上ora10g@Tdb /home/oracle$ w17:20:37 up 11 days, 19:16,  1 user,  load average: 0.02, 0.03, 0.00USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAToracle   pts/1    10.142.8.207     16:49    0.00s  0.20s  0.00s w2)使用“$$”这个特殊变量得到当前的shell进程号,这时可以使用“ps”命令确认目前的bash进程信息,这两个方法得到的信息是一致的,这里都会得到当前的Shell进程号是25431ora10g@Tdb /home/oracle$ echo $$25431ora10g@Tdb /home/oracle$ ps -ef | grep bash | grep -v greporacle   25431 25430  0 16:49 pts/1    00:00:00 -bash3)进入到sqlplus命令行界面ora10g@Tdb /home/oracle$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.3.0 - Production on Wed Sep 2 17:18:53 2009Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.Connected to:Oracle Database Enterprise Edition Release 10.2.0.3.0 - 64bit ProductionWith the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine optionssys@ora10g>4)在sqlplus里使用“!”或“host”临时进入到Shell界面,再查看一下这时的Shell进程号信息,可以得到不同于上面25431的shell进程号26646sys@ora10g> !ora10g@Tdb /home/oracle$ echo $$266465)因为只有我一个人登陆到这系统中,所以可以通过下面的方法同时得到两个shell的进程信息,一个是25431,另外一个是26646ora10g@Tdb /home/oracle$ ps -ef | grep bash | grep -v greporacle   25431 25430  0 16:49 pts/1    00:00:00 -bashoracle   26646 26643  0 17:18 pts/1    00:00:00 /bin/bash其实关于模拟子Shell还有一个更简单的方法,就是在Shell界面里直接键入“sh”,就会启用一个全新的子Shell。我这里举得是一个和Oracle数据库有关的一个真实例子,因人而异吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值