linux的shell基礎介紹(2)
8.6 管道符和作業控制:
1、cat 1.txt |wc -l ; cat 1.txt |grep ‘aaa‘
2、ctrl z 暫停一個任務
3、jobs查看後臺的任務
4、bg[id]把任務調到後臺
5、fg[id]把任務調到前臺
6、命令後面加&直接丟到後臺
管道符的作用:把前面命令輸出的結果交給後面的命令。
示例:
[root@aminglinux-01 ~]# ls 111 1_heard.txt.bak 1.txt 234 3.txt aming2 anaconda-ks.cfg bb.txt 123 1_sorft.txt.bak 1.txt.bak 2.txt 456 aminglinux a.txt [root@aminglinux-01 ~]# ls |wc -l 16 [root@aminglinux-01 ~]# find ./ -type f ./.bash_logout ./.bash_profile ./.bashrc ./.cshrc ./.tcshrc ./.bash_history ./.ssh/authorized_keys ./anaconda-ks.cfg ./2.txt ./3.txt ./1_heard.txt.bak ./1_sorft.txt.bak ./1.txt.bak ./安諾雲智平臺介紹(PPT模板).pptx ./.viminfo ./1.txt ./a.txt ./bb.txt [root@aminglinux-01 ~]# find ./ -type f |wc -l //加管道符計算前面有多少行命令。 18
8.7/8.8 shell變量:
1、PATH,HOME,PWD,LOGNAME //系統變量(可使用echo查看,如echo $PATH)
2、env命令 //查看系統環境變量信息
3、 set命令多了很多變量,並且包括用戶自定義的變量 //shell腳本
4、 自定義變量a=1 ,示例:
[root@aminglinux-01 ~]# a=111 [root@aminglinux-01 ~]# echo $a 111
5、變量名規則:字母、數字下劃線,首位不能為數字。示例:
[root@aminglinux-01 ~]# a1=2 [root@aminglinux-01 ~]# echo $a1 2 [root@aminglinux-01 ~]# a_1=3 [root@aminglinux-01 ~]# echo $a_1 3 [root@aminglinux-01 ~]# _a1=4 [root@aminglinux-01 ~]# echo $_a1 4 [root@aminglinux-01 ~]# 1aa=2 -bash: 1aa=2: 未找到命令 [root@aminglinux-01 ~]# 2aa=3 -bash: 2aa=3: 未找到命令
6、 變量值有特殊符號時需要用單引號括起來,示例:
[root@aminglinux-01 ~]# a=‘a b c‘ [root@aminglinux-01 ~]# echo $a a b c [root@aminglinux-01 ~]# a="a$bc" [root@aminglinux-01 ~]# echo $a a [root@aminglinux-01 ~]# a=‘a$bc‘ [root@aminglinux-01 ~]# echo $a a$bc
7、 變量的累加,示例:
[root@aminglinux-01 ~]# a=1 [root@aminglinux-01 ~]# b=2 [root@aminglinux-01 ~]# echo $a$b 12 [root@aminglinux-01 ~]# a=‘a$bc‘ [root@aminglinux-01 ~]# echo $a$b a$bc2 [root@aminglinux-01 ~]# c="a$b"c //當多個變量疊加的時候,用雙影號把變量影起來。 [root@aminglinux-01 ~]# echo $c a2c
8、 全局變量export b=2
[root@aminglinux-01 ~]# aming=linux //在本地定義一個變量,僅在本終端上生效 [root@aminglinux-01 ~]# echo $aming linux [root@aminglinux-01 ~]# export aming=linux //創建一個全局變量 [root@aminglinux-01 ~]# bash //打開一個子shell ,shell就是一個進程。 [root@aminglinux-01 ~]# echo $aming linux [root@aminglinux-01 ~]# pstree //以樹狀圖的方式展現進程之間的派生關系,顯示效果比較直觀
9、 unset變量,關閉一個變量,示例如下:
[root@aminglinux-01 ~]# echo $aming linux [root@aminglinux-01 ~]# unset aming [root@aminglinux-01 ~]# echo $aming
擴展:
1、查看當前用戶在哪個TTY下,示例:
[root@aminglinux-01 ~]# w 19:13:35 up 1 day, 1:14, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.4.84 18:27 7.00s 0.21s 0.03s w root pts/1 192.168.4.84 19:13 6.00s 0.05s 0.05s -bash [root@aminglinux-01 ~]# echo $SSH_TTY /dev/pts/0
8.9 環境變量配置文件:
1、系統層次etc下面,用戶登錄加載使用,一般不要動:
/etc/profile 用戶環境變量,交互,登錄才執行
2、用戶層次,在用戶家目錄下,用戶執行shell腳本的時候生效,一般不要動:
/etc/bashrc //用戶不用登錄,執行shell就生效
~/.bashrc //執行shell腳本時的配置文件
~/.bash_profile //用戶登錄時自動加載配置文件
~/.bash_history //記錄命令歷史的文件
~/.bash_logout //用來定義用戶退出時需要做的操作
備註:每個用戶下都會有兩個隱藏文件,這兩種文件的區別在於用戶登錄時自動加載profile,而profile也會自動調用bashrc,bashrc是執行shell腳本的時候,用戶不用登錄,就會自動執行shell腳本,只要執行shell腳本,就會調用bashrc裏面的配置文件。
[root@aminglinux-01 ~]# vim .bash_profile [root@aminglinux-01 ~]#source .bash_profile //source執行加載這個文件命令 [root@aminglinux-01 ~]#. .bash_profile //.與source命令一樣作用 [root@aminglinux-01 ~]# vim .bashrc
3、PS1=‘[\u@\h \W]\$‘ //改變用戶行顯示方式的環境變量
4、PS1=‘\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ ‘ //改變用戶行的字體顏色
本文出自 “Gary博客” 博客,請務必保留此出處http://taoxie.blog.51cto.com/10245493/1982602
linux的shell基礎介紹(2)