干貨筆記 | 面試專用Linux知識(shí)點(diǎn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
絕對(duì)路徑和相對(duì)路徑
絕對(duì)路徑
以正斜杠開始
完整的文件的位置路徑
可用于任何想置頂一個(gè)文件名的時(shí)候
相對(duì)路徑
不以斜線開始
置頂相對(duì)于當(dāng)前工作目錄或某目錄的位置
可以作為一個(gè)簡(jiǎn)短的形式指定一個(gè)文件名
-基名:basename,就是文件本身的名字
-目錄名:dirname ,就是它所在的文件夾名
更改目錄
cd 改變目錄
使用絕對(duì)或相對(duì)路徑
cd/home/wang
cd home/wang
切換至父目錄:cd
切換至以前的工作目錄:cd-
選項(xiàng):-P
相關(guān)環(huán)境變量:
PWD:當(dāng)前目錄路徑
OLDPWD:上一次目錄路徑
文件通配符
*匹配零個(gè)或多個(gè)字符
?匹配任何單個(gè)字符
~當(dāng)前用戶家目錄
~mage用戶mage家目錄
~+ 當(dāng)前工作目錄
~- 前一個(gè)工作目錄
[0-9]匹配數(shù)字范圍
[a-z]:字母
[wang]匹配列表中的任何一個(gè)字符
[^wang]匹配列表中的所有字符以外的字符
創(chuàng)建空文件和刷新時(shí)間
touch命令
格式:touch[OPTION]…FILE…
-a 僅改變 atime和ctime
-m 僅改變 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的時(shí)間戳
-c 如果文件不存在,則不予創(chuàng)建
復(fù)制文件和目錄cp
cp常用選項(xiàng)
-i:覆蓋前提示, -n:不覆蓋,注意兩者順序
-r,-R:遞歸復(fù)制目錄及內(nèi)部的所有內(nèi)容
-a:歸檔,相當(dāng)于-dR –preserv=all
-d:--no-dereference—preserv=links不復(fù)制原文件,只復(fù)制鏈接名
-preserv[=ATTR_LIST]
mode:權(quán)限
ownership:屬主屬組
cp選項(xiàng)
-p:等同—preserv=mode,ownership,timestamp
-v:--verbose
-f:--force
-u:--update只復(fù)制源比目標(biāo)更新文件或者目標(biāo)不存在的文件
-b:目標(biāo)存在,覆蓋前先備份
--backup=numbered目標(biāo)存在,覆蓋前先備份加數(shù)字后綴
移動(dòng)和重命名文件
mv[OPTION]…[-T]SOURCE DEST
mv[OPTION]…SOURCE…DIRECTORY
mv[option]…-t DIRECTORY SOURCE…
常用選項(xiàng):
-i:交互式
-f:強(qiáng)制
-b:目標(biāo)存在,覆蓋前先備份
刪除
rm[OPTION]…FILI…
(工作中建議大家不要用rm命令)
常用選項(xiàng):
-i 交互式
-f 強(qiáng)制刪除
-r 遞歸
--no-preserve-root 刪除/
示例:
rm -rf /*
目錄操作
tree顯示目錄樹
-d:只顯示目錄
-L level:指定顯示的層級(jí)數(shù)目
-p pattern:只顯示由指定pattern匹配到的路徑
mkdir創(chuàng)建目錄
-p:存在于不報(bào)錯(cuò),且可自動(dòng)創(chuàng)建所需的各目錄
-v:顯示詳細(xì)信息
-m MODE:創(chuàng)建目錄時(shí)直接指定權(quán)限
rmdir 刪除空目錄
-p:遞歸刪除父空目錄
-v:顯示詳細(xì)信息
索引節(jié)點(diǎn)
**inode(index node)表中包含文件系統(tǒng)所有文件列表
inode表結(jié)構(gòu)**
一個(gè)節(jié)點(diǎn)(索引節(jié)點(diǎn))是在一個(gè)表項(xiàng),包含有關(guān)文件的信息(元數(shù)據(jù)),包括:
文件類型,權(quán)限,UID,GID
鏈接數(shù)(指向這個(gè)文件名路徑名稱個(gè)數(shù))
該文件的大小和不同的時(shí)間戳
指向磁盤上文件的數(shù)據(jù)塊指針
有關(guān)文件的其他數(shù)據(jù)
硬鏈接和軟鏈接(符號(hào)鏈接)
硬鏈接
-創(chuàng)建硬鏈接會(huì)增加額外的記錄項(xiàng)以引用文件
-對(duì)應(yīng)于同一文件系統(tǒng)上一個(gè)物理文件
-每個(gè)目錄引用相同的inode號(hào)
-創(chuàng)建時(shí)鏈接數(shù)遞增
-刪除文件時(shí):
rm命令遞減計(jì)數(shù)的鏈接
文件要存在,至少有一個(gè)鏈接數(shù)
當(dāng)鏈接數(shù)為零時(shí),該文件被刪除
-不能跨越驅(qū)動(dòng)器或分區(qū)
-語法:
In filename [linkname]
符號(hào)鏈接(軟鏈接)
-一個(gè)符號(hào)鏈接指向另一個(gè)文件
-IS-l的顯示鏈接的名稱和引用的文件
-一個(gè)符號(hào)鏈接的內(nèi)容是它引用文件的名稱
-可以對(duì)目標(biāo)進(jìn)行
-可以跨分區(qū)
-指向的是另一個(gè)文件的路徑;其大小為指向的路徑字符串的長(zhǎng)度,不增加或減少目標(biāo)文件inode的引用計(jì)數(shù);
-語法:
In-s filename [linkname]
硬鏈接:對(duì)一個(gè)文件起多個(gè)名字
軟鏈接:原始文件一般路徑用相對(duì)路徑,相對(duì)路徑一定相對(duì)于軟鏈接文件的路徑
硬鏈接和軟鏈接的區(qū)別:
(1) 本質(zhì):硬鏈接是一個(gè)文件多個(gè)名字,而軟鏈接一個(gè)文件對(duì)應(yīng)多個(gè)快捷方式。
(2) 跨分區(qū):硬鏈接不可以跨分區(qū),軟鏈接可以跨分區(qū)。
(3) 鏈接數(shù):硬鏈接會(huì)增加鏈接數(shù),軟鏈接不增加。
(4) 節(jié)點(diǎn)編號(hào):硬鏈接相同,軟鏈接不相同。
(5) 刪掉原始文件是否會(huì)影響到鏈接文件?硬鏈接各個(gè)文件時(shí)平級(jí)的關(guān)系,該訪問還能訪問,而軟鏈接是一種依賴關(guān)系,刪除原始文件后鏈接會(huì)失效。
(6) 目錄:硬鏈接不支持目錄,軟鏈接支持目錄。
確定文件內(nèi)容
-文件內(nèi)容可以包含多種類型的數(shù)據(jù)
-檢查文件的類型,然后確定適當(dāng)?shù)拇蜷_命令或應(yīng)用程序使用
-file[options]…
-常用選項(xiàng):
-b列出文件辨識(shí)結(jié)果時(shí),不顯示文件名稱
-f filelist列出文件filelist中文件名的文件類型
-F使用指定分隔符號(hào)替換輸出文件后默認(rèn)的“:”分隔符
-L查看對(duì)應(yīng)軟鏈接對(duì)應(yīng)文件的文件類型
--help顯示命令在線幫助
標(biāo)準(zhǔn)輸入和輸出
程序:指令+數(shù)據(jù)
讀入數(shù)據(jù):input
輸出數(shù)據(jù):output
打開的文件都有一個(gè)fd:file descriptor(文件描述符)
Linux給程序提供三種I/O設(shè)備
-標(biāo)準(zhǔn)輸入(STDIN)-0 默認(rèn)接受來自鍵盤的輸入
-標(biāo)準(zhǔn)輸出(STDOUT)-1 默認(rèn)輸出到終端窗口
-標(biāo)準(zhǔn)錯(cuò)誤(STDERR)-2 默認(rèn)輸出到終端窗口
I/O重定向:改變默認(rèn)位置
把輸出和錯(cuò)誤重新定向到文件
STDOUT和STDERR可以被重新定向到文件
命令 操作符號(hào) 文件名
支持的操作符號(hào)包括:>把STDOUT重新定向到文件
2>把STDERR重新定向到文件
&>把所有輸出重定到文件
>文件內(nèi)容會(huì)被覆蓋set-C 禁止將內(nèi)容覆蓋已有文件,但可追加
>file強(qiáng)制覆蓋
Set+C允許覆蓋
>>原有內(nèi)容基礎(chǔ)上,追加內(nèi)容
2> 覆蓋重定向錯(cuò)誤輸出數(shù)據(jù)流
2>>追加重定向錯(cuò)誤輸出數(shù)據(jù)流
標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出各自定向至不同位置
COMMAND>/path/to/file.out2>/path/to/error.out
合并標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出為同一個(gè)數(shù)據(jù)流進(jìn)行重定向
-&>覆蓋重定向
-&>>追加重定向
-COMMAND>/path/to/file.out2>&1(順序很重要)
-COMMAND>>/path/to/file.out2>&1
():合并多個(gè)程序的STDOUT
(cal2007;cal2008)>all.txt
tr命令
tr轉(zhuǎn)換和刪除字符
tr[OPTION]…SET1[SET2]
選項(xiàng)
-c -C –complement:取字符集的補(bǔ)集
-d –delete:刪除所有屬于第一字符集的字符
-s –squeeze-repeats:把連續(xù)重復(fù)的字符以單獨(dú)一個(gè)字符表示
-t –truncate-set1:將第一個(gè)字符集對(duì)應(yīng)字符轉(zhuǎn)化為第二個(gè)字符集對(duì)應(yīng)的字符
[:alnum:]:字母和數(shù)字[:alpha:]:字母[:cntrl:]:控制(非打?。┳址?/span>
[:digit:]:數(shù)字[:graph:]:圖形字符[:lower:]:小寫字母[:print:]:可打印字符
[:punct:]:標(biāo)點(diǎn)符號(hào)[:space:]:空白字符[:upper:]:大寫字母
[:xdigit:]:十六進(jìn)制字符
把多行發(fā)送給STDIN
使用“<<終止詞”命令從鍵盤把多行重導(dǎo)向給STDIN
-直到 終止詞 位置的所有文本都發(fā)送給STDIN
-有時(shí)被稱為就地文本(heretext)
管道
管道(使用符號(hào)“|”表示)用來連接命令
命令1|命令2|命令3…
-將命令1 的STDOUT發(fā)送給命令2 的STDIN,命令2 的STDOUT發(fā)送到命令3的STDIN
-STDERR默認(rèn)不能通過管道轉(zhuǎn)發(fā),可利用2>&1或|&實(shí)現(xiàn)
-最后一個(gè)命令會(huì)在當(dāng)前shell進(jìn)程的子shell進(jìn)程中執(zhí)行用來
-組合多種工具的功能
Is | tr ‘a(chǎn)-z’ ‘A-Z’
less:一頁一頁地查看輸入
ls -l/etc|less
mail:通過電子郵件發(fā)送輸入
echo“test email”|mail -s“test”user@example.com
lpr:把輸入發(fā)送給打印機(jī)
echo“test print”| lpr -P printer_name
管道中 – 符號(hào)
示例:
將/home里面的文件打包,但打包的數(shù)據(jù)不是記錄到文件,而是傳達(dá)到stdout,經(jīng)過管道后,將tar -cvf- /home 傳送給后面的tar -xvf-,后面的這個(gè)- 則是取前一個(gè)命令的stdout,因此,就不需要使用臨時(shí)file了
tar -cvf-/home|tar-xvf-
重定向到多個(gè)目標(biāo)
命令1|tee[-a]文件名|命令2
把命令1的STDOUT保存在文件中,做為命令2的輸入
-a追加
使用
-保存不同階段的輸出
-復(fù)雜管道的故障排除
-同時(shí)查看和記錄輸出
文件查找
在文件系統(tǒng)上查找符合條件的文件
文件查找:locate,find
非實(shí)時(shí)查找(數(shù)據(jù)庫查找):locate
實(shí)時(shí)查找:find
Locate命令
locate KEYWORD
有用的選項(xiàng)
-i 不區(qū)分大小寫的搜索
-n N 只列舉前N個(gè)匹配項(xiàng)目
-r 使用正則表達(dá)式
示例
搜索名稱或路徑中帶有“conf”的文件
locate conf
使用Regex來搜索以“.conf”結(jié)尾的文件
locate -r ‘.conf$’
find命令
實(shí)時(shí)查找工具,通過遍歷指定路徑完成文件查找
工作特點(diǎn):
-查找速度略慢
-精確查找
-實(shí)時(shí)查找
-可能只搜索用戶具備讀取和執(zhí)行權(quán)限的目錄
語法:
find[OPTION]…查找路徑[處理動(dòng)作]
查找路徑:指定具體目標(biāo)路徑;默認(rèn)為當(dāng)前目錄
查找條件:指定的查找標(biāo)準(zhǔn),可以文件名、大小、類型、權(quán)限等標(biāo)準(zhǔn)進(jìn)行;默認(rèn)找出指定路徑下的所有文件
處理動(dòng)作:對(duì)符合條件的文件做操作,默認(rèn)輸出至屏幕
查找條件
指搜索層級(jí)
-maxdepth level 最大搜索目錄深度,指定目錄為第1級(jí)
-mindepth level 最小搜索目錄深度
先處理目錄內(nèi)的文件,再處理目錄
-depth
根據(jù)文件名和inode查找
-name“文件名稱”:支持使用glob
*,?,[],[^]
-iname“文件名稱”:不區(qū)分字母大小寫
-inum n 按inode號(hào)查找
-samefile name 相同inode號(hào)的文件
-links n 鏈接數(shù)為n的文件
-regex “PATTERN”:以PATTERN匹配整個(gè)文件路徑,而非文件名稱
根據(jù)屬主、屬組查找:
-user USERNAME:查找屬主為指定用戶(UID)的文件
-group GRPNAME:查找屬組為指定組(GID)的文件
-uid UserID:查找屬主為指定的UID號(hào)文件
-gid GroupID:查找屬組為指定的GID號(hào)的文件
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
根據(jù)文件類型查找
type TYPE:
f:普通文件
d:目錄文件
l:符號(hào)鏈接文件
s:套接字文件
b:塊設(shè)備文件
c:字符設(shè)備文件
p:管道文件
空文件或目錄
-empty
Find/app -type d -empty
組合條件
與:-a
或:-o
非:-not,!
德·摩根定律
(非A)或(非B)=非(A且B)
(非A)且(非B)=非(A或B)
示例:
!A -a!B=!(A -o B)
!A -0!B=!(A -a B)
根據(jù)文件大小來查找
-size [+|-]#UNIT
常用單位:k,M,G, c (byte)
#UNIT:(#-1,#]
如:6k表示(5k,6k]
-#UNIT:[O,#-1]
如:-6k表示[0,5k]
+#UNIT::(# ,∞)
如:+6k表示(6k,∞)
整合于網(wǎng)絡(luò),版權(quán)歸原作者所有。
華清遠(yuǎn)見武漢中心位于武漢市洪山區(qū)武漢工程大學(xué)(武昌校區(qū))科技孵化器11 樓,學(xué)生的食宿與活動(dòng)十分便捷,實(shí)驗(yàn)設(shè)備、師資力量、教學(xué)管理等方面全國一流。武漢中心擁有專業(yè)級(jí)講師及資深工程師, 師資力量雄厚;擁有國內(nèi)最先進(jìn)的人工智能、云/大數(shù)據(jù)等開發(fā)硬件專業(yè)實(shí)驗(yàn)設(shè)備,其中85%以上的實(shí)驗(yàn)設(shè)備由華清遠(yuǎn)見自主研發(fā);擁有以人為本的高級(jí)班主任老師,科學(xué)的教學(xué)管理制度。主要課程有嵌入式人工智能、Java大數(shù)據(jù)開發(fā)、Html5全棧開發(fā)、Python+人工智能等,并為每一位學(xué)員提供專業(yè)的就業(yè)指導(dǎo),高薪就業(yè)的學(xué)員不計(jì)其數(shù),做良心教育,做專業(yè)教育,做受人尊敬的職業(yè)教育。
掃碼關(guān)注更多精彩
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!