Linux命令分為內(nèi)部命令(shell自帶的命令)和外部命令(不是shell自帶的命令,由用戶(hù)安裝),怎么鑒別是內(nèi)部命令和外部命令呢?可以通過(guò)type命令來(lái)鑒別
十多年的憑祥網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整憑祥建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“憑祥網(wǎng)站設(shè)計(jì)”,“憑祥網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
什么是shell呢?shell是一個(gè)程序,常用的有bash shell,平時(shí)我們通過(guò)用戶(hù)名和密碼登錄到linux,其實(shí)就是登錄到bash shell程序,通過(guò)bash shell來(lái)操作linux內(nèi)核
命令執(zhí)行流程
那豈不是說(shuō)使用外部命令效率會(huì)很慢嗎?
其實(shí)一點(diǎn)都不慢,它會(huì)去PATH環(huán)境變量設(shè)置的一堆目錄中查找
cd is a shell builtin 表示內(nèi)部命令
ifconfig is hashed (/usr/sbin/ifconfig) 表示外部命令
cd命令切換文件夾
現(xiàn)在我們cd /usr/sbin
通過(guò)cat命令查看文件內(nèi)容
通過(guò)cat ifconfig來(lái)查看ifconfig,發(fā)現(xiàn)是亂碼文件
file命令查看文件類(lèi)型
輸入file ifconfig
從輸出信息可以看出它是一個(gè)二進(jìn)制可執(zhí)行文件
whereis命令查看文件位置
find / -name jdk
echo命令用戶(hù)打印信息,相當(dāng)于java中的system.out.println
可以使用回車(chē)查看下一行、空格查看下一頁(yè)、q退出
一般使用man查看外部命令,help查看內(nèi)部命令
查看linux下的應(yīng)用和應(yīng)用的進(jìn)程號(hào)
當(dāng)我們?cè)谶@個(gè)窗口中輸入kill -9 1593的話(huà),另外一個(gè)正在編輯文件的進(jìn)程就會(huì)退出
在前面我們已經(jīng)講過(guò),bash shell程序在執(zhí)行命令的一個(gè)過(guò)程及原理,對(duì)于外部命令,它會(huì)去PATH這個(gè)環(huán)境變量中查找執(zhí)行命令所在的路徑,當(dāng)然在去PATH中尋找之前會(huì)先去hash表中查找這個(gè)命令有沒(méi)有執(zhí)行過(guò),執(zhí)行過(guò)的話(huà)會(huì)記錄在hash表中,則此次查找只需從hash表中就可以很方便的找到
查看分區(qū)信息 -h 表示文件大小后面會(huì)顯示文件大小
查看文件的使用情況
使用man ls 查看ls命令的相關(guān)介紹
-a:可以查看隱藏文件
-l:以長(zhǎng)列表的形式展示文件列表信息
第一位 -:表示文件,d表示文件夾,b表示塊設(shè)備文件,c表示字符設(shè)備文件,p表示命令管道文件,s表示套接字文件, 從第二位開(kāi)始往后數(shù)九位表示屬主權(quán)限(每三位一組 rwx:讀、寫(xiě)、執(zhí)行),第11位表示的點(diǎn)表示分隔符,點(diǎn)后面的數(shù)字表示文件有幾個(gè)硬連接,第一個(gè)root代表屬主名,第二個(gè)root代表這個(gè)第一個(gè)root所在的組織,接下來(lái)的5表示文件大小,5后面的日期表示文件最后一次修改的時(shí)間, 1.txt代表的文件或文件夾的名稱(chēng)
小結(jié):
切換文件目錄
cd 文件路徑
cd:切換到家目錄
cd ~:回到家目錄(也就是家目錄)
cd ..:回到上一級(jí)目錄
創(chuàng)建目錄
mkdir 目錄名
mkdir -p 目錄名,級(jí)聯(lián)創(chuàng)建目錄
cp 被拷貝的文件(可以是路徑加文件名) 拷貝到哪個(gè)位置
復(fù)制目錄使用
cp -r 被拷貝的目錄 目標(biāo)位置
移動(dòng)命令
mv 被移動(dòng)的文件 目標(biāo)位置+目標(biāo)文件名
rm 文件名(此中方式的刪除需要再輸入 yes)
rm -f 文件名,無(wú)提示直接刪除
rm -rf 文件夾
ln命令默認(rèn)創(chuàng)建的是硬連接
ln profile a:將a硬連接到profile文件上,他們底層共用一個(gè)文件,刪除他們之中任何一個(gè)
對(duì)另外一個(gè)沒(méi)有影響,同時(shí)你也可以使用 ll -i命令查看文件編號(hào)
ln -s profile a:將a軟連接到profile文件,當(dāng)你訪問(wèn)a的時(shí)候會(huì)去訪問(wèn)profile,profile再訪問(wèn)底層文件,當(dāng)將profile刪除了之后a就無(wú)法訪問(wèn)了
一致時(shí)間、創(chuàng)建新文本
touch 已存在的文件:會(huì)將文件的訪問(wèn)時(shí)間、更新時(shí)間、改變時(shí)間(即上面stat中介紹的三個(gè)時(shí)間)變成一致
touch 不存在的文件:會(huì)創(chuàng)建一個(gè)新的文本
cat命令查看文件內(nèi)容
cat 1.txt:查看單個(gè)文件內(nèi)容
cat 1.txt 2.txt:查看多個(gè)文件
more 1.txt:以分頁(yè)的形式查看文件內(nèi)容,按空格:下一頁(yè),回車(chē):下一行(注意它不能回看,回看的話(huà)只能用鼠標(biāo)回輪)
less 1.txt:使用空格下一頁(yè), b看上一頁(yè), 回車(chē)看下一行
注意less的話(huà)會(huì)把整個(gè)文件內(nèi)容加載到內(nèi)存,如果文件比較大的話(huà),建議使用more命令查看
head命令默認(rèn)查看文件前10行內(nèi)容, head 1.txt
head -5 1.txt:查看文件前5行的內(nèi)容
tail命令默認(rèn)查看文件后10行的內(nèi)容 tail 1.txt
tail -5 1.txt:查看文件后5行內(nèi)容
tail -f 1.txt:實(shí)時(shí)查看文件增量?jī)?nèi)容
cat b.txt | head -3:管道左邊的命令會(huì)以輸出流的形式交給管道右邊的命令,管道右邊以輸入流的形式接收并且拼到命令的右邊
注意:ls -l 不能接受前面的輸出流,這個(gè)怎么辦呢?可以通過(guò)xargs命令
vi文本編輯器末行模式的操作
set nu(number的縮寫(xiě)): 設(shè)置行號(hào)
set nonu(nonumber的縮寫(xiě)):取消行號(hào)
set readonly:設(shè)置為只讀
n:往下查找
N:往上查找
n:往上查找
N:往下查找
一般我們會(huì)在/etc/profile文件中設(shè)置一些環(huán)境變量,但是在設(shè)置的時(shí)候可能沒(méi)有記住目錄,這時(shí)候我們可以使用如下方式
效果
格式 :s/str1/str2/gi
/ : 臨近s命令的第一個(gè)字符邊界字符,也可以是 @或#
g : 一行內(nèi)全部替換
i : 忽略大小寫(xiě)
范圍
n:行號(hào)
. :當(dāng)前光標(biāo)行
+n :偏移n行
-3
%:全文
全部刪除 1,$d
刪除前三行
刪除倒數(shù)第2行
光標(biāo)挪到最后一行 按下小寫(xiě)的p
效果圖
正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特殊字符、及這些特定字符的組合組成一個(gè)"規(guī)則字符串",這個(gè)"規(guī)則字符串"用來(lái)表達(dá)對(duì)字符串的一種過(guò)濾邏輯。
\ :轉(zhuǎn)義字符
. :匹配任意單個(gè)字符
[1249a] :匹配中括號(hào)中任意字符
[^12] :匹配中括號(hào)中任意非1和2的字符
[a-k] :匹配中括號(hào)中任意a~k中的一個(gè)字符
^ :行首
$ :行尾
abc :?jiǎn)卧~首尾邊界(匹配單詞abc)
| :連接操作符
(,) : 選擇操作符
\n :反向引用
? :匹配0到1次
在Linux中通過(guò)grep命令使用正則表達(dá)式來(lái)匹配信息
f :選擇顯示的列
s :不顯示沒(méi)有分隔符的行
d :自定義分隔符
n :按數(shù)值排序
r :倒序
t :自定義分隔符
K :選擇排序列
u :合并相同行
f :忽略大小寫(xiě)
sed:行編輯器,以行為單位進(jìn)行處理,可以將數(shù)據(jù)進(jìn)行替換、刪除、新增、選取等特定工作
sed [options] 'Command' file ...
-n :靜默模式,不再默認(rèn)顯示模式空間(內(nèi)存)中的內(nèi)容
-i :直接修改原文件
-e SCRIPT :可以同時(shí)執(zhí)行多個(gè)腳本
-f /PATH/TO/SED_SCRIPT
-r :表示使用擴(kuò)展正則表達(dá)式
d :刪除符合條件的行
p :顯示符號(hào)條件的行
a \string :在指定的行后面追加新行,內(nèi)容為string
\n :可以用于換行
i \string :在指定的行前面添加新行,內(nèi)容為string
c :取代,c的后面可以接字符串
s /pattern/string/修飾符:查找并替換。默認(rèn)只替換每行中第一次被模式匹配到的字符串
g :行內(nèi)全局替換
i :忽略字符大小寫(xiě)
s///:s###,s@@@
(),\1,\2
sed "2p" ctxt
但是在執(zhí)行下面的操作的時(shí)候文本中的內(nèi)容都顯示出來(lái)了,它的原理是,打印匹配的行,以及文本中所有的內(nèi)容
注意:它刪的是內(nèi)存中的數(shù)據(jù),而不是目標(biāo)文件
sed -i "3d" ctxt
它的原理是先把內(nèi)存中的第3行數(shù)據(jù)刪除,然后再把內(nèi)存中的數(shù)據(jù)寫(xiě)回原文件,這時(shí)原文件中的第三行就沒(méi)有了
使用變量的形式
awk是一個(gè)強(qiáng)大的文本分析工具。
相對(duì)于grep的查找,sed的編輯,awk在其對(duì)數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大。
簡(jiǎn)單來(lái)說(shuō)awk就是把文件逐行的讀入,(空格,制表符)為默認(rèn)分隔符將每行切片,切開(kāi)的部分再進(jìn)行各種分析處理。
awk -F '{pattern + action}' {filenames}
支持自定義分隔符,默認(rèn)是以空格分隔的
支持正則表達(dá)式匹配
支持自定義變量,數(shù)組 a[1] a[tom] map(key)
支持內(nèi)置變量
ARGC 命令行參數(shù)個(gè)數(shù)
ARGV 命令行參數(shù)排列
ENVIRON 支持隊(duì)列中系統(tǒng)環(huán)境變量的使用
FILENAME awk瀏覽的文件名
FNR 瀏覽文件的記錄數(shù)
FS 設(shè)置輸入域分隔符,等價(jià)于命令行 -F選項(xiàng)
NF 瀏覽記錄的域的個(gè)數(shù)
NR 已讀的記錄數(shù)
OFS 輸出域分隔符
ORS 輸出記錄分隔符
RS 控制記錄分隔符
支持函數(shù)
print、split、substr、sub、gsub
支持流程控制語(yǔ)句
if、while、do/while、for、break、continue
練習(xí)題
passwd文件內(nèi)容解讀:
passwd文件中每行由7個(gè)字段組成,字段與字段之間由:分隔,第一個(gè)字段代表用戶(hù)名,第二個(gè)字段表示用戶(hù)對(duì)應(yīng)的加密后的密碼,第三個(gè)字段表示userId,第四個(gè)字段表示groupId,第五個(gè)字段表示對(duì)用戶(hù)的描述,第六個(gè)字段表示用戶(hù)的家目錄,第七個(gè)字段表示的是這個(gè)用戶(hù)默認(rèn)使用的shell
其中$0表示整行
統(tǒng)計(jì)報(bào)表:合計(jì)每人1月工資, 0:manager,1:worker
將awk后面的內(nèi)容封裝到一個(gè)文件中(封裝的腳本要遵循一定的格式)
qqq文件的內(nèi)容格式
Linux中命令格式為:
command [options] [arguments] //中括號(hào)代表是可選的,即有些命令不需要選項(xiàng)也不需要參數(shù),但有的命令在運(yùn)行時(shí)需要多個(gè)選項(xiàng)或參數(shù)。
選項(xiàng)options:
選項(xiàng)是調(diào)整命令執(zhí)行行為的開(kāi)關(guān),即,選項(xiàng)不同決定了命令的顯示結(jié)果不同。
選項(xiàng)分為長(zhǎng)選項(xiàng)和短選項(xiàng)。
短選項(xiàng):比如-h,-l,-s等。(- 后面接單個(gè)字母)
l短選項(xiàng)都是使用‘-’引導(dǎo),當(dāng)有多個(gè)短選項(xiàng)時(shí),各選項(xiàng)之間使用空格隔開(kāi)。
l有些命令的短選項(xiàng)可以組合,比如-l –h 可以組合為–lh
l有些命令的短選項(xiàng)可以不帶-,這通常叫作BSD風(fēng)格的選項(xiàng),比如ps aux
l有些短選項(xiàng)需要帶選項(xiàng)本身的參數(shù),比如-L 512M
長(zhǎng)選項(xiàng):比如--help,--list等。(-- 后面接單詞)
l長(zhǎng)選面都是完整的單詞
l長(zhǎng)選項(xiàng)通常不能組合
l如果需要參數(shù),長(zhǎng)選項(xiàng)的參數(shù)通常需要‘=’,比如--size=1G
參數(shù)arguments:
參數(shù)是指命令的作用對(duì)象。
如ls命令,不加參數(shù)的時(shí)候顯示是當(dāng)前目錄,也可以加參數(shù),如ls /dev, 則輸出結(jié)果是/dev目錄。
以上簡(jiǎn)要說(shuō)明了選項(xiàng)及參數(shù)的區(qū)別,但具體Linux中哪條命令有哪些選項(xiàng)及參數(shù),需要我們靠經(jīng)驗(yàn)積累或者查看Linux的幫助了。《Linux就該這么學(xué)》一起學(xué)習(xí)
總結(jié):
選項(xiàng)是限定結(jié)果的顯示結(jié)果
短選項(xiàng)(- 一個(gè)橫杠):只能修飾一個(gè)字符的選項(xiàng),比如: ls -a,當(dāng)然多個(gè)短選項(xiàng)可以合并,比如tar -cvf
長(zhǎng)選項(xiàng)(-- 兩個(gè)橫杠):可以修飾單個(gè)字符,也可以修飾一個(gè)單詞,比如:(1) chkconfig --list (2)chkconfig --add xxx (3)service --status-all
參數(shù)是傳遞到腳本中的真實(shí)的參數(shù)
linux的命令操作對(duì)象叫參數(shù),選項(xiàng)是對(duì)操作的過(guò)程做個(gè)修飾。
就像我們說(shuō),殺豬,殺是命令,豬就是參數(shù),而選項(xiàng)是個(gè)修飾,比如兇狠的殺,還是溫柔的殺。
比如刪除文件 rm file,rm是命令,file是參數(shù),我們沒(méi)給選項(xiàng),可以加個(gè)選項(xiàng),執(zhí)行rm -f file,這里-f就是選項(xiàng),代表force,強(qiáng)制刪除,就是修飾這個(gè)刪除動(dòng)作的過(guò)程的。
分享標(biāo)題:linux修飾命令的行為 linux怎么修改命令字符
網(wǎng)頁(yè)路徑:http://vcdvsql.cn/article42/ddoijec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)