1. 程式人生 > >linux的shell基礎介紹(2)

linux的shell基礎介紹(2)

linux shell

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)