知道怎么增刪改查就算是入門了。因為這是最常用的。
成都創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、奉賢網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城系統(tǒng)網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為奉賢等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
在使用linux時,經(jīng)常需要進行文件查找。其中查找的命令主要有find和grep。兩個命令是有區(qū)別的。
區(qū)別:(1)find命令是根據(jù)文件的屬性進行查找,如文件名,文件大小,所有者,所屬組,是否為空,訪問時間,修改時間等。
? ? ? ? ? (2)grep是根據(jù)文件的內(nèi)容進行查找,會對文件的每一行按照給定的模式(patter)進行匹配查找。
一.find命令
基本格式:find? path expression
1.按照文件名查找
(1)find / -name httpd.conf#在根目錄下查找文件httpd.conf,表示在整個硬盤查找
(2)find /etc -name httpd.conf#在/etc目錄下文件httpd.conf
(3)find /etc -name '*srm*'#使用通配符*(0或者任意多個)。表示在/etc目錄下查找文件名中含有字符串‘srm’的文件
(4)find . -name 'srm*' #表示當前目錄下查找文件名開頭是字符串‘srm’的文件
2.按照文件特征查找
(1)find / -amin -10 # 查找在系統(tǒng)中最后10分鐘訪問的文件(access time)
(2)find / -atime -2 # 查找在系統(tǒng)中最后48小時訪問的文件
(3)find / -empty # 查找在系統(tǒng)中為空的文件或者文件夾
(4)find / -group cat # 查找在系統(tǒng)中屬于 group為cat的文件
(5)find / -mmin -5 # 查找在系統(tǒng)中最后5分鐘里修改過的文件(modify time)
(6)find / -mtime -1 #查找在系統(tǒng)中最后24小時里修改過的文件
(7)find / -user fred #查找在系統(tǒng)中屬于fred這個用戶的文件
(8)find / -size +10000c#查找出大于10000000字節(jié)的文件(c:字節(jié),w:雙字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小于1000KB的文件
3.使用混合查找方式查找文件
參數(shù)有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目錄下查找大于10000字節(jié)并在最后2分鐘內(nèi)修改的文件
? (2)find / -user fred -or -user george #在/目錄下查找用戶是fred或者george的文件文件
? (3)find /tmp ! -user panda#在/tmp目錄中查找所有不屬于panda用戶的文件
二、grep命令
? 基本格式:find? expression
1.主要參數(shù)
[options]主要參數(shù):
-c:只輸出匹配行的計數(shù)。
-i:不區(qū)分大小寫
-h(huán):查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數(shù):
\: 忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結(jié)束行。
\:從匹配正則表達 式的行開始。
\:到匹配正則表達式的行結(jié)束。
[ ]:單個字符,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的單個字符。
* :有字符,長度可以為0。
2.實例
(1)grep 'test' d*#顯示所有以d開頭的文件中包含 test的行
(2)grep ‘test’ aa bb cc #顯示在aa,bb,cc文件中包含test的行
(3)grep ‘[a-z]\{5\}’ aa #顯示所有包含每行字符串至少有5個連續(xù)小寫字符的字符串的行
(4)grep magic /usr/src#顯示/usr/src目錄下的文件(不含子目錄)包含magic的行
(5)grep -r magic /usr/src#顯示/usr/src目錄下的文件(包含子目錄)包含magic的行
(6)grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
查看文件內(nèi)容的命令:
cat? ? 由第一行開始顯示內(nèi)容,并將所有內(nèi)容輸出
tac? ? 從最后一行倒序顯示內(nèi)容,并將所有內(nèi)容輸出
more? ? 根據(jù)窗口大小,一頁一頁的現(xiàn)實文件內(nèi)容
less? ? 和more類似,但其優(yōu)點可以往前翻頁,而且進行可以搜索字符
head? ? 只顯示頭幾行
tail? ? 只顯示最后幾行
nl? ? ? 類似于cat -n,顯示時輸出行號
tailf? 類似于tail -f
1.cat 與 tac
cat的功能是將文件從第一行開始連續(xù)的將內(nèi)容輸出在屏幕上。但是cat并不常用,原因是當文件大,行數(shù)比較多時,屏幕無法全部容下時,只能看到一部分內(nèi)容。
cat語法:cat [-n]? 文件名 (-n : 顯示時,連行號一起輸出)
tac的功能是將文件從最后一行開始倒過來將內(nèi)容數(shù)據(jù)輸出到屏幕上。我們可以發(fā)現(xiàn),tac實際上是cat反過來寫。這個命令也不常用。
tac語法:tac 文件名。
2.more和less(常用)
more的功能是將文件從第一行開始,根據(jù)輸出窗口的大小,適當?shù)妮敵鑫募?nèi)容。當一頁無法全部輸出時,可以用“回車鍵”向下翻行,用“空格鍵”向下翻頁。退出查看頁面,請按“q”鍵。另外,more還可以配合管道符“|”(pipe)使用,例如:ls -al | more
more的語法:more 文件名
Enter 向下n行,需要定義,默認為1行;
Ctrl f 向下滾動一屏;
空格鍵 向下滾動一屏;
Ctrl b 返回上一屏;
= 輸出當前行的行號;
:f 輸出文件名和當前行的行號;
v 調(diào)用vi編輯器;
! 命令 調(diào)用Shell,并執(zhí)行命令;
q 退出more
less的功能和more相似,但是使用more無法向前翻頁,只能向后翻。
less可以使用【pageup】和【pagedown】鍵進行前翻頁和后翻頁,這樣看起來更方便。
less的語法:less 文件名
less還有一個功能,可以在文件中進行搜索你想找的內(nèi)容,假設(shè)你想在passwd文件中查找有沒有weblogic字符串,那么你可以這樣來做:
[root@redhat etc]# less passwd
然后輸入:
/weblogic
回車
此時如果有weblogic字符串,linux會把該字符已高亮方式顯示。
退出查看頁面,請按“q”鍵。
3.head和tail
head和tail通常使用在只需要讀取文件的前幾行或者后幾行的情況下使用。head的功能是顯示文件的前幾行內(nèi)容
head的語法:head [n number] 文件名 (number 顯示行數(shù))
tail的功能恰好和head相反,只顯示最后幾行內(nèi)容
tail的語法:tail [-n number] 文件名
4.nl
nl的功能和cat -n一樣,同樣是從第一行輸出全部內(nèi)容,并且把行號顯示出來
nl的語法:nl 文件名
1、vi
vi 1.txt 會直接創(chuàng)建并打開一個文件1.txt
2、touch
touch的作用是更改一個文件或目錄的時間。touch 2.txt 如果2.txt不存在,則創(chuàng)建空文件2.txt
3、echo
echo “abcd” 3.txt 可以直接創(chuàng)建文件3.txt并將abcd寫入。
4、less 、more 、cat
三者都是將文件內(nèi)容輸出到標準輸出,其中l(wèi)ess和more可以分頁顯示,cat是顯示全部。
三者可以根據(jù)已經(jīng)存在的文件創(chuàng)建新的文件。假設(shè)已經(jīng)存在文件1.txt。
cat 1.txt 2.txt
less 1.txt 3.txt
more 1.txt 4.txt
此時創(chuàng)建的文件內(nèi)容都和1.txt中文件內(nèi)容相同。
rm -f 文件名
-f? 表示強制
將會強行刪除文件,且無提示
功能說明:刪除文件或目錄。
語法:rm [-dfirv][--help][--version][文件或目錄...]
補充說明:執(zhí)行rm指令可刪除文件或目錄,如欲刪除目錄必須加上參數(shù)”-r”,否則預(yù)設(shè)僅會刪除文件。
參數(shù):
-d或–directory 直接把欲刪除的目錄的硬連接數(shù)據(jù)刪成0,刪除該目錄。
-f或–force 強制刪除文件或目錄。
-i或–interactive 刪除既有文件或目錄之前先詢問用戶。
-r或-R或–recursive 遞歸處理,將指定目錄下的所有文件及子目錄一并處理。
-v或–verbose 顯示指令執(zhí)行過程。
將目錄A重命名為B
mv A B
方法一:
命令是:vi,vim
vi 編輯器,相當于記事本,有編輯功能,但較弱
vim 復(fù)雜的編輯器,相當于windows的 editplus, notepad++ 等
------------------------
步驟:
1、執(zhí)行 vi world.txt? 進入編輯器(默認命令模式),
2、點擊a或i進入編輯模式,敲入內(nèi)容:hello linux world !
3、然后按鍵盤上的esc鍵退出編輯模式(進入到命令模式),
4、最后敲冒號:,
5、再敲wq保存并退出。
-------
wq解釋為:write quite
不想保存,q
強制退出 q!
方法二
對于簡單的,使用 echo 打印命令。
echo "字符串",功能:在屏幕上打印 字符串。
用 echo? 或 echo ? 導(dǎo)入到文件里。
echo 'hello linux' /data/hello.txt? 這個在企業(yè)里很常用:單行內(nèi)容追加到文件結(jié)尾。
一個大于號,是覆蓋重定向,會清除文件里的所有以前數(shù)據(jù),增加新數(shù)據(jù)。
兩個大于號,是追加重定向,文件結(jié)尾加入內(nèi)容,不會刪除已有文件的內(nèi)容。
方法三:特殊用法使用cat
cat/data/hello.txt
hello world world
EOF
----------
EOF要成對出現(xiàn),且是增加的內(nèi)容里沒有的,EOF可以被任意成對內(nèi)容替換。
cat 是查看文件內(nèi)容的命令
一個進程默認會打開標準輸入、標準輸出、錯誤輸出三個文件描述符
文件描述符為0,小于號表示數(shù)據(jù)由文件流入命令
usage:
命令 file
#加入輸入重定向,對輸入文件進行計數(shù)
wc -l /etc/passwd
文件描述符為1,大于號表述數(shù)據(jù)由命令流入文件
所以: echo "hello" t.log 也可以寫成 echo "hello" 1 t.log
會把文件的內(nèi)容清空,再輸入到新的文件
會把當前內(nèi)容保持不變,然后在下一行進行追加
2 錯誤重定向,如果當前命令產(chǎn)生了錯誤,會把錯誤重定向到文件中,而不會打印到屏幕
無論內(nèi)容正確還是錯誤都會把文件輸出到文件中。
stderr的文件描述符為2,Unix程序會向stderr流中寫入錯誤信息。
默認情況下, command file 將stdout 重定向到 file, command file 將stdin 重定向到 file。
如果希望 stderr 重定向到 file,可以這樣寫:
$ command 2file
如果希望 stderr 追加到 file 文件末尾,可以這樣寫:
$ command 2file 2 表示標準錯誤文件(stderr)
如果希望將 stdout 和 stderr 合并后重定向到 file,可以這樣寫:
$ command file 21 或者 $ command file 21
如果希望對 stdin 和 stdout 都重定向,可以這樣寫:
$ command file1 file2
command 命令將 stdin 重定向到 file1,將 stdout 重定向到 file2。
含義:將標準錯誤輸出 重定向到 標準輸出。
符號是一個整體,不可分開,分開后就不是上述含義了。
比如有些人可能會這么想:2是標準錯誤輸入,1是標準輸出,是重定向符號,那么"將標準錯誤輸出重定向到標準輸出"是不是就應(yīng)該寫成"21"就行了?是這樣嗎? 如果是嘗試過,你就知道21的寫法其實是將標準錯誤輸出重定向到名為"1"的文件里去了
1、輸入輸出的區(qū)別:
和都屬于輸出重定向,屬于輸入重定向。
2、文件內(nèi)容的區(qū)別:
會覆蓋目標的原有內(nèi)容。當文件存在時會先刪除原文件,再重新創(chuàng)建文件,然后把內(nèi)容寫入該文件;否則直接創(chuàng)建文件。
會在目標原有內(nèi)容后追加內(nèi)容。當文件存在時直接在文件末尾進行內(nèi)容追加,不會刪除原文件;否則直接創(chuàng)建文件。
輸出重定向:將一條命令執(zhí)行結(jié)果(標準輸出,或者錯誤輸出,本來都要打印到屏幕上面的)重定向其它輸出設(shè)備(文件,打開文件操作符,或打印機等等)。
輸入重定向:命令默認從鍵盤獲得的輸入,改成從文件,或者其它打開文件以及設(shè)備的輸入。
擴展資料
當執(zhí)行shell命令時,會默認打開3個文件,每個文件有對應(yīng)的文件描述符來方便我們使用:
當使用輸出重定向和前面如果不加數(shù)字則默認為1,即和1,和1分別相同。如果使用數(shù)字2可以將錯誤的輸出寫入到文件中。使用2或者2時前面必須是錯誤的命令。
這個是將輸出內(nèi)容追加到目標文件中。如果文件不存在,就創(chuàng)建文件;如果文件存在,則將新的內(nèi)容追加到那個文件的末尾,該文件中的原有內(nèi)容不受影響
將分界符之后直至下一個同樣的分界符之前的所有內(nèi)容都作為輸入,遇到下一個分界符,shell就知道輸入結(jié)束了,例如
fish@mangos:~$ cat EOF
First Line
Second Line
Third Line EOF
EOF
First Line
Second Line
Third Line EOF