1.常用指令
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供遼中網(wǎng)站建設(shè)、遼中做網(wǎng)站、遼中網(wǎng)站設(shè)計(jì)、遼中網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、遼中企業(yè)網(wǎng)站模板建站服務(wù),十余年遼中做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
ls ? ? ? ?顯示文件或目錄
-l ? ? ? ? ? 列出文件詳細(xì)信息l(list)
-a ? ? ? ? ?列出當(dāng)前目錄下所有文件及目錄,包括隱藏的a(all)
mkdir ? ? ? ? 創(chuàng)建目錄
-p ? ? ? ? ? 創(chuàng)建目錄,若無父目錄,則創(chuàng)建p(parent)
cd ? ? ? ? ? ? ? 切換目錄
touch ? ? ? ? ?創(chuàng)建空文件
echo ? ? ? ? ? ?創(chuàng)建帶有內(nèi)容的文件。
cat ? ? ? ? ? ? ?查看文件內(nèi)容
cp ? ? ? ? ? ? ? ?拷貝
mv ? ? ? ? ? ? ? 移動(dòng)或重命名
rm ? ? ? ? ? ? ? 刪除文件
-r ? ? ? ? ? ?遞歸刪除,可刪除子目錄及文件
-f ? ? ? ? ? ?強(qiáng)制刪除
find ? ? ? ? ? ? ?在文件系統(tǒng)中搜索某文件
wc ? ? ? ? ? ? ? ?統(tǒng)計(jì)文本中行數(shù)、字?jǐn)?shù)、字符數(shù)
grep ? ? ? ? ? ? 在文本文件中查找某個(gè)字符串
rmdir ? ? ? ? ? 刪除空目錄
tree ? ? ? ? ? ? 樹形結(jié)構(gòu)顯示目錄,需要安裝tree包
pwd ? ? ? ? ? ? ?顯示當(dāng)前目錄
ln ? ? ? ? ? ? ? ? ?創(chuàng)建鏈接文件
more、less ?分頁顯示文本文件內(nèi)容
head、tail ? ?顯示文件頭、尾內(nèi)容
ctrl+alt+F1 ?命令行全屏模式
2.系統(tǒng)管理命令
stat ? ? ? ? ? ? ?顯示指定文件的詳細(xì)信息,比ls更詳細(xì)
who ? ? ? ? ? ? ? 顯示在線登陸用戶
whoami ? ? ? ? ?顯示當(dāng)前操作用戶
hostname ? ? ?顯示主機(jī)名
uname ? ? ? ? ? 顯示系統(tǒng)信息
top ? ? ? ? ? ? ? ?動(dòng)態(tài)顯示當(dāng)前耗費(fèi)資源最多進(jìn)程信息
ps ? ? ? ? ? ? ? ? ?顯示瞬間進(jìn)程狀態(tài) ps -aux
du ? ? ? ? ? ? ? ? ?查看目錄大小 du -h /home帶有單位顯示目錄信息
df ? ? ? ? ? ? ? ? ?查看磁盤大小 df -h 帶有單位顯示磁盤信息
ifconfig ? ? ? ? ?查看網(wǎng)絡(luò)情況
ping ? ? ? ? ? ? ? ?測試網(wǎng)絡(luò)連通
netstat ? ? ? ? ?顯示網(wǎng)絡(luò)狀態(tài)信息
man ? ? ? ? ? ? ? ?命令不會(huì)用了,找男人? 如:man ls
clear ? ? ? ? ? ? ?清屏
alias ? ? ? ? ? ? ? 對命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill ? ? ? ? ? ? ? ? 殺死進(jìn)程,可以先用ps 或 top命令查看進(jìn)程的id,然后再用kill命令殺死進(jìn)程。
3.打包壓縮相關(guān)命令
tar:? ? ? ? ? ? 打包壓縮
-c ? ? ? ? ? ? ?歸檔文件
-x ? ? ? ? ? ? ?壓縮文件
-z ? ? ? ? ? ? ?gzip壓縮文件
-j ? ? ? ? ? ? ?bzip2壓縮文件
-v ? ? ? ? ? ? ?顯示壓縮或解壓縮過程 v(view)
-f ? ? ? ? ? ? ?使用檔名
例:
tar -cvf /home/abc.tar /home/abc ? ? ? ? ? ? ?只打包,不壓縮
tar -zcvf /home/abc.tar.gz /home/abc ? ? ? ?打包,并用gzip壓縮
tar -jcvf /home/abc.tar.bz2 /home/abc ? ? ?打包,并用bzip2壓縮
當(dāng)然,如果想解壓縮,就直接替換上面的命令? tar -cvf? / tar -zcvf? / tar -jcvf 中的“c” 換成“x” 就可以了。
3.關(guān)機(jī)/重啟機(jī)器
shutdown
-r ? ? ? ? ? ? 關(guān)機(jī)重啟
-h ? ? ? ? ? ? 關(guān)機(jī)不重啟
now ? ? ? ? ?立刻關(guān)機(jī)
halt ? ? ? ? ? ? ? 關(guān)機(jī)
reboot ? ? ? ? ?重啟
4.Linux管道
將一個(gè)命令的標(biāo)準(zhǔn)輸出作為另一個(gè)命令的標(biāo)準(zhǔn)輸入。也就是把幾個(gè)命令組合起來使用,后一個(gè)命令除以前一個(gè)命令的結(jié)果。
例:grep -r "close" /home/* | more ? ? ? 在home目錄下所有文件中查找,包括close的文件,并分頁輸出。
5.Linux軟件包管理
dpkg?(Debian Package)管理工具,軟件包名以.deb后綴。這種方法適合系統(tǒng)不能聯(lián)網(wǎng)的情況下。
比如安裝tree命令的安裝包,先將tree.deb傳到Linux系統(tǒng)中。再使用如下命令安裝。
sudo dpkg -i tree_1.5.3-1_i386.deb ? ? ? ? 安裝軟件
sudo dpkg -r tree ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 卸載軟件
注:將tree.deb傳到Linux系統(tǒng)中,有多種方式。VMwareTool,使用掛載方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高級(jí)軟件工具。這種方法適合系統(tǒng)能夠連接互聯(lián)網(wǎng)的情況。
依然以tree為例
sudo apt-get install tree ? ? ? ? ? ? ? ? ? ? ? ? 安裝tree
sudo apt-get remove tree ? ? ? ? ? ? ? ? ? ? ? 卸載tree
sudo apt-get update ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 更新軟件
sudo apt-get upgrade? ? ?
6.將.rpm文件轉(zhuǎn)為.deb文件
.rpm為RedHat使用的軟件格式。在Ubuntu下不能直接使用,所以需要轉(zhuǎn)換一下。
sudo alien abc.rpm
7.vim使用
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q ? ? ? ? ? ? ? ? ? ? ?退出
:q! ? ? ? ? ? ? ? ? ? ? 強(qiáng)制退出
:wq ? ? ? ? ? ? ? ? ? 保存并退出
:set number ? ? 顯示行號(hào)
:set nonumber ?隱藏行號(hào)
/apache ? ? ? ? ? ?在文檔中查找apache 按n跳到下一個(gè),shift+n上一個(gè)
yyp ? ? ? ? ? ? ? ? ? 復(fù)制光標(biāo)所在行,并粘貼
h(左移一個(gè)字符←)、j(下一行↓)、k(上一行↑)、l(右移一個(gè)字符→)
8.用戶及用戶組管理
/etc/passwd ? ?存儲(chǔ)用戶賬號(hào)
/etc/group ? ? ? 存儲(chǔ)組賬號(hào)
/etc/shadow ? ?存儲(chǔ)用戶賬號(hào)的密碼
/etc/gshadow ?存儲(chǔ)用戶組賬號(hào)的密碼
useradd 用戶名
userdel 用戶名
adduser 用戶名
groupadd 組名
groupdel 組名
passwd root ? ? 給root設(shè)置密碼
/etc/profile ? ? 系統(tǒng)環(huán)境變量
bash_profile ? ? 用戶環(huán)境變量
.bashrc ? ? ? ? ? ? ?用戶環(huán)境變量
su user ? ? ? ? ? ? ?切換用戶,加載配置文件.bashrc
su - user ? ? ? ? ? ?切換用戶,加載配置文件/etc/profile ,加載bash_profile
更改文件的用戶及用戶組
sudo chown [-R] owner[:group] {File|Directory}
例如:還以jdk-7u21-linux-i586.tar.gz為例。屬于用戶hadoop,組hadoop
要想切換此文件所屬的用戶及組??梢允褂妹睢?/p>
sudo chown root:root?jdk-7u21-linux-i586.tar.gz
擴(kuò)展資料
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
UNIX操作系統(tǒng)(尤尼斯),是一個(gè)強(qiáng)大的多用戶、多任務(wù)操作系統(tǒng),支持多種處理器架構(gòu),按照操作系統(tǒng)的分類,屬于分時(shí)操作系統(tǒng),最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在ATT的貝爾實(shí)驗(yàn)室開發(fā)。目前它的商標(biāo)權(quán)由國際開放標(biāo)準(zhǔn)組織所擁有,只有符合單一UNIX規(guī)范的UNIX系統(tǒng)才能使用UNIX這個(gè)名稱,否則只能稱為類UNIX(UNIX-like)。
一. man 對你熟悉或不熟悉的命令提供幫助解釋 eg:man ls 就可以查看ls相關(guān)的用法
注:按q鍵或者ctrl+c退出,在linux下可以使用ctrl+c終止當(dāng)前程序運(yùn)行。
二. ls 查看目錄或者文件的屬*,列舉出任一目錄下面的文件 eg: ls /usr/man ls -l
a.d表示目錄(directory),如果是一個(gè)"-"表示是文件,如果是l則表示是一個(gè)連接文件(link)
b.表示文件或者目錄許可權(quán)限.分別用可讀(r),可寫(w),可運(yùn)行(x)。
三. cp 拷貝文件 eg: cp filename1 filename2 //把filename1拷貝成filename2
cp 1.c netseek/2.c //將1.c拷到netseek目錄下命名為2.c
四. rm 刪除文件和目錄 eg: rm 1.c //將1.c這個(gè)文件刪除
五. mv 移走目錄或者改文件名 eg: mv filename1 filename2 //將filename1 改名為filename2
mv qib.tgz ../qib.tgz //移到上一級(jí)目錄
六. cd 改變當(dāng)前目錄 pwd 查看當(dāng)前所在目錄完整路徑 eg: pwd //查看當(dāng)前所在目錄路徑
cd netseek //進(jìn)入netseek這個(gè)目錄 cd //退出當(dāng)前目錄
七. cat,more命令
將某個(gè)文件的內(nèi)容顯示出來。兩個(gè)命令所不同的是:cat把文件內(nèi)容一直打印出來,而 more則分屏顯示 eg; cat1.c //就可以把代碼粘帖到1.c文件里,按ctrl+d 保存代碼。
cat 1.c 或more 1.c //都可以查看里面的內(nèi)容。
gcc -o 1 1.c //將1.c編譯成.exe文件,我們可以用此命編譯出代碼。
八.chmod 命令 權(quán)限修改 用法:chmod 一位8進(jìn)制數(shù) filename。
eg: chmod u+x filenmame //只想給自己運(yùn)行,別人只能讀
//u表示文件主人, g 表示文件文件所在組。 o 表示其他人 ;r 表可讀,w 表可寫,x 表可以運(yùn)行
chmod g+x filename //同組的人來執(zhí)行
九. clear,date命令 clear:清屏,相當(dāng)與DOS下的cls;date:顯示當(dāng)前時(shí)間。
十. mount 加載一個(gè)硬件設(shè)備 用法:mount [參數(shù)] 要加載的設(shè)備 載入點(diǎn)
eg: mount /dev/cdrom cd /mnt/cdrom //進(jìn)入光盤目錄
十一. su 在不退出登陸的情況下,切換到另外一個(gè)人的身份
用法: su -l 用戶名(如果用戶名缺省,則切換到root狀態(tài))
eg:su -l netseek (切換到netseek這個(gè)用戶,將提示輸入密碼)
十二.whoami,whereis,which,id //whoami:確認(rèn)自己身份
//whereis:查詢命令所在目錄以及幫助文檔所在目錄 //which:查詢該命令所在目錄(類似whereis)
//id:打印出自己的UID以及GID。(UID:用戶身份唯一標(biāo)識(shí)。GID:用戶組身份唯一標(biāo)識(shí)。每一個(gè)用戶只能有一個(gè)唯一的UID和 GID) eg: whoami //顯示你自已登陸的用戶名
whereis bin 顯示bin所在的目錄,將顯示為:/usr/local/bin which bin
十三. grep,find
grep:文本內(nèi)容搜索;find:文件或者目錄名以及權(quán)限屬主等匹配搜索
eg: grep success * /*查找當(dāng)前目錄下面所有文件里面含有success字符的文件
十四. kill 可以殺死某個(gè)正在進(jìn)行或者已經(jīng)是dest狀態(tài)的進(jìn)程 eg; ps ax
十五. passwd 可以設(shè)置口令
十六. history 用戶用過的命令 eg: history //可以顯示用戶過去使用的命令
十七. !! 執(zhí)行最近一次的命令
十八. mkdir命令 eg: mkdir netseek //創(chuàng)建netseek這個(gè)目錄
十九. tar 解壓命令 eg: tar -zxvf nmap-3.45.tgz //將這個(gè)解壓到nmap-3.45這個(gè)目錄里
二十. finger 可以讓使用者查詢一些其他使用者的資料
eg: finger //查看所用用戶的使用資料
finger root //查看root的資料
1、ls命令
就是list的縮寫,通過ls 命令不僅可以查看linux文件夾包含的文件,而且可以查看文件權(quán)限(包括目錄、文件夾、文件權(quán)限)查看目錄信息等等
常用參數(shù)搭配:
ls -a 列出目錄所有文件,包含以.開始的隱藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改時(shí)間排序
ls -S 以文件大小排序
ls -h 以易讀大小顯示
ls -l 除了文件名之外,還將文件的權(quán)限、所有者、文件大小等信息詳細(xì)列出來
實(shí)例:
(1) 按易讀方式按時(shí)間反序排序,并顯示文件詳細(xì)信息
ls -lhrt
(2) 按大小反序顯示文件詳細(xì)信息
ls -lrS
(3)列出當(dāng)前目錄中所有以“t”開頭的目錄的詳細(xì)內(nèi)容
ls -l t*
(4) 列出文件絕對路徑(不包含隱藏文件)
ls | sed "s:^:`pwd`/:"
(5) 列出文件絕對路徑(包含隱藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
2、cd命令
(changeDirectory),命令語法:cd [目錄名]。說明:切換當(dāng)前目錄至dirName
實(shí)例:
(1)進(jìn)入要目錄
cd /
(2)進(jìn)入"家"目錄
cd ~
(3)進(jìn)入上一次工作路徑
cd -
(4)把上個(gè)命令的參數(shù)作為cd參數(shù)使用。
cd !$
3、pwd命令
查看當(dāng)前工作目錄路徑
實(shí)例:
(1)查看當(dāng)前路徑
pwd
(2)查看軟鏈接的實(shí)際路徑
pwd -P
4、mkdir命令
創(chuàng)建文件夾
可用選項(xiàng):
-m: 對新建目錄設(shè)置存取權(quán)限,也可以用chmod命令設(shè)置;
-p: 可以是一個(gè)路徑名稱。此時(shí)若路徑中的某些目錄尚不存在,加上此選項(xiàng)后,系統(tǒng)將自動(dòng)建立好那 些尚不在的目錄,即一次可以建立多個(gè)目錄;
實(shí)例:
(1)當(dāng)前工作目錄下創(chuàng)建名為t的文件夾
mkdir t
(2)在tmp目錄下創(chuàng)建路徑為test/t1/t的目錄,若不存在,則創(chuàng)建
mkdir -p /tmp/test/t1/t
5、rm命令
刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄,如果沒有使用- r選項(xiàng),則rm不會(huì)刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復(fù)原狀
rm [選項(xiàng)] 文件…
實(shí)例:
(1)刪除任何.log文件;刪除前逐一詢問確認(rèn)
rm -i *.log
(2)刪除test子目錄及子目錄中所有檔案刪除,并且不用一一確認(rèn)
rm -rf test
(3)刪除以-f開頭的文件
rm -- -f*
6、rmdir命令
從一個(gè)目錄中刪除一個(gè)或多個(gè)子目錄項(xiàng),刪除某目錄時(shí)也必須具有對其父目錄的寫權(quán)限。
注意:不能刪除非空目錄
實(shí)例:
(1)當(dāng)parent子目錄被刪除后使它也成為空目錄的話,則順便一并刪除
rmdir -p parent/child/child11
7、mv命令
移動(dòng)文件或修改文件名,根據(jù)第二參數(shù)類型(如目錄,則移動(dòng)文件;如為文件則重命令該文件)。
當(dāng)?shù)诙€(gè)參數(shù)為目錄時(shí),可剛多個(gè)文件以空格分隔作為第一參數(shù),移動(dòng)多個(gè)文件到參數(shù)2指定的目錄中
實(shí)例:
(1)將文件test.log重命名為test1.txt
mv test.log test1.txt
(2)將文件log1.txt,log2.txt,log3.txt移動(dòng)到根的test3目錄中
mv llog1.txt log2.txt log3.txt /test3
(3)將文件file1改名為file2,如果file2已經(jīng)存在,則詢問是否覆蓋
mv -i log1.txt log2.txt
(4)移動(dòng)當(dāng)前文件夾下的所有文件到上一級(jí)目錄
mv * ../
8、cp命令
將源文件復(fù)制至目標(biāo)文件,或?qū)⒍鄠€(gè)源文件復(fù)制至目標(biāo)目錄。
注意:命令行復(fù)制,如果目標(biāo)文件已經(jīng)存在會(huì)提示是否覆蓋,而在shell腳本中,如果不加-i參數(shù),則不會(huì)提示,而是直接覆蓋!
-i 提示
-r 復(fù)制目錄及目錄內(nèi)所有項(xiàng)目
-a 復(fù)制的文件與原文件時(shí)間一樣
實(shí)例:
(1)復(fù)制a.txt到test目錄下,保持原文件時(shí)間,如果原文件存在提示是否覆蓋
cp -ai a.txt test
(2)為a.txt建議一個(gè)鏈接(快捷方式)
cp -s a.txt link_a.txt
9、cat命令
cat主要有三大功能:
1.一次顯示整個(gè)文件:cat filename
2.從鍵盤創(chuàng)建一個(gè)文件:cat filename 只能創(chuàng)建新文件,不能編輯已有文件.
3.將幾個(gè)文件合并為一個(gè)文件:cat file1 file2 file
-b對非空輸出行號(hào)
-n輸出所有行號(hào)
實(shí)例:
(1)把 log2012.log 的文件內(nèi)容加上行號(hào)后輸入 log2013.log 這個(gè)文件里
cat -n log2012.log log2013.log
(2)把 log2012.log 和 log2013.log 的文件內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 log.log 里
cat -b log2012.log log2013.log log.log
(3)使用here doc生成新文件
cat log.txt EOF
Hello
World
PWD=$(pwd)
EOF
ls -l log.txt
cat log.txt
Hello
World
PWD=/opt/soft/test
(4)反向列示
tac log.txt
PWD=/opt/soft/test
World
Hello
10、more命令
功能類似于cat, more會(huì)以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會(huì)往回(back)一頁顯示
-命令參數(shù):
+n 從笫n行開始顯示
-n 定義屏幕大小為n行
+/pattern 在每個(gè)檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開始顯示
-c 從頂部清屏,然后顯示
-d 提示“Press space to continue,’q’ to quit(按空格鍵繼續(xù),按q鍵退出)”,禁用響鈴功能
-l 忽略Ctrl+l(換頁)字符
-p 通過清除窗口而不是滾屏來對文件進(jìn)行換頁,與-c選項(xiàng)相似
-s 把連續(xù)的多個(gè)空行顯示為一行
-u 把文件內(nèi)容中的下畫線去掉
-常用操作命令:
Enter 向下n行,需要定義。默認(rèn)為1行
Ctrl+F 向下滾動(dòng)一屏
空格鍵 向下滾動(dòng)一屏
Ctrl+B 返回上一屏
= 輸出當(dāng)前行的行號(hào)
:f 輸出文件名和當(dāng)前行的行號(hào)
V 調(diào)用vi編輯器
!命令 調(diào)用Shell,并執(zhí)行命令
q 退出more
實(shí)例:
(1)顯示文件中從第3行起的內(nèi)容
more +3 text.txt
(2)在所列出文件目錄詳細(xì)信息,借助管道使每次顯示5行
ls -l | more -5
按空格顯示下5行
11、less命令
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動(dòng),卻不能向后移動(dòng),而且 less 在查看之前不會(huì)加載整個(gè)文件。
常用命令參數(shù)
-i 忽略搜索時(shí)的大小寫
-N 顯示每行的行號(hào)
-o 文件名 將less 輸出的內(nèi)容在指定文件中保存起來
-s 顯示連續(xù)空行為一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
N:反向重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
-x 數(shù)字 將“tab”鍵顯示為規(guī)定的數(shù)字空格
b 向后翻一頁
d 向后翻半頁
h 顯示幫助界面
Q 退出less 命令
u 向前滾動(dòng)半頁
y 向前滾動(dòng)一行
空格鍵 滾動(dòng)一行
回車鍵 滾動(dòng)一頁
[pagedown]: 向下翻動(dòng)一頁
[pageup]: 向上翻動(dòng)一頁
實(shí)例:
(1)ps查看進(jìn)程信息并通過less分頁顯示
ps -aux | less -N
(2)查看多個(gè)文件
less 1.log 2.log
可以使用n查看下一個(gè),使用p查看前一個(gè)
12、head命令
head 用來顯示檔案的開頭至標(biāo)準(zhǔn)輸出中,默認(rèn)head命令打印其相應(yīng)文件的開頭10行。
常用參數(shù):
-n行數(shù) 顯示的行數(shù)(行數(shù)為復(fù)數(shù)表示從最后向前數(shù))
實(shí)例:
(1)顯示1.log文件中前20行
head 1.log -n 20
(2)顯示1.log文件前20字節(jié)
head -c 20 log2014.log
(3)顯示t.log最后10行
head -n -10 t.log
13、tail命令
用于顯示指定文件末尾內(nèi)容,不指定文件時(shí),作為輸入信息進(jìn)行處理。常用查看日志文件。
常用參數(shù):
-f 循環(huán)讀?。ǔS糜诓榭催f增的日志文件)
-n行數(shù) 顯示行數(shù)(從后向前)
(1)循環(huán)讀取逐漸增加的文件內(nèi)容
ping 127.0.0.1 ping.log (后臺(tái)運(yùn)行:可使用jobs -l查看,也可使用fg將其移到前臺(tái)運(yùn)行)
tail -f ping.log(查看日志)
14、which命令
在linux要查找某個(gè)文件,但不知道放在哪里了,可以使用下面的一些命令來搜索:
which 查看可執(zhí)行文件的位置。
whereis 查看文件的位置。
locate 配合數(shù)據(jù)庫查看文件位置。
find 實(shí)際搜尋硬盤查詢文件名稱。
which是在PATH就是指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并返回第一個(gè)搜索結(jié)果。使用which命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。
常用參數(shù):
-n 指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名。
實(shí)例:
(1)查看ls命令是否存在,執(zhí)行哪個(gè)
which ls
(2)查看which
which which
(3)查看cd
which cd(顯示不存在,因?yàn)閏d是內(nèi)建命令,而which查找顯示是PATH中的命令)
查看當(dāng)前PATH配置:echo $PATH;或使用env查看所有環(huán)境變量及對應(yīng)值
15、whereis命令
whereis命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)、man說明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。whereis及l(fā)ocate都是基于系統(tǒng)內(nèi)建的數(shù)據(jù)庫進(jìn)行搜索,因此效率很高,而find則是遍歷硬盤查找文件。
常用參數(shù):
-b 定位可執(zhí)行文件。
-m 定位幫助文件。
-s 定位源代碼文件。
-u 搜索默認(rèn)路徑下除可執(zhí)行文件、源代碼文件、幫助文件以外的其它文件。
實(shí)例:
(1)查找locate程序相關(guān)文件
whereis locate
(2)查找locate的源碼文件
whereis -s locate
(3)查找lcoate的幫助文件
whereis -m locate
16、locate命令
locate通過搜尋系統(tǒng)內(nèi)建文檔數(shù)據(jù)庫達(dá)到快速找到檔案,數(shù)據(jù)庫由updatedb程序來更新,updatedb是由cron daemon周期性調(diào)用的。默認(rèn)情況下locate命令在搜尋數(shù)據(jù)庫時(shí)比由整個(gè)由硬盤資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或 剛更名的,可能會(huì)找不到,在內(nèi)定值中,updatedb每天會(huì)跑一次,可以由修改crontab來更新設(shè)定值。(etc/crontab)。
locate與find命令相似,可以使用如*、?等進(jìn)行正則匹配查找
常用參數(shù):
-l num(要顯示的行數(shù))
-f 將特定的檔案系統(tǒng)排除在外,如將proc排除在外
-r 使用正則運(yùn)算式做為尋找條件
實(shí)例:
(1)查找和pwd相關(guān)的所有文件(文件名中包含pwd)
locate pwd
(2)搜索etc目錄下所有以sh開頭的文件
locate /etc/sh
(3)查找/var目錄下,以reason結(jié)尾的文件
locate -r '^/var.*reason$'(其中.表示一個(gè)字符,*表示任務(wù)多個(gè);.*表示任意多個(gè)字符)
17、find命令
用于在文件樹中查找文件,并作出相應(yīng)的處理
命令格式:
find pathname -options [-print -exec -ok ...]
命令參數(shù):
pathname: find命令所查找的目錄路徑。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄。
-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。
-exec: find命令對匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為'command' { } \;,注意{ }和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個(gè)命令之前,都會(huì)給出提示,讓用戶來確定是否執(zhí)行。
命令選項(xiàng):
-name 按照文件名查找文件
-perm 按文件權(quán)限查找文件
-user 按文件屬主查找文件
-group 按照文件所屬的組來查找文件。
-type 查找某一類型的文件,諸如:
b - 塊設(shè)備文件
d - 目錄
c - 字符設(shè)備文件
l - 符號(hào)鏈接文件
p - 管道文件
f - 普通文件
-size n :[c] 查找文件長度為n塊文件,帶有c時(shí)表文件字節(jié)大小
-amin n 查找系統(tǒng)中最后N分鐘訪問的文件
-atime n 查找系統(tǒng)中最后n*24小時(shí)訪問的文件
-cmin n 查找系統(tǒng)中最后N分鐘被改變文件狀態(tài)的文件
-ctime n 查找系統(tǒng)中最后n*24小時(shí)被改變文件狀態(tài)的文件
-mmin n 查找系統(tǒng)中最后N分鐘被改變文件數(shù)據(jù)的文件
-mtime n 查找系統(tǒng)中最后n*24小時(shí)被改變文件數(shù)據(jù)的文件
(用減號(hào)-來限定更改時(shí)間在距今n日以內(nèi)的文件,而用加號(hào)+來限定更改時(shí)間在距今n日以前的文件。 )
-maxdepth n 最大查找目錄深度
-prune選項(xiàng)來指出需要忽略的目錄。在使用-prune選項(xiàng)時(shí)要當(dāng)心,因?yàn)槿绻阃瑫r(shí)使用了-depth選項(xiàng),那么-prune選項(xiàng)就會(huì)被find命令忽略
-newer 如果希望查找更改時(shí)間比某個(gè)文件新但比另一個(gè)文件舊的所有文件,可以使用-newer選項(xiàng)
實(shí)例:
(1)查找48小時(shí)內(nèi)修改過的文件
find -atime -2
(2)在當(dāng)前目錄查找 以.log結(jié)尾的文件。 ". "代表當(dāng)前目錄
find ./ -name '*.log'
(3)查找/opt目錄下 權(quán)限為 777的文件
find /opt -perm 777
(4)查找大于1K的文件
find -size +1000c
find -size 1000c 查找等于1000字符的文件
-exec 參數(shù)后面跟的是command命令,它的終止是以;為結(jié)束標(biāo)志的,所以這句命令后面的分號(hào)是不可缺少的,考慮到各個(gè)系統(tǒng)中分號(hào)會(huì)有不同的意義,所以前面加反斜杠。{} 花括號(hào)代表前面find查找出來的文件名。
實(shí)例:
(5)在當(dāng)前目錄中查找更改時(shí)間在10日以前的文件并刪除它們(無提醒)
find . -type f -mtime +10 -exec rm -f {} \;
(6)當(dāng)前目錄中查找所有文件名以.log結(jié)尾、更改時(shí)間在5日以上的文件,并刪除它們,只不過在刪除之前先給出提示。 按y鍵刪除文件,按n鍵不刪除
find . -name '*.log' mtime +5 -ok -exec rm {} \;
(7)當(dāng)前目錄下查找文件名以passwd開頭,內(nèi)容包含"pkg"字符的文件
find . -f -name 'passwd*' -exec grep "pkg" {} \;
(8)用exec選項(xiàng)執(zhí)行cp命令
find . -name '*.log' -exec cp {} test3 \;
-xargs find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是全部,不像-exec選項(xiàng)那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,并如此繼續(xù)下去。
實(shí)例:
(9)查找當(dāng)前目錄下每個(gè)普通文件,然后使用xargs來判斷文件類型
find . -type f -print | xargs file
(10)查找當(dāng)前目錄下所有以js結(jié)尾的并且其中包含'editor'字符的普通文件
find . -type f -name "*.js" -exec grep -lF 'ueditor' {} \;
find -type f -name '*.js' | xargs grep -lF 'editor'
(11)利用xargs執(zhí)行mv命令
find . -name "*.log" | xargs -i mv {} test4
(12)用grep命令在當(dāng)前目錄下的所有普通文件中搜索hostnames這個(gè)詞,并標(biāo)出所在行
find . -name \*(轉(zhuǎn)義) -type f -print | xargs grep -n 'hostnames'
(13)查找當(dāng)前目錄中以一個(gè)小寫字母開頭,最后是4到9加上.log結(jié)束的文件
find . -name '[a-z]*[4-9].log' -print
(14)在test目錄查找不在test4子目錄查找
find test -path 'test/test4' -prune -o -print
(15)實(shí)例1:查找更改時(shí)間比文件log2012.log新但比文件log2017.log舊的文件
find -newer log2012.log ! -newer log2017.log
使用depth選項(xiàng):
depth選項(xiàng)可以使find命令向磁帶上備份文件系統(tǒng)時(shí),希望首先備份所有的文件,其次再備份子目錄中的文件。
實(shí)例:find命令從文件系統(tǒng)的根目錄開始,查找一個(gè)名為CON.FILE的文件。 它將首先匹配所有的文件然后再進(jìn)入子目錄中查找
find / -name "CON.FILE" -depth -print