一個.NET Core開發者的Linux入門學習筆記
用.NET Core開發也有一段時間了,但是由於工作原因一直都是在Windows系統上進行的開發,一直想學習Linux然後把.NET Core開發的程式跑在Linux上,然後把心得體會記錄一下發布再部落格園,奈何拖延症氾濫,所以只寫過一篇《 CentOS開發ASP.NET Core入門教程 》之後就繼續征戰Windows了!作為新年Flag之一就是學習Docker,K8S,雖然windows系統也能進行開發,但是畢竟Linux才是正途,因此這兩天特地學習了一下Linux系統,並整理成這篇學習筆記,希望對.NET Core開發者學習Linux有所幫助。
作者:依樂祝
原文連結: https://www.cnblogs.com/yilezhu/p/10326367.html
另外如果你是一名.NET Core初學者,可以看一下我的《 .NET Core實戰專案之CMS 第一章 入門篇-開篇及總體規劃 也可以加入.NET Core實戰專案交流群637326624跟大家一起交流,共同進步!下面開始正文吧!內容有點長,希望你有耐心看完
linux終端
終端的概念
終端本質上是對應著 Linux 上的 /dev/tty 裝置,Linux 的多使用者登陸就是通過不同的 /dev/tty 裝置完成的,Linux 預設提供了 6 個純命令列介面的 “terminal”(準確的說這裡應該是 6 個 virtual consoles)來讓使用者登入。在物理機系統上你可以通過使用[Ctrl]+[Alt]+[F1]~[F6]進行切換。
Shell
通常在圖形介面中對實際體驗帶來差異的不是不同發行版的各種終端模擬器,而是這個 Shell(殼)。有殼就有核,這裡的核就是指 UNIX/Linux 核心,Shell 是指“提供給使用者使用介面”的軟體(命令解析器),類似於 DOS 下的 command(命令列)和後來的 cmd.exe 。普通意義上的 Shell 就是可以接受使用者輸入命令的程式。它之所以被稱作 Shell 是因為它隱藏了作業系統底層的細節。同樣的 UNIX/Linux 下的圖形使用者介面 GNOME 和 KDE,有時也被叫做“虛擬 shell”或“圖形 shell”。
重要且常用的快捷鍵及技巧
1) 重要快捷鍵:
[Tab]
使用Tab鍵來進行命令補全,Tab鍵一般是在字母Q旁邊,這個技巧給你帶來的最大的好處就是當你忘記某個命令的全稱時可以只輸入它的開頭的一部分,然後按下Tab鍵就可以得到提示或者幫助完成:
[Ctrl+c]
想想你有沒有遇到過這種情況,當你在 Linux 命令列中無意輸入了一個不知道的命令,或者錯誤地使用了一個命令,導致在終端裡出現了你無法預料的情況,比如,螢幕上只有游標在閃爍卻無法繼續輸入命令,或者不停地輸出一大堆你不想要的結果。你想要立即停止並恢復到你可控的狀態,那該怎麼辦呢?這時候你就可以使用Ctrl+c鍵來強行終止當前程式(你可以放心它並不會使終端退出)。
其他一些常用快捷鍵
按鍵 作用
Ctrl+d 鍵盤輸入結束或退出終端
Ctrl+s 暫停當前程式,暫停後按下任意鍵恢復執行
Ctrl+z 將當前程式放到後臺執行,恢復到前臺為命令fg
Ctrl+a 將游標移至輸入行頭,相當於Home鍵
Ctrl+e 將游標移至輸入行末,相當於End鍵
Ctrl+k 刪除從游標所在位置到行末
Alt+Backspace 向前刪除一個單詞
Shift+PgUp 將終端顯示向上滾動
Shift+PgDn 將終端顯示向下滾動
2) 學會利用歷史輸入命令
很簡單,你可以使用鍵盤上的方向上鍵↑,恢復你之前輸入過的命令,你一試便知。
3) 學會使用萬用字元
萬用字元是一種特殊語句,主要有星號(*)和問號(?),用來對字串進行模糊匹配(比如檔名、引數名)。當查詢資料夾時,可以使用它來代替一個或多個真正字元;當不知道真正字元或者懶得輸入完整名字時,常常使用萬用字元代替一個或多個真正字元。
先使用 touch 命令建立 2 個檔案,字尾都為 txt:
$ touch adsfasd.txt wergjlkas.txt
$ ls *.txt
在建立檔案的時候,如果需要一次性建立多個檔案,比如:“love_1_linux.txt,love_2_linux.txt,... love_10_linux.txt”。在 Linux 中十分方便:
$ touch love_{1..10}_linux.txt
Shell 常用萬用字元:
字元 含義
-
匹配 0 或多個字元
匹配任意一個字元
list] 匹配 list 中的任意單一字元
!list] 匹配 除list 中的任意單一字元以外的字元
c1-c2] 匹配 c1-c2 中的任意單一字元 如:[0-9][a-z]
string1,string2,...} 匹配 string1 或 string2 (或更多)其一字串
c1..c2} 匹配 c1-c2 中全部字元 如{1..10}
4) 學會在命令列中獲取幫助
在 Linux 環境中,如果你遇到困難,可以使用man命令,它是Manual pages的縮寫。
$ man$ man 1 ls
會顯示第一區段中的ls命令 man 頁面。
man 手冊的內容很多,涉及了 Linux 使用過程中的方方面面。為了便於查詢,man 手冊被進行了分冊(分割槽段)處理,在 Research UNIX、BSD、OS X 和 Linux 中,手冊通常被分為8個區段
Linux 使用者管理
使用者管理
請開啟終端,輸入命令:
$ who am i
或者
$ who mom likes
who 命令其它常用引數
引數 說明
-a 列印能列印的全部
-d 列印死掉的程序
-m 同am i,mom likes
-q 列印當前登入使用者數及使用者名稱
-u 列印當前登入使用者登入資訊
-r 列印執行等級
建立使用者
在 Linux 系統裡, root 賬戶擁有整個系統至高無上的權利,比如 新建/新增 使用者。
su,su- 與 sudo
命令也是切換使用者,同時環境變數也會跟著改變成目標使用者的環境變數。
現在我們新建一個叫 yilezhu 的使用者:
$ sudo adduser yilezhu
這個命令不但可以新增使用者到系統,同時也會預設為新使用者建立 home 目錄:
$ ls /home
現在你已經建立好一個使用者,並且你可以使用你建立的使用者登入了,使用如下命令切換登入使用者:
$ su -l yilezhu
退出當前使用者跟退出終端一樣可以使用 exit 命令或者使用快捷鍵 Ctrl+d。
使用者組
在 Linux 裡面每個使用者都有一個歸屬(使用者組),使用者組簡單地理解就是一組使用者的集合,它們共享一些資源和許可權,同時擁有私有資源,就跟家的形式差不多,你的兄弟姐妹(不同的使用者)屬於同一個家(使用者組),你們可以共同擁有這個家(共享資源),爸媽對待你們都一樣(共享許可權),你偶爾寫寫日記,其他人未經允許不能檢視(私有資源和許可權)。當然一個使用者是可以屬於多個使用者組的,正如你既屬於家庭,又屬於學校或公司。
方法一:使用 groups 命令
$ groups yilezhu
可以檢視下 /etc/sudoers.d/yilezhu 檔案,我們在 /etc/sudoers.d 目錄下建立了這個檔案,從而給 yilezhu 使用者賦予了 sudo 許可權:
$sudo cat /etc/sudoers.d/yilezhu
方法二:檢視 /etc/group 檔案
$ cat /etc/group | sort
這裡 cat 命令用於讀取指定檔案的內容並列印到終端輸出,後面會詳細講它的使用。 | sort 表示將讀取的文字進行一個字典排序再輸出
沒找到,沒關係,你可以使用命令過濾掉一些你不想看到的結果:
$ cat /etc/group | grep -E "yilezhu"
/etc/group 的內容包括使用者組(Group)、使用者組口令、GID 及該使用者組所包含的使用者(User),每個使用者組一條記錄。格式如下:
group_name:password:GID:user_list
你看到上面的 password 欄位為一個 x 並不是說密碼就是它,只是表示密碼不可見而已。
將其它使用者加入 sudo 使用者組
預設情況下新建立的使用者是不具有 root 許可權的,也不在 sudo 使用者組,可以讓其加入 sudo 使用者組從而獲取 root 許可權:
$ su -l yilezhu
$ sudo ls
會提示 lilei 不在 sudoers 檔案中,意思就是 lilei 不在 sudo 使用者組中,至於 sudoers 檔案(/etc/sudoers)你現在最好不要動它,操作不慎會導致比較麻煩的後果。
使用 usermod 命令可以為使用者新增使用者組,同樣使用該命令你必需有 root 許可權,你可以直接使用 root 使用者為其它使用者新增使用者組,或者用其它已經在 sudo 使用者組的使用者使用 sudo 命令獲取許可權來執行該命令。
這裡我用 root 使用者執行 sudo 命令將 yilezhu 新增到 sudo 使用者組,讓它也可以使用 sudo 命令獲得 root 許可權:
$ su root # 此處需要輸入root使用者密碼
$ groups yilezhu
$ sudo usermod -G sudo yilezhu
$ groups yilezhu
然後你再切換回 yilezhu 使用者,現在就可以使用 sudo 獲取 root 許可權了。
刪除使用者
刪除使用者是很簡單的事:
$ sudo userdel -rf yilezhu
拓展
adduser 和 useradd 的區別是什麼?
答:useradd 只建立使用者,建立完了用 passwd yilezhu 去設定新使用者的密碼。adduser 會建立使用者,建立目錄,建立密碼(提示你設定),做這一系列的操作。其實 useradd、userdel 這類操作更像是一種命令,執行完了就返回。而 adduser 更像是一種程式,需要你輸入、確定等一系列操作
Linux 檔案許可權
檢視檔案許可權
使用較長格式列出檔案:
$ ls -l
顯示除了 .(當前目錄)和 ..(上一級目錄)之外的所有檔案,包括隱藏檔案(Linux 下以 . 開頭的檔案為隱藏檔案)。
$ ls -A
檢視某一個目錄的完整屬性,而不是顯示目錄裡面的檔案屬性:
$ ls -dl <目錄名>
顯示所有檔案大小,並以普通人類能看懂的方式呈現:
$ ls -AsSh
其中小 s 為顯示檔案大小,大 S 為按檔案大小排序,若需要知道如何按其它方式排序,請使用“man”命令查詢。
變更檔案所有者
假設目前是 yilezhu 使用者登入,新建一個檔案,命名為 “ huawei ”:
$ touch huawei
現在,換回到 root 使用者身份,使用以下命令變更檔案所有者為 root :
$ cd /home/yilezhu
$ ls huawei
$ sudo chown root huawei
3.3 修改檔案許可權
如果你有一個自己的檔案不想被其他使用者讀、寫、執行,那麼就需要對檔案的許可權做修改,這裡有兩種方式:
方式一:二進位制數字表示
每個檔案的三組許可權(擁有者,所屬使用者組,其他使用者,記住這個順序是一定的)對應一個 " rwx ",也就是一個 “ 7 ” ,所以如果我要將檔案“ huawei ”的許可權改為只有我自己可以用那麼就這樣:
為了演示,我先在檔案里加點內容:
$ echo "echo "hello root"" > huawei
然後修改許可權:
$ chmod 700 huawei
方式二:加減賦值操作
完成上述相同的效果,你可以:
$ chmod go-rw huawei
g、o 還有 u 分別表示 group、others 和 user,+ 和 - 分別表示增加和去掉相應的許可權。
Linux 目錄結構
FHS 標準
FHS 定義了兩層規範,第一層是, / 下面的各個目錄應該要放什麼檔案資料,例如 /etc 應該放置設定檔案,/bin 與 /sbin 則應該放置可執行檔案等等。
第二層則是針對 /usr 及 /var 這兩個目錄的子目錄來定義。例如 /var/log 放置系統登入檔案,/usr/share 放置共享資料等等。
sudo apt-get update
sudo apt-get install tree
列出所有檔案
$ tree /
目錄路徑
路徑
使用 cd 命令可以切換目錄,在 Linux 裡面使用 . 表示當前目錄,.. 表示上一級目錄(注意,我們上一節介紹過的,以 . 開頭的檔案都是隱藏檔案,所以這兩個目錄必然也是隱藏的,你可以使用 ls -a 命令檢視隱藏檔案), - 表示上一次所在目錄,~ 通常表示當前使用者的 home 目錄。使用 pwd 命令可以獲取當前所在路徑(絕對路徑)。
進入上一級目錄:
$ cd ..
進入你的 home 目錄:
$ cd ~
或者 cd /home/ <你的使用者名稱>
使用 pwd 獲取當前路徑:
$ pwd
絕對路徑
關於絕對路徑,簡單地說就是以根" / "目錄為起點的完整路徑,以你所要到的目錄為終點,表現形式如:
/usr/local/bin,表示根目錄下的 usr 目錄中的 local 目錄中的 bin 目錄。
相對路徑
相對路徑,也就是相對於你當前的目錄的路徑,相對路徑是以當前目錄 . 為起點,以你所要到的目錄為終點,表現形式如:
usr/local/bin (這裡假設你當前目錄為根目錄)。你可能注意到,我們表示相對路徑實際並沒有加上表示當前目錄的那個 . ,而是直接以目錄名開頭,因為這個 usr 目錄為 / 目錄下的子目錄,是可以省略這個 . 的(以後會講到一個類似不能省略的情況);如果是當前目錄的上一級目錄,則需要使用 .. ,比如你當前目錄為 home 目錄,根目錄就應該表示為 ../../ ,表示上一級目錄( home 目錄)的上一級目錄( / 目錄)。
下面我們以你的 home目錄為起點,分別以絕對路徑和相對路徑的方式進入 /usr/local/bin 目錄:
絕對路徑
$ cd /usr/local/bin
相對路徑
$ cd ../../usr/local/bin
提示:在進行目錄切換的過程中請多使用 Tab 鍵自動補全,可避免輸入錯誤,連續按兩次 Tab 可以顯示全部候選結果。
Linux 檔案的基本操作
新建
新建空白檔案
使用 touch 命令建立空白檔案,關於 touch 命令,其主要作用是來更改已有檔案的時間戳的(比如,最近訪問時間,最近修改時間),但其在不加任何引數的情況下,只指定一個檔名,則可以建立一個指定檔名的空白檔案(不會覆蓋已有同名檔案),當然你也可以同時指定該檔案的時間戳
新建目錄
使用 mkdir(make directories)命令可以建立一個空目錄,也可同時指定建立目錄的許可權屬性。
建立名為“ mydir ”的空目錄:
$ mkdir mydir
使用 -p 引數,同時建立父目錄(如果不存在該父目錄),如下我們同時建立一個多級目錄(這在安裝軟體、配置安裝路徑時非常有用):
$ mkdir -p father/son/grandson
複製
複製檔案
使用 cp(copy)命令複製一個檔案到指定目錄。
將之前建立的“ test ”檔案複製到“ /home/root/father/son/grandson ”目錄中:
$ cp test father/son/grandson
複製目錄
如果直接使用 cp 命令複製一個目錄的話,會出現如下錯誤:
要成功複製目錄需要加上 -r 或者 -R 引數,表示遞迴複製,就是說有點“株連九族”的意思:
$ cp -r father family
刪除
刪除檔案
使用 rm(remove files or directories)命令刪除一個檔案:
$ rm test
有時候你會遇到想要刪除一些為只讀許可權的檔案,直接使用 rm 刪除會顯示一個提示,如下:
你如果想忽略這提示,直接刪除檔案,可以使用 -f 引數強制刪除:
$ rm -f test
刪除目錄
跟複製目錄一樣,要刪除一個目錄,也需要加上 -r 或 -R 引數:
$ rm -r family
移動檔案與檔案重新命名
移動檔案
使用 mv(move or rename files)命令移動檔案(剪下)。將檔案“ file1 ”移動到 Documents 目錄:
mv 源目錄檔案 目的目錄:
$ mkdir Documents
$ mv file1 Documents
重新命名檔案
將檔案“ file1 ”重新命名為“ myfile ”:
mv 舊的檔名 新的檔名:
$ mv file1 myfile
檢視檔案
使用 cat,tac 和 nl 命令檢視檔案
前兩個命令都是用來列印檔案內容到標準輸出(終端),其中 cat 為正序顯示,tac 為倒序顯示。
比如我們要檢視之前從 /etc 目錄下拷貝來的 passwd 檔案:
$ cat passwd
可以加上 -n 引數顯示行號:
$ cat -n passwd
nl 命令,新增行號並列印,這是個比 cat -n 更專業的行號列印命令。
這裡簡單列舉它的常用的幾個引數:
-b : 指定新增行號的方式,主要有兩種:
-b a:表示無論是否為空行,同樣列出行號("cat -n"就是這種方式)
-b t:只列出非空行的編號並列出(預設為這種方式)
-n : 設定行號的樣式,主要有三種:
-n ln:在行號欄位最左端顯示
-n rn:在行號欄位最右邊顯示,且不加 0
-n rz:在行號欄位最右邊顯示,且加 0
-w : 行號欄位佔用的位數(預設為 6 位)
使用 more 和 less 命令分頁檢視檔案
如果說上面的 cat 是用來快速檢視一個檔案的內容的,那麼這個 more 和 less 就是天生用來"閱讀"一個檔案的內容的,比如說 man 手冊內部就是使用的 less 來顯示內容。其中 more 命令比較簡單,只能向一個方向滾動,而 less 為基於 more 和 vi (一個強大的編輯器,我們有單獨的課程來讓你學習)開發,功能更強大
使用 head 和 tail 命令檢視檔案
$ tail /etc/passwd
甚至更直接的只看一行, 加上 -n 引數,後面緊跟行數:
$ tail -n 1 /etc/passwd
檢視檔案型別
前面我提到過,在 Linux 中檔案的型別不是根據檔案字尾來判斷的,我們通常使用 file 命令檢視檔案的型別:
$ file /bin/ls
搜尋檔案
與搜尋相關的命令常用的有 whereis,which,find 和 locate 。
whereis 簡單快速
$whereis who
locate 快而全
它可以用來查詢指定目錄下的不同檔案型別,如查詢 /etc 下所有以 sh 開頭的檔案:
$ locate /etc/sh
注意,它不只是在 /etc 目錄下查詢,還會自動遞迴子目錄進行查詢。
查詢 /usr/share/ 下所有 jpg 檔案:
$ locate /usr/share/*.jpg
注意要新增 * 號前面的反斜槓轉義,否則會無法找到。
如果想只統計數目可以加上 -c 引數,-i 引數可以忽略大小寫進行查詢,whereis 的 -b、-m、-s 同樣可以使用。
which 小而精
which 本身是 Shell 內建的一個命令,我們通常使用 which 來確定是否安裝了某個指定的軟體,因為它只從 PATH 環境變數指定的路徑中去搜索命令:
$ which man
find 精而細
find 應該是這幾個命令中最強大的了
這條命令表示去 /etc/ 目錄下面 ,搜尋名字叫做 interfaces 的檔案或者目錄。這是 find 命令最常見的格式,千萬記住 find 的第一個引數是要搜尋的地方:
$ sudo find /etc/ -name interfaces
意 find 命令的路徑是作為第一個引數的, 基本命令格式為 find [path] [option] [action] 。
與時間相關的命令引數:
引數 說明
-atime 最後訪問時間
-ctime 最後修改檔案內容的時間
-mtime 最後修改檔案屬性的時間
下面以 -mtime 引數舉例:
-mtime n:n 為數字,表示為在 n 天之前的“一天之內”修改過的檔案
-mtime +n:列出在 n 天之前(不包含 n 天本身)被修改過的檔案
-mtime -n:列出在 n 天之內(包含 n 天本身)被修改過的檔案
-newer file:file 為一個已存在的檔案,列出比 file 還要新的檔名
列出 home 目錄中,當天(24 小時之內)有改動的檔案:
$ find ~ -mtime 0
列出使用者家目錄下比 Code 資料夾新的檔案:
$ find ~ -newer /home/root/Code
檔案打包與壓縮
檔案字尾名 說明
.zip zip 程式打包壓縮的檔案
.rar rar 程式壓縮的檔案.7z 7zip 程式壓縮的檔案
.tar tar 程式打包,未壓縮的檔案.gz gzip 程式(GNU zip)壓縮的檔案
.xz xz 程式壓縮的檔案.bz2 bzip2 程式壓縮的檔案
.tar.gz tar 打包,gzip 程式壓縮的檔案.tar.xz tar 打包,xz 程式壓縮的檔案
tar.bz2 tar 打包,bzip2 程式壓縮的檔案*.tar.7z tar 打包,7z 程式壓縮的檔案
zip 壓縮打包程式
使用 zip 打包資料夾:
$ zip -r -q -o yilezhu.zip /home/root
$ du -h yilezhu.zip
$ file yilezhu.zip
上面命令將目錄 /home/root 打包成一個檔案,並查看了打包後文件的大小和型別。第一行命令中,-r 引數表示遞迴打包包含子目錄的全部內容,-q 引數表示為安靜模式,即不向螢幕輸出資訊,-o,表示輸出檔案,需在其後緊跟打包輸出檔名。後面使用 du 命令檢視打包後文件的大小(後面會具體說明該命令)。
設定壓縮級別為 9 和 1(9 最大,1 最小),重新打包:
.zip
.zip這裡添加了一個引數用於設定壓縮級別 -[1-9],1 表示最快壓縮但體積大,9 表示體積最小但耗時最久。最後那個 -x 是為了排除我們上一次建立的 zip 檔案,否則又會被打包進這一次的壓縮檔案中,注意:這裡只能使用絕對路徑,否則不起作用。
我們再用 du 命令分別檢視預設壓縮級別、最低、最高壓縮級別及未壓縮的檔案的大小:
$ du -h -d 0 *.zip ~ | sort
通過 man 手冊可知:
h, --human-readable(顧名思義,你可以試試不加的情況)
d, --max-depth(所檢視檔案的深度)
使用 unzip 命令解壓縮 zip 檔案
將 yilezhu.zip 解壓到當前目錄:
$ unzip yilezhu.zip
使用安靜模式,將檔案解壓到指定目錄:
$ unzip -q yilezhu.zip -d ziptest
上述指定目錄不存在,將會自動建立。如果你不想解壓只想檢視壓縮包的內容你可以使用 -l 引數:
$ unzip -l yilezhu.zip
使用 -O(英文字母,大寫 o)引數指定編碼型別:
unzip -O GBK 中文壓縮檔案.zip(解決中文編碼問題)
rar 打包壓縮命令
rar 也是 Windows 上常用的一種壓縮檔案格式,在 Linux 上可以使用 rar 和 unrar 工具分別建立和解壓 rar 壓縮包。
安裝 rar 和 unrar 工具:
$ sudo apt-get update
$ sudo apt-get install rar unrar
從指定檔案或目錄建立壓縮包或新增檔案到壓縮包:
$ rm *.zip
$ rar a yilezhu.rar .
上面的命令使用 a 引數新增一個目錄 ~ 到一個歸檔檔案中,如果該檔案不存在就會自動建立。
注意:rar 的命令引數沒有 -,如果加上會報錯。
從指定壓縮包檔案中刪除某個檔案:
$ rar d yilezhu.rar .zshrc
檢視不解壓檔案:
$ rar l yilezhu.rar
使用 unrar 解壓 rar 檔案
全路徑解壓:
$ unrar x yilezhu.rar
去掉路徑解壓:
$ mkdir tmp
$ unrar e yilezhu.rar tmp/
tar 打包工具
在 Linux 上面更常用的是 tar 工具,tar 原本只是一個打包工具,只是同時還是實現了對 7z、gzip、xz、bzip2 等工具的支援,這些壓縮工具本身只能實現對檔案或目錄(單獨壓縮目錄中的檔案)的壓縮,沒有實現對檔案的打包壓縮,所以我們也無需再單獨去學習其他幾個工具,tar 的解壓和壓縮都是同一個命令,只需引數不同,使用比較方便。
下面先掌握 tar 命令一些基本的使用方式,即不進行壓縮只是進行打包(建立歸檔檔案)和解包的操作。
建立一個 tar 包:
$ tar -cf yilezhu.tar ~
上面命令中,-c 表示建立一個 tar 包檔案,-f 用於指定建立的檔名,注意檔名必須緊跟在 -f 引數之後,比如不能寫成 tar -fc yilezhu.tar,可以寫成 tar -f yilezhu.tar -c ~。你還可以加上 -v 引數以可視的的方式輸出打包的檔案。上面會自動去掉表示絕對路徑的 /,你也可以使用 -P 保留絕對路徑符。
解包一個檔案(-x 引數)到指定路徑的已存在目錄(-C 引數):
$ mkdir tardir
$ tar -xf yilezhu.tar -C tardir
只檢視不解包檔案 -t 引數:
$ tar -tf yilezhu.tar
保留檔案屬性和跟隨連結(符號連結或軟連結),有時候我們使用 tar 備份檔案當你在其他主機還原時希望保留檔案的屬性(-p 引數)和備份連結指向的原始檔而不是連結本身(-h 引數):
$ tar -cphf etc.tar /etc
對於建立不同的壓縮格式的檔案,對於 tar 來說是相當簡單的,需要的只是換一個引數,這裡我們就以使用 gzip 工具建立 *.tar.gz 檔案為例來說明。
我們只需要在建立 tar 檔案的基礎上新增 -z 引數,使用 gzip 來壓縮檔案:
$ tar -czf yilezhu.tar.gz ~
.tar.gz 檔案:
$ tar -xzf yilezhu.tar.gz
現在我們要使用其它的壓縮工具建立或解壓相應檔案只需要更改一個引數即可:
壓縮檔案格式 引數
.tar.gz -z.tar.xz -J
tar.bz2 -j總結
其實今天總結的內容挺多的,主要是因為對於我這個.NET Core開發者來說Linux是一個全新的領域,所以感覺需要記憶的內容太多太多了!而作為開發者,雖然不需要掌握Linux的核心優化等等內容,但是基本的操作還是需要掌握的,畢竟公司裡面基本是開發運維的工作一肩挑的,所以,Linux我來了!
後續在.net core程式進行在Linux系統上部署的話可能還需要涉及一些命令,這個後期用到了在進行記錄吧!今天就先到這裡了!感謝大家的閱讀!