国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
linux shell 學(xué)習(xí)筆記(四)
一、shell 命令的格式如下:
$ 命令 [選項(xiàng)] [參數(shù)]
選項(xiàng)是包括一個(gè)或多個(gè)字母的代碼,前面必有一個(gè)“-”號(hào)(“-”區(qū)別選項(xiàng)與參數(shù)),選項(xiàng)可以用于改變命令執(zhí)行動(dòng)作的類型。具體見(jiàn)下例
二、bash配置文件
[xiaochen@host ~]$ ls .bash*
.bash_history  .bash_logout  .bash_profile  .bashrc
*.bash_history記錄了用戶以前輸入的命令
*.bash_logout 退出shell時(shí)要用的命令
*.bash_profile 登錄Bash時(shí)要執(zhí)行的命令,以及配置的Bash環(huán)境變量。
*.bashrc 每次打開(kāi)新的Bash時(shí),要執(zhí)行的命令,以及配置的Bash環(huán)境變量。
注:由于“.bash_profile”經(jīng)常被設(shè)置成先讀到“.bashrc”的內(nèi)容,所以如果圖省事的話,右以把所有配置都放進(jìn)“.bashrc”中
以上的文件是每一位用戶都有的設(shè)置。系統(tǒng)級(jí)的設(shè)置存儲(chǔ)在文件“/etc/profile"文件“/etc/bashrc"及目錄“/etc/profile.d"中
用戶就優(yōu)先把自己的個(gè)性化設(shè)置存放在用戶根目錄配置文件中,當(dāng)系統(tǒng)級(jí)與用戶級(jí)的設(shè)置發(fā)生沖突時(shí),將優(yōu)先采用用戶級(jí)的設(shè)置。

三、bash的提示符
命令echo $PS1可以顯示當(dāng)前的設(shè)定
[xiaochen@host ~]$ echo $PS1
[\u@\h \W]\$
可以對(duì)shell進(jìn)行設(shè)置來(lái)顯示用戶當(dāng)前所在目錄。{詳見(jiàn) man bash}
方法:
[xiaochen@host ~]$ cd /etc/profile.d
[xiaochen@host profile.d]$ export PS1="\u@\h \w\\$"
xiaochen@host /etc/profile.d$
[xiaochen@host ~]$ gedit .bashrc
即先采用環(huán)境變量測(cè)試,找到了合適的設(shè)置后加到.bashrc中


四、環(huán)境變量
在shell配置文件中一般定義了很多的環(huán)境變量。命令“set“可以列出所有當(dāng)前定義的所有環(huán)境變量。
環(huán)境變量可以分為三種:系統(tǒng)變量,環(huán)境變量和用戶變量。
shell 常用的系統(tǒng)變量
表示方法        描述
$n            $1表示第一個(gè)參數(shù),$2表示第二個(gè)參數(shù)……
$#            命令行參數(shù)的個(gè)數(shù)
$0            當(dāng)前程序的名稱
$?            前一個(gè)命令或函數(shù)的返回碼
$*            以“參數(shù)1,參數(shù)2,參數(shù)3……”形式保存所有參數(shù)
$@            以“參數(shù)1”,“參數(shù)2”……形式保存所有參數(shù)
$$            本程序的PID(進(jìn)程ID號(hào))
$!            上一人命令的PID

常用的shell環(huán)境變量
名稱            描述
PATH            命令搜索路徑,以冒號(hào)為分隔符。注意與DOS下不同的量,當(dāng)前目錄不在系統(tǒng)路徑里。
HOME            用戶根目錄的路徑名。命令"cd"的默認(rèn)參數(shù)
COLUMNS        定義了命令編輯模式下可使用命令行的長(zhǎng)度
EDITOR        默認(rèn)的行編輯器
VISUAL        默認(rèn)的可視編輯器
HISTFILE        命令歷史文件
HISTSIZE        命令歷史文件最多可包含的命令條數(shù)
IFS            定義Shell使用的分隔符
LOGNAME        用戶登錄名
MAIL            指向一個(gè)需要shell監(jiān)視其修改時(shí)間的文件。當(dāng)該文件修改后,shell將提醒用戶查收新郵件
MAILCHECK        shell檢查郵件的周期,單位是秒
SHELL            shell的路徑名
TERM            終端類型
PS1            主命令提示符
PS2            二級(jí)命令提示符,命令執(zhí)行過(guò)程中要求輸入數(shù)據(jù)時(shí)用
PS3            select的命令提示符
PS4            調(diào)試命令提示符
MANPATH        尋找手冊(cè)頁(yè)的路徑
LD_LIBRARY_PATH    尋找動(dòng)態(tài)鏈接庫(kù)文件的路徑,以冒號(hào)分隔

所有的環(huán)境變量都在shell配置文件中定義,一般來(lái)說(shuō),變量名用大寫(xiě)
在linux系統(tǒng)中,當(dāng)設(shè)置一個(gè)變量時(shí),直接用名稱,而不需要加符號(hào)“$"。例如:PATH=/usr/bin:/bin:/usr/local/bin
而要獲變量值的話,就要在變量名前加符號(hào)“$"。例如:
[xiaochen@host ~]&echo $PATH
/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/xiaochen/bin
如果在變量名前沒(méi)有符號(hào)"$",變量名會(huì)被當(dāng)作普通文本。
[xiaochen@host ~]&echo PATH
PATH

注:處理“$PATH”時(shí)需要注意:該變量不能替換,而是要將新的字符添加到原來(lái)的值中。在大多數(shù)情況下,不能用"/PATH=/some/directory",因?yàn)檫@將刪除"$PATH"中其他的所有目錄。只能進(jìn)行添加:PATH=$PATH:/some/directory
也就是說(shuō),PATH的值被設(shè)成當(dāng)前的值(以$PATH來(lái)表示)+新添加的目錄
[xiaochen@host ~]&echo $PATH
/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/xiaochen/bin:/some/directory
[xiaochen@host ~]&echo $PATH
/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/xiaochen/bin
新的變量?jī)H是一個(gè)局部變量,僅在當(dāng)前終端中有用。若要定義一個(gè)全局變量,就要將局部變量輸出(export)
export PATH=$PATH:/some/directory
如果要將目錄永久添加到環(huán)境變量“$PATH”中就必須把“export"那行命令添加到用戶要目錄下的“bash_profile"文件中。注意:不能放到.bashrc中,否則會(huì)導(dǎo)致PATH意外加長(zhǎng)。


五、Bash的功能
1)自動(dòng)補(bǔ)齊     Tab鍵的使用
2)命令行的歷史事件
history命令的使用
“!”的使用
[xiaochen@host ~]&!P
PATH=$PATH:/some/directory
[xiaochen@host ~]&!65    //65是指的事件號(hào)
cd /
[xiaochen@host /]&!!    //?。∈侵干弦皇录?/span>
cd /
也可以使用搜索模式 必須用?括起來(lái)
[xiaochen@host ~]&!?echo PATH?
echo PATH
PATH

系統(tǒng)保存的歷史事件數(shù)保存在HISTSIZE變量中。其默認(rèn)值是1000,不過(guò)可以修改
[xiaochen@host ~]&echo $HISTSIZE
1000
[xiaochen@host ~]$ echo $HISTSIZE
100

歷史事件被保存在一個(gè)文件中,文件名由變量HISTSIZE指定。通常其默認(rèn)名是.bash_history"

shell 還支持對(duì)歷史命令的增量搜索。“Ctrl+r"
(reverse-i-search)`P': echo PATH按回車(chē)就可運(yùn)行,但按方向鍵左或右就可以進(jìn)行編輯

3)編輯命令行快捷鍵
Ctrl+k    刪除從光標(biāo)到行尾的部分
Ctrl+u    刪除從光標(biāo)到行首的部分
Ctrl+w    刪除從光標(biāo)到當(dāng)前單詞開(kāi)頭的部分
Ctrl+a    將光標(biāo)移到行首
Ctrl+e    將光標(biāo)移動(dòng)到行尾
Ctrl+y    插入最近刪除的單詞
Alt+d        刪除從光標(biāo)到當(dāng)前單詞結(jié)尾的部分
Alt+a        將光標(biāo)移動(dòng)到當(dāng)前單詞的開(kāi)頭
Alt+e        將光標(biāo)移動(dòng)到當(dāng)前單詞的結(jié)尾
!$        重復(fù)前一個(gè)命令最后的參數(shù)
<注:也可以使用功能鍵及方向鍵>

4)命令的組合
注:為了看起來(lái)更清楚,命令之間在符號(hào)之間增加了空格。而在實(shí)際中并不需要這么做。如 ls -a;du -h(huán)s 與ls -a;du -h(huán)s等價(jià);
組合方式一:
command1 ;command2
特點(diǎn):先執(zhí)行命令1,不管命令1是否出錯(cuò),命令2都要執(zhí)行

組合方式二:
command1 && command2
特點(diǎn):只有在命令1正確運(yùn)行后才能執(zhí)行命令2

組合方式三:
command1 || command2
特點(diǎn):如果第一個(gè)命令執(zhí)行失敗了,就執(zhí)行每二個(gè)命令

組合方式四:
(command1 ;command2:……)在當(dāng)前shell中執(zhí)行
{command1 ;command2:……}在子shell中執(zhí)行

5)任務(wù)調(diào)度(jobbing)與后臺(tái)化(backgrounding)
方法一:
在命令的后面加一個(gè)&
命令jobs可以列出當(dāng)前終端中運(yùn)行著的命令與程序
[xiaochen@host ~]$ gedit &
[1] 5376
[xiaochen@host ~]$ jobs
[1]+  Done                    gedit
方法二:
先使用快捷鍵 ctrl+z 掛起終端中正在運(yùn)行的程序,然后使用 bg 命令將其放到后臺(tái)去執(zhí)行。
如:
[xiaochen@host ~]$ less /etc/bashrc

[1]+  Stopped                 less /etc/bashrc
[xiaochen@host ~]$ bg
[1]+ less /etc/bashrc &

[1]+  Stopped                 less /etc/bashrc
注:一些應(yīng)用程序,很可能還在測(cè)試期(beta),盡管在后臺(tái)運(yùn)行,也會(huì)在終端中輸出一些信息??梢允褂萌缦碌拿睿瑏?lái)使它到輸出信息以/dev/null文件(叫碎紙機(jī)(shredder)) command &>/dev/null &

6)命令的替換
語(yǔ)法:
command1 $(command2)
或command1 'command2'

7)文件名匹配
通配符(wildcard)
*        匹配文件名中任何字符串,包括空格串
?        匹配文件名中的任何單個(gè)字符
[...]        匹配“[]”中所包括的任何字符
[!...]        匹配“[]”中非感嘆號(hào)“!”之后的字符
如[!0-9]表示非數(shù)字開(kāi)頭的字符串

8)輸入與輸出重定向
在shell中執(zhí)行命令的時(shí)候,每個(gè)進(jìn)程都和3個(gè)打開(kāi)的文件相聯(lián)系,并使用文件描述符來(lái)引用這些文件。系統(tǒng)中實(shí)際上有12個(gè)文件描述符,0,1,2分別是標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出。
*stdin: 標(biāo)準(zhǔn)輸入,使用文件描述符 0
*stdout:標(biāo)準(zhǔn)輸出,使用文件描述符 1
*stderr:標(biāo)準(zhǔn)錯(cuò)誤輸出,使用文件描述符2

幾個(gè)命令的介紹
a)echo
作用:來(lái)顯示文本或變量,也可以把字符串輸入到文件。
形式:echo string
如:
[xiaochen@host ~]$ echo "hellO"
hellO
[xiaochen@host ~]$ echo $HOME
/home/xiaochen
選項(xiàng)-n可以禁止輸出后換行
[xiaochen@host ~]$ echo -n "hellO"
hellO[xiaochen@host ~]$

如果想把一個(gè)字符串輸出到一個(gè)文件中,就可以使用重定向符號(hào)“>”
[xiaochen@host ~]$ echo "hello hello">test
[xiaochen@host ~]$ cat test
hello hello
[xiaochen@host ~]$ echo "shit what are you doing">test
[xiaochen@host ~]$ cat test
shit what are you doing
[xiaochen@host ~]$ echo "hello hello">>test
[xiaochen@host ~]$ cat test
shit what are you doing
hello hello
由上可知:使用>會(huì)覆蓋原來(lái)的內(nèi)容,而使用>>則只是追加,這樣可以根據(jù)需要進(jìn)行靈活選擇

b)read
可以從鍵盤(pán)或文件的某一行文本中讀入信息,并將其賦給生個(gè)變量。如果只指定了一個(gè)變量,那么命令read將會(huì)把所有的輸入賦給該變量,直到遇到第一個(gè)文件結(jié)束符或回車(chē)。
其一般形式為:read variblel varible2
[xiaochen@host ~]$ read string
this is a test of read
[xiaochen@host ~]$ echo $string
this is a test of read

[xiaochen@host ~]$ read name name2
chenhao pengyong
[xiaochen@host ~]$ echo $name
chenhao
[xiaochen@host ~]$ echo $name2
pengyong

[xiaochen@host ~]$ read name name2
xiaochen xiaoming xiaohua
[xiaochen@host ~]$ echo $name
xiaochen
[xiaochen@host ~]$ echo $name2
xiaoming xiaohua
這表明錄輸入文過(guò)長(zhǎng)時(shí),shell將把超長(zhǎng)部分全部賦給最后一個(gè)變量

c)cat
cat命令可以用來(lái)顯示文件內(nèi)容、創(chuàng)建文件,還可以用它來(lái)顯示控制字符。
一般形式:cat [option要]filename1 filename2 ……
用途:一個(gè)簡(jiǎn)單的文字編輯器.
如:
[xiaochen@host ~]$ vi file1
[xiaochen@host ~]$ vi file2
[xiaochen@host ~]$ vi file3
[xiaochen@host ~]$ cat file1
hello
one

[xiaochen@host ~]$ cat file2
l love it!
[xiaochen@host ~]$ cat file3
fedora a great system!
[xiaochen@host ~]$ cat file1 file2 file3 >bigfile
[xiaochen@host ~]$ cat bigfile
hello
one
l love it!
fedora a great system!

[xiaochen@host ~]$ cat >file4
hello hello what are you doing?
why?
are you ok?
[xiaochen@host ~]$ cat file4
hello hello what are you doing?
why?
are you ok?
如上所示,如果想建一個(gè)文件并且輸入一些內(nèi)容,就可以使用cat命令,用cat把輸出定向到該文件,就可以了。這時(shí)輸入是鍵盤(pán),輸出是文件,當(dāng)想結(jié)束輸入時(shí)按下ctrl+d組合鍵即可。

常用文件重定向命令
命令                                    意義
command >filename                    把標(biāo)準(zhǔn)輸出重定向到一個(gè)新文件中
command >>filename                    把標(biāo)準(zhǔn)輸出重定向到一個(gè)文件中(追加方式)
command > filename 2>&1            把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤一起重定向到一個(gè)文件中
command 2> filename             把標(biāo)準(zhǔn)錯(cuò)誤重定向到一個(gè)文件中
command 2>> filename            把標(biāo)準(zhǔn)錯(cuò)誤以追加方式重定向到一個(gè)文件中
command >> filename 2>&1        把標(biāo)準(zhǔn)錯(cuò)誤和標(biāo)準(zhǔn)輸出一起重定向到一個(gè)文件中(追加方式)
command < filename >filename2        把command以文件filename作為標(biāo)準(zhǔn)輸入,以文件filename2作為標(biāo)準(zhǔn)輸出
command <filename                命令 command以文件filename作為標(biāo)準(zhǔn)輸入
command << deliniter            從標(biāo)準(zhǔn)輸入中讀入,直到遇到分界符delimiter分界符
command <&m                    把文件描述符m作為標(biāo)準(zhǔn)輸入
command >&m                    把標(biāo)準(zhǔn)輸出重定向到文件描述符m中
command <&-                    關(guān)閉標(biāo)準(zhǔn)輸入

例子:
把文件/etc/passwd的用戶ID域按照用戶名排列。該命令的輸出重定向到文件 sort.out中
[xiaochen@host ~]$ cat /etc/passwd | awk -F: '{print $1}' | sort 1>sort.out
[xiaochen@host ~]$ cat sort.out
adm
apache
avahi
backuppc
bin
daemon
dbus
ftp
games
gdm
gopher
haldaemon
halt
hsqldb
jetty
lighttpd
lp
mail
mailnull
mysql
named
news
nfsnobody
nobody
nscd
ntp
openvpn
operator
polkituser
postgres
pulse
root
rpc
rpcuser
rpm
shutdown
smmsp
sshd
sync
tcpdump
tomcat
torrent
uucp
vcsa
virtualftp
xiaochen

[xiaochen@host ~]$ cat /etc/passwd | awk -F: '{print $1}' | sort >sort.out
也可以達(dá)到相同的效果

注意:管道的使用
管道也是一種輸出重定向方式
管道可以把一個(gè)命令的輸出傳遞給另一個(gè)命令作為輸入。管道用符號(hào)"|"表示。它的使用方法是:
command1 | command2
例如,可以對(duì)一個(gè)文件進(jìn)行排序,然后管道輸送到打印機(jī)
[xiaochen@host ~]$ sort file3 | lp
還可以在多個(gè)命令間進(jìn)行重定向
如:
[xiaochen@host ~]$ cat /etc/passwd | awk -F: '{print $1}' | sort >sort.out


9)shell中的快捷方式(別名)
別名(alias)
例如:~就代表了用戶的根目錄
別名定義的語(yǔ)法是:
alias shortcut='command'
刪除一個(gè)別名使用unalias
不帶參數(shù)將列出當(dāng)前系統(tǒng)定義的所有別名
[xiaochen@host ~]$ alias
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
注:如果命令中有空格,就需要使用引號(hào)。同時(shí)單引號(hào)與雙引號(hào)是有區(qū)別的
同時(shí),別名不能重復(fù),但一個(gè)命令可以有多個(gè)別名。

補(bǔ)充說(shuō)明:幾種引號(hào)的說(shuō)明
單引號(hào)
由單引號(hào)括起來(lái)的字符都作為普通字符出現(xiàn)。如:
[xiaochen@host ~]$ string='$PATH'
[xiaochen@host ~]$ echo $string
$PATH
雙引號(hào)
由雙引號(hào)括起來(lái)的字符,除符號(hào)$,\,',"仍是特殊字符外,其余的字符都作為普通字符來(lái)對(duì)待。
$用指定變量的值來(lái)代替這個(gè)變量和符號(hào)$
\ 轉(zhuǎn)義字符
[xiaochen@host ~]$ string="$PATH"
[xiaochen@host ~]$ echo $string
/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/xiaochen/bin
反引號(hào)`
它被shell解釋為命令行
[xiaochen@host ~]$ pwd
/home/xiaochen
[xiaochen@host ~]$ string="current directory is `pwd`"
[xiaochen@host ~]$ echo $string
current directory is /home/xiaochen
再如
[xiaochen@host ~]$ today=`date`
[xiaochen@host ~]$ echo Today is $today
Today is 2008年 07月 08日 星期二 19:11:27 CST

10)控制bash的工作方式
bash中有一些特殊的變量,能控制bash以不同的方式工作。如 變量“noclobber"能防止在重定向輸出時(shí)意外地覆蓋一個(gè)文件。通過(guò)命令 set可以設(shè)置變量 noclobber的值。命令 set 有兩個(gè)參數(shù):一個(gè)是指定變量開(kāi)(on)或關(guān)(off),另一個(gè)就是特殊變量的變量名。
要使某一特殊變量有效,用“-o”選項(xiàng);要使其關(guān),就用+O選項(xiàng)

$set -o noclobber
$set +o noclobber

此外,還有兩個(gè)特殊變量也較用
ignoreeof 用來(lái)禁止ctrl+d 來(lái)退出shell
noglob 讓shell不擴(kuò)展文件名中一些特殊的字符或字符串。例如,字符“*"等不再為通配符。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux Shell腳本面試25問(wèn) - 博客 - 伯樂(lè)在線
Shell:語(yǔ)法規(guī)范
linux超級(jí)基礎(chǔ)系列——shell變量(本地變量和環(huán)境變量)
Shell腳本編程30分鐘入門(mén)
Linux基礎(chǔ)
linux shell 判斷一個(gè)命令是否存在
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服