echo $PATH
~~~
[root@iZ23w9ljtgdZ ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/alidata/server/mysql/bin:/alidata/server/httpd/bin:/alidata/server/php/sbin:/alidata/server/php/bin:/root/bin
~~~
### echo $PATH
顯示當前PATH環境變量,該變量的值由一系列以冒號分隔的目錄名組成。如:
~~~
/usr/local/bin:/bin:/usr/bin
~~~
當我們執行程序時,shell自動跟據PATH變量的值去搜索該程序。比如我們現在的工作目錄是根目錄/ ,有一個程序sunrise在/bin/目錄下,我們可以在命令行輸入/bin/sunrise 這樣來執行它,還可以直接輸入sunrise,這時shell會自動去尋找sunrise這個程序所在的完整路徑,找到之后才會去執行該程序。shell在搜索時先搜索PATH環境變量中的第一個目錄,沒找到再接著搜索,如果找到則執行它,不會再繼續搜索。
注意:`當前工作目錄 ./` 一般并未在搜索范圍之列,也就是PATH環境變量的值中并不包含./這個當前工作目錄。為什么一般不能加入這個當前工作目錄呢?主要原因在于安全問題。
試想,一個evil 用戶在自己的家目錄/home/evil/中放了一個名字叫ls的程序,當root用戶或其它用戶來到這個/home/evil/目錄時,想查看這個目錄中有些啥子文件,于是執行ls命令,這時如果./目錄在PATH環境變量中且搜索時先搜索這個./目錄的話,則執行到的程序是/home/evil/ls而不是/bin/ls程序,這樣就會造成極大地安全問題。所以我們要避免把./目錄加入PATH環境變量之中,不要圖一時方便而鑄成大錯哦!執行當前工作目錄中的 program 時還是老老實實的 `./program` 這樣去執行吧!
使用范例:
~~~
[tito ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
[tito ~]$ PATH=$PATH:/home/tito/bin #添加/home/tito/bin到PATH環境變量
[tito ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tito/bin
~~~
- 目錄
- Linux目錄結構
- 文件和目錄管理
- 創建文件
- touch命令
- ln命令
- 文件列表
- 查看內容
- ls命令
- ll命令
- stat 命令
- 文件查找
- updatedb命令
- locate/slocate命令
- whereis命令
- which命令
- find命令
- 文件壓縮
- tar命令
- 目錄管理
- mkdir命令
- pwd命令
- tail命令
- 監視文件
- 文件復制
- cp命令
- 壓縮解壓
- zip命令
- unzip命令
- 系統管理
- crontab命令
- crontab問題
- crontab日志
- crontab原理
- 系統計劃任務
- 用戶計劃任務
- 調用ThinkPHP控制器
- ntsysv命令
- chkconfig命令
- export命令
- 修改PATH環境變量
- ps命令
- man
- 主要方法
- pstree命令
- service命令
- kill命令
- ulimit命令
- 綜合命令
- 編譯文件
- make命令
- makefile文件
- 設備管理
- mount命令
- 用戶和工作組管理
- groupadd命令
- passwd命令
- useadd命令
- groups命令
- chage命令
- whoami命令
- 查看用戶組下所有用戶
- 軟件安裝
- rpm命令
- 系統監測
- free命令
- 硬件配置
- 系統監控
- top命令
- ps_mem
- pstree
- 文件傳輸
- web服務
- Nginx
- 文件下載
- wget命令
- 系統幫助
- whatis命令
- man命令
- shell命令
- shell變量
- sh命令
- source命令
- test命令
- 表達式
- 邏輯運算符
- date命令
- declare命令
- 軟件安裝
- yum命令
- 安裝
- 系統服務
- systemctl命令
- service
- 環境變量
- Linux 中環境變量設置
- 網絡管理
- iptables命令
- netstat命令
- 查看端口占用
- 常用端口說明
- 系統安全
- getenforce
- 磁盤空間
- df命令