1. 程式人生 > >管道符和作業控制、shell變量、環境變量配置文件

管道符和作業控制、shell變量、環境變量配置文件

管道符和作業控制、shell變量、環境變量配置文件

管道符

它用於將前一個指令的輸出作為後一個指令的輸入。

技術分享


作業控制

當運行進程時,我們可以使用 ctrl +z 暫停它,然後使用fg(foreground)命令恢復,或是利用命令bg(background)命令使它到後臺運行。還可以使用 ctrl+c 終止它。jobs可以查看後臺運行的任務。

技術分享



env命令可以列出系統預設的全部系統變量。

技術分享

常見的環境變量

HOSTNAME:表示主機的名稱

SHELL:表示當前用戶的shell類型

HISTSIZE:表示歷史記錄數

MAIL:表示當前用戶的郵件存放目錄

PATH:該變量決定了shell將到哪些目錄中尋找命令或程序

PWD:表示當前目錄

LANG:這是與語言相關的環境變量,多語言環境可以修改它

HOME:表示當前用戶的家目錄

LOGNAME:表示當前用戶的登錄名


env命令顯示的變量只是環境變量。


set也可以輸入環境變量。set命令不僅可以顯示系統預設的變量,也可以顯示用戶自定義的變量。

技術分享

這個myname自定義變量只在當前shell中生效。


使變量一直生效

1、允許系統內所有用戶登錄後都能使用該變量。操作方法:在/etc/profile文件的最後一行加入export myname=huang,然後運行source /etc/profile 就能生效。

2、僅允許當前用戶使用該變量。操作方法:在用戶主目錄下的.bashrc 文件的最後一行加入expor myname=huang,然後運行source .bashrc 就能生效。

(source命令的作用是將目前設定的配置刷新,即不用重啟也能使用)


linux下自定義變量的規則:

設定格式為a=b,其中a為變量名,b為變量內容,等號兩邊不能有空格。

變量名只能由字母、數字以及下劃線組成,而且不能以數字開頭

當變量名內容帶有特殊字符(如空格)時,需要加上單引號。

[root@localhost ~]# myname=huang da

-bash: da: 未找到命令

[root@localhost ~]# myname=‘huang da‘

[root@localhost ~]# echo $myname

huang da


如果變量內容本身帶有單引號,這時需要加雙引號

[root@localhost ~]# myname=‘huang‘da‘

> ^C

[root@localhost ~]# myname="huang‘da"

[root@localhost ~]# echo $myname

huang‘da


如果變量內容中需要用到其他命令,這時需要用單引號

[root@localhost ~]# myname=‘pwd‘ #單引號

[root@localhost ~]# echo $myname

pwd

[root@localhost ~]# myname="pwd" #雙引號

[root@localhost ~]# echo $myname

pwd

[root@localhost ~]# myname=pwd #不用引號

[root@localhost ~]# echo $myname

pwd

[root@localhost ~]# myname=`pwd` #反引號

[root@localhost ~]# echo $myname

/root


如果變量內容需要累加其它內容,這時需要加雙引號

[root@localhost ~]# myname="$LOGNAME"HUANG

[root@localhost ~]# echo $myname

rootHUANG

[root@localhost ~]# myname=‘"$LOGNAME" HUANG‘

#先用單引號,再用雙引號

[root@localhost ~]# echo $myname

"$LOGNAME" HUANG


使用雙引號時,不會取消特殊字符本身的作用(例如$),而使用單引號時,裏面的特殊字符將全部是去其本身的作用。


如果在當前shell中運行bash命令,則會進入一個新的shell,這個shell就是原來shell的子shell。可以用pstree命令查看。(安裝pstree命令:yum install -y psmisc)pstree命令會把linux系統中的所有進程以樹形結構顯示出來。

技術分享


在父shell中設定變量之後,進入子shell時,該變量是不會生效的。如果想讓這個變量在子shell中生效,則要用到export命令。


在當前bash定義變量abc=123,進入子bash後,變量abc無效。

技術分享

使用export聲明一下變量之後,變量可以在子shell中生效(跨終端不生效)。

技術分享


當在子shell中設定變量後即便用export聲明了變量,也不能在父shell中生效!


當打開多個終端時,可以使用echo $SSH_TTY可以查看自己所在的終端:

技術分享

w命令用於顯示已經登錄系統的用戶列表,並查看負載。


unset 變量名 可以刪除變量

技術分享



環境變量配置文件

環境變量配置文件分為:系統環境變量配置文件和用戶環境變量配置文件。


統環境變量配置文件(嚴禁改動)

/etc/profile 用戶環境變量,交互,登錄才執行

這個文件預設了幾個重要變量,例如PATH,USER,LOGNAME, MAIL,INPUTRC,HOSTNAME,HISTSIZE,umask等。


/etc/bashrc 用戶不用登錄,系統執行shell就生效

這個文件主要預設umask以及PS1。PS1就是輸入命令時前面那串字符。

[root@localhost ~]# echo $PS1

[\u@\h \W]\$

\u指用戶,\h指主機名,\W指當前目錄(相對路徑),\$指字符#(普通用戶為$,root用戶為#),\w指當前目錄(絕對路徑)


用戶環境變量配置文件(在用戶家目錄下)

~/.bash_profile

該文件定義了用戶的個人化路徑與環境變量的文件名稱。每個用戶都可以使用該文件輸入專屬於自己的shell信息,當用戶登錄時,該文件僅僅執行一次。


~/.bashrc

該文件包含專屬於自己的shell的bash信息,當登錄或每次打開新的shell時,該文件會被讀取。例如,可以將永不自定義的別名或者自定義的變量寫到這個文件中。


~/.bash_history

該文件用於記錄歷史命令。


~/.bash_logout

當退出shell時,會執行該文件。可以將一些清理的工作放在這個文件中。例如將清除歷史命令的命令放在這個文件中,當用戶退出shell時就會清除歷史命令。


本文出自 “網管的學習之路” 博客,請務必保留此出處http://754599082.blog.51cto.com/11510506/1982478

管道符和作業控制、shell變量、環境變量配置文件