使用oracle数据库,经常要在各种目录切换,有什么好方法在各种目录之间切换呢?自己总结如下:
1.使用环境变量:
export CDPATH=$ORACLE_HOME:$ORACLE_BASE:$ORACLE_BASE/admin/orcl
但是使用环境变量有一个缺点,就是如果当前一个目录有目录与定义的CDPATH环境变量有冲突。会优先选择CDPATH的目录路径。
例子:
假设:
admin目录在$ORACLE_HOME/sqlplus/以及$ORACLE_BASE有存在,如果当前目录在$ORACLE_HOME/sqlplus/
cd admin
实际上进入的是$ORACLE_BASE目录。
[ /u01/app/oracle/product/10.2.0/db_1/sqlplus 10]$ cd admin/
/u01/app/oracle/admin
当然解决方法也很简单,修改CDPATH加入.在开头:
export CDPATH=.:$ORACLE_HOME:$ORACLE_BASE:$ORACLE_BASE/admin/orcl
或者打入命令是修改为 cd ./admin/
2.把经常要进入的目录修改为环境变量,为了方便使用以及冲突,我使用小写变量,而且最好简洁好记:
--进入$ORACLE_HOME/dbs,cd $odbs.
--我曾经与一位同业者讨论这个问题,按照他的道理连美元$都不想输入,可以在登录时执行如下:
shopt -s cdable_vars
--这样就可以直接打入,这样cd odbs进入了。不过我觉得这样这样很容易冲突或者理解错误,我个人不建议使用!
--这样就产生了第3种方法。
3.建立别名:[注意一点:别名最好建立在.bashrc文件中,这样在x window也能正常使用]
4.使用ln建立这些目录的链接,集中放在一个目录便于进入:
mkdir ~/fastlink
使用ln建立如下链接:
ls -l
total 0
lrwxrwxrwx 1 oracle oinstall 21 Nov 10 2009 admin -> /u01/app/oracle/admin
lrwxrwxrwx 1 oracle oinstall 32 Nov 10 2009 bdump -> /u01/app/oracle/admin/orcl/bdump
lrwxrwxrwx 1 oracle oinstall 39 Nov 10 2009 dbs -> /u01/app/oracle/product/10.2.0/db_1/dbs
lrwxrwxrwx 1 oracle oinstall 49 Nov 10 2009 net -> /u01/app/oracle/product/10.2.0/db_1/network/admin
lrwxrwxrwx 1 oracle oinstall 15 Nov 10 2009 oracle_base -> /u01/app/oracle
lrwxrwxrwx 1 oracle oinstall 35 Nov 10 2009 oracle_home -> /u01/app/oracle/product/10.2.0/db_1
lrwxrwxrwx 1 oracle oinstall 41 Nov 10 2009 rdbms -> /u01/app/oracle/product/10.2.0/db_1/rdbms
lrwxrwxrwx 1 oracle oinstall 32 Nov 10 2009 udump -> /u01/app/oracle/admin/orcl/udump
但是这个有一个缺点,提示符号显示的是链接目录:
[~/fastlink ]$ cd udump
[~/fastlink/udump ]$ cd -P .
[/u01/app/oracle/admin/orcl/udump ]$
解决方法很简单再建立一个别名
alias cdp='cd -P $1'
这样可以使用它来代替cd命令。你自己可以根据工作的需要在fastlink目录中加入自己经常要进入的目录链接,方便自己的工作。
总结:
到底那种方法好!我个人谈不上,我实际上4中方法都在用,我个人使用的最多的是第4种,感觉更加放心一些^_^。
1.使用环境变量:
export CDPATH=$ORACLE_HOME:$ORACLE_BASE:$ORACLE_BASE/admin/orcl
但是使用环境变量有一个缺点,就是如果当前一个目录有目录与定义的CDPATH环境变量有冲突。会优先选择CDPATH的目录路径。
例子:
假设:
admin目录在$ORACLE_HOME/sqlplus/以及$ORACLE_BASE有存在,如果当前目录在$ORACLE_HOME/sqlplus/
cd admin
实际上进入的是$ORACLE_BASE目录。
[ /u01/app/oracle/product/10.2.0/db_1/sqlplus 10]$ cd admin/
/u01/app/oracle/admin
当然解决方法也很简单,修改CDPATH加入.在开头:
export CDPATH=.:$ORACLE_HOME:$ORACLE_BASE:$ORACLE_BASE/admin/orcl
或者打入命令是修改为 cd ./admin/
2.把经常要进入的目录修改为环境变量,为了方便使用以及冲突,我使用小写变量,而且最好简洁好记:
#directory env variable
export b=$ORACLE_BASE
export h=$ORACLE_HOME
export c=$ORA_CRS_HOME
export netadmin=$ORACLE_HOME/network/admin
export bdump=$ORACLE_BASE/admin/$ORACLE_SID/bdump
export udump=$ORACLE_BASE/admin/$ORACLE_SID/udump
export dbs=$ORACLE_HOME/dbs
--进入$ORACLE_HOME/dbs,cd $odbs.
--我曾经与一位同业者讨论这个问题,按照他的道理连美元$都不想输入,可以在登录时执行如下:
shopt -s cdable_vars
--这样就可以直接打入,这样cd odbs进入了。不过我觉得这样这样很容易冲突或者理解错误,我个人不建议使用!
--这样就产生了第3种方法。
3.建立别名:[注意一点:别名最好建立在.bashrc文件中,这样在x window也能正常使用]
#directory alias
alias b='cd $ORACLE_BASE'
alias h='cd $ORACLE_HOME'
alias c='cd $ORA_CRS_HOME'
alias netadmin='cd $ORACLE_HOME/network/admin'
alias dump='cd $ORACLE_BASE/admin/$ORACLE_SID/bdump'
alias udump='cd $ORACLE_BASE/admin/$ORACLE_SID/udump'
alias dbs='cd $ORACLE_HOME/dbs'
4.使用ln建立这些目录的链接,集中放在一个目录便于进入:
mkdir ~/fastlink
使用ln建立如下链接:
ls -l
total 0
lrwxrwxrwx 1 oracle oinstall 21 Nov 10 2009 admin -> /u01/app/oracle/admin
lrwxrwxrwx 1 oracle oinstall 32 Nov 10 2009 bdump -> /u01/app/oracle/admin/orcl/bdump
lrwxrwxrwx 1 oracle oinstall 39 Nov 10 2009 dbs -> /u01/app/oracle/product/10.2.0/db_1/dbs
lrwxrwxrwx 1 oracle oinstall 49 Nov 10 2009 net -> /u01/app/oracle/product/10.2.0/db_1/network/admin
lrwxrwxrwx 1 oracle oinstall 15 Nov 10 2009 oracle_base -> /u01/app/oracle
lrwxrwxrwx 1 oracle oinstall 35 Nov 10 2009 oracle_home -> /u01/app/oracle/product/10.2.0/db_1
lrwxrwxrwx 1 oracle oinstall 41 Nov 10 2009 rdbms -> /u01/app/oracle/product/10.2.0/db_1/rdbms
lrwxrwxrwx 1 oracle oinstall 32 Nov 10 2009 udump -> /u01/app/oracle/admin/orcl/udump
但是这个有一个缺点,提示符号显示的是链接目录:
[~/fastlink ]$ cd udump
[~/fastlink/udump ]$ cd -P .
[/u01/app/oracle/admin/orcl/udump ]$
解决方法很简单再建立一个别名
alias cdp='cd -P $1'
这样可以使用它来代替cd命令。你自己可以根据工作的需要在fastlink目录中加入自己经常要进入的目录链接,方便自己的工作。
总结:
到底那种方法好!我个人谈不上,我实际上4中方法都在用,我个人使用的最多的是第4种,感觉更加放心一些^_^。