博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于 bash 的 PATH 变量
阅读量:5783 次
发布时间:2019-06-18

本文共 940 字,大约阅读时间需要 3 分钟。

hot3.png

    登录 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找不到。

    

转载于:https://my.oschina.net/philosopher/blog/226275

你可能感兴趣的文章
Nagios监控生产环境redis群集服务战
查看>>
Angular - -ngKeydown/ngKeypress/ngKeyup 键盘事件和鼠标事件
查看>>
Android BlueDroid(一):BlueDroid概述
查看>>
Java利用httpasyncclient进行异步HTTP请求
查看>>
宿舍局域网的应用
查看>>
html代码究竟什么用途
查看>>
Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
查看>>
Python version 2.7 required, which was not foun...
查看>>
context:annotation-config vs component-scan
查看>>
exgcd、二元一次不定方程学习笔记
查看>>
经典sql
查看>>
CSS3边框会动的信封
查看>>
JavaWeb实例设计思路(订单管理系统)
查看>>
source insight中的快捷键总结
查看>>
PC-IIS因为端口问题报错的解决方法
查看>>
java四种线程池简介,使用
查看>>
ios View之间的切换 屏幕旋转
查看>>
typedef BOOL(WINAPI *MYFUNC) (HWND,COLORREF,BYTE,DWORD);语句的理解
查看>>
jsp 特殊标签
查看>>
[BZOJ] 1012 [JSOI2008]最大数maxnumber
查看>>