寫在前面
版本發(fā)完,正好有點空閑時間,所以整理一下linux常用命令,結(jié)果打開Linux命令大全,驚呆了,居然有這么多。記這么多命令,肯定記不住的也沒必要,所以這篇就整理一下,一些工作中常用的命令。
sed命令
教程中對sed命令解釋如下:
Linux sed命令是利用script來處理文本文件。
sed可依照script的指令,來處理、編輯文本文件。
Sed主要用來自動編輯一個或多個文件;簡化對文件的反復(fù)操作;編寫轉(zhuǎn)換程序等。
動作說明:
- a :新增, a 的后面可以接字串,而這些字串會在新的一行出現(xiàn)(目前的下一行)
- c :取代, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行!
- d :刪除,因為是刪除啊,所以 d 后面通常不接任何咚咚;
- i :插入, i 的后面可以接字串,而這些字串會在新的一行出現(xiàn)(目前的上一行);
- p :打印,亦即將某個選擇的數(shù)據(jù)印出。通常 p 會與參數(shù) sed -n 一起運行~
- s :取代,可以直接進(jìn)行取代的工作哩!通常這個 s 的動作可以搭配正規(guī)表示法!
實踐操作了一下,大致如下:
原文件內(nèi)容
sed '1d' 111.txt ---刪除第一行
sed '$d' 111.txt ---刪除最后一行
sed '1,3d' 111.txt ---刪除第一行到第三行
sed '/ddff/d' 111.txt ---刪除包含ddff的行
sed -n '1p' 111.txt ---顯示第一行(其他顯示多行方法同刪除)
sed -n '/dd/p' 111.txt ---列出所有包括關(guān)鍵字 dd 所在的行
sed '1a abcde' 111.txt ---第一行后增加 abcde ,即第二行為 abcde
sed '1,3a abcde' 111.txt ---一到三行每一行后面增加一行 abcde)
sed '2i first' 111.txt ---在第二行上增加first,即新的第二行為first,原來的第二行變?yōu)榈谌?
sed '1c abd' 111.txt ---第一行替換為 abc
sed '1,3c abd' 111.txt ---第一行到第三行替換為 abc,這時候三行變?yōu)榱艘恍?
sed -i 's/aaa/bbb/g' 111.txt ---將file中的 aaa 替換為 bbb
sed -i '2s/aaa/bbb/g' 111.txt ---將file中第二行的aaa替換為bbb,如果第二行沒有aaa也不會報錯
sed -i '2,5s/aaa/bbb/g' 111.txt ---將file中第二行到第五行的aaa替換為bbb
查看文件相關(guān)命令
- cat 相關(guān)命令
cat 333.txt ---打印文件內(nèi)容
cat -n 333.txt ---打印文件內(nèi)容并加上行號 (-b 則對空白行不編號),但是我試了沒差,不知道是不是我文件的問題
cat -n 111.txt > 333.txt ---將111.txt文件加上行號,復(fù)制到333.txt中
cat /dev/null > 333.txt ---將333.txt文件清空
- nl命令
該命令較簡單,基本同cat命令
nl 333.txt ------打印文件內(nèi)容并加上行號,同cat -n 333.txt
- more 和 less 命令
more file ----一行一行翻動 點擊space 下一頁 b上一頁 Enter 下一行 q 退出
less file ----一行一行翻動 可以向上翻動, ctrl + F - 向前移動一屏,ctrl + B - 向后移動一屏,ctrl + D - 向前移動半屏,ctrl + U - 向后移動半屏
- head和tail 命令
head file ----取出文件前幾行 head -n20 代表取出幾行
tail file ----取出文件后幾行 -n20 取出20行 -f 持續(xù)輸出
find命令
Linux find命令用來在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設(shè)置任何參數(shù),則find命令將在當(dāng)前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進(jìn)行顯示。
find / -name login.jsp 列出所有l(wèi)ogin.jsp的全目錄(-iname會忽略大小寫)
find . -name login.jsp 列出當(dāng)前目錄及子目錄下login.jsp的文件全目錄
對比一下結(jié)果,如下差異
find . -type f 列出當(dāng)前目錄及其子目錄中所有一般文件
find . -ctime -2 列出當(dāng)前目錄及其子目錄中所有2天內(nèi)更新過的文件(如果2天以前,則改為 +2)
find . -mtime +2 列出當(dāng)前目錄及其子目錄中所有更改時間在 2天之前的文件
反向刪除文件
刪除文件的命令很簡單,rm -rf file就可以搞定,那么反刪除怎么搞呢?
- 方法一
shopt -s extglob ---打開extglob模式
rm -rf !(file1|file2)---多個文件,刪除除了file1和file2之外的所有文件
rm -rf !(file1)
- 方法二
ls | grep -v 'file' ----列出文件名包含 file 的文件
rm `ls | grep -v 'file'` ----- 注意 ` 為 1左邊的符號
- 方法三
ls |grep -v ‘file' |xargs rm -rf
wc命令
Linux系統(tǒng)中的wc(Word Count)命令的功能為統(tǒng)計指定文件中的字節(jié)數(shù)、字?jǐn)?shù)、行數(shù),并將統(tǒng)計結(jié)果顯示輸出。
個人在工作中這個命令用的比較少,上次見一個朋友提起過,順便學(xué)習(xí)一下。
wc file ----查看行數(shù) 單詞數(shù) 字?jǐn)?shù)
wc -c file---統(tǒng)計字節(jié)數(shù) -l 統(tǒng)計行數(shù)
cat file |wc -l ---只統(tǒng)計行數(shù),不打印文件名
ls -l |wc -l ----統(tǒng)計當(dāng)前目錄下的文件數(shù)
du命令
這個命令我平時也用的相對而言不是很多,一般磁盤空間不足的時候才會用到。
du命令用于顯示目錄或文件的大小。
du會顯示指定的目錄或文件所占用的磁盤空間。
磁盤空間了滿了,我一般的檢查方案如下:
1.du -sh /*
先查看一下 哪個目錄下的東西最多,若user文件夾較大
2.du -sh /usr/*
進(jìn)入user文件夾查看
3.du -sh /usr/local/*
一層一層查看
一般是日志較多,刪掉日志之后:
lsof |grep delete
重啟數(shù)值較大的tomcat
性能相關(guān)的一些命令
個人對這一塊相關(guān)的命令,理解的比較淺,所以不班門弄斧,就隨便列幾個
- uptime
uptime ---主要是一些當(dāng)前時間、運行時間、用戶數(shù)
load average是隊列平均長度,在隊列中等待執(zhí)行的進(jìn)程數(shù)量
該值越低,說明進(jìn)程更有可能立即被CPU處理,相反越高,說明進(jìn)程更有可能阻塞
-
top
主要用來統(tǒng)計CPU實際使用情況
第一行的信息和uptime出來的一樣
第二行是進(jìn)程信息,總進(jìn)程數(shù)、正在運行的進(jìn)程數(shù)、睡眠的進(jìn)程數(shù)、停止的進(jìn)程數(shù)、僵尸進(jìn)程(我也不太懂這個什么意思)
第三行CPU信息
第四行內(nèi)存信息
第五行交換區(qū)信息
下面就是一些進(jìn)程的信息,有進(jìn)程號、父進(jìn)程號、用戶名等信息
top.png -
free
主要顯示內(nèi)存信息,和top出來的差不多
free.png
結(jié)束
linux命令實在太多太多,死記硬背沒有意義,一般的mv cp mkdir...等命令,這邊沒有介紹,還有很多沒有涉及的高級的命令,后續(xù)在工作中用到了在進(jìn)一步學(xué)習(xí)