关于 bash 的 PATH 变量
2014-04-24 22:11
351 查看
摘要: 对 bash 及其中 PATH 变量的一些理解
登录 root 后修改环境变量 PATH,添加一个路径 /root,正确指令如下
(这个命令是由 bash 解释并执行,修改的变量也仅被 bash 记录,重新登录后可发现修改并未保存)
不小心敲错指令,双引号写成单引号,结果 PATH 被修改为
即单引号内的按照字符串处理,双引号内的才按照变量名处理。结果 mv 指令都不能直接调用了,必须使用绝对路径
echo 还能使用,说明 echo 是 bash 的 builtin。(用type -a echo可以观察到,echo既是bash的builtin,也存在/bin/echo这个可执行文件)(type 命令可以查看某命令是 builtin, alias, 还是单独的程序)
用户命令的基本格式是
bash 处理 command 和 parameter 是有区别的。
command 有两种可能。一是 bash 的 builtin,如 echo,由 bash 执行操作。二是某个可执行文件,当 command 中包含斜杠字符时,command 包含这个可执行文件的路径+文件名,bash 根据 command 给出的路径+文件名搜索可执行文件并执行,当 command 中不包含斜杠字符时,command 就只是这个可执行文件的文件名,此时 bash 会依次尝试 PATH 中所包含的各个路径,并执行第一个搜索到的同名可执行文件。
parameter 表示文件时,当 parameter 由斜杠开始,则说明 parameter 给出文件的绝对目录和文件名,当 parameter 不由斜杠开始,bash 会默认 parameter 是从当前目录开始。
PATH 是 bash 这个进程所维护的一个变量,在用户登录时从该用户的bash配置文件中读出,可以临时修改,但不会被自动写回保存。可以通过修改用户的bash配置文件实现永久修改。
cd是bash自带指令,非可执行文件,用which找不到。
登录 root 后修改环境变量 PATH,添加一个路径 /root,正确指令如下
PATH="$PATH":/root
(这个命令是由 bash 解释并执行,修改的变量也仅被 bash 记录,重新登录后可发现修改并未保存)
不小心敲错指令,双引号写成单引号,结果 PATH 被修改为
$PATH:/root
即单引号内的按照字符串处理,双引号内的才按照变量名处理。结果 mv 指令都不能直接调用了,必须使用绝对路径
/bin/mv
echo 还能使用,说明 echo 是 bash 的 builtin。(用type -a echo可以观察到,echo既是bash的builtin,也存在/bin/echo这个可执行文件)(type 命令可以查看某命令是 builtin, alias, 还是单独的程序)
用户命令的基本格式是
command [-options] parameter
bash 处理 command 和 parameter 是有区别的。
command 有两种可能。一是 bash 的 builtin,如 echo,由 bash 执行操作。二是某个可执行文件,当 command 中包含斜杠字符时,command 包含这个可执行文件的路径+文件名,bash 根据 command 给出的路径+文件名搜索可执行文件并执行,当 command 中不包含斜杠字符时,command 就只是这个可执行文件的文件名,此时 bash 会依次尝试 PATH 中所包含的各个路径,并执行第一个搜索到的同名可执行文件。
parameter 表示文件时,当 parameter 由斜杠开始,则说明 parameter 给出文件的绝对目录和文件名,当 parameter 不由斜杠开始,bash 会默认 parameter 是从当前目录开始。
PATH 是 bash 这个进程所维护的一个变量,在用户登录时从该用户的bash配置文件中读出,可以临时修改,但不会被自动写回保存。可以通过修改用户的bash配置文件实现永久修改。
cd是bash自带指令,非可执行文件,用which找不到。
相关文章推荐
- 菜鸟说给菜鸟听之Beginning Linux Programming——Chapter1(1)
- sqlserver FOR XML PATH 语句的应用
- set_include_path在win和linux下的区别
- 浅析Cookie中的Path与domain
- cookie中的path与domain属性详解
- bash脚本输入密码不回显问题的解决方法
- bash 编程中循环语句用法
- Linux BASH多进程并行处理的方法实现
- BASH 学习笔记小结
- PHP include_path设置技巧分享
- linux BASH shell下设置字体及背景颜色
- bash获取当前路径示例
- linux bash字符串处理大全
- Bash Shell脚本学习小结
- bash批量修改文件名称的方法小结(增加,去除,修改后缀)
- Bash Shell中Shift用法分享
- bash 循环中变量作用范围的问题分析
- 浅析JAVA_HOME,CLASSPATH和PATH的作用
- [转]Using Named Pipes (FIFOs) with Bash
- JAVA环境变量详解