日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 命令之 env -- 显示系统的环境变量,定义执行命令时的环境变量

發布時間:2023/12/3 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 -- 显示系统的环境变量,定义执行命令时的环境变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。