Linux 命令之 env -- 显示系统的环境变量,定义执行命令时的环境变量
文章目錄
- 一、命令介紹
- 二、選項參數
- 三、命令示例
- (一)顯示系統的環境變量
- (二)從當前環境中刪除指定的變量
- (三)定義指定的環境變量
- (四)在一個修改后的環境下執行命令
一、命令介紹
env命令用于顯示系統中已存在的環境變量,以及在定義的環境中執行指令。該命令只使用”-“作為參數選項時,隱藏了選項”-i”的功能。若沒有設置任何選項和參數時,則直接顯示當前的環境變量。
如果使用env命令在新環境中執行指令時,會因為沒有定義環境變量”PATH”而提示錯誤信息”such file or directory”。此時,用戶可以重新定義一個新的”PATH”或者使用絕對路徑。
二、選項參數
| -i | 開始一個新的空的環境 |
| -u | 從當前環境中刪除指定的變量 |
三、命令示例
(一)顯示系統的環境變量
[root@linuxcool ~]# env(二)從當前環境中刪除指定的變量
[root@linuxcool ~]# env -u LOGNAME(三)定義指定的環境變量
[root@linuxcool ~]# env LOGNAME=root(四)在一個修改后的環境下執行命令
在最新的 CentOS 中 perl 的版本為5.16,而我在 home 目錄下安裝了最新的 5.26.1 版本,這樣在同一個系統內,有 2 個 perl 的執行程序:
[root@noi ~]# which -a perl /root/perl5/perlbrew/perls/perl-5.26.1/bin/perl /usr/bin/perl注:which 查詢命令文件的所在位置;-a 表示輸出全部匹配到的命令文件的位置
到底執行哪一個,取決于環境變量 PATH 所存儲的路徑的排列順序,我們看下 PATH 的值:
[root@noi ~]# echo $PATH /root/perl5/perlbrew/bin:/root/perl5/perlbrew/perls/perl-5.26.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin路徑 /root/perl5/perlbrew/perls/perl-5.26.1/bin/perl 排在路徑 /usr/bin 的前面,所以執行的是版本號為 5.26.1 的 perl:
[root@noi ~]# perl --version This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux (with 1 registered patch, see perl -V for more detail)但是這個時候,我想執行一個程序在 5.16 版本下,我可以使用:
[root@noi ~]# /usr/bin/perl --version This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi (with 33 registered patches, see perl -V for more detail)我也可以利用 env 命令,來達到相同的目的:
[root@noi ~]# env PATH=/usr/bin perl --version This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi (with 33 registered patches, see perl -V for more detail)沒有修改 PATH 時,執行的情況:
[root@noi ~]# env perl --version This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux (with 1 registered patch, see perl -V for more detail)依據這個特性,有時候我們在寫腳本,比如寫 perl 腳本的時候,如果想運行當前環境下的 perl 腳本,而不是寫固定目錄的 /usr/bin/perl ,可以用下面的寫法替代 /usr/bin/perl:
#!/usr/bin/env perl這樣寫,其實就是把 perl 放到當前環境下來執行 perl 了,就是運行 /usr/bin 下的 perl。
總結
以上是生活随笔為你收集整理的Linux 命令之 env -- 显示系统的环境变量,定义执行命令时的环境变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 教你把手机直接变电脑手机如何变成电脑
- 下一篇: 古代女史是什么意思(女史箴图中的女史是什