日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

【Notes8】Linux开发环境,Linux命令,vi命令,/正则,Hash,iNode,文件查找与读取,Linux开机自启动

發(fā)布時(shí)間:2024/4/24 linux 109 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Notes8】Linux开发环境,Linux命令,vi命令,/正则,Hash,iNode,文件查找与读取,Linux开机自启动 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 1.VMware和CentOS安裝:兩個網(wǎng)絡(luò)適配器是虛擬機(jī)的,Linux抄襲unix,Mac os是unix的皮膚
  • 2.CRT安裝:netstat -nal | grep 22,改注冊信息要打開CRT客戶端在最上端Help欄中Enter License Data
  • 3.CRT配置:SSH2。Hostname:192....。Port:22。Username:root
  • 4.Linux命令:linux組成:內(nèi)核(就是操作系統(tǒng),和硬件打交道,驅(qū)動)。shell(和用戶打交道,用戶指令翻譯成機(jī)器碼給內(nèi)核)。文件系統(tǒng)(文件組織方式,linux沒有盤符,有目錄/文件/鏈接link)。應(yīng)用程序
    • 4.1 關(guān)機(jī)/重啟/注銷
    • 4.2 系統(tǒng)信息和性能
    • 4.3 磁盤和分區(qū)
    • 4.4 用戶和用戶組
    • 4.5 網(wǎng)絡(luò)和進(jìn)程管理
    • 4.6 系統(tǒng)服務(wù)
    • 4.7 文件和目錄
    • 4.8 文件查看和處理
    • 4.9 打包和解壓
    • 4.10 RPM包管理
    • 4.11 YUM包管理
    • 4.12 DPKG包管理
    • 4.13 APT軟件工具
    • 4.14 用戶管理及權(quán)限
    • 4.15 系統(tǒng)與硬件相關(guān)
    • 4.16 sed:管道過濾(替換,刪除)
    • 4.17 awk:-F指定分隔符,-V設(shè)置變量,NF列數(shù),$NF是一行數(shù)據(jù)最后一列的值,多用于對字段(像數(shù)據(jù)庫中的字段)
    • 4.18 grep:元字符即\d,\D這些是Perl正則-P,擴(kuò)展正則-E
  • 5.vi命令:三種(命令行[Esc],編輯[i],底行[:wq])模式切換
  • 6.正則:\d,?* +這些是[a-z]{m,n}這些的簡寫
    • 6.1 組group:如上只想獲取@前面的用戶名,上面中括號,大括號都出現(xiàn)了,就差小括號
  • 7.Hash:傳統(tǒng)/一致性
  • 8.iNode:磁盤中塊和扇區(qū)
  • 9.文件查找與讀取命令:C語言中‘\0’(對應(yīng)的ASCLL碼值為0)表示的空字符
    • 9.1 find:找文件
    • 9.2 grep:找文件中內(nèi)容
    • 9.3 cat/more:查看文件全部內(nèi)容
    • 9.4 head/tail:查看文件部分內(nèi)容
  • 10.Linux下開機(jī)自動重啟腳本:/etc/rc.local,Crontab,Systemd


1.VMware和CentOS安裝:兩個網(wǎng)絡(luò)適配器是虛擬機(jī)的,Linux抄襲unix,Mac os是unix的皮膚

VMware15和CentOS6.9:鏈接:https://pan.baidu.com/s/1HV6WqUTAwlOSjWkLXVrCRw ,提取碼:1x8e 。VMware15【CG392-4PX5J-H816Z-HYZNG-PQRG2】直接下一步安裝。右擊圖標(biāo)屬性-兼容性-更改所有用戶的設(shè)置-勾上以管理員身份運(yùn)行此程序。僅主機(jī)模式(Host-only)網(wǎng)卡默認(rèn)192.168.56…,NAT網(wǎng)卡默認(rèn)10.0.2…。

1.點(diǎn)擊創(chuàng)建新的虛擬機(jī):自定義(高級)-稍后安裝操作系統(tǒng)-linux-版本centos6 64位-D:\vm.\cent0s6-使用僅主機(jī)模式網(wǎng)絡(luò)-將虛擬磁盤存儲為單個文件(動態(tài)分配20G硬盤)。

2.編輯虛擬機(jī)設(shè)置:選中網(wǎng)絡(luò)適配器添加-CD/DVD使用CentOS6的iso文件(開啟此虛擬機(jī)出問題:控制面板-卸載程序-Microsoft Visual C++的兩個x64和x86文件右擊卸載,不點(diǎn)卸載,點(diǎn)修復(fù)再重啟計(jì)算機(jī))。

3.開啟虛擬機(jī)安裝操系:默認(rèn)第一個install,方向鍵選擇紅色的Skip(跳過)回車。兩個網(wǎng)卡注意要配置網(wǎng)絡(luò)自動連接。使用所有空間-將修改寫入磁盤-Basic Server。鼠標(biāo)退出虛擬機(jī)用ctrl+alt,將一個小窗口移至虛擬機(jī)前就可以用QQ截圖。

NAT網(wǎng)絡(luò)模式:多臺虛擬機(jī)和宿主組成一個小局域網(wǎng),之間都可互相通信,虛擬機(jī)也可訪問外網(wǎng),如搭建hadoop 集群,分布式服務(wù)。橋接網(wǎng)絡(luò)模式:只需要一臺虛擬機(jī)可以和宿主互通,并可以訪問外網(wǎng)。如果不需要鎖定靜態(tài)IP(如hadoop不鎖定IP很麻煩),那跳過下面步驟。如下同理本地回環(huán)配置文件 /etc/sysconfig/network-scriptis/ifcfg-lo。ifdown/ifup關(guān)閉/啟動etho網(wǎng)卡。


2.CRT安裝:netstat -nal | grep 22,改注冊信息要打開CRT客戶端在最上端Help欄中Enter License Data

ssh客戶端軟件SecureCRT8.5:鏈接:https://pan.baidu.com/s/1Y74YVz2ysQ3rFjGjnthb1Q ,提取碼:l8gb 。解壓后如下所示:

右擊以管理員身份運(yùn)行上圖的scrt…exe文件,安裝完后桌面出現(xiàn)圖標(biāo)先不要點(diǎn)擊運(yùn)行,將上圖注冊機(jī)文件夾里的keygen.exe復(fù)制到下圖默認(rèn)安裝路徑文件夾中,并右擊以管理員打開keygen.exe出現(xiàn)如下圖黃色窗口。

在如下License中不用去除中括號,寫入SecureCRT.exe中去除,Patch連到SecureCRT.exe和LicenseHelper.exe。

第一次打開下圖進(jìn)行填寫注冊信息按照上圖黃色窗口對應(yīng)寫入,上面patch到就是下面這個.exe文件。


免安裝版直接發(fā)送到桌面快捷方式:鏈接:https://pan.baidu.com/s/1QJ01ZByyQheFllLHy6ugAw 提取碼:awa2 。如下圖紅框就是很多的session。

3.CRT配置:SSH2。Hostname:192…。Port:22。Username:root


配置會話的屬性,在會話上點(diǎn)擊屬標(biāo)右鍵,選擇Properties的Terminal。每30秒向服務(wù)器發(fā)送一次心跳。

分清Hostname,Username,Name。

修改Centos的字符集,增加對中文的支持: 登錄服務(wù)器,輸入 su – root 回車后再輸入密碼,切換到root用戶(超級用戶,有的遠(yuǎn)程服務(wù)器沒權(quán)限)。修改字符集:echo LANG="zh_CN.gbk" > /etc/sysconfig/i18n。export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";。

修改時(shí)區(qū)為亞州上海時(shí)間,在root下執(zhí)行并輸入y:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime。date (不是data)查看系統(tǒng)時(shí)間:date -s修改時(shí)間,date -s 2019/07/31,date -s 10:24:00 。date -s ‘2020-01-01 11:11:11’。

4.Linux命令:linux組成:內(nèi)核(就是操作系統(tǒng),和硬件打交道,驅(qū)動)。shell(和用戶打交道,用戶指令翻譯成機(jī)器碼給內(nèi)核)。文件系統(tǒng)(文件組織方式,linux沒有盤符,有目錄/文件/鏈接link)。應(yīng)用程序

win下任務(wù)管理器中explorer.exe進(jìn)程(是Windows程序管理器或文件資源管理器,它用于管理Windows圖形殼,包括桌面和文件管理。刪除該程序會導(dǎo)致Windows圖形界面無法使用)kill掉就不用重啟安裝軟件時(shí),cmd重新explorer.exe執(zhí)行。

/usr/bin里是系統(tǒng)預(yù)裝的可執(zhí)行程序,會隨著系統(tǒng)升級而改變。/usr/local/bin是給用戶放置自己的可執(zhí)行程序的地方,推薦放在這里,不會被系統(tǒng)升級而覆蓋同名文件。/etc存放的是管理文件用的相關(guān)配置文件,比較重要的 /etc/rc,用戶信息文件/etc/passwd:

/usr(Unix System Resource,不是User)放的是應(yīng)用程序和文件,如果在安裝軟件的時(shí)候,選擇默認(rèn)安裝的位置,通常就會默認(rèn)在這個位置:

/var用來存放系統(tǒng)運(yùn)行的日志文件:

/dev包含所有的設(shè)備文件。/proc是虛擬目錄,主要存放的是內(nèi)存的映射,通過這個目錄和內(nèi)核的數(shù)據(jù)結(jié)構(gòu)打交道比如修改內(nèi)核參數(shù),獲取進(jìn)程的相關(guān)信息:

/boot存放了啟動 Linux 的核心文件,包含鏡像文件和鏈接文件,破壞后系統(tǒng)基本上就不能啟動。/mnt是移動設(shè)備文件系統(tǒng)的掛點(diǎn)。

/bin/sbin當(dāng)你裝相關(guān)的軟件或者安裝包后,很多時(shí)候都會鏈接在這個目錄下面,另外這里也存放了平時(shí)我們用的各種shell命令如 cp,ls,dd等。對于sbin,這里的s是super 的意思,意味著需要超級用戶才能執(zhí)行的命令。常見磁盤分區(qū)fdisk,創(chuàng)建文件系統(tǒng)的mkfs就在這里。

/lib開發(fā)過程中,共享庫文件等很多放在這里,這個目錄會包含引導(dǎo)進(jìn)程所需要的靜態(tài)庫文件,對于用戶和系統(tǒng)來說“必需”的庫(二進(jìn)制文件)。/usr/lib一般存放的只是對用戶和系統(tǒng)來說“不是必需的”庫(二進(jìn)制文件)。

/lost+found保存丟失的文件。什么意思,如果我們不恰當(dāng)?shù)年P(guān)機(jī)操作,可能導(dǎo)致一些文件丟失,這些丟失的臨時(shí)文件可能就會存放在這里。當(dāng)重新啟動的時(shí)候,引導(dǎo)程序就會運(yùn)行 fsck程序并發(fā)現(xiàn)這個文件。

4.1 關(guān)機(jī)/重啟/注銷

4.2 系統(tǒng)信息和性能


4.3 磁盤和分區(qū)

/home# du -sh * > ./a.log & ,lsblk,看掛載那一列。

4.4 用戶和用戶組

4.5 網(wǎng)絡(luò)和進(jìn)程管理


4.6 系統(tǒng)服務(wù)



4.7 文件和目錄


4.8 文件查看和處理


4.9 打包和解壓

tar只是打包,并不壓縮或解壓。 -c: 建立壓縮檔案 -x:解壓 -t:查看內(nèi)容 -j, --bzip2 -z, --gzip, --gunzip --ungzip -v, --verbose 詳細(xì)列出處理過的文件 -f, --file ARCHIVE 使用存檔文件或設(shè)備存檔(指定存檔文件),切記,這個參數(shù)是最后一個參數(shù),后面只能接檔案名。tar命令必須和-f命令連用, 在選項(xiàng)f之后的文件檔名是自己取的,習(xí)慣用.tar 來作為辨識。 如果加z選項(xiàng),則以.tar.gz或.tgz來代表gzip壓縮過的tar包。

4.10 RPM包管理

4.11 YUM包管理

4.12 DPKG包管理

4.13 APT軟件工具

4.14 用戶管理及權(quán)限


如下文件類型p是指管道文件。

4.15 系統(tǒng)與硬件相關(guān)


lspci 命令可以查看所有的 PCI 設(shè)備,比如主板,聲卡等。查看CPU個數(shù),可通過下面的命令:

查看系統(tǒng)所有的邏輯CPU個數(shù):



查看幾個文件的內(nèi)容差異:diff -c file1 file2。將a.txt每5行分割為一個文件:split -5 a.txt。free -h看內(nèi)存中available容量是否足夠。df -lh查看磁盤空間是否足夠。nohup java -jar a.jar & ( jobs命令查看這個后臺任務(wù)的編號 )。which java。netstat -ntlp查看運(yùn)行程序的端口。kill -9 %1(這個1就是jobs命令的1編號)。

4.16 sed:管道過濾(替換,刪除)

如下將逗號替換為空格。s表示替換,g表示全局,即行中所有匹配項(xiàng)都被替換。sed -i ‘s/sys_led/sys_url/g’ /home/sysfs1/s3ip_sysfs_frame/sysurl_sysfs.c。

^匹配行首,$匹配行尾,如下d刪除空行或只包含空格的行(因?yàn)樾惺仔形仓虚g為空)。

sed常用于管道過濾,如下把x替換成y。

如下-r打開擴(kuò)展正則,將逗號換成TAB。

4.17 awk:-F指定分隔符,-V設(shè)置變量,NF列數(shù),$NF是一行數(shù)據(jù)最后一列的值,多用于對字段(像數(shù)據(jù)庫中的字段)

如下按逗號分隔并打印分割后的第三列和第四列。

如下BEGIN指定了處理文本之前需要執(zhí)行的操作。END指定了處理完所有行之后所需要執(zhí)行的操作。

如下按逗號分隔并打印最后一列內(nèi)容。


對比上面,如下一行一行讀取并打印,列數(shù)>0打印。



如下-c統(tǒng)計(jì)個數(shù)。

2是個數(shù),不是序號。

4.18 grep:元字符即\d,\D這些是Perl正則-P,擴(kuò)展正則-E


如下.中的\是轉(zhuǎn)義符,.168這樣重復(fù)3次(注意168前面有.)。

5.vi命令:三種(命令行[Esc],編輯[i],底行[:wq])模式切換

1.插入:前后上下,以下命令都在命令行模式下。

2.上下左右:j下,k上,h左,l右。
3.翻頁:

4.跳光標(biāo):


5.刪字符和行:


6.復(fù)制粘貼:


7.替換:


8.撤,接:


9.行,找:



10.重復(fù),大小寫:


11.存盤:


12.列操作:

6.正則:\d,?* +這些是[a-z]{m,n}這些的簡寫

^:整段字符串開頭。$:整段字符串結(jié)束。^[]$:中括號內(nèi)部可匹配一個字符。

如下自己輸入1,1的藍(lán)色陰影則匹配。



\d:相等于[0- 9],中括號里是什么或什么。
\D:相等于[^0- 9],除了0到9外的任意字符。如下匹配 數(shù)字\d 或 數(shù)字外任意字符\D,也就是匹配任意字符。

\w:字母,數(shù)字或下劃線,常用于互聯(lián)網(wǎng)用戶名的命名上。

如下兩個等價(jià)。

如下兩個等價(jià)。

如下兩個等價(jià)。

如下是郵箱的匹配規(guī)則。

6.1 組group:如上只想獲取@前面的用戶名,上面中括號,大括號都出現(xiàn)了,就差小括號


如下1就是組1。

如下first就是組名,右邊是js語法,groups顯示underfined因?yàn)闆]命名。

如上只是匹配到組,把組里內(nèi)容拿出來,組還有一個用法是可以在當(dāng)前正則中進(jìn)行引用。

如下為什么不從下標(biāo)0開始?

如下同上。

1.如下是組的特殊結(jié)構(gòu):把組寫后面。

2.如下全是把組寫前面。如下要找foo,但foo要在bar后面。

2.1 如下對AABC類型進(jìn)行限定。

如上沒有對后兩個進(jìn)行限定,需要后面兩個不能和前面兩個一樣且后面兩個不能互相一樣。

7.Hash:傳統(tǒng)/一致性

Hash(散列、雜湊)算法(應(yīng)用于哈希表和摘要密碼學(xué)),是把任意長度的輸入通過特定的算法變換成固定長度的輸出,輸出的值就是hash值。這個特定的算法就叫hash算法,hash算法并不是一個固定不變的算法。只要是能達(dá)到這個目的的算法都可以說hash算法。例如MD5,SHA,String.hashcode()都是hash算法。

不同的輸入可能會得出相同的hash值,那么這種現(xiàn)象稱為hash碰撞,無論是采用那種hash算法,hash碰撞都是不可避免的,我們只能通過改進(jìn)hash算法,把出現(xiàn)碰撞的概率降低。hash英語中的意思是剁碎的食物,反應(yīng)在計(jì)算機(jī)領(lǐng)域大概就是把任意數(shù)據(jù)切割打碎,輸出固定長度的數(shù)據(jù)。

如下三臺緩存服務(wù)器S0,S1,S2,有三萬張圖片進(jìn)行緩存,最好能均勻緩存到服務(wù)器上分擔(dān)緩存壓力。簡單做法對緩存下來的鍵key哈希計(jì)算得到整數(shù),再用緩存服務(wù)器數(shù)量對這個值取模,用取模產(chǎn)生的余數(shù)來決定數(shù)據(jù)應(yīng)該緩存在哪臺服務(wù)器上。對同一個圖片名稱即key編號做相同哈希計(jì)算時(shí)得到hash值不變的,所以當(dāng)需要訪問圖片時(shí)再次對圖片名稱進(jìn)行hash計(jì)算和取模計(jì)算就能知道圖片存放在哪臺服務(wù)器上。

增加服務(wù)器時(shí),圖片之前存在S0上,S2服務(wù)器讀不到,大量緩存失效導(dǎo)致緩存雪崩。所以要用到一致性哈希。

如下的圓有2的32次方個點(diǎn)組成,稱為hash環(huán)。A,B,C三臺緩存服務(wù)器的編號做hash計(jì)算即用2的32次方取模,得出的結(jié)果一定在0到2的32次方之間的整數(shù)對應(yīng)hash環(huán)上一點(diǎn)。a.jpg找到圖片的key,相同方法映射到hash環(huán)上。緩存服務(wù)器和圖片都映射到了hash環(huán)上了,現(xiàn)在要確定圖片應(yīng)該被緩存在哪臺服務(wù)器上?沿順時(shí)針方向。。。加入新服務(wù)器D時(shí),c.jpg會緩存到D上,不會到A上,但其他不變。

一致性hash算法有個問題就是hash偏斜即A,B,C三臺服務(wù)器太靠一起,導(dǎo)致大量圖會緩存到一臺服務(wù)器上。解決:還是三臺物理服務(wù)器,多加點(diǎn)虛擬節(jié)點(diǎn)進(jìn)行分布。

8.iNode:磁盤中塊和扇區(qū)

linux文件系統(tǒng)中iNode用來存儲文件原數(shù)據(jù)信息,不存儲文件內(nèi)容,原數(shù)據(jù)信息包括:
類型:這個文件是個目錄還是普通文件。
擁有者:這個文件是owner還是group owner。
時(shí)間:ctime:上次inode變動時(shí)間。atime:上次訪問時(shí)間。mtime:上次文件內(nèi)容發(fā)生變動時(shí)間。
連接數(shù):有多少文件名同時(shí)指向inode。一個文件名只對應(yīng)一個inode,但一個inode可能被多個文件名同時(shí)指向。
文件內(nèi)容所在的位置:文件真正內(nèi)容所在磁盤塊的標(biāo)號。

1.文件系統(tǒng)fs在格式化好后,inode以什么樣格式存儲的呢?整個inode以數(shù)組形式存儲,每個元素是一個inode,每個inode大小根據(jù)當(dāng)前文件系統(tǒng)以及整個磁盤大小,inode會有一個固定128或256字節(jié)大小。

2.除了inode數(shù)組,fs初始化好后還會生成一個Map映射關(guān)系表(存儲filename和inode index)?,F(xiàn)在要讀取/ect/1.txt,整個過程怎么樣?先根據(jù)文件名到Map中找到inode index,找到下標(biāo)為假如是3的inode后拿出來如下圖左邊整個框。當(dāng)前在讀取/ect/1.txt,所以查看是否有讀權(quán)限,如果有讀權(quán)限就繼續(xù)往下,找到文件內(nèi)容所在位置(磁盤上塊的下標(biāo))。

文件內(nèi)容在磁盤中存儲區(qū)域如下:以塊進(jìn)行分隔,每個塊大小也是根據(jù)當(dāng)前fs和整個磁盤大小決定,并不是一個特定大小【扇區(qū)在磁盤生產(chǎn)時(shí)有多少個扇區(qū),每個大小是定的,早期扇區(qū)512byte,現(xiàn)在4k】。文件系統(tǒng)fs在文件訪問過程中不可能直接使用扇區(qū),扇區(qū)是硬件的概念,所以抽象出一個概念:fs角度去看最小文件存儲單元就是塊,一個塊可以有一個或多個扇區(qū)組成(2的冪次方即1,2,4…個扇區(qū))。

一個塊采用多少扇區(qū)也是有權(quán)衡的,比如一個塊有好幾兆,存一個1k文件也要占一個文件塊,造成磁盤空間浪費(fèi)。塊選擇過小的話也不好,如果一個塊大小1bit,導(dǎo)致一個文件假如是1kb,它所在的塊由1千個塊組成,在inode中存儲文件內(nèi)容所在位置這個字段時(shí)候造成存1千個塊信息(1千個塊下標(biāo)),一個inode(存1千個塊下標(biāo))不可能128/256字節(jié)大小了,一個inode會很大,進(jìn)而導(dǎo)致inode數(shù)組會很大,整個inode區(qū)大,這樣導(dǎo)致磁盤損耗大量空間存儲inode信息,較少的空間存儲真正文件內(nèi)容。

即使進(jìn)行權(quán)衡,目前存在問題,如經(jīng)常聽到inode用完了即inode數(shù)組初始化大小用完了,聲明完數(shù)組大小后不能增加或減少了。inode數(shù)組用完了即使磁盤還有額外空間也不能存儲文件了,常見特別零碎文件數(shù)量又特別多占據(jù)磁盤大量inode導(dǎo)致整個inode用完。如早期docker采用overlay文件存儲格式導(dǎo)致鏡像的碎文件很多,導(dǎo)致inode用盡這樣問題,后面采用overlay2文件存儲格式一定程度上解決了這問題。

查看linux系統(tǒng)中inode數(shù)組以及每個文件所對應(yīng)inode標(biāo)號:df -i(inode),查看當(dāng)前文件夾下文件所在的inode標(biāo)號是什么ls -il。訪問1.txt先查文件名和inode標(biāo)號映射即Map,1.txt能找到270306這個標(biāo)號。根據(jù)這個標(biāo)號到1183200這個數(shù)組中拿取第270306個標(biāo)號的inode。根據(jù)這個inode信息查看權(quán)限,最終找到1.txt在磁盤中存儲位置,最后把這些磁盤塊進(jìn)行讀取,最終讀取到1.txt這個文件。


如果是一塊移動硬盤,在其他設(shè)備上創(chuàng)建了文件 把這個移動硬盤拿到linux上面,有沒有inode呢?
1.os可以支持多種fs。2.inode是在ext2/3/4等linux支持的文件系統(tǒng)(fs)有的。所以移動硬盤看是什么文件系統(tǒng)了,如果是ntfs或者exfat、fat32等等就是另一種訪問形式了,inode其實(shí)是文件系統(tǒng)里的概念,而不是linux的概念。

9.文件查找與讀取命令:C語言中‘\0’(對應(yīng)的ASCLL碼值為0)表示的空字符

9.1 find:找文件

過濾一下看文件大小:-print0將如上三行打印為1行并用null即‘\0’隔開,再用xargs -0即用‘\0’再分開(原因是默認(rèn)管道到下一個里面空格會出錯)。

如上/是整個系統(tǒng)搜索慢,如下是當(dāng)前路徑搜索快。

日志文件沒清空非常大,要找到刪除,如下找系統(tǒng)中大文件,超過10M。

如下查找文件夾,文件夾有相應(yīng)名字或大小屬性。

如下基于修改時(shí)間,time是天。-1:今天一天之內(nèi)。1:1天前這一天。+1:1天前。



如下指定最大文件深度。

如下是find指令總結(jié)。

9.2 grep:找文件中內(nèi)容

echo “aa” >> 1.txt,追加內(nèi)容。cat -n 1.txt(行號:number)。grep “a” 1.txt。

如下* 可換成 * .txt。

-r:遞歸子路徑,-n:顯示行號。-i:忽略大小寫。

如下用于java日志文件非常大,要grep出某個異常如ioexception,且需要打印出exception下面幾行看什么出了錯。

9.3 cat/more:查看文件全部內(nèi)容

cat的文件非常大,非常占用cpu和內(nèi)存,這時(shí)候可以每次讀取一小部分。

如下通過空格往后翻頁。

如下指定從第四行開始讀。

如下查看前后10行。

9.4 head/tail:查看文件部分內(nèi)容


如下打印文件最后兩行,tail -f 阻塞監(jiān)控。

df -h查看磁盤使用,占用率太高就需要使用前面find,grep指令并進(jìn)行刪除。

如上找出占空間的文件夾再去里面找。


題目:輸出當(dāng)前路徑及當(dāng)前路徑子路徑下所有.txt文件,要求大小超過1M,并且按照從大到小順序進(jìn)行排序輸出前10個?
先通過find . -name '*.txt' -size +1M -type f 查看是否有大于1M的txt文件,沒有的話就不用繼續(xù)了。
再通過find . -name '*.txt' -size +1M -type f -print0|xargs -0 du -m|sort -nr|head -10。

10.Linux下開機(jī)自動重啟腳本:/etc/rc.local,Crontab,Systemd

$ crontab -e:@reboot sleep 300 && /home/wwwjobs/clean-static-cache.sh(在啟動 5 分鐘后運(yùn)行指定腳本)

update-rc.d管理: mv new_service.sh /etc/init.d/,cd /etc/init.d/,sudo update-rc.d new_service.sh defaults 90(90表明一個優(yōu)先級,越高表示執(zhí)行的越晚)。在/etc/init.d目錄下的可執(zhí)行程序的優(yōu)先級會高于/etc/systemd/system/下的.service文件(如果同時(shí)存在)。serivice xxxx start|stop|restart相當(dāng)于是對/etc/init.d下的xxxx的封裝,相當(dāng)于是一個管理命令,實(shí)際執(zhí)行的是/etc/init.d下的可執(zhí)行程序。如果/etc/init.d下沒有該服務(wù)的可執(zhí)行程序,則使用.service文件。

總結(jié)

以上是生活随笔為你收集整理的【Notes8】Linux开发环境,Linux命令,vi命令,/正则,Hash,iNode,文件查找与读取,Linux开机自启动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。