1. 程式人生 > 實用技巧 >初識Linux及常用指令

初識Linux及常用指令

初識Linux及常用指令

Linux簡介

​ Linux,全稱GNU/Linux,是一套免費使用和自由傳播的類UNIX作業系統,其核心由林納斯·本納第克特·託瓦茲於1991年第一次釋出,它主要受到Minix和Unix思想的啟發,是一個多使用者、多工、支援多執行緒和多CPU的作業系統。它能執行主要的Unix工具軟體、應用程式和網路協議。它支援32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多使用者網路作業系統。

​ 與大家熟知的 Windows 作業系統軟體一樣,Linux 也是一個作業系統軟體,與 Windows 不同之處在於,Linux 是一套開放原始碼程式的、可以自由傳播的類 Unix 作業系統軟體。

Linux特點:

大量的可用軟體及免費軟體

Linux 系統上有著大量的可用軟體,且絕大多數是免費的,比如聲名赫赫的 Apache、Samba、PHP、MySQL 等,

良好的可移植性及靈活注

Linux 系統有良好的可移植性,它幾乎支援所有的 CPU 平臺,這使得它便於裁剪和定製。我們可以把 Linux 放在 U 盤、光碟等儲存介質中,也可以在嵌入式領域廣泛應用。

優良的穩定性和安全性

Linux 開放原始碼,將所有程式碼放在網上,全世界的程式設計師都看得到,有什麼缺陷和漏洞,很快就會被發現,從而成就了它的穩定性和安全注。

支援幾乎所有的網路協議及開發語言

Linux 支援 TCP/IP 協議,支援現現今主流的語言C 、PHP、Java、C++ 、python等

UNIX與Linux的關係

二者的關係,不是大哥和小弟,"UNIX 是 Linux 的父親"這個說法更怡當。之所以要介紹它們的關係,是因為要告訴讀者,在學習的時候,其實 Linux 與 UNIX 有很多的共通之處,簡單地說,如果你已經熟練掌握了 Linux,那麼再上手使用 UNIX 會非常容易。

二者也有兩個大的區別:

  1. UNIX 系統大多是與硬體配套的,也就是說,大多數 UNIX 系統如 AIX、HP-UX 等是無法安裝在 x86 伺服器和個人計算機上的,而 Linux 則可以執行在多種硬體平臺上;
  2. UNIX 是商業軟體,而 Linux 是開源軟體,是免費、公開原始碼的。

常見Linux發行版本有哪些?

從技術上來說,李納斯•託瓦茲開發的 Linux 只是一個核心。核心指的是一個提供裝置驅動、檔案系統、程序管理、網路通訊等功能的系統軟體,核心並不是一套完整的作業系統,它只是作業系統的核心。一些組織或廠商將 Linux 核心與各種軟體和文件包裝起來,並提供系統安裝介面和系統配置、設定與管理工具,就構成了 Linux 的發行版本。

Linux 的發行版本可以大體分為兩類:

商業公司維護的發行版本,以著名的 Red Hat(紅帽) 為代表;產品主要包括 RHEL(Red Hat Enterprise Linux,收費版本)和 CentOS(RHEL 的社群克隆版本,免費版本)。

社群組織維護的發行版本,以 Debian 為代表。產品有 Ubuntu 。

其他的一些髮型版本

版本名稱 網 址 特 點 軟體包管理器
Debian Linux www.debian.org 開放的開發模式,且易於進行軟體包升級 apt
Fedora Core www.redhat.com 擁有數量龐人的使用者,優秀的社群技術支援. 並且有許多創新 up2date(rpm),yum (rpm)
CentOS www.centos.org CentOS 是一種對 RHEL(Red Hat Enterprise Linux)原始碼再編譯的產物,由於 Linux 是開發原始碼的作業系統,並不排斥樣基於原始碼的再分發,CentOS 就是將商業的 Linux 作業系統 RHEL 進行原始碼再編譯後分發,並在 RHEL 的基礎上修正了不少已知的漏洞 rpm
SUSE Linux www.suse.com 專業的作業系統,易用的 YaST 軟體包管理系統 YaST(rpm),第三方 apt (rpm)軟體庫(repository)
Mandriva www.mandriva.com 操作介面友好,使用圖形配置工具,有龐大的社群進行技術支援,支援 NTFS 分割槽的大小變更 rpm
KNOPPIX www.knoppix.com 可以直接在 CD 上執行,具有優秀的硬體檢測和適配能力,可作為系統的急救盤使用 apt
Gentoo Linux www.gentoo.org 高度的可定製性,使用手冊完整 portage
Ubuntu www.ubuntu.com 優秀已用的桌面環境,基於 Debian 構建 apt

linux的重要的二級目錄

bin:放Linux上常用的命令
dev:放裝置的目錄
etc:Linux配置檔案目錄
home:普通使用者會在該目錄下建立屬於自己的目錄
root:管理員使用者家目錄
media:即插即用型的裝置的掛載目錄,光碟自動掛載到media目錄下
usr:放安裝的應用程式
sbin:只有管理員才能執行的命令
var:Linux日誌預設儲存目錄

常用的linux指令

命令的基本格式
[root@localhost ~]# 命令[選項][引數]
命令格式中的 [] 代表可選項,也就是有些命令可以不寫選項或引數,也能執行。
ls

list,用於列舉一個目錄或者檔案

a:所有的:列舉包含隱藏檔案
l:long list 
ls -l = ll

示例:

不加選項和引數:

test@1:~/UA/3.0/shell$ ls
1  1.txt  2  test

加選項不加引數

test@1:~/UA/3.0/shell$ ls -l
total 8
-rw-rw-r-- 1 test test    0 Aug 18 23:53 1
-rw-rw-r-- 1 test test   14 Aug 19 02:10 1.txt
-rw-rw-r-- 1 test test    0 Aug 18 23:53 2
drwxrwxr-x 3 test test 4096 Aug 18 22:59 test

加選項和引數

test@1:~/UA/3.0/shell$ ls -l test/
total 4
drwxrwxr-x 3 test test 4096 Aug 18 22:54 1
-rw-rw-r-- 1 test test    0 Aug 19 02:12 1.txt
-rw-rw-r-- 1 test test    0 Aug 19 02:12 2.txt
-rw-rw-r-- 1 test test    0 Aug 19 02:12 3.txt
-rw-rw-r-- 1 test test    0 Aug 19 02:12 6.txt
-rw-rw-r-- 1 test test    0 Aug 19 02:12 t.txt

多個引數組合

test@1:~/UA/3.0/shell$ ls -lah test/
total 12K
drwxrwxr-x 3 test test 4.0K Aug 19 02:12 .
drwxrwxr-x 3 test test 4.0K Aug 19 02:09 ..
drwxrwxr-x 3 test test 4.0K Aug 18 22:54 1
-rw-rw-r-- 1 test test    0 Aug 19 02:12 1.txt
-rw-rw-r-- 1 test test    0 Aug 19 02:12 2.txt
-rw-rw-r-- 1 test test    0 Aug 19 02:12 3.txt
-rw-rw-r-- 1 test test    0 Aug 19 02:12 6.txt
-rw-rw-r-- 1 test test    0 Aug 19 02:12 t.txt
pwd

Print Working Directory (列印工作目錄)的縮寫,功能是顯示使用者當前所處的工作目錄

test@1:~/UA/3.0/shell$ pwd
/home/test/UA/3.0/shell
cd

Change Directory 的縮寫,用來切換工作目錄。

命令格式:

cd [相對路徑或絕對路徑]

示例:

絕對路徑:絕對路徑一定是由根目錄 / 開始寫起

test@1:~/UA/3.0/shell$ cd /home/test/UA/3.0/shell/
test@1:~/UA/3.0/shell$ pwd
/home/test/UA/3.0/shell
test@1:~/UA/3.0/shell$

相對路徑:相對路徑是相對於當前所在目錄而言的

test@1:~/UA/3.0/shell$ cd test/
test@1:~/UA/3.0/shell/test$ pwd
/home/test/UA/3.0/shell/test

cd 命令後面可以跟一些特殊符號

~: 代表當前登入使用者的主目錄

~使用者名稱:表示切換至指定使用者的主目錄

-:代表上次所在目錄

..:代表上級目錄

. :代表當前目錄

test@1:~/UA/3.0/shell/test$ pwd
/home/test/UA/3.0/shell/test
test@1:~/UA/3.0/shell/test$ cd ../
test@1:~/UA/3.0/shell$ pwd
/home/test/UA/3.0/shell
test@1:~/UA/3.0/shell$ cd ./test/
test@1:~/UA/3.0/shell/test$ cd ../../
test@1:~/UA/3.0$ ls
mkdir

make directories 的縮寫,用於建立新目錄

mkdir [-mp] 目錄名

-m 選項用於手動配置所建立目錄的許可權,而不再使用預設許可權。

-p 選項遞迴建立所有目錄

示例:

test@1:~/UA/3.0/shell$ ls
test@1:~/UA/3.0/shell$ mkdir test
test@1:~/UA/3.0/shell$ ls 
test
test@1:~/UA/3.0/shell$ mkdir -m 722 test1
test@1:~/UA/3.0/shell$ ls -l
total 8
drwxrwxr-x 2 test test 4096 Aug 19 02:21 test
drwx-w--w- 2 test test 4096 Aug 19 02:21 test1
test@1:~/UA/3.0/shell$ mkdir -p A/B/C
test@1:~/UA/3.0/shell$ ls -l A/B/C/
total 0
test@1:~/UA/3.0/shell$ ls -l A/B/
total 4
drwxrwxr-x 2 test test 4096 Aug 19 02:21 C
test@1:~/UA/3.0/shell$
rmdir

和 mkdir 命令(建立空目錄)恰好相反,rmdir(remove empty directories 的縮寫)命令用於刪除空目錄

 rmdir [-p] 目錄名

示例:

test@1:~/UA/3.0/shell$ mkdir -p A/B/C
test@1:~/UA/3.0/shell$ ls
A
test@1:~/UA/3.0/shell$ rmdir -p A/B/C/
test@1:~/UA/3.0/shell$ ls
test@1:~/UA/3.0/shell$
touch

建立檔案

 touch [選項] 檔名

示例:

test@1:~/UA/3.0/shell$ touch 1.txt
test@1:~/UA/3.0/shell$ ls
1.txt
test@1:~/UA/3.0/shell$ touch {1,2,3}.txt
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt
ln

命令用於給檔案建立連結

軟連結:類似於 Windows 系統中給檔案建立快捷方式,即產生一個特殊的檔案,該檔案用來指向另一個檔案,此連結方式同樣適用於目錄。

硬連結:我們知道,檔案的基本資訊都儲存在 inode 中,而硬連結指的就是給一個檔案的 inode 分配多個檔名,通過任何一個檔名,都可以找到此檔案的 inode,從而讀取該檔案的資料資訊。

ln [選項] 原始檔 目標檔案

-s:建立軟連結檔案。如果不加 "-s" 選項,則建立硬連結檔案;

-f:強制。如果目標檔案已經存在,則刪除目標檔案後再建立連結檔案;

示例:

硬連結,相當於複製

test@1:~/UA/3.0/shell$ touch 1.txt
test@1:~/UA/3.0/shell$ ls
1.txt
test@1:~/UA/3.0/shell$ ln 1.txt 2.txt
test@1:~/UA/3.0/shell$ ls 
1.txt  2.txt
test@1:~/UA/3.0/shell$ sha1sum 1.txt 2.txt 
da39a3ee5e6b4b0d3255bfef95601890afd80709  1.txt
da39a3ee5e6b4b0d3255bfef95601890afd80709  2.txt

軟連結,相當於建立快捷方式

test@1:~/UA/3.0/shell$ ln -s ../img/ img
test@1:~/UA/3.0/shell$ ls -l
total 0
-rw-rw-r-- 2 test test 0 Aug 19 02:28 1.txt
-rw-rw-r-- 2 test test 0 Aug 19 02:28 2.txt
lrwxrwxrwx 1 test test 7 Aug 19 02:30 img -> ../img/
cp

用來複制檔案和目錄

cp [選項] 原始檔 目標檔案
-a:相當於 -d、-p、-r 選項的集合,這幾個選項我們一一介紹;
-d:如果原始檔為軟連結(對硬連結無效),則複製出的目標檔案也為軟連結;
-i:詢問,如果目標檔案已經存在,則會詢問是否覆蓋;
-p:複製後目標檔案保留原始檔的屬性(包括所有者、所屬組、許可權和時間);
-r:遞迴複製,用於複製目錄;
-u:若目標檔案比原始檔有差異,則使用該選項可以更新目標檔案,此選項可用於對檔案的升級和備用

示例:

基本使用

test@1:~/UA/3.0/shell$ touch test
test@1:~/UA/3.0/shell$ cp test ^C
test@1:~/UA/3.0/shell$ touch test
test@1:~/UA/3.0/shell$ mkdir 1
test@1:~/UA/3.0/shell$ ls
1  test
test@1:~/UA/3.0/shell$ cp test 1/
test@1:~/UA/3.0/shell$ ls -l 1/
total 0
-rw-rw-r-- 1 test test 0 Aug 19 02:32 test

改名複製(複製後的路徑後加自己想改的名字)

test@1:~/UA/3.0/shell$ cp test 1/test1
test@1:~/UA/3.0/shell$ ls -l 1/
total 0
-rw-rw-r-- 1 test test 0 Aug 19 02:32 test
-rw-rw-r-- 1 test test 0 Aug 19 02:35 test1
rm

強大的刪除命令,它可以永久性地刪除檔案系統中指定的檔案或目錄。在使用 rm 命令刪除檔案或目錄時,系統不會產生任何提示資訊。

rm[選項] 檔案或目錄
-f:強制刪除(force),和 -i 選項相反,使用 -f,系統將不再詢問,而是直接刪除目標檔案或目錄。
-i:和 -f 正好相反,在刪除檔案或目錄之前,系統會給出提示資訊,使用 -i 可以有效防止不小心刪除有用的檔案或目錄。
-r:遞迴刪除,主要用於刪除目錄,可刪除指定目錄及包含的所有內容,包括所有的子目錄和檔案。
test@1:~/UA/3.0/shell$ ls
1  test
test@1:~/UA/3.0/shell$ rm 1/
rm: cannot remove '1/': Is a directory
test@1:~/UA/3.0/shell$ rm -r 1
test@1:~/UA/3.0/shell$ ls
test
test@1:~/UA/3.0/shell$ touch 1.txt
test@1:~/UA/3.0/shell$ mkdir -p a/B/C
test@1:~/UA/3.0/shell$ touch a/B/C/2.txt
test@1:~/UA/3.0/shell$ rm -r a
test@1:~/UA/3.0/shell$ ls
1.txt  test
test@1:~/UA/3.0/shell$ rm -r test
test@1:~/UA/3.0/shell$ ls
1.txt
test@1:~/UA/3.0/shell$

使用正則匹配要刪除的檔案

test@1:~/UA/3.0/shell$ touch {1,3,4,5,f,w2,hfh,sda}.txt
test@1:~/UA/3.0/shell$ ls
1.txt  3.txt  4.txt  5.txt  f.txt  hfh.txt  sda.txt  w2.txt
test@1:~/UA/3.0/shell$ rm -rf *.txt
test@1:~/UA/3.0/shell$ ls
test@1:~/UA/3.0/shell$
mv

move 的縮寫,既可以在不同的目錄之間移動檔案或目錄,也可以對檔案和目錄進行重新命名。

 mv 【選項】 原始檔 目標檔案
-f:強制覆蓋,如果目標檔案已經存在,則不詢問,直接強制覆蓋;
-i:互動移動,如果目標檔案已經存在,則詢問使用者是否覆蓋(預設選項);
-n:如果目標檔案已經存在,則不會覆蓋移動,而且不詢問使用者;
-v:顯示檔案或目錄的移動過程;
-u:若目標檔案已經存在,但兩者相比,原始檔更新,則會對目標檔案進行升級;

同 rm 命令類似,mv 命令也是一個具有破壞性的命令

示例:

常規移動

test@1:~/UA/3.0/shell$ ls
test@1:~/UA/3.0/shell$ touch 1
test@1:~/UA/3.0/shell$ mkdir 2
test@1:~/UA/3.0/shell$ ls
1  2
test@1:~/UA/3.0/shell$ mv 1 2/
test@1:~/UA/3.0/shell$ ls
2

移動並重命名

test@1:~/UA/3.0/shell$ touch 3
test@1:~/UA/3.0/shell$ mv 3 2/4
test@1:~/UA/3.0/shell$ ^C
test@1:~/UA/3.0/shell$ ls 2/
1  4
test@1:~/UA/3.0/shell$
clear

用於清屏 快捷鍵:Ctrl+l

history

用於檢視自己執行過的命令

test@1:~/UA/3.0/shell$ history 
 1180  ls
 1181  cd 1/
 1182  cd META-INF/com/
 1183  ls
 1184  sz updater-script
 1185  cd ../../../tmp/
 1186  cd META-INF/com/
 1187  ls
 1188  sz updater-script
 1189  ls
 1190  sudo vim updater-script
 1191  cd ../../
 1192  zip -ry ../test.zip *
 1193  sudo zip -ry ../test.zip *
 1194  cd ../
 1195  sudo python3 ua1.py 
 1196  vim xml/rawinst.xml
man

取的是manual手冊的意思,可以詳細的列出指令的所有引數和使用方法

man ls
LS(1)                                                                                User Commands                                                                                LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List information about the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

"> ,>>"

重定向

">" 覆蓋裡面的內容

test@1:~/UA/3.0/shell$ echo "321312231" > 1.txt
test@1:~/UA/3.0/shell$ cat 1.txt 
321312231
test@1:~/UA/3.0/shell$ echo "311111" > 1.txt
test@1:~/UA/3.0/shell$ cat 1.txt 
311111

">>" 追加 在之前的內容之後

test@1:~/UA/3.0/shell$ echo "dsasadsad" >> 1.txt
test@1:~/UA/3.0/shell$ cat 1.txt 
311111
dsasadsad
test@1:~/UA/3.0/shell$ 

壓縮和解壓

tar

命令做打包解包操作

tar [選項] 原始檔或目錄
-c 將多個檔案或目錄進行打包。
-A 追加 tar 檔案到歸檔檔案。
-f 包名 指定包的檔名。包的副檔名是用來給管理員識別格式的,所以一定要正確指定副檔名;
-v 顯示打包檔案過程;
-x 對 tar 包做解打包操作
-C 指定解打包位置。 
-z 壓縮和解壓縮 ".tar.gz" 格式;
-j 壓縮和解壓縮 ".tar.bz2"格式。

在使用 tar 命令指定選項時可以不在選項前面輸入“-”。例如,使用“cvf”選項和 “-cvf”起到的作用一樣

*.tar格式

打包

多個檔案逐一列出,使用-

test@1:~/UA/3.0/shell$ touch {1,2,3}.txt
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt
test@1:~/UA/3.0/shell$ tar -cvf test.tar 1.txt 2.txt 3.txt 
1.txt
2.txt
3.txt
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test.tar
test@1:~/UA/3.0/shell$

多個檔案逐一列出,不使用-

test@1:~/UA/3.0/shell$ tar cvf test1.tar 1.txt 2.txt 3.txt 
1.txt
2.txt
3.txt
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test1.tar  test.tar

*代表萬用字元所有檔案

test@1:~/UA/3.0/shell$ tar cvf test2.tar *.txt
1.txt
2.txt
3.txt
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test1.tar  test2.tar  test.tar
test@1:~/UA/3.0/shell$

解壓

test@1:~/UA/3.0/shell$ mkdir test1
test@1:~/UA/3.0/shell$ tar xvf test1.tar -C test1/
1.txt
2.txt
3.txt
test@1:~/UA/3.0/shell$ ls -l test1
total 4
-rw-rw-r-- 1 test test 17 Aug 19 03:27 1.txt
-rw-rw-r-- 1 test test  0 Aug 19 03:27 2.txt
-rw-rw-r-- 1 test test  0 Aug 19 03:27 3.txt
test@1:~/UA/3.0/shell$

*.tar.gz

打包

第一種方法:

test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt
test@1:~/UA/3.0/shell$ tar cvf test.tar *
1.txt
2.txt
3.txt
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test.tar
test@1:~/UA/3.0/shell$ gzip test.tar 
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test.tar.gz
test@1:~/UA/3.0/shell$

第二種方法:

test@1:~/UA/3.0/shell$ tar zcvf test1.tar.gz 1.txt 2.txt 3.txt 
1.txt
2.txt
3.txt
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test1.tar.gz  test.tar.gz
test@1:~/UA/3.0/shell$

解壓

test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test1.tar.gz  test.tar.gz
test@1:~/UA/3.0/shell$ mkdir test
test@1:~/UA/3.0/shell$ tar -zxvf test.tar.gz -C test/
1.txt
2.txt
3.txt
test@1:~/UA/3.0/shell$ ls -l test
total 12
-rw-rw-r-- 1 test test 10240 Aug 19 03:31 1.txt
-rw-rw-r-- 1 test test     0 Aug 19 03:27 2.txt
-rw-rw-r-- 1 test test     0 Aug 19 03:27 3.txt
test@1:~/UA/3.0/shell$

*.tar.bz2

打包

test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test
test@1:~/UA/3.0/shell$ tar -jcvf test2.tar.bz2 *
1.txt
2.txt
3.txt
test/
test/2.txt
test/3.txt
test/1.txt
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test  test2.tar.bz2

解壓

test@1:~/UA/3.0/shell$ mkdir test2
test@1:~/UA/3.0/shell$ tar jxvf test2.tar.bz2 -C test2/
1.txt
2.txt
3.txt
test/
test/2.txt
test/3.txt
test/1.txt
test@1:~/UA/3.0/shell$ ls -l test2
total 16
-rw-rw-r-- 1 test test 10240 Aug 19 03:31 1.txt
-rw-rw-r-- 1 test test     0 Aug 19 03:27 2.txt
-rw-rw-r-- 1 test test     0 Aug 19 03:27 3.txt
drwxrwxr-x 2 test test  4096 Aug 19 03:34 test
test@1:~/UA/3.0/shell$
zip

zip 壓縮命令需要手工指定壓縮之後的壓縮包名,注意寫清楚副檔名,以便解壓縮時使用。

zip [選項] 壓縮包名 原始檔或源目錄列表
-r 遞迴壓縮目錄,及將制定目錄下的所有檔案以及子目錄全部壓縮。
-m 將檔案壓縮之後,刪除原始檔案,相當於把檔案移到壓縮檔案中。
-v 顯示詳細的壓縮過程資訊。
-q 在壓縮的時候不顯示命令的執行過程。
-壓縮級別 壓縮級別是從 1~9 的數字,-1 代表壓縮速度更快,-9 代表壓縮效果更好。 
-u 更新壓縮檔案,即往壓縮檔案中新增新檔案。
-y 壓縮軟硬連結

示例:

壓縮

test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt
test@1:~/UA/3.0/shell$ zip test.zip *
  adding: 1.txt (deflated 99%)
  adding: 2.txt (stored 0%)
  adding: 3.txt (stored 0%)
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test.zip
test@1:~/UA/3.0/shell$ mkdir test

-r 遞迴

test@1:~/UA/3.0/shell$ zip -r test1.zip *
  adding: 1.txt (deflated 99%)
  adding: 2.txt (stored 0%)
  adding: 3.txt (stored 0%)
  adding: test/ (stored 0%)
  adding: test/2.txt (stored 0%)
  adding: test/3.txt (stored 0%)
  adding: test/1.txt (deflated 99%)
  adding: test.zip (stored 0%)
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt  test  test1.zip  test.zip
test@1:~/UA/3.0/shell$
unzip
-d 目錄名 將壓縮檔案解壓到指定目錄下。
-n 解壓時並不覆蓋已經存在的檔案。
-o 解壓時覆蓋已經存在的檔案,並且無需使用者確認。
-v 檢視壓縮檔案的詳細資訊,包括壓縮檔案中包含的檔案大小、檔名以及壓縮比等,但並不做解壓操作。
-t 測試壓縮檔案有無損壞,但並不解壓。
-x 檔案列表 解壓檔案,但不包含檔案列表中指定的檔案。

解壓

test@1:~/UA/3.0/shell$ unzip test.zip -d test
Archive:  test.zip
  inflating: test/1.txt              
 extracting: test/2.txt              
 extracting: test/3.txt              
test@1:~/UA/3.0/shell$ ls -l test
total 12
-rw-rw-r-- 1 test test 10240 Aug 19 03:31 1.txt
-rw-rw-r-- 1 test test     0 Aug 19 03:27 2.txt
-rw-rw-r-- 1 test test     0 Aug 19 03:27 3.txt
test@1:~/UA/3.0/shell$
gzip

gzip 命令只能用來壓縮檔案,不能壓縮目錄

gzip [選項] 原始檔
-c 將壓縮資料輸出到標準輸出中,並保留原始檔。
-d 對壓縮檔案進行解壓縮。 
-r 遞迴壓縮指定目錄下以及子目錄下的所有檔案。 
-v 對於每個壓縮和解壓縮的檔案,顯示相應的檔名和壓縮比。
-數字 用於指定壓縮等級,-1 壓縮等級最低,壓縮比最差;-9 壓縮比最高。預設壓縮比是 -6。 

進本使用,壓縮是會將原始檔刪除

test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt
test@1:~/UA/3.0/shell$ gzip 1.txt 
test@1:~/UA/3.0/shell$ ls
1.txt.gz  2.txt  3.txt

保留原始檔

test@1:~/UA/3.0/shell$ ls
1.txt.gz  2.txt  3.txt
test@1:~/UA/3.0/shell$ gzip -c 2.txt > 2.txt.gz
test@1:~/UA/3.0/shell$ ls
1.txt.gz  2.txt  2.txt.gz  3.txt
test@1:~/UA/3.0/shell$
gunzip

一個使用廣泛的解壓縮命令,它用於解壓被 gzip 壓縮過的檔案

gunzip [選項] 檔案
-r 遞迴處理,解壓縮指定目錄下以及子目錄下的所有檔案。
-c 把解壓縮後的檔案輸出到標準輸出裝置。
-f 強制解壓縮檔案,不理會檔案是否已存在等情況。 
-l 列出壓縮檔案內容。 
-v 顯示命令執行過程。 
-t 測試壓縮檔案是否正常,但不對其做解壓縮操作。

普通解壓

test@1:~/UA/3.0/shell$ ls
1.txt.gz  2.txt  2.txt.gz  3.txt
test@1:~/UA/3.0/shell$ gunzip 1.txt.gz 
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  2.txt.gz  3.txt
test@1:~/UA/3.0/shell$

解壓縮目錄下的壓縮包(-r)

test@1:~/UA/3.0/shell$ ls -l test/
total 12
-rw-rw-r-- 1 test test 125 Aug 19 03:31 1.txt.gz
-rw-rw-r-- 1 test test  26 Aug 19 03:27 2.txt.gz
-rw-rw-r-- 1 test test  26 Aug 19 03:27 3.txt.gz
test@1:~/UA/3.0/shell$ gunzip -r test/
test@1:~/UA/3.0/shell$ ls test/
1.txt  2.txt  3.txt
test@1:~/UA/3.0/shell$
bzip2

同 gzip 命令類似,只能對檔案進行壓縮(或解壓縮),對於目錄只能壓縮(或解壓縮)該目錄及子目錄下的所有檔案

bzip2 [選項] 原始檔 #原始檔指的要壓縮或解壓縮的檔案
-d 執行解壓縮,此時該選項後的原始檔應為標記有 .bz2 字尾的壓縮包檔案。
-k bzip2 在壓縮或解壓縮任務完成後,會刪除原始檔案,若要保留原始檔案,可使用此選項。
-f bzip2 在壓縮或解壓縮時,若輸出檔案與現有檔案同名,預設不會覆蓋現有檔案,若使用此選項,則會強制覆蓋現有檔案。
-t 測試壓縮包檔案的完整性。 
-v 壓縮或解壓縮檔案時,顯示詳細資訊。
-數字 這個引數和 gzip 命令的作用一樣,用於指定壓縮等級,-1 壓縮等級最低,壓縮比最差;-9 壓縮比最高
test@1:~/UA/3.0/shell$ touch {1,2,3}.txt
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt
test@1:~/UA/3.0/shell$ bzip2 1.txt 2.txt 3.txt 
test@1:~/UA/3.0/shell$ ls
1.txt.bz2  2.txt.bz2  3.txt.bz2
test@1:~/UA/3.0/shell$
bunzip2

使用和 gunzip 命令大致相同,bunzip2 命令只能用於解壓檔案

bunzip2 [選項] 原始檔
-k 解壓縮後,預設會刪除原來的壓縮檔案。若要保留壓縮檔案,需使用此引數。
-f 解壓縮時,若輸出的檔案與現有檔案同名時,預設不會覆蓋現有的檔案。若要覆蓋,可使用此選項。
-v 顯示命令執行過程。
-L 列出壓縮檔案內容。

".bz2" 格式也可以使用 "bzip2 -d 壓縮包" 命令來進行解壓縮

test@1:~/UA/3.0/shell$ ls
1.txt.bz2  2.txt.bz2  3.txt.bz2
test@1:~/UA/3.0/shell$ bunzip2 1.txt.bz2 
test@1:~/UA/3.0/shell$ bzip2 -d 2.txt.bz2 
test@1:~/UA/3.0/shell$ ls
1.txt  2.txt  3.txt.bz2
test@1:~/UA/3.0/shell$

檢視相關指令

cat

可以用來顯示文字檔案的內容,適合檢視小檔案

cat [選項] 檔名
-A 相當於 -vET 選項的整合,用於列出所有隱藏符號;
-E 列出每行結尾的回車符 $; 
-n 對輸出的所有行進行編號;
-b 同 -n 不同,此選項表示只對非空行進行編號。
-T 把 Tab 鍵 ^I 顯示出來;
-V 列出特殊字元;
-s 當遇到有連續 2 行以上的空白行時,就替換為 1 行的空白行。

cat 命令本身非常簡單,我們可以直接檢視檔案的內容

test@1:~/UA/3.0/shell$ touch 1.txt
test@1:~/UA/3.0/shell$ echo "2131223213123" > 1.txt
test@1:~/UA/3.0/shell$ cat 1.txt 
2131223213123

使用 "-n" 選項,則會顯示行號

test@1:~/UA/3.0/shell$ echo "2131223213123" > 1.txt
test@1:~/UA/3.0/shell$ 
test@1:~/UA/3.0/shell$ ls
1.txt
test@1:~/UA/3.0/shell$ cat -n 1.txt 
     1	2131223213123
test@1:~/UA/3.0/shell$

將檔案 file1.txt 和 file.txt 的內容合併後輸出到檔案 file3.txt 中

test@1:~/UA/3.0/shell$ echo "212321" > file.txt
test@1:~/UA/3.0/shell$ echo "wdasda" > file1.txt
test@1:~/UA/3.0/shell$ cat file.txt file1.txt > file3.txt
test@1:~/UA/3.0/shell$ cat file3.txt 
212321
wdasda
test@1:~/UA/3.0/shell$
more

命令可以分頁顯示文字檔案的內容,適合檢視大檔案

more [選項] 檔名
-f 計算行數時,以實際的行數,而不是自動換行過後的行數。
-p 不以捲動的方式顯示每一頁,而是先清除屏幕後再顯示內容。
-c 跟 -p 選項相似,不同的是先顯示內容再清除其他舊資料。
-s 當遇到有連續兩行以上的空白行時,就替換為一行的空白行。 
-u 不顯示下引號(根據環境變數 TERM 指定的終端而有所不同)。 
+n 從第 n 行開始顯示檔案內容,n 代表數字。
-n 一次顯示的行數,n 代表數字。

more 命令的執行會開啟一個互動介面

h 或 ? 顯示 more 命令互動命令幫助。
q 或 Q 退出 more。
回車鍵 向下移動一行。
空格鍵 向下移動一頁。
= 顯示當前行的行號。 
d 向下移動半頁。
b 向上移動一頁。

示例:

常規使用

test@1:~/UA/3.0/shell$ more ua.py

每 10 行顯示一屏,同時清楚螢幕

more -c -10 ua.py

顯示指定檔案前若干行的檔案內容

head [選項] 檔名
-n K 這裡的 K 表示行數,該選項用來顯示檔案前 K 行的內容;如果使用 "-K" 作為引數,則表示除了檔案最後 K 行外,顯示剩餘的全部內容。
-v 顯示檔名;

常規使用

head ua.py #預設顯示前10行

顯示開頭指定多少行

head -n 15 ua.py #第一種
head -15 ua.py  #第二種
tail

和 head 命令正好相反,它用來檢視檔案末尾的資料

 tail [選項] 檔名
-n K 這裡的 K 指的是行數,該選項表示輸出最後 K 行,在此基礎上,如果使用 -n +K,則表示從檔案的第 K 行開始輸出。
-f 輸出檔案變化後新增加的資料。

常規使用 預設顯示後10行

tail ua.py

指定顯示行數

tail -n 5 ua.py

tail 命令有一種比較有趣的用法,可以使用 "-f" 選項來監聽檔案的新増內容

test@1:~/UA/3.0/shell$ tail -f 1.txt 
2131223213123

追加

test@1:~/UA/3.0/shell$ echo "2eqwewqewqeq" >> 1.txt 
test@1:~/UA/3.0/shell$ echo "2eqwewqewqeq" >> 1.txt 
test@1:~/UA/3.0/shell$ echo "2eqwewqewqeq" >> 1.txt 
test@1:~/UA/3.0/shell$ echo "2eqwewqewqe1q" >> 1.txt

此時-f 顯示 #游標不會退出檔案,而會一直監聽在檔案的結尾處

test@1:~/UA/3.0/shell$ tail -f 1.txt 
2131223213123
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqe1q
grep

grep 命令是用來在每一個檔案或中(或特定輸出上)搜尋特定的模式

grep [選項] 模式 檔名

萬用字元

.  將匹配任何一個字元,且只能是一個字元。
[xyz] 匹配方括號中的任意一個字元。
[^xyz] 匹配除方括號中字元外的所有字元。
^ 鎖定行的開頭。 
$ 鎖定行的結尾。

選項

-c 僅列出檔案中包含模式的行數。
-i 忽略模式中的字母大小寫。
-l 列出帶有匹配行的檔名。 
-n 在每一行的最前面列出行號。
-v 列出沒有匹配模式的行。

常規使用

test@1:~/UA/3.0/shell$ grep 1 *
1.txt:2131223213123
1.txt:2eqwewqewqe1q
file3.txt:212321
file.txt:212321
test@1:~/UA/3.0/shell$ grep 1 1.txt 
2131223213123
2eqwewqewqe1q

多個條件

test@1:~/UA/3.0/shell$ grep -e "1" -e "2" 1.txt 
2131223213123
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqe1q
test@1:~/UA/3.0/shell$ grep [1,2,e]  1.txt 
2131223213123
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqe1q
test@1:~/UA/3.0/shell$

不區分大小寫

test@1:~/UA/3.0/shell$ grep -i E 1.txt 
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqe1q

列印行號

test@1:~/UA/3.0/shell$ grep -i E -n 1.txt 
2:2eqwewqewqeq
3:2eqwewqewqeq
4:2eqwewqewqeq
5:2eqwewqewqe1q

不包含的行號

test@1:~/UA/3.0/shell$ cat 1.txt 
2131223213123
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqe1q
test@1:~/UA/3.0/shell$ grep -v e  1.txt 
2131223213123
test@1:~/UA/3.0/shell$

匹配行首

test@1:~/UA/3.0/shell$ cat 1.txt 
2131223213123
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqe1q
test@1:~/UA/3.0/shell$ grep ^21  1.txt 
2131223213123
test@1:~/UA/3.0/shell$

匹配行尾

test@1:~/UA/3.0/shell$ cat 1.txt 
2131223213123
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqeq
2eqwewqewqe1q
test@1:~/UA/3.0/shell$ grep 1q$  1.txt 
2eqwewqewqe1q
test@1:~/UA/3.0/shell$
passwd
passwd [選項] 使用者名稱
[root@localhost ~]#passwd
#passwd直接回車代表修改當前使用者的密碼
Changing password for user vbird2.
Changing password for vbird2
(current) UNIX password: <==這裡輸入『原有的舊口令』
New password: <==這裡輸入新口令
BAD PASSWORD: it is WAY too short <==口令檢驗不通過,請再想個新口令
New password: <==這裡再想個來輸入吧
Retype new password: <==通過口令驗證!所以重複這個口令的輸入
passwd: all authentication tokens updated successfully. <==成功修改使用者密碼
chgrp

用於修改檔案(或目錄)的所屬組。

chgrp [-R] 所屬組 檔名(目錄名)

修改檔案所屬的組為root

test@1:~/UA/3.0/shell$ touch 1.txt
test@1:~/UA/3.0/shell$ ls -l 
total 0
-rw-rw-r-- 1 test test 0 Aug 19 04:54 1.txt
test@1:~/UA/3.0/shell$ sudo chgrp root  1.txt 
test@1:~/UA/3.0/shell$ ls -l 1.txt 
-rw-rw-r-- 1 test root 0 Aug 19 04:54 1.txt
test@1:~/UA/3.0/shell$
chown

用於修改檔案(或目錄)的所有者

chown [-R] 所有者 檔案或目錄
root@localhost ~]# sudo touch file
#由root使用者建立file檔案
[root@localhost ~]# ll file
-rw-r--r--. 1 root root 0 Apr 17 05:12 file
#檔案的所有者是root,普通使用者test對這個檔案擁有隻讀許可權
[root@localhost ~]# chown test file
#修改檔案的所有者
[root@localhost ~]# ll file
-rw-r--r--. 1 test root 0 Apr 17 05:12 file
#所有者變成了test使用者,這時test使用者對這個檔案就擁有了讀、寫許可權
chmod

通過 chmod 命令即可。chmod 命令設定檔案許可權的方式有 2 種,分別可以使用數字或者符號來進行許可權的變更

Linux 系統中,檔案的基本許可權由 9 個字元組成,以 rwxrw-r-x 為例,我們可以使用數字來代表各個許可權,各個許可權與數字的對應關係如下:

r --> 4
w --> 2
x --> 1

由於這 9 個字元分屬 3 類使用者,因此每種使用者身份包含 3 個許可權(r、w、x),通過將 3 個許可權對應的數字累加,最終得到的值即可作為每種使用者所具有的許可權。

拿 rwxrw-r-x 來說,所有者、所屬組和其他人分別對應的許可權值為:

所有者 = rwx = 4+2+1 = 7
所屬組 = rw- = 4+2 = 6
其他人 = r-x = 4+1 = 5

所以,此許可權對應的許可權值就是 765。

chmod [-R] 許可權值 檔名

示例

數字的形式修改許可權

test@1:~/UA/3.0/shell$ touch 1
test@1:~/UA/3.0/shell$ ls -l 
total 0
-rw-rw-r-- 1 test test 0 Aug 19 05:42 1
test@1:~/UA/3.0/shell$ chmod 777 1 
test@1:~/UA/3.0/shell$ ls -l 1 
-rwxrwxrwx 1 test test 0 Aug 19 05:42 1

使用字母修改檔案許可權

基本許可權就是 3 種使用者身份(所有者、所屬組和其他人)搭配 3 種許可權(rwx),chmod 命令中用 u、g、o 分別代表 3 種身份,還用 a 表示全部的身份(all 的縮寫)。另外,chmod 命令仍使用 r、w、x 分別表示讀、寫、執行許可權。

如果我們要設定 test 檔案的許可權為 rwxr-xr-x,則可執行如下命令:

test@1:~/UA/3.0/shell$ chmod u=rwx,go=rx test
test@1:~/UA/3.0/shell$ ls -l 1 
-rwxr-xr-x 1 test test 0 Aug 19 05:42 test
test@1:~/UA/3.0/shell$

要增加 test 檔案的每種使用者都可做寫操作的許可權

test@1:~/UA/3.0/shell$ ls -l test 
---x--x--x 1 test test 0 Aug 19 05:42 test
test@1:~/UA/3.0/shell$ chmod a+w test 
test@1:~/UA/3.0/shell$ ls -l test 
--wx-wx-wx 1 test test 0 Aug 19 05:42 test
test@1:~/UA/3.0/shell$
su、sudo、su - root

su和sudo的區別

共同點:都是root使用者許可權;
不同點:su只獲得root許可權,工作環境不變,還是在切換之前使用者的工作環境;sudo是完全獲得root的許可權和root的工作環境。
sudo:表示獲取臨時的root許可權執行命令。
sudo執行命令的流程:

1、當前使用者切換到root(或其他指定切換到的使用者), 2、以root(或其他指定的切換到的使用者)身份執行命令, 3、執行完成後,直接退回到當前使用者,而這些的前提是要通過sudo的配置檔案/etc/sudoers來進行授權。

su - root和su root區別

su - root:以root身份登入
su root:與root建立一個連線,通過root執行命令。
最直接的區別是su目錄還是原先使用者目錄,su - root後目錄就變為root使用者的主目錄。

df

用於顯示 Linux 系統中各檔案系統的硬碟使用情況,包括檔案系統所在硬碟分割槽的總容量、已使用的容量、剩餘容量等。

df [選項] [目錄或檔名]
-a 顯示所有檔案系統資訊,包括系統特有的 /proc、/sysfs 等檔案系統;
-m 以 MB 為單位顯示容量;
-k 以 KB 為單位顯示容量,預設以 KB 為單位;
-h 使用人們習慣的 KB、MB 或 GB 等單位自行顯示容量;
-T 顯示該分割槽的檔案系統名稱;
-i 不用硬碟容量顯示,而是以含有 inode 的數量來顯示。

預設情況 (kb 單位)

test@1:~/UA/3.0/shell$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
udev             4004004        0   4004004   0% /dev
tmpfs             806904     9516    797388   2% /run
/dev/sda2      479089456 31510584 423219448   7% /
tmpfs            4034516      264   4034252   1% /dev/shm
tmpfs               5120        4      5116   1% /run/lock
tmpfs            4034516        0   4034516   0% /sys/fs/cgroup
/dev/sda1         523248     3760    519488   1% /boot/efi
tmpfs             806904       48    806856   1% /run/user/1000

本例中,由 df 命令顯示出的各列資訊的含義分別是:

  • Filesystem:表示該檔案系統位於哪個分割槽,因此該列顯示的是裝置名稱;
  • 1K-blocks:此列表示檔案系統的總大小,預設以 KB 為單位;
  • Used:表示用掉的硬碟空間大小;
  • Available:表示剩餘的硬碟空間大小;
  • Use%:硬碟空間使用率。如果使用率高達 90% 以上,就需要額外注意,因為容量不足,會嚴重影響系統的正常執行;
  • Mounted on:檔案系統的掛載點,也就是硬碟掛載的目錄位置。
du

統計目錄或檔案所佔磁碟空間大小的命令。

du [選項] [目錄或檔名]
-a:顯示每個子檔案的磁碟佔用量。預設只統計子目錄的磁碟佔用量
-h:使用習慣單位顯示磁碟佔用量,如 KB、MB 或 GB 等;
-s:統計總磁碟佔用量,而不列出子目錄和子檔案的磁碟佔用量

常規使用

統計當前目錄的總磁碟佔用量大小,同時會統計當前目錄下所有子目錄的磁碟佔用量大小,不統計子檔案
磁碟佔用量的大小。預設單位為KB

test@1:~/UA/3.0/shell$ du
194084	./img
194088	.

另外2種

test@1:~/UA/3.0/shell$ du -s
194088	.
test@1:~/UA/3.0/shell$ du -sh
190M	.
test@1:~/UA/3.0/shell$ 
mount

掛載,掛載指的是將硬體裝置的檔案系統和 Linux 系統中的檔案系統

mount -l 會顯示出系統中已掛載的裝置資訊,使用 -l 選項,會額外顯示出卷標名稱

test@1:~/UA/3.0/shell$ mount -l
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=4004004k,nr_inodes=1001001,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=806904k,mode=755)
/dev/sda2 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup 

mount [-t 系統型別] [-L 卷標名] [-o 特殊選項] [-n] 裝置檔名 掛載點
-t 系統型別:指定欲掛載的檔案系統型別。
-L 卷標名:除了使用裝置檔名(例如 /dev/hdc6)之外,還可以利用檔案系統的卷標名稱進行掛載。
-n:在預設情況下,系統會將實際掛載的情況實時寫入 /etc/mtab 檔案中,但在某些場景下(例如單人維護模式),為了避免出現問題,會刻意不寫入,此時就需要使用這個選項;
-o 特殊選項:可以指定掛載的額外選項,比如讀寫許可權、同步/非同步等,如果不指定,則使用預設值(defaults)
rw/ro	是否對掛載的檔案系統擁有讀寫許可權,rw 為預設值,表示擁有讀寫許可權;ro 表示只讀許可權。
async/sync	此檔案系統是否使用同步寫入(sync)或非同步(async)的記憶體機制,預設為非同步 async。
dev/nodev	是否允許從該檔案系統的 block 檔案中提取資料,為了保證資料安裝,預設是 nodev。
auto/noauto	是否允許此檔案系統被以 mount -a 的方式進行自動掛載,預設是 auto。
suid/nosuid	設定檔案系統是否擁有 SetUID 和 SetGID 許可權,預設是擁有。
exec/noexec	設定在檔案系統中是否允許執行可執行檔案,預設是允許。
user/nouser	設定此檔案系統是否允許讓普通使用者使用 mount 執行實現掛載,預設是不允許(nouser),僅有 root 可以。
defaults	定義預設值,相當於 rw、suid、dev、exec、auto、nouser、async 這 7 個選項。
remount	重新掛載已掛載的檔案系統,一般用於指定修改特殊許可權。

示例:

test@1:~/UAWORK/file/source/_temp_$ mkdir system
test@1:~/UAWORK/file/source/_temp_$ mount -o loop -t ext4 my_sparse.img system/
mount: only root can use "--options" option
test@1:~/UAWORK/file/source/_temp_$ sudo mount -o loop -t ext4 my_sparse.img system/
[sudo] password for test: 
test@1:~/UAWORK/file/source/_temp_$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
udev             4004004        0   4004004   0% /dev
tmpfs             806904     9516    797388   2% /run
/dev/sda2      479089456 31704684 423025348   7% /
tmpfs            4034516      264   4034252   1% /dev/shm
tmpfs               5120        4      5116   1% /run/lock
tmpfs            4034516        0   4034516   0% /sys/fs/cgroup
/dev/sda1         523248     3760    519488   1% /boot/efi
tmpfs             806904       52    806852   1% /run/user/1000
/dev/loop0       5078656  1503364   3558908  30% /home/test/UAWORK/file/source/_temp_/system
umount

用於解除安裝已經掛載的硬體裝置

umount 裝置檔名或掛載點
test@1:~/UAWORK/file/source/_temp_$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
udev             4004004        0   4004004   0% /dev
tmpfs             806904     9516    797388   2% /run
/dev/sda2      479089456 31704684 423025348   7% /
tmpfs            4034516      264   4034252   1% /dev/shm
tmpfs               5120        4      5116   1% /run/lock
tmpfs            4034516        0   4034516   0% /sys/fs/cgroup
/dev/sda1         523248     3760    519488   1% /boot/efi
tmpfs             806904       52    806852   1% /run/user/1000
/dev/loop0       5078656  1503364   3558908  30% /home/test/UAWORK/file/source/_temp_/system
test@1:~/UAWORK/file/source/_temp_$ sudo umount system/
test@1:~/UAWORK/file/source/_temp_$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
udev             4004004        0   4004004   0% /dev
tmpfs             806904     9516    797388   2% /run
/dev/sda2      479089456 31704708 423025324   7% /
tmpfs            4034516      264   4034252   1% /dev/shm
tmpfs               5120        4      5116   1% /run/lock
tmpfs            4034516        0   4034516   0% /sys/fs/cgroup
/dev/sda1         523248     3760    519488   1% /boot/efi
tmpfs             806904       52    806852   1% /run/user/1000
md5sum

md5校驗

test@1:~/UA/3.0/shell$ md5sum img/xaa 
6b1a340fd2dc81aba3192db5e9b6477e  img/xaa
test@1:~/UA/3.0/shell$ cp img/xaa img/aaaaa
test@1:~/UA/3.0/shell$ md5sum img/aaaaa 
6b1a340fd2dc81aba3192db5e9b6477e  img/aaaaa
test@1:~/UA/3.0/shell$
sha1sum

sha1校驗

test@1:~/UA/3.0/shell$ sha1sum img/xaa 
39f420fabcf83c60c36b4a133e43ce423fb8afb4  img/xaa
test@1:~/UA/3.0/shell$ cp img/xaa img/aaaaa 
test@1:~/UA/3.0/shell$ sha1sum img/aaaaa 
39f420fabcf83c60c36b4a133e43ce423fb8afb4  img/aaaaa
test@1:~/UA/3.0/shell$