<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Linux純干貨知識總結(jié) | 面試專用

          共 5457字,需瀏覽 11分鐘

           ·

          2021-06-23 00:48

            點(diǎn)擊“程序員面試吧”,選擇“星標(biāo)??”

          下拉至文末”解鎖資料

            
          學(xué)習(xí)Linux的重要性相信不用我多說大家也明白,以下是小編總結(jié)的常用Linux基礎(chǔ)知識以及面試常問的Linux命令,希望能幫助大家更規(guī)范地理解和使用~

          此外還準(zhǔn)備了一份 Linux 命令速查手冊,它包括550多個(gè)Linux命令,共1303頁。內(nèi)容全面豐富,代碼清晰可復(fù)制。所有命令由A到Z排列,查找方便。Ctrl+F一鍵定位,快速查閱需要的命令,特別方便,建議大家人手一份。需要的文末領(lǐng)取


          絕對路徑和相對路徑


          絕對路徑

          以正斜杠開始
          完整的文件的位置路徑
          可用于任何想置頂一個(gè)文件名的時(shí)候

          相對路徑

          不以斜線開始
          置頂相對于當(dāng)前工作目錄或某目錄的位置
          可以作為一個(gè)簡短的形式指定一個(gè)文件名

          -基名:basename,就是文件本身的名字

          -目錄名:dirname ,就是它所在的文件夾名



          更改目錄


          cd 改變目錄

          使用絕對或相對路徑
          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:指定顯示的層級數(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ì)信息

          rm -r 遞歸刪除目錄樹



          索引節(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ù)



          硬鏈接和軟鏈接(符號鏈接)


          硬鏈接

          -創(chuàng)建硬鏈接會(huì)增加額外的記錄項(xiàng)以引用文件
          -對應(yīng)于同一文件系統(tǒng)上一個(gè)物理文件
          -每個(gè)目錄引用相同的inode號
          -創(chuàng)建時(shí)鏈接數(shù)遞增
          -刪除文件時(shí):
          rm命令遞減計(jì)數(shù)的鏈接
          文件要存在,至少有一個(gè)鏈接數(shù)
          當(dāng)鏈接數(shù)為零時(shí),該文件被刪除
          -不能跨越驅(qū)動(dòng)器或分區(qū)
          -語法:
          In filename [linkname]

          符號鏈接(軟鏈接)

          -一個(gè)符號鏈接指向另一個(gè)文件
          -IS-l的顯示鏈接的名稱和引用的文件
          -一個(gè)符號鏈接的內(nèi)容是它引用文件的名稱
          -可以對目標(biāo)進(jìn)行
          -可以跨分區(qū)
          -指向的是另一個(gè)文件的路徑;其大小為指向的路徑字符串的長度,不增加或減少目標(biāo)文件inode的引用計(jì)數(shù);
          -語法:
          In-s filename [linkname]

          硬鏈接:對一個(gè)文件起多個(gè)名字
          軟鏈接:原始文件一般路徑用相對路徑,相對路徑一定相對于軟鏈接文件的路徑

          硬鏈接和軟鏈接的區(qū)別:

          (1) 本質(zhì):硬鏈接是一個(gè)文件多個(gè)名字,而軟鏈接一個(gè)文件對應(yīng)多個(gè)快捷方式。
          (2) 跨分區(qū):硬鏈接不可以跨分區(qū),軟鏈接可以跨分區(qū)。
          (3) 鏈接數(shù):硬鏈接會(huì)增加鏈接數(shù),軟鏈接不增加。
          (4) 節(jié)點(diǎn)編號:硬鏈接相同,軟鏈接不相同。
          (5) 刪掉原始文件是否會(huì)影響到鏈接文件?硬鏈接各個(gè)文件時(shí)平級的關(guān)系,該訪問還能訪問,而軟鏈接是一種依賴關(guān)系,刪除原始文件后鏈接會(huì)失效。
          (6) 目錄:硬鏈接不支持目錄,軟鏈接支持目錄。


          確定文件內(nèi)容

          -文件內(nèi)容可以包含多種類型的數(shù)據(jù)
          -檢查文件的類型,然后確定適當(dāng)?shù)拇蜷_命令或應(yīng)用程序使用
          -file[options]…
          -常用選項(xiàng):

          -b列出文件辨識結(jié)果時(shí),不顯示文件名稱
          -f filelist列出文件filelist中文件名的文件類型
          -F使用指定分隔符號替換輸出文件后默認(rèn)的“:”分隔符
          -L查看對應(yīng)軟鏈接對應(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可以被重新定向到文件
          命令  操作符號   文件名
          支持的操作符號包括:
          >把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è)字符集對應(yīng)字符轉(zhuǎn)化為第二個(gè)字符集對應(yīng)的字符
          • [:alnum:]:字母和數(shù)字[:alpha:]:字母[:cntrl:]:控制(非打印)字符
          • [:digit:]:數(shù)字[:graph:]:圖形字符[:lower:]:小寫字母[:print:]:可打印字符
          • [:punct:]:標(biāo)點(diǎn)符號[:space:]:空白字符[:upper:]:大寫字母
          • [:xdigit:]:十六進(jìn)制字符


          把多行發(fā)送給STDIN

          使用“<<終止詞”命令從鍵盤把多行重導(dǎo)向給STDIN
          -直到 終止詞 位置的所有文本都發(fā)送給STDIN
          -有時(shí)被稱為就地文本(heretext)
          Mail -s“Please Call”[email protected]<<END>Hi Wang>>Please give me a call when you get in.We may need>to do some maintenance on server1.>>Details when you are on -site>Zhang>END



          管道

          管道(使用符號“|”表示)用來連接命令
          命令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”[email protected]
          lpr:把輸入發(fā)送給打印機(jī)
          echo“test print”| lpr -P printer_name
          管道中 – 符號
          示例:
          將/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)作:對符合條件的文件做操作,默認(rèn)輸出至屏幕

          查找條件

          指搜索層級

          -maxdepth level 最大搜索目錄深度,指定目錄為第1級
          -mindepth level 最小搜索目錄深度

          先處理目錄內(nèi)的文件,再處理目錄

          -depth

          根據(jù)文件名和inode查找:

          -name“文件名稱”:支持使用glob
          *,?,[],[^]
          -iname“文件名稱”:不區(qū)分字母大小寫
          -inum n 按inode號查找
          -samefile name 相同inode號的文件
          -links n 鏈接數(shù)為n的文件
          -regex “PATTERN”:以PATTERN匹配整個(gè)文件路徑,而非文件名稱

          根據(jù)屬主、屬組查找:

          -user USERNAME:查找屬主為指定用戶(UID)的文件
          -group GRPNAME:查找屬組為指定組(GID)的文件
          -uid UserID:查找屬主為指定的UID號文件
          -gid GroupID:查找屬組為指定的GID號的文件
          -nouser:查找沒有屬主的文件
          -nogroup:查找沒有屬組的文件

          根據(jù)文件類型查找“

          type TYPE:
          f:普通文件
          d:目錄文件
          l:符號鏈接文件
          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ù)文件大小來查找


          Linux 命令速查手冊


          長按下方二維碼,識別添加并回復(fù)“公眾號 — Linux命令”領(lǐng)取

          (之前添加過不用重復(fù)添加,直接用關(guān)鍵字索要資料~)

          瀏覽 56
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲天堂网2024 | 一级做a爰片久久毛片A片 9 1? | 夜夜嗨av | 中韩一区二区 | 亚洲欧美成人电影 |