Aar*_*ain 3 grep oracle-database path environment-variables linux-mint
我想知道是否有办法确定 $PATH 变量的特定部分的设置位置。
大约一年半前,我经历了在我的计算机上为我正在学习的课程设置 Oracle XE 11.2.0 的繁琐过程。在此过程中的某个位置,我将路径“/u01/app/oracle/product/11.2.0/xe/bin”添加到我的 $PATH 变量中以使事情正常运行。现在我已经删除了 Oracle DB 专用的根 /u01/ 文件夹,因此 bash 在启动时会抛出错误,表明该文件或目录不存在。所以我手动查看了我能找到的所有可能的文件,但什么也没有。
据我所知, $PATH 的该部分未在以下任何文件中设置
:/etc/login.defs
、~/.profile
、/etc/environment
、/etc/profile
、~/.bash_login
或。~/.bash_profile
~/.bashrc
cat ~/.bashrc | grep "*oracle*"
首先通过运行上面列出的每个文件来验证这一点。我什至做了疯狂的事情并跑sudo strings /dev/sdb -n 11 | grep -C100 "/u01/app/oracle/*"
给我包含该字符串的每个文件的列表。我得到了很多结果,但没有什么特别有价值的。我可怜的 SSD 不值得这样。
那么有什么建议吗?我怎样才能找到 $PATH 的那部分被连接到的位置?我还应该检查其他典型文件吗?如果可以缩小范围的话,我正在 Linux Mint 18.3 上运行它。
调试 shell 初始化的一种方法是运行登录交互式 shell ( -li
) 并告诉它在执行时打印所有命令,并在输出中查找您想要的内容:
PS4=' $BASH_SOURCE:$LINENO: ' bash -lixc true |& grep oracle
Run Code Online (Sandbox Code Playgroud)
PS4
bash 使用它来打印选项中的额外信息-x
,当设置为 时$BASH_SOURCE:$LINENO
,它将打印正在获取的文件的路径和正在执行的行号。运行 with-c true |& grep oracle
可以让我们快速过滤单个 shell 的初始化。通过前导空格,bash 在发生嵌套采购时会出现行。
归档时间: |
|
查看次数: |
4951 次 |
最近记录: |