管道符和作业控制 shell变量 环境变量配置文件
管道符? |
用于將前一個指令的輸出作為后一個指令的輸入
[root@pantinglinux ]# cat 1.txt | wc -l
2
[root@pantinglinux ]# cat 1.txt
1.txt
2.txt
[root@pantinglinux ]# find ./ -type f | wc -l
37
作業(yè)控制
當(dāng)運(yùn)行進(jìn)程時,按ctrl+z使它暫停,然后使用fg命令恢復(fù),或者利用bg命令使它到后臺運(yùn)行。ctrl+c可以使它終止。
[root@pantinglinux ]# vim 1.txt
[1]+ 已停止 vim 1.txt
[root@pantinglinux ]# fg? ? 調(diào)到前臺來
[root@pantinglinux ]# vim aa.txt
[2]+ 已停止 vim aa.txt
[root@pantinglinux ]# jobs
[1]- 已停止 vim 1.txt
[2]+ 已停止 vim aa.txt
[root@pantinglinux ]# fg 2? ?前臺調(diào)用2,aa.txt
[root@pantinglinux ]# bg 2? ?后臺調(diào)用2
[2]+ vim aa.txt &
[root@pantinglinux ]# jobs
[1]- 已停止 vim 1.txt
[2]+ 已停止 vim aa.txt
[root@pantinglinux ]# fg 2? ? :q退出
vim aa.txt
[root@pantinglinux ]# jobs
[1]+ 已停止 vim 1.txt
[root@pantinglinux ]# sleep 1000? ? ?睡眠1000秒
^Z
[1]+ 已停止 sleep 1000? ? ? ? ? ? ? ? ? ? ? ctrl+z暫停
[root@pantinglinux ]# jobs
[1]+ 已停止 sleep 1000
[root@pantinglinux ]# sleep 200? ? ? ?睡眠200秒
^Z ?ctrl+z暫停
[2]+ 已停止 sleep 200
[root@pantinglinux ]# jobs? ? ? ? ? ? ?
[1]- 已停止 sleep 1000
[2]+ 已停止 sleep 200
[root@pantinglinux ]# fg? ? ? ? ? ? ? ? ? ? ?前臺調(diào)用最后一個任務(wù)? ?sleep 200
sleep 200
^Z? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 然后暫停
[2]+ 已停止 sleep 200
[root@pantinglinux ]# bg 1? ? ? ? ? ? ? ? ? 后臺運(yùn)行sleep 1000
[1]- sleep 1000 &
[root@pantinglinux ]# jobs? ? ? ? ? ? ? ? ??
[1]- 運(yùn)行中 sleep 1000 &
[2]+ 已停止 sleep 200
[root@pantinglinux ]# fg 1
sleep 1000
^C
[root@pantinglinux ]# fg 2
sleep 200
[root@pantinglinux ]# ^C
[root@pantinglinux ]# jobs
[root@pantinglinux ]# sleep 100 &? ? ?sleep 100命令直接丟到后臺運(yùn)行
[1] 2632
[root@pantinglinux ]# jobs
[1]+ 運(yùn)行中 sleep 100 &
?
env命令
可以列出系統(tǒng)預(yù)設(shè)的全部系統(tǒng)變量
[root@pantinglinux ]# env? ? ? 只列出了部分
XDG_SESSION_ID=1
HOSTNAME=lizhipeng01
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=5000
SSH_CLIENT=192.168.5.1 3399 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/0
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:
?
?
HOSTNAME:表示主機(jī)名
SHELL:表示當(dāng)前用戶的shell類型
HISTSIZE:表示歷史記錄數(shù)
MAIL:表示當(dāng)前用戶的郵件存放目錄
PATH:該變量決定了shell將到哪些目錄中尋找命令或程序
PWD:表示當(dāng)前目錄
LANG:與語言相關(guān)的環(huán)境變量
HOME:表示當(dāng)前用戶的家目錄
LOGNAME:表示當(dāng)前用戶的登錄名
?
set命令
和env命令類似,可以輸出環(huán)境變量。set命令不僅可以顯示系統(tǒng)預(yù)設(shè)的變量,也可以顯示用戶自定義的變量。
[root@pantinglinux ]# myname=Lizhipeng
[root@pantinglinux ]# echo $myname
Lizhipeng
[root@pantinglinux ]# set |grep myname
myname=Lizhipeng
但是這個自定義變量只能在當(dāng)前shell中生效
[root@pantinglinux ]# name=li
[root@pantinglinux ]# echo $name
li
[root@pantinglinux ]# bash
[root@pantinglinux ]# echo $name
[root@pantinglinux ]# exit
exit
[root@pantinglinux ]# echo $name
li
使用bash命令可以再打開一個shell,此時先前設(shè)置的name變量已經(jīng)不存在了,退出當(dāng)前的shell回到原來的shell,name變量還在。如果想讓設(shè)置的環(huán)境變量一直有效,可以有兩種方法。
1.允許系統(tǒng)內(nèi)所有用戶登錄后都能使用該變量。具體做法:在/etc/profile文件的最后一行加入export name=li,然后運(yùn)行 source /etc/profile就能生效了。再運(yùn)行bash命令或者切換到其他賬戶就能看到效果
[root@pantinglinux ]# vi /etc/profile
[root@pantinglinux ]# source /etc/profile
[root@pantinglinux ]# echo $name
li
[root@pantinglinux ]# bash
[root@pantinglinux ]# echo $name
li
[root@pantinglinux ]# su - lizhipeng
上一次登錄:二 12月 26 07:11:46 CST 2017從 192.168.5.1pts/0 上
[lizhipeng@lizhipeng01 ~]$ echo $name
li
2.僅允許當(dāng)前用戶使用該變量。具體操作方法:在用戶主目錄下的.bashrc文件的最后一行加入export name=li2,然后source .bashrc就能生效了。source命令的作用是將目前設(shè)定的配置刷新,即不用注銷再登錄也能生效。
[root@pantinglinux ]# vi .bashrc
[root@pantinglinux ]# echo $name? ? ? ?沒有生效,因?yàn)闆]有source
li
[root@pantinglinux ]# source .bashrc
[root@pantinglinux ]# echo $name? ? ? ? 生效了
li2
[root@pantinglinux ]# su - lizhipeng
上一次登錄:四 1月 11 04:49:12 CST 2018pts/0 上
[root@pantinglinux ~]$ echo $name
li
變量定義規(guī)則
1.設(shè)定變量的格式為a=b,其中a為變量名,b為變量的內(nèi)容,等號兩邊不能有空格;
2.變量名只能由字母、數(shù)字以及下劃線組成,而且不能以數(shù)字開頭。
3.當(dāng)變量內(nèi)容帶有特殊字符(如空格)時,需要加上單引號
[root@pantinglinux ]# name='li ju'
[root@pantinglinux ]# echo $name
li ju
[root@pantinglinux ]# name="li's"? ? ? ? ? ?當(dāng)變量內(nèi)容中本身帶有單引號,這是需要加雙引號
[root@pantinglinux ]# echo $name
li's
[root@pantinglinux ]# name=`pwd`? ? ? ? ?如果變量內(nèi)容中需要用到其他命令,運(yùn)行結(jié)果則可以使用反引號
[root@pantinglinux ]# echo $name
/root
[root@pantinglinux ]# name="$name"AAA? ? ? 變量累積,加的是雙引號
[root@pantinglinux ]# echo $name
/rootAAA
[root@pantinglinux ]# name='$name'AAA? ? ? ? 加的是單引號,里面的特殊字符全部失去其本身的作用
[root@pantinglinux ]# echo $name
$nameAAA
系統(tǒng)環(huán)境變量與個人環(huán)境變量的配置文件
/etc/profile:這個文件預(yù)設(shè)了幾個重要的變量,例如PATH、USER、LOGNAME、MAIL、INPUTRC、HOSTNAME、HISTSIZE、umask等
/etc/bashrc:預(yù)設(shè)umask以及PS1。PS1就是我們輸入命令時前面的那串字符
[root@pantinglinux ]# echo $PS1
[\u@\h \W]\$
\u指用戶,\h指主機(jī)名,\W指當(dāng)前目錄,\$指字符#(如果是普通用戶,則顯示$)
.bash_profile:該文件定義了用戶的個人化路徑與環(huán)境變量的文件名稱。每個用戶都可使用該文件輸入專屬于自己的shell信息,當(dāng)用戶登錄時,該文件僅僅執(zhí)行一次。
.bashrc:該文件包含專屬于自己的shell的bash信息,當(dāng)?shù)卿浕蛎看未蜷_新的shell時,該文件會被讀取。
.bash_history:該文件用于記錄命令歷史。
.bash_logout:當(dāng)退出shell時,會執(zhí)行該文件。
[root@pantinglinux ]# echo $PS2
>
[root@pantinglinux ]# for i in `seq 1 10`
> do
> echo $i
> done
轉(zhuǎn)載于:https://www.cnblogs.com/pta188/p/8925675.html
總結(jié)
以上是生活随笔為你收集整理的管道符和作业控制 shell变量 环境变量配置文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python2.7练习小例子(二)
- 下一篇: 第四百一十四节,python常用算法学习