linux 特殊shell變量

特殊變量

環境變量:

  系統本身運行需要由linux系統提前創建好的一類變量

  主要用于用戶的工作環境,包括(用戶的宿主目錄,命令的查找路徑,用戶的當前目錄,登錄的終端等)環境變量的值由操作系統本身維護,隨著用戶的狀態改變而改變

使用env調取當前系統的環境變量

[root@zq ~]# env
XDG_VTNR=1
XDG_SESSION_ID=1
SSH_AGENT_PID=1925
HOSTNAME=zq                                主機名
IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/run/user/1000/keyring/gpg:0:1
VTE_VERSION=3803
XDG_MENU_PREFIX=gnome-
SHELL=/bin/bash
TERM=xterm-256color
HISTSIZE=1000
WINDOWID=37748743
IMSETTINGS_MODULE=IBus
USER=zq                                   當前用戶

環境變量的配置文件在/etc/profile(全局)

用戶宿主目錄/home/zq/.bash profile(局部)

?

$PATH

定義命令默認的搜索路徑

[root@zq ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zq/.local/bin:/home/zq/bin

注意: 只有自己執行的命令在PATH變量包括的目錄下,才可以直接使用并用tab補齊,如果不在PATH所包括的路徑下, ? ? ? ? ? 只能通過絕對路徑或相對路徑使用

[root@zq ~]# echo $user[root@zq ~]# echo $USER  查看當前用戶
zq
[root@zq ~]# echo $SHELL  當前腳本
/bin/bash
[root@zq ~]# echo $HOME   
/root
當前語言 $LANG

eg: 將我們所寫的腳本放到$PATH的默認搜索路徑中去

[root@zq ~]# first.sh       不能直接運行這個腳本
bash: first.sh: 未找到命令...
[root@zq ~]# echo $PATH       因為PATH中沒有這個命令
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zq/.local/bin:/home/zq/bin
[root@zq ~]# PATH="$PATH:/root"   將這個路徑加到PATH中去
[root@zq ~]# echo $PATH           PATH中顯示有了這個腳本的路徑
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/zq/.local/bin:/home/zq/bin:/root
[root@zq ~]# first.sh           可以直接運行這個腳本了  之前需要通過./執行的 
mkdir: 無法創建目錄"/root/shell": 文件已存在
eno16777736: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.1.63  netmask 255.255.255.0  broadcast 192.168.1.255inet6 fe80::20c:29ff:fedf:de30  prefixlen 64  scopeid 0x20<link>

這個只能當前有效,想要永久生效的話必須在/etc/profile最后邊加上剛剛設置的變量,保存退出,source生效之后,就可以永久直接執行了。

vim /etc/profile ?最后追加 所有用戶有效 ?重啟或 source方可使用

或只是root用戶生效的話 vim /root/.bash_profile 在這個文件的最后追加

?

每個用戶還有自己的環境變量都在自己的宿主目錄中

?

?

位置變量

  為了使用shell腳本程序:方便通過命令行為程序提供參數Bash引用了位置變量的概念

  當執行命令行操作時第一個字段表示命令字或程序名,其余的字符串參數按照從左到右的順序一次給位置變量賦值

位置變量也叫位置參數,使用$1,$2,$3.....$表示

eg: 編寫一個加法運算的腳本來說明位置變量

vim zq.sh

#!/bin/bash
SUM=$(expr $1 + $2)
echo "$1 + $2 = $SUM"

測試結果

[root@zq ~]# vim zq.sh
[root@zq ~]# ./zq.sh
bash: ./zq.sh: 權限不夠
[root@zq ~]# chmod u+x zq.sh
[root@zq ~]# ./zq.sh
expr: 語法錯誤+  = 
[root@zq ~]# ./zq.sh 1 2  給變量賦值才可以
1 + 2 = 3

?

預定義變量

$#:命令行中位置變量的個數(程序執行了幾個位置參數)

$*:所有位置變量的內容(具體的內容 比如/boot就是個具體內容)

$?:上一條命令執行后返回的狀態,當返回狀態值為0時表示執行正常,非0值表示執行異常或出錯取值在1-127之間

$0:當前執行的進程/程序名(就是當前執行的命令或程序的名字)

!$:表示上一個命令的最后一個參數

轉載于:https://www.cnblogs.com/zq6041/p/6828533.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455729.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455729.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455729.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript中的循環

js循環 程序中進行有規律的重復性操作&#xff0c;需要用到循環語句。 break 和 continue 語句對循環中的代碼執行提供了更嚴格的控制。 for循環 for(var i0;i<len;i){...... }while循環 var i0;while(i<8){......i;}for-in 語句 for-in 語句是嚴格的迭代語句&…

快速傅里葉變換python_FFT快速傅里葉變換的python實現過程解析

FFT是DFT的高效算法&#xff0c;能夠將時域信號轉化到頻域上&#xff0c;下面記錄下一段用python實現的FFT代碼。 # encodingutf-8 import numpy as np import pylab as pl # 導入和matplotlib同時安裝的作圖庫pylab sampling_rate 8000 # 采樣頻率8000Hz fft_size 512 # 采樣…

rabbitmq的安裝全過程

2019獨角獸企業重金招聘Python工程師標準>>> 1 首先下載安裝依賴elang 添加yum支持 cd /usr/local/src/ mkdir rabbitmq cd rabbitmq wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm rp…

【框架學習分享】HttpRunner

今天文章分為兩部分 :) PART1 HttpRunner內容分享/ PART2 關于后廠村兒 10 Minutes HttpRunner: PART 1 首先感謝作者開源&#x1f44d; 因為最近工作需要用到HttpRunner&#xff0c; 于是便趁著周末學了下這個測試框架&#xff0c;感覺還可以~ 所以分享一下今天的學習記…

x264 移植到 ARM的方法

1。Linux下編譯X264&#xff1a; 其實在windows下使用vc已經編譯過了&#xff0c;不過聽到有人說在linux下編好了&#xff0c;我也就嘗試做一下&#xff0c;況且x264源代碼的makefile已經做好了&#xff0c;我只需要做的就是把文件copy一下&#xff0c;然后make 一下就可以了。…

JavaScript中的元素獲取與操作

js元素獲取與操作 可以使用內置對象document上的getElementById方法來獲取頁面上設置了id屬性的元素&#xff0c;獲取到的是一個html對象&#xff0c;然后將它賦值給一個變量&#xff0c;比如&#xff1a; <script type"text/javascript">var oDiv document…

VUE2第五天學習---自定義指令

閱讀目錄 1.理解VUE中的自定義指令回到頂部1.理解VUE中的自定義指令 默認核心指令有 (v-model 和 v-show), 但是有時候我們需要用到自定義指令&#xff0c;在vue中&#xff0c;代碼復用主要形式和抽象是組件&#xff0c;但是在有的情況下&#xff0c;我們仍然需要對DOM元素進行…

python報名_2019年少兒Python創意編程比賽報名時間

2019年Python創意編程比賽時間及相關規定&#xff1a;參賽對象 Python創意編程比賽設初中組和高中組。 全國各地初中、高中(含中等職業學校)在校學生均以個人名義報名參加。 參賽步驟 Python創意編程比賽分初評、復評和終評三個階段&#xff0c;初評和復評以線上形式開展&#…

【分享】后廠村鮮為人知的另一面

好&#xff01;回歸學長每周的雜談分享&#xff01; 有人說“后廠村”像一座孤島&#xff0c; 這里遠離喧囂&#xff0c;沒有生活氣息。 而剛剛到廠的學長&#xff0c; 卻想和你分享他鮮為人知的另一面。 內容整理源于網絡看客原創侵刪 說起后廠村&#xff0c;也許是老北京人…

windows 下安裝rabbitmq

2019獨角獸企業重金招聘Python工程師標準>>> 1、下載 下載地址&#xff1a;http://www.rabbitmq.com/download.html 2、Windows上安裝 2.1 安裝安裝Erlang 下載erlang&#xff1a;http://www.erlang.org/download/otp_win64_17.3.exe 安裝&#xff1a; erlang安裝完…

【Kubernetes】k8s 的基本使用指令

今天分享如題&#xff1a; Kubernetes 最近更新緩慢由于工作太忙惹&#xff0c;忙里偷閑整理愿能與君共勉&#x1f4aa; K8S對我來說是個新的技術棧&#xff0c;程序員就是需要一直充電&#x1f50b; 加油&#xff0c;一起進步&#x1f4aa; 結構模型 k8s 是經典的一對多模…

php是如何工作的

a:前提條件: apache服務器啟動正常工作 b:客戶端瀏覽器在地址欄輸入一個程序地欄 按回車發送請求 {請求}http://127.0.0.1/day03/1.php c:apache接收請求&#xff0c;并且負責查找相應資源1.php d:如果apache沒有找到相應的資源,返回錯誤消息給客戶端瀏覽器404 NOT FOUND e:如果…

c語言 malloc_C語言快速入門——動態內存分配

在前面一系列的字符串操作中&#xff0c;我們都是先定義一個固定大小的字符數組&#xff0c;然后根據所需&#xff0c;或拷貝、或連接、或格式化來為這個數組提供內容。固定大小的數組意味著在程序運行期間&#xff0c;數組所占用的內存是確定的(即劃分了固定數量的內存)&#…

FFMPEG設置 cbr討論

Q:我采用ffmpeg調用x264一直出錯&#xff0c;命令如下ffmpeg -s 352x288 -r 50 -pix_fmt yuv420p -i tmp.yuv tmp.h264可不可以給點建議&#xff0c;找了很久也沒有找到解決辦法&#xff0c;錯誤時error while opening encoder for output stream 0.0 maybe incorrect parame…

博文聲明

本博客用于分享學習筆記 歡迎大神指正&#xff0c;我們互相學習交流&#xff0c;共同成長進步&#xff01; 博客首頁:秋葉夏風的博客

【經驗分享】工程開發與Coding規范

今天分享分為兩部分 :) PART01 工程開發代碼規范分享/ PART02 關于某易云自動簽到聽歌分享- 5Mins DevCoding Rule: PART 1 了解真實工程開發&#x1f3d7;..... 本篇內容分享的宗旨: 學長工作經驗之談僅作分享&#x1f3f7; Ready,Go 代碼管理——工具篇 ?工程上首先需要…

過濾器與攔截器區別

過濾器與攔截器區別 參考&#xff1a;http://www.cnblogs.com/dreamroute/p/4198087.html?utm_sourcetuicool 過濾器 過濾器是一個程序&#xff0c;它先于與之相關的servlet或JSP頁面運行在服務器上。它是隨你的web應用啟動而啟動的&#xff0c;只初始化一次&#xff0c;以后就…

二進制-高效位運算

數獨 數獨是介紹位運算的好例子&#xff0c;運用位運算和不運用效率差別還是挺大的。我們先看數獨需求: 1、當前數字所在行數字均含1-9&#xff0c;不重復 2、當前數字所在列數字均含1-9&#xff0c;不重復 3、當前數字所在宮&#xff08;即3x3的大格&#xff09;數字均含1-9&a…

pytorch resnet50_PyTorch終于能用上谷歌云TPU,推理性能提升4倍,我們該如何薅羊毛?...

曉查 發自 凹非寺量子位 報道 | 公眾號 QbitAIFacebook在PyTorch開發者大會上正式推出了PyTorch 1.3&#xff0c;并宣布了對谷歌云TPU的全面支持&#xff0c;而且還可以在Colab中調用云TPU。之前機器學習開發者雖然也能在Colab中使用PyTorch&#xff0c;但是支持云TPU還是第一次…

x264里的2pass指的是什么意思? x264源代碼分析2.encode()

A:x264里的2pass指的是什么意思?另外stat是什么意思, 比如有個參數--stats <string> Filename for 2 pass stats [/"%s/"]/n", defaults->rc.psz_stat_out );stats在這是什么意思? 2pass是2次編碼的意思&#xff0c;stats是統計文檔的名稱&a…