管道符和作業控制、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變量、環境變量配置文件