linux基礎進階命令詳解(輸出重定向、輸入重定向、管道符、通配符、三種引號、軟鏈接、硬連接、根「/」、絕對路徑vs相對路徑)

本章命令(共9個):linux

1 2 3 4 5 6 7 8 9
輸出重定向 輸入重定向 管道符 通配符 三種引號 軟鏈接 硬連接 根「/」 絕對路徑vs相對路徑

1.輸出重定向

做用:通常命令的輸出都會顯示在終端中,有些時候須要將一些命令的執行結果想要保存到文件中進行後續的分析/統計,則這時候須要使用到的輸出重定向技術。

  • 覆蓋輸出 >:會覆蓋掉原先的文件內容 (1>)
  • 追加輸出 >>:不會覆蓋原始文件內容,會在原始內容末尾繼續添加(1>>)
  • 錯誤輸出 2>:會覆蓋掉原先的文件內容
  • 錯誤追加輸出 2>>:會覆蓋掉原始文件內容,會在原始內容末尾繼續添加
  • 將標準輸出與錯誤輸出共同寫入到文件中 &>:覆蓋原有內容
  • 將標準輸出與錯誤輸出共同寫入到文件中 &>>:追加到原有內容的後面

用法:

╭─root@localhost.localdomain ~/2  
╰─➤  echo "hello" > fil1     #會覆蓋原文件內容(標準輸出)
╭─root@localhost.localdomain ~/2  
╰─➤  echo good >> fil1     #不覆蓋原文件內容 (標準輸出)
╭─root@localhost.localdomain ~/2  
╰─➤  cd fil2 &>> fil1    #不覆蓋原文件內容(標準與錯誤輸出)
╭─root@localhost.localdomain ~/2  
╰─➤  cat fil1                                                                        
hello
good
cd: 沒有那個文件或目錄: fil2

2.輸入重定向

做用:工做中沒吊用,瞭解便可,輸入重定向的做用是把文件直接導入到命令中。


3.管道符

做用:管道命令符「 | 」的做用是把前一個命令本來要輸出到屏幕的標準正常數據看成是後一個命令的標準輸入。

╭─root@cjk ~/2  
╰─➤  cat /etc/passwd | wc -l               
43

4.通配符

做用:通配符就是通用的匹配信息的符號;

  • 星號(*)表明匹配零個或多個字符(能夠爲0個)
  • 問號(?)表明匹配單個字符(單個字符必須存在)
  • 中括號內加上數字[0-9]表明匹配0~9之間的單個數字的字符,
  • 中括號內加上字母[abc]則是表明匹配a、b、c三個字符中的任意一個字符。
╭─root@cjk ~/2  
╰─➤  ls
1abc  1abcde  2abc  2abcde  3abc  3abcde  4abc  4abcde  5abc  5abcde
╭─root@cjk ~/2  
╰─➤  ls *a            
zsh: no matches found: *a
╭─root@cjk ~/2  
╰─➤  ls *a*                                                                        
1abc  1abcde  2abc  2abcde  3abc  3abcde  4abc  4abcde  5abc  5abcde
╭─root@cjk ~/2  
╰─➤  ls ?a??                                                                       
1abc  2abc  3abc  4abc  5abc
╭─root@cjk ~/2  
╰─➤  ls [1..9]abc
1abc
╭─root@cjk ~/2  
╰─➤  ls [1-9]abc
1abc  2abc  3abc  4abc  5abc
╭─root@cjk ~/2  
╰─➤  ls 1ab[cde]
1abc

5.三種引號

做用:

  • 單引號(''):轉義其中全部的變量爲單純的字符串;
  • 雙引號(""):對其中變量進行解釋處理;
  • 反引號(``):把其中的命令執行後返回結果;
╭─root@cjk ~/2  
╰─➤  fda=cjk                                                                     
╭─root@cjk ~/2  
╰─➤  echo 'hello $fda'        #不解釋
hello $fda
╭─root@cjk ~/2  
╰─➤  echo "hello $fda"       #解釋
hello cjk
╭─root@cjk ~/2  
╰─➤  name=`ls /root`          #執行命令
╭─root@cjk ~/2  
╰─➤  echo $name
2
anaconda-ks.cfg
initial-setup-ks.cfg

6.軟鏈接

【軟連接至關於快捷方式,硬連接至關於複製粘貼】

╭─root@cjk ~/2  
╰─➤  ln -s 1 ruan1       #爲源文件「1」建立軟鏈接「ruan1」    ln -s
╭─root@cjk ~/2  
╰─➤  ls
1  ruan1  
╭─root@cjk ~/2  
╰─➤  echo "hello" >> ruan1     #寫入內容進軟鏈接
╭─root@cjk ~/2  
╰─➤  cat 1       
hello      #源文件內容同步
╭─root@cjk ~/2  
╰─➤  rm 1          #刪除源文件
╭─root@cjk ~/2  
╰─➤  cat ruan1
cat: ruan1: 沒有那個文件或目錄
╭─root@cjk ~/2  
╰─➤  ls
ruan1        ---->特殊顯示(變背景)說明源文件已被刪除的軟鏈接
╭─root@cjk ~/2  
╰─➤  touch 1         #建立一個同名源文件
╭─root@cjk ~/2   
╰─➤  cat ruan1        #自動鏈接並清空原內容
╭─root@cjk ~/2   
╰─➤

7.硬連接

【軟連接至關於快捷方式,硬連接至關於複製粘貼】

╭─root@cjk ~/2  
╰─➤  ln 2 ying2       #爲源文件「2」建立硬連接「ying2」
╭─root@cjk ~/2  
╰─➤  ls
1  2  ruan1  ying2
╭─root@cjk ~/2  
╰─➤  echo "good" >>ying2      #寫入內容進硬連接
╭─root@cjk ~/2  
╰─➤  cat 2
good              #源文件同步
╭─root@cjk ~/2  
╰─➤  rm 2         #刪除源文件
╭─root@cjk ~/2  
╰─➤  cat ying2
good         #硬連接無影響

8.根「/」

一切從根「/」起

Linux系統中常見的目錄名稱以及相應內容:

目錄名稱 應放置文件的內容
/boot 開機所需文件—內核、開機菜單以及所需配置文件等
/dev 以文件形式存聽任何設備與接口
/etc 配置文件
/home 用戶主目錄
/bin 存放單用戶模式下還能夠操做的命令
/lib 開機時用到的函數庫,以及/bin與/sbin下面的命令要調用的函數
/sbin 開機過程當中須要的命令
/media 用於掛載設備文件的目錄
/opt 放置第三方的軟件
/root 系統管理員的家目錄
/srv 一些網絡服務的數據文件目錄
/tmp 任何人都可使用的「共享」臨時目錄
/proc 虛擬文件系統,例如系統內核、進程、外部設備及網絡狀態等
/usr/local 用戶自行安裝的軟件
/usr/sbin Linux系統開機時不會使用到的軟件/命令/腳本
/usr/share 幫助與說明文件,也可放置共享文件
/var 主要存放常常變化的文件,如日誌
/lost+found 當文件系統發生錯誤時,將一些丟失的文件片斷存放在這裏

proc 文件系統能夠被用於收集有用的關於系統和運行中的內核的信息。下面是一些重要的文件:

  • /proc/cpuinfo - CPU 的信息(型號, 家族, 緩存大小等)
  • /proc/meminfo - 物理內存、交換空間等的信息
  • /proc/mounts - 已加載的文件系統的列表
  • /proc/devices - 可用設備的列表
  • /proc/filesystems - 被支持的文件系統
  • /proc/modules - 已加載的模塊
  • /proc/version - 內核版本
  • /proc/cmdline - 系統啓動時輸入的內核命令行參數

9.絕對路徑vs相對路徑

  • 在Linux系統中另外還有一個重要的概念—路徑。
  • 路徑指的是如何定位到某個文件,分爲絕對路徑與相對路徑。
  • 絕對路徑指的是從根目錄(/)開始寫起的文件或目錄名稱
  • 相對路徑則指的是相對於當前路徑的寫法。

相關文章
相關標籤/搜索