Linux常用命令(本篇包括,Linux目錄結構介紹、Linux Shell介紹、9個常見命令介紹、文件的概念、文件的操作(20個)、目錄的操作、文件和目錄的權限、文件壓縮及解壓縮)

Linux常用命令(本篇包括,Linux目錄結構介紹、Linux Shell介紹、9個常見命令介紹、文件的概念、文件的操作(20個)、目錄的操作、文件和目錄的權限、文件壓縮及解壓縮)
            
            https://truedei.blog.csdn.net/article/details/105319294
                
                    
                                        
                                        
                                        
                                        
                                        
                                                                                    
                         VIP文章
                                                                                                    TrueDei
                    2020-04-04 23:18:55
                    
                    2276
                    
                        
                        
                        已收藏
                        
                                                42                                                
                    
                                        
                    原力計劃
                                        
                
                                
                
                
                                                                展開
                                    
            
        
    
    
        
        
            
            
                
                
                    Linux系統管理與Shell編程
                    本專欄是面向無Linux基礎,或者想提升自己的同學。可以幫助0基礎的想學Linux的朋友掌握到很硬的Linux知識,完全沒基礎的也可以學明白,我會結合大量的圖片和gif圖片的形式來說明一些問題,可以讓你更清晰的瞭解整個過程。
                    TrueDei
                
                
                
                    ¥9.90
                    
                                                                                                            訂閱專欄
                                                                        
                
            

    
        
                 
            
                            
                    
                    
                                            介紹

我認爲把知識給別人講會,講明白,自己才徹底明白。
努力把文章寫好,寫明白每一篇文章,分享給更多人。
一個贊、一個評論、一個關注,真的好開心,努力沒有白費,得到了這麼多人的認可。

到現在已經有6-7年的經驗。跟多網友都想讓我出一個關於Linux的專欄,也有一個出版社找過我讓我出書,我都謝絕了,因爲我覺得自己還不夠資格。
經過幾百位粉絲的認可,我最終還是決定把這一系列的文章寫出來。
如果大家想了解我,可以看:這篇文章能讓你更瞭解我
也開可以看一下這篇,是否喜歡我寫文章的風格:vi/vim虐我千百遍,我待vi/vim如初戀
我會結合大量的圖片以及gif動態圖片的形式來展現一些很難理解的內容,可以讓你更直觀的看細節,更容易理解。
專欄地址:點我直達專欄首頁
專欄內容:專欄覆蓋內容,點我可瞭解,不斷更新中

本篇包括: Linux目錄結構介紹、Linux Shell介紹、9個常見命令介紹、文件的概念、文件的操作(20個)、目錄的操作、文件和目錄的權限、文件壓縮及解壓縮。

文章目錄介紹一、開篇點題二、目錄結構介紹三、Linux shell簡單介紹四、常用簡單命令echo命令date命令cal命令bc/quit命令whoami命令who命令w命令whereis命令clear命令五、文件概念及操作命令(一)文件概念(二)常用操作命令1、顯示文件目錄列表(1)ls命令2、創建、移動、複製、刪除文件的命令(1)創建文件:`touch`(2)移動文件:`mv`(3)拷貝文件:`cp`(4)刪除文件:`rm`3、顯示文件內容命令(1)more命令(2)less命令(3)head命令(4)tail命令(5)cat命令4、查找、排序文件內容的命令(1)find命令(查找文件)(2)grep命令(在文件中查找匹配的字符串)(3)sort命令(排序命令)5、鏈接文件的命令(1)硬鏈接(2)軟連接(符號鏈接)6、文件內容統計命令(1)wc命令7、文件重定向和管道(1)>,<,>>,|六、目錄操作命令1、創建目錄(mkdir)2、刪除目錄(rmdir)3、改變工作目錄和顯示目錄內容的命令4、改變文件/目錄存取權限的命令(chmod)七、文件壓縮與幫助命令1、tar命令2、gzip命令3、unzip命令4、zgrep命令
一、開篇點題

與UNIX操作系統相同,LInux系統也提供了大量的命令。使用系統命令是和Linux操作系統交流的最直接的方式。


在Linux環境下,利用命令可以有效的完成大量的工作,例如:文件操作、目錄、進程管理、文件權限配置、存儲配置等。


所以,在Linux系統上工作,離不開系統提供的這些常用的命令。如果你能掌握這些命令,對你的幫助也是很大的,工作效率也會提高。如果你是windows黨的話,可能就會質疑了,我有圖形界面的windows這麼好用,爲啥要用linux呢?這個疑問,先暫時放一放,一定會解開的。

通過前面一篇文章的學習,我們已經能夠獨立安裝Linux系統了,那接下來我們來熟悉一下Linux系統各個目錄、和常用命令。
二、目錄結構介紹
經過前面的學習,詳細你一定可以獨立安裝一個Linux系統了,那麼接下來我們熟悉一下Linux系統裏面的各個目錄文件夾的大致功能。
[root@localhost ~]# ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
123
可以看到目錄樹主要有:/、/root、/home、/bin、dev、boot、etc、root等
可以使用tree程序來查看目錄樹,如果顯示:
[root@localhost ~]# 
[root@localhost ~]# tree
bash: tree: 未找到命令...
[root@localhost ~]# 
1234
您可以使用 yum -y install tree來安裝tree程序
tree基本語法:
直接tree 則等於tree .都查詢當前目錄下的目錄樹
如果想查詢其他目錄,也很簡單,直接在tree後加要查詢的目錄就好。
例如:tree /如果你真的執行了,請按CTRL+C停止掉現在的進程,不然會把所有的目錄都查一遍。
如果查詢第一層則:tree / -L 1
結果如下:(因爲我這個下面有很多我自己創建的,所以不要在意爲什麼和你的不一樣)
[root@zh ~]# tree / -L  1
/
├── bin -> usr/bin
├── boot
├── code
├── data
├── dev
├── etc
├── frp_0.30.0_darwin_amd64.tar.gz
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── soft
├── srv
├── sys
├── tmp
├── usr
└── var

23 directories, 1 file
[root@zh ~]# 
1234567891011121314151617181920212223242526272829
下面這個圖則比較簡潔的表達了以/爲首的結構。

重要目錄的功能以及作用:

/bin


顯而易見,bin 就是二進制(binary)英文縮寫。


/boot


在這個目錄下存放的都是系統啓動時要用到的程序。


/dev


目錄中包含了所有linux系統中使用的外部設備。但是這裏並不是放的外部設備的驅動程序。


/etc


是linux系統中最重要的目錄之一。存放了系統管理時要用到的各種配置文件和子目錄。


/home


存放用戶的主目錄。例如:/home/zhenghui


/lib


存放系統動態連接共享庫的。


/mnt


這個目錄在一般情況下也是空的。可以臨時將別的文件系統掛在這個目錄下。


/proc


可以在這個目錄下獲取系統信息。這些信息是在內存中,由系統自己產生的。


/root


如果用戶是以超級用戶的身份登錄的,這個就是超級用戶的主目錄。


/sbin


存放系統管理程序


/tmp


用來存放不同程序執行時產生的臨時文件。


/usr


這是linux系統中佔用硬盤空間最大的目錄。用戶的很多應用程序和文件都存放在這個目錄下。


/var


存放着不斷在擴充的東西。

三、Linux shell簡單介紹
在介紹常用命令之前shell還是很有必要要先介紹的,因爲所有執行的命令都是在shell下執行的。
這裏簡單介紹下,因爲以後還會專門學shell編程

Linux終端也稱爲虛擬控制檯。一臺計算機的輸入輸出設備就是一個物理的控制檯。


計算機上用軟件的方法實現了多個互不干擾獨立工作的控制檯界面,就是實現了多個虛擬控制檯。


Linux終端的工作方式是字符命令行方式,用戶通過鍵盤輸入命令進行操作,可以通過Linux終端對系統進行控制。


用戶在提示符之後輸入命令,由shell予以解釋執行。Shell是Linux內核與用戶的交互界面,Linux系統提供的命令需在shell環境(命令行界面)下運行。

四、常用簡單命令
echo命令
學習計算機離不開大名鼎鼎的hello world,初次與linux打交道,還是先打印一個hello world吧
語法格式:echo [打印的數據]

date命令
date是顯示日期的一個命令,提供了豐富的命令組合格式。很強大,但是不能保證日期的正確性,因爲查詢的是系統的時間,並不是公共的時間服務器的時間例如:NTP時間服務器。
語法格式:date 選項 顯示時間格式(以+號開頭,後面加格式)

常用選項:-u  使用格林威治時間
常用時間格式:


%T/%r:顯示時間格式hh:mm:ss/hh:mm:ss上午或下午
%D:日期mm/dd/yy
%d:顯示日期01-31
%m:顯示月份03
%Y:年2003
%a/%A(星期幾的簡稱/全名)
%n(換行)

如下:

更全的格式:
  %%    一個文字的 %
  %a    當前locale 的星期名縮寫(例如: 日,代表星期日)
  %A    當前locale 的星期名全稱 (如:星期日)
  %b    當前locale 的月名縮寫 (如:一,代表一月)
  %B    當前locale 的月名全稱 (如:一月)
  %c    當前locale 的日期和時間 (如:2005年3月3日 星期四 23:05:25)
  %C    世紀;比如 %Y,通常爲省略當前年份的後兩位數字(例如:20)
  %d    按月計的日期(例如:01)
  %D    按月計的日期;等於%m/%d/%y
  %e    按月計的日期,添加空格,等於%_d
  %F    完整日期格式,等價於 %Y-%m-%d
  %g    ISO-8601 格式年份的最後兩位 (參見%G)
  %G    ISO-8601 格式年份 (參見%V),一般只和 %V 結合使用
  %h    等於%b
  %H    小時(00-23)
  %I    小時(00-12)
  %j    按年計的日期(001-366)
  %k   hour, space padded ( 0..23); same as %_H
  %l   hour, space padded ( 1..12); same as %_I
  %m   month (01..12)
  %M   minute (00..59)
  %n    換行
  %N    納秒(000000000-999999999)
  %p    當前locale 下的"上午"或者"下午",未知時輸出爲空
  %P    與%p 類似,但是輸出小寫字母
  %r    當前locale 下的 12 小時時鐘時間 (如:11:11:04 下午)
  %R    24 小時時間的時和分,等價於 %H:%M
  %s    自UTC 時間 1970-01-01 00:00:00 以來所經過的秒數
  %S    秒(00-60)
  %t    輸出製表符 Tab
  %T    時間,等於%H:%M:%S
  %u    星期,1 代表星期一
  %U    一年中的第幾周,以週日爲每星期第一天(00-53)
  %V    ISO-8601 格式規範下的一年中第幾周,以週一爲每星期第一天(01-53)
  %w    一星期中的第幾日(0-6),0 代表週一
  %W    一年中的第幾周,以週一爲每星期第一天(00-53)
  %x    當前locale 下的日期描述 (如:12/31/99)
  %X    當前locale 下的時間描述 (如:23:13:48)
  %y    年份最後兩位數位 (00-99)
  %Y    年份
  %z +hhmm        數字時區(例如,-0400)
  %:z +hh:mm        數字時區(例如,-04:00)
  %::z +hh:mm:ss    數字時區(例如,-04:00:00)
  %:::z            數字時區帶有必要的精度 (例如,-04,+05:30)
  %Z            按字母表排序的時區縮寫 (例如,EDT)

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
cal命令
cal是查看日曆的命令。
如下:
[root@localhost ~]# 
[root@localhost ~]# cal
      四月 2020     
日 一 二 三 四 五 六
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

[root@localhost ~]# 
[root@localhost ~]# cal -m  2020
                               2020                               

        一月                   二月                   三月        
一 二 三 四 五 六 日   一 二 三 四 五 六 日   一 二 三 四 五 六 日
       1  2  3  4  5                   1  2                      1
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    2  3  4  5  6  7  8
13 14 15 16 17 18 19   10 11 12 13 14 15 16    9 10 11 12 13 14 15
20 21 22 23 24 25 26   17 18 19 20 21 22 23   16 17 18 19 20 21 22
27 28 29 30 31         24 25 26 27 28 29      23 24 25 26 27 28 29
                                              30 31
        四月                   五月                   六月        
一 二 三 四 五 六 日   一 二 三 四 五 六 日   一 二 三 四 五 六 日
       1  2  3  4  5                1  2  3    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    4  5  6  7  8  9 10    8  9 10 11 12 13 14
13 14 15 16 17 18 19   11 12 13 14 15 16 17   15 16 17 18 19 20 21
20 21 22 23 24 25 26   18 19 20 21 22 23 24   22 23 24 25 26 27 28
27 28 29 30            25 26 27 28 29 30 31   29 30

        七月                   八月                   九月        
一 二 三 四 五 六 日   一 二 三 四 五 六 日   一 二 三 四 五 六 日
       1  2  3  4  5                   1  2       1  2  3  4  5  6
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    7  8  9 10 11 12 13
13 14 15 16 17 18 19   10 11 12 13 14 15 16   14 15 16 17 18 19 20
20 21 22 23 24 25 26   17 18 19 20 21 22 23   21 22 23 24 25 26 27
27 28 29 30 31         24 25 26 27 28 29 30   28 29 30
                       31
        十月                  十一月                 十二月       
一 二 三 四 五 六 日   一 二 三 四 五 六 日   一 二 三 四 五 六 日
          1  2  3  4                      1       1  2  3  4  5  6
 5  6  7  8  9 10 11    2  3  4  5  6  7  8    7  8  9 10 11 12 13
12 13 14 15 16 17 18    9 10 11 12 13 14 15   14 15 16 17 18 19 20
19 20 21 22 23 24 25   16 17 18 19 20 21 22   21 22 23 24 25 26 27
26 27 28 29 30 31      23 24 25 26 27 28 29   28 29 30 31
                       30

[root@localhost ~]# 

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
bc/quit命令
bc是一個命令行下的計算器:
輸入bc可以進入計算器
輸入相關的運算即可計算
輸入quit即可退出
[root@localhost ~]# 
[root@localhost ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

1+1
2

22222+55515*8521/7222
87722


quit
[root@localhost ~]# 

1234567891011121314151617
whoami命令
查看當前shell使用的賬戶名
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ whoami 
zhenghui
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ exit
exit
[root@localhost ~]# 
[root@localhost ~]# whoami 
root
[root@localhost ~]# 
123456789101112
who命令
查看又哪些當前有哪些用戶在系統的哪些終端中進行工作。
[root@localhost ~]# who
root     pts/0        2020-04-02 15:58 (:0)
root     :0           2020-03-25 11:03 (:0)
root     tty2         2020-03-25 11:33
root     pts/1        2020-04-02 15:58 (:0)
zhenghui tty3         2020-04-02 15:59
[root@localhost ~]# 
1234567
w命令
查看有哪些用戶登錄在線,同時顯示用戶的工作
[root@localhost ~]# w
 16:01:47 up 1 day,  3:26,  6 users,  load average: 0.01, 0.05, 0.15
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    :0               15:58    3.00s  0.04s  0.00s w
root     :0       :0               253月20 ?xdm?  55:25   0.42s /usr/libexec/gn
root     tty2                      253月20  2:43   0.07s  0.07s -bash
root     pts/1    :0               15:58    3:15   0.08s  0.05s bash
zhenghui tty3                      15:59    2:51   0.02s  0.02s -bash
[root@localhost ~]# 
123456789
whereis命令
查看命令的存放目錄(當你找一個程序的時候就可以使用此命令)
[root@localhost ~]# 
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
[root@localhost ~]# 
123456789
clear命令
當屏幕太多了,可以使用clear命令清理下當前的屏幕
清理前:
[root@localhost ~]# 
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# clear
1234567891011
清理後:
[root@localhost ~]# 
1
五、文件概念及操作命令
(一)文件概念

文件是一些相關信息的集合,有自己的名字、內容、存放地址以及其他一些管理信息(文件的用戶、大小等)。文件是Linux操作系統處理信息的基本單位。所有軟件都組織成文件。


當使用Linux命令對文件進行操作時,就可以訪問存儲在一個結構化環境中的信息。所有這些信息都存放在一個分層的結構中,可以方便且有序的管理數據。


重要的是,不僅應學會如何訪問這些數據,更應該學會如何控制對信息的訪問。對文件與目錄進行管理和維護是每個用戶最經常做的工作。

說明1:文件的成分

無論文件是一個程序、一個文檔、一個數據庫,還是一個目錄,操作系統都會賦予它同樣的結構。


索引結點:


又稱爲I節點,是在文件系統結構中,包含相應文件信息的一個記錄,這些信息包含文件權限、文件主、文件大小、存放位置、建立日期等。


數據:


文件的實際內容,它可以是空的,也可以非常大,並且有自己的結構。

說明2:Linux中對文件名的要求

長度在255個字符以內;
使用可見符號,避免使用特殊含義的字符串;
區分大小寫;
以圓點(.)開頭的文件是隱含文件,在默認方式下,用ls命令不能把它們顯示出來。

說明3:Linux中的文件類型
Linux系統中有三種基本的文件類型,分別爲:

普通文件:又分爲文本文件和二進制文件;
目錄文件:目錄文件存儲了一組相關文件的位置、大小等與文件有關的信息;
設備文件:Linux系統把每一個I/O設備都堪稱一個文件,與普通文件一樣處理,這樣可以使文件與設備的操作儘可能統一。

文件類型的表示符號:

 


符號
表示內容

 


-
常規文件


d
目錄文件


b
塊特殊設備


c
字符特殊設備文件


p
管道設備文件


l
鏈接文件


(二)常用操作命令

 


命令類型
命令

 


1、顯示文件目錄列表
ls


2、創建、移動、複製、刪除文件的命令
touch、mv、cp、rm


3、顯示文件內容命令
cat、more、less、head、tail


4、查找、排序文件內容的命令
find、grep、sort


5、鏈接文件的命令
ln


6、文件內容統計命令
wc


7、文件重定向和管道
>、|


1、顯示文件目錄列表
(1)ls命令
語法:ls [選項] [目錄路徑]
ls命令得功能是顯示文件列表。
例如:查看根“/”目錄下有什麼。
[root@localhost ~]# ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
[root@localhost ~]# 
1234
例如:我在自己得家目錄中直接執行ls會顯示什麼?
[zhenghui@localhost ~]$ pwd
/home/zhenghui
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ ls
公共  模板  視頻  圖片  文檔  下載  音樂  桌面
[zhenghui@localhost ~]$ 
1234567
會把當前目錄下的東西給顯示出來。爲什麼呢?
看下面這個例子,就知道了:
[zhenghui@localhost ~]$ ls .
公共  模板  視頻  圖片  文檔  下載  音樂  桌面
[zhenghui@localhost ~]$ 
123
那麼就得出:直接執行ls = 執行ls .,也就是說,如果ls命令後不加任何目錄的話,會查詢當前目錄下的文件。
ls --help:顯示ls命令的幫助信息。必會的一個命令
[zhenghui@localhost ~]$ ls --help
用法:ls [選項]... [文件]...
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            不隱藏任何以. 開始的項目
  -A, --almost-all        列出除. 及.. 以外的任何項目
      --author            與-l 同時使用時列出每個文件的作者
...
...
...
...
...
1234567891011121314
只介紹幾個比較常用的選項。
1、查看隱藏的文件:ls -a
[zhenghui@localhost ~]$ ls -a
.              .bash_profile  .dbus          .mozilla  視頻  音樂
..             .bashrc        .esd_auth      .viminfo  圖片  桌面
.bash_history  .cache         .ICEauthority  公共      文檔
.bash_logout   .config        .local         模板      下載
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ 
1234567
2、查看詳細的信息:ls -l
[zhenghui@localhost ~]$ ls -l
總用量 0
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 公共
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 模板
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 視頻
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 圖片
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 文檔
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 下載
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 音樂
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 桌面
[zhenghui@localhost ~]$ 
1234567891011
也可以多個連用
[zhenghui@localhost ~]$ ls -al
總用量 36
drwx------. 15 zhenghui zhenghui 4096 3月  25 10:57 .
drwxr-xr-x.  3 root     root       22 3月  12 18:01 ..
-rw-------.  1 zhenghui zhenghui  204 4月   2 15:55 .bash_history
-rw-r--r--.  1 zhenghui zhenghui   18 4月  11 2018 .bash_logout
-rw-r--r--.  1 zhenghui zhenghui  193 4月  11 2018 .bash_profile
-rw-r--r--.  1 zhenghui zhenghui  231 4月  11 2018 .bashrc
drwx------. 14 zhenghui zhenghui 4096 3月  24 00:19 .cache
drwxr-xr-x. 14 zhenghui zhenghui  261 3月  12 18:01 .config
drwx------.  3 zhenghui zhenghui   25 3月  12 18:01 .dbus
-rw-------.  1 zhenghui zhenghui   16 3月  12 18:01 .esd_auth
-rw-------.  1 zhenghui zhenghui  628 3月  25 10:25 .ICEauthority
drwx------.  3 zhenghui zhenghui   19 3月  12 18:01 .local
drwxr-xr-x.  4 zhenghui zhenghui   39 3月  12 17:45 .mozilla
-rw-------   1 zhenghui zhenghui  641 3月  25 10:57 .viminfo
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 公共
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 模板
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 視頻
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 圖片
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 文檔
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 下載
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 音樂
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 桌面
[zhenghui@localhost ~]$ 
12345678910111213141516171819202122232425
3、遞歸查詢/etc下的所有的文件:ls -Ra /etc
ls -Ra /etc
1
4、排序
默認(排序前):ls -l
[root@localhost ~]# ls -l
總用量 245816
-rw-------. 1 root root      1587 3月  12 17:55 anaconda-ks.cfg
-rw-r--r--. 1 root root      2489 3月  25 01:31 a.txt
drwxrwxr-x. 2 root root      4096 2月  18 10:17 bitmaps
drwxr-xr-x. 6 root root       217 3月  30 08:30 code
drwxr-xr-x. 5 root root       102 3月  25 08:11 HTML
-rw-r--r--. 1 root root     73393 3月  25 08:10 HTML.zip
-rw-r--r--. 1 root root      1635 3月  12 18:00 initial-setup-ks.cfg
drwxr-xr-x. 4 root root        33 3月  25 11:07 javacomplete
-rw-r--r--  1 root root     60635 3月  25 11:04 javacomplete0.77.1.2.zip
-rw-r--r--. 1 root root     30357 3月  25 09:20 javacomplete.zip
-rw-r--r--. 1 root root 195094741 10月  3 2019 jdk-8u221-linux-x64.tar.gz
drwxr-xr-x. 4 root root        52 3月  25 01:07 truedeivimrc
drwxr-xr-x. 7 root root        92 3月  24 23:52 vim-colors-solarized
-r--r--r--. 1 root root  56431201 3月  24 23:26 VMwareTools-10.3.10-13959562.tar.gz
drwxr-xr-x. 9 root root       145 6月  13 2019 vmware-tools-distrib
drwxr-xr-x. 2 root root         6 3月  23 23:00 公共
drwxr-xr-x. 2 root root         6 3月  23 23:00 模板
drwxr-xr-x. 2 root root         6 3月  23 23:00 視頻
drwxr-xr-x. 2 root root         6 3月  23 23:00 圖片
drwxr-xr-x. 2 root root         6 3月  23 23:00 文檔
drwxr-xr-x. 2 root root         6 3月  23 23:00 下載
drwxr-xr-x. 2 root root         6 3月  23 23:00 音樂
drwxr-xr-x. 2 root root        24 3月  25 09:18 桌面
[root@localhost ~]# 
1234567891011121314151617181920212223242526
按大小排序:
[root@localhost ~]# ls -l --sort=size
總用量 245816
-rw-r--r--. 1 root root 195094741 10月  3 2019 jdk-8u221-linux-x64.tar.gz
-r--r--r--. 1 root root  56431201 3月  24 23:26 VMwareTools-10.3.10-13959562.tar.gz
-rw-r--r--. 1 root root     73393 3月  25 08:10 HTML.zip
-rw-r--r--  1 root root     60635 3月  25 11:04 javacomplete0.77.1.2.zip
-rw-r--r--. 1 root root     30357 3月  25 09:20 javacomplete.zip
drwxrwxr-x. 2 root root      4096 2月  18 10:17 bitmaps
-rw-r--r--. 1 root root      2489 3月  25 01:31 a.txt
-rw-r--r--. 1 root root      1635 3月  12 18:00 initial-setup-ks.cfg
-rw-------. 1 root root      1587 3月  12 17:55 anaconda-ks.cfg
drwxr-xr-x. 6 root root       217 3月  30 08:30 code
drwxr-xr-x. 9 root root       145 6月  13 2019 vmware-tools-distrib
drwxr-xr-x. 5 root root       102 3月  25 08:11 HTML
drwxr-xr-x. 7 root root        92 3月  24 23:52 vim-colors-solarized
drwxr-xr-x. 4 root root        52 3月  25 01:07 truedeivimrc
drwxr-xr-x. 4 root root        33 3月  25 11:07 javacomplete
drwxr-xr-x. 2 root root        24 3月  25 09:18 桌面
drwxr-xr-x. 2 root root         6 3月  23 23:00 公共
drwxr-xr-x. 2 root root         6 3月  23 23:00 模板
drwxr-xr-x. 2 root root         6 3月  23 23:00 視頻
drwxr-xr-x. 2 root root         6 3月  23 23:00 圖片
drwxr-xr-x. 2 root root         6 3月  23 23:00 文檔
drwxr-xr-x. 2 root root         6 3月  23 23:00 下載
drwxr-xr-x. 2 root root         6 3月  23 23:00 音樂
[root@localhost ~]# 
1234567891011121314151617181920212223242526
技巧:善於使用幫助命令,例如這個排序:
就可以按時間排序、按大小排序、按版本排序等。
none (-U), size (-S),time (-t), version (-v), extension (-X)
[zhenghui@localhost ~]$ ls --help
......
  -S                         sort by file size
      --sort=WORD            sort by WORD instead of name: none (-U), size (-S),
                               time (-t), version (-v), extension (-X)
      --time=WORD            with -l, show time as WORD instead of default
                               modification time: atime or access or use (-u)
                               ctime or status (-c); also use specified time
                               as sort key if --sort=time
      --time-style=STYLE     with -l, show times using style STYLE:
                               full-iso, long-iso, iso, locale, or +FORMAT;
                               FORMAT is interpreted like in 'date'; if FORMAT
                               is FORMAT1<newline>FORMAT2, then FORMAT1 applies
                               to non-recent files and FORMAT2 to recent files;
                               if STYLE is prefixed with 'posix-', STYLE
                               takes effect only outside the POSIX locale
......
1234567891011121314151617
2、創建、移動、複製、刪除文件的命令

常用命令:

創建文件:touch
移動文件:mv
拷貝文件:cp
刪除文件:rm


(1)創建文件:touch
用法:touch [選項]... 文件...
可以看出,選項是可選的,可有可無,但是文件名是必須的。

例如:
[zhenghui@localhost ~]$ touch test.txt
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ ll
總用量 0
-rw-rw-r--  1 zhenghui zhenghui 0 4月   4 20:37 test.txt
12345
常用命令:


touch 1.txt    如果文件1.txt存在,則修改爲當前系統時間,否則創建一個當前系統時間的空文件。
touch *   將當前目錄下所以文件時間修改爲當前系統時間。
touch –d “18:50 03/04/2015” test  將test文件的時間修改爲2015年3月4日18點50分


更多可以使用幫助命令:
touch --help
1
(2)移動文件:mv
用法:


mv [選項]... [-T] 源文件 目標文件
或:mv [選項]... 源文件... 目錄
或:mv [選項]... -t 目錄 源文件...


常用選項:
-f:若目標文件已存在,不提示直接覆蓋已有文件。
-i:若目標文件有同名,則先詢問是否覆蓋已有文件。
-v:  詳細:顯示文件的移動速度。
例:


mv  abc  bbb
mv  /user/source/  /home/guest/src/
mv  –i  ./nic/*.png   ./pic


(3)拷貝文件:cp
用法:


cp [選項]... [-T] 源文件 目標文件
或:cp [選項]... 源文件... 目錄
或:cp [選項]... -t 目錄 源文件...


例:


cp  *.png .txt   /home
*cp   abc  bbb
cp   /user/source/*.c   /home/guest/c
cp   /etc/syslog.conf  ./
cp  -a mydir1 mydir2
cp  -a  /etc/sound/  /home/so/


注意:
如果源是目錄,則必須用-a選項;目錄可以寫成/c,也可以寫成./so/
(4)刪除文件:rm
用法:

rm [選項]... 文件...

常用選項:
-r:刪除目錄及以下所有內容,若不用此標誌則不刪除目錄。
-i:刪除前詢問確認。
-f:強行刪除。
-v:詳細:顯示文件的刪除速度。
例如:
rm  –i  /home/*.png
rm –r  /home/tmp
12
3、顯示文件內容命令
常用命令:

more、less、head、tail、cat

(1)more命令
用法:

more [選項] 文件...
顯示文件內容,每次顯示一屏文本,空格鍵顯示下一屏,按Q退出。

選項:
選項:
-d        顯示幫助,而不是響鈴
-f        統計邏輯行數而不是屏幕行數
-l        抑制換頁(form feed)後的暫停
-p        不滾屏,清屏並顯示文本
-c        不滾屏,顯示文本並清理行尾
-u        抑制下劃線
-s        將多個空行壓縮爲一行
-NUM      指定每屏顯示的行數爲 NUM
+NUM      從文件第 NUM 行開始顯示
+/STRING  從匹配搜索字符串 STRING 的文件位置開始顯示
-V        輸出版本信息並退出
123456789101112
例如:more -3 .bashrc
顯示文件.bashrc的內容,每3行顯示一次,按空格可以繼續顯示下3行。。

(2)less命令
方法:less [選項] 文件
分屏顯示文件的內容。按PageUp,PageDown翻頁。退出按Q。
(3)head命令
用法:

head [選項]... [文件]...


顯示指定文件的開頭若干行。顯示行數的默認值爲10.

選項:
-n,顯示前面n行。
-c n,顯示前面n個字節。
12
例如:
head -5 mfile
head –c 10 mfile
12
(4)tail命令
用法:

tail [選項]... [文件]...
顯示指定文件的末尾若干行。
顯示行數的默認值爲10。
若給定的文件不止一個,則在顯示的每個文件前面加一個文件名標題。

選項:

-n,顯示最後n行。


-c n,顯示最後n個字節。

例:
tail -5 mfile
tail -c 10 mfile
12
(5)cat命令
用法:

cat [選項]... [文件]...
將[文件]或標準輸入組合輸出到標準輸出。

選項:
-A, --show-all           等於-vET
-b, --number-nonblank    對非空輸出行編號
-e                       等於-vE
-E, --show-ends          在每行結束處顯示"$"
-n, --number             對輸出的所有行編號
-s, --squeeze-blank      不輸出多行空行
-t                       與-vT 等價
-T, --show-tabs          將跳格字符顯示爲^I
-u                       (被忽略)
-v, --show-nonprinting   使用^ 和M- 引用,除了LFD和 TAB 之外
--help        顯示此幫助信息並退出
--version        顯示版本信息並退出
123456789101112
注意:

Ctrl+S:停止滾屏
Ctrl+q:恢復滾屏
Ctrl+c:中斷命令

例如:

4、查找、排序文件內容的命令
常用命令:

find、grep、sort

(1)find命令(查找文件)
用法:

find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
默認路徑爲當前目錄;默認表達式爲 -print


find [查找目錄] [匹配標準]

重要選項:

例如:
find / ! -name httpd.conf –print
find / –name *http* -print
find /etc –size (-/+)2500 –print
find / –name “*.txt” -print
1234
下面是以時間特徵爲查找條件的find命令函數的參數:
amin n: 查找n分鐘以前被訪問過的所有文件.
atime n: 查找n天以前被訪問過的所有文件.
cmin n: 查找n分鐘以前文件狀態被修改過的所有文件.
ctime n: 查找n天以前文件狀態被修改過的所有文件.
mmin n: 查找n分鐘以前文件內容被修改過的所有文件.
mtime n: 查找n天以前文件內容被修改過的所有文件.

案例:

(2)grep命令(在文件中查找匹配的字符串)
用法:grep [選項] 文件
常用選項:

-v      只顯示不包括匹配字符串的文本行。
-c      只顯示文件中包含匹配字符串的行總數。
-x      只顯示整個行都嚴格匹配的行。
-n      在輸出包含匹配模式的行之前,加上該行的行號。
-i       產生不區分大小寫的匹配,默認區分大小寫。

例如:

(3)sort命令(排序命令)
用法:

sort [選項]… [文件]…
或:sort [選項]… --files0-from=F

常用選項:

-r             表示按照反序。
-d             按照字典順序排序。
-n             按照字符串的數字值。
-k             按照關鍵字或字段的位置排序。

例子:
原來的:

反序:

按照字典順序:

按照字符串的數字值:

5、鏈接文件的命令
常用命令:ln
什麼是鏈接文件呢?
windows下的快捷方式想必大家都知道,那麼這個鏈接(軟連接)可以簡單的想象成快捷方法,但是(硬鏈接)還不是快捷方式。
鏈接有兩種:

一種被稱爲硬鏈接(Hard Link);
另一種被稱爲符號鏈接(軟鏈接)(Symbolic Link)。

(1)硬鏈接

在硬鏈接的情況下,相當於一個文件的兩個副本,指向同一數據存儲區。

硬鏈接特點:

(1)兩個文件,長度相等,總長度不變。
(2)刪除其中一個文件,另一個仍然存在。
(3)修改其中一個文件,另一個也修改。

例如:

 

(2)軟連接(符號鏈接)

在符號鏈接的情況下,相當於一個文件的快捷方式。


特點:

(1)僅保存一個指針,長度小於原文件。
(2)刪除符號鏈接,不影響原文件。
(3)刪除原文件,符號鏈接即沒有意義。

例如:ln –s /root/1.txt /root/mydir


6、文件內容統計命令
(1)wc命令
用法:

wc [選項] 文件列表


統計指定文件中的字節數、字數、行數。
說明:
(1)如果沒有給出文件名,則從標準輸入讀取。
(2)wc同時也給出所有指定文件的總統計數。
(3)字是由空格字符區分開的最大字符串。

選項:

-c: 統計字節數,包括回車換行符、文件結束符。
-l:  統計行數。
-w:統計字數。

例如:

7、文件重定向和管道
(1)>,<,>>,|

​      在Linux系統中,執行一個shell命令行時通常會自動打開三個標準文件,即標準輸入文件(stdin),通常對應終端的鍵盤;標準輸出文件(stdout)和標準錯誤輸出文件(stderr),這兩個文件也都對應終端的屏幕。
​      Linux重定向可以將文件的標準輸出重新定向輸出到文件,或將數據文件作爲另一程序的標準輸入內容。

例如:
ls  -l

ls  -l >file.txt 或 ls –l>>file.txt
同理,可以用輸入重定向將文件作爲另一程序的標準輸入。

grep  keyword<file.txt
管道符‘|’,通常放在兩個命令之間,將前一個命令的輸出作爲下一個命令的輸入。

ls –a | grep  /bin

cat sample.txt|grep “High”|wc -l

ls --help |more
12345678910111213

六、目錄操作命令
創建目錄:mkdir
刪除目錄:rmdir
1、創建目錄(mkdir)
用法:

mkdir [選項]… 目錄…
如果目錄不存在,則創建

常用選項:


-m:創建目錄使,指定目錄的權限。

該目錄的權限分爲:目錄所有者的權限、組中其他人對目錄的權限和系統中其他人對目錄的權限。這三個權限分別用三個數字之和來表示:r(4)、w(2)、x(1)。


-p:創建目錄時,如果是創建多層目錄的話,如果父目錄有不存在的目錄,則根據需要創建父目錄。


例如:
mkdir tmp
mkdir /home/guest/mydir   /home/guest/src
mkdir –m 700 ./mail/等價於mkdir –m 700 mail
123
2、刪除目錄(rmdir)
刪除一個空的目錄:rmdir 目錄
[zhenghui@localhost ~]$ mkdir a
[zhenghui@localhost ~]$ rmdir a
12
如果是非空的:
[zhenghui@localhost ~]$ mkdir a
[zhenghui@localhost ~]$ mkdir a/aa
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ rmdir a
rmdir: 刪除 "a" 失敗: 目錄非空
12345
[zhenghui@localhost ~]$ rmdir -p a/aa/
1
3、改變工作目錄和顯示目錄內容的命令


顯示當前目錄:pwd


改變當前工作目錄:
cd [目錄名]


例如:
cd~    cd..
cd  /user/bin
cd  ../..
123
4、改變文件/目錄存取權限的命令(chmod)
用法:

chmod [選項]... 模式[,模式]... 文件...
或:chmod [選項]... 八進制模式 文件...
或:chmod [選項]... --reference=參考文件 文件...

chmod命令支持兩種文件權限設定的方法:

使用字符串設置權限  [ugoa] [±=rwx]
使用數字設置權限  [數字]

注意:

+表示增加權限;
-表示去除權限;
=表示設定權限。

常用選項:

-s   在文件執行時把進程的屬主或組ID置爲該文件的文件屬主。
-c   若該檔案權限確實已經更改,才顯示其更改動作
-f   若該檔案權限無法被更改也不要顯示錯誤訊息
-v   顯示權限變更的詳細資料
-R   對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞迴的方式逐個變更)


(1)使用字符串設置權限
chmod ugo+r  file.txt=chmod a+r  file.txt
chmod ug+w,o-w  file1.txt file2.txt
chmod –R  a+r  *

(2)使用八進制數設置權限
三個八進制數字分別代表ugo的權限。
讀r(4)、寫 w(2)、執行x(1)。
chmod 777 file1.txt=chmod a=rwx file.txt
chmod 772 file=chmod ug=rwx,o=w file

例如:


七、文件壓縮與幫助命令
比較常用的文件壓縮/解壓縮命令有:gzip,unzip,tar
1、tar命令
用法:

用法: tar [選項…] [FILE]…

常用操作選項:

-A, --catenate, --concatenate   追加 tar 文件至歸檔
-c, --create               創建一個新歸檔
-d, --diff, --compare      找出歸檔和文件系統的差異
–delete               從歸檔(非磁帶!)中刪除
-r, --append               追加文件至歸檔結尾
-t, --list                 列出歸檔內容
–test-label           測試歸檔卷標並退出
-u, --update               僅追加比歸檔中副本更新的文件
-x, --extract, --get       從歸檔中解出文件

例如:
(1)將/home目錄下包括他的子目錄全部存檔,存檔文件名爲archive.tar。
tar cvf  archive.tar   /home
1

(2)把/home目錄下所有文件和目錄存檔,並對存檔文件壓縮,壓縮後文件名爲archive.tar.gz
tar  czvf   archive.tar.gz    /home
1

(3)對存檔壓縮文件archive.tar.gz解包,以及解壓縮。
tar xzvf   archive.tar.gz
1
(4)不解包(還原)archive.tar存檔文件,只查看其中內容。
tar  tvf  archive.tar
1
2、gzip命令
gzip文件壓縮/解壓縮命令。生成.gz文件,其他屬性不變。
zip命令與gzip命令的使用完全相同
用法:

gzip [選項] 壓縮/解壓縮文件名

選項:

-d:解壓
-r:遞歸查找指定目錄並壓縮其中的所有文件或解壓縮
-l:對每個壓縮文件,顯示壓縮文件的大小、未壓縮文件的大小、壓縮比、未壓縮文件名等詳細信息
-v:對每一個壓縮和解壓的文件,顯示文件名和壓縮比

例:使用/home/tmp爲工作目錄,且有文件1.txt, 2.txt, test.txt
(1)把/home/tmp下的所有以txt爲擴展名的文件壓縮。
gzip  *.txt  
1


(2)將(1)中每個壓縮的文件解壓縮,並列出詳細信息。
gzip   -dv   *.gz
1


(3)詳細顯示(1)中每個壓縮文件的信息,不解壓。
gzip  -l  *.gz
1

3、unzip命令
unzip命令:解壓縮.zip文件。
用法:

unzip 選項  壓縮文件名.zip

選項:

-d directory: 解壓的directory目錄
-v:查看壓縮文件目錄,但不解壓
-n:不覆蓋已存在的文件
-o:覆蓋已存在的文件且不要求用戶確認

例如:
(1)將壓縮文件test.zip在當前目錄下解壓縮。
unzip  test.zip
1

(2)將壓縮文件test.zip解壓縮到目錄/home/tmp下,如果已有文件存在,不覆蓋原文件。
unzip –n  test.zip  -d  /home/tmp
1
4、zgrep命令
zgrep命令:與grep命令完全一樣。
**例如:查找壓縮文件file.txt.gz中有無關鍵字include
zgrep  include  file.txt.gz
————————————————
版權聲明:本文爲CSDN博主「TrueDei」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://truedei.blog.csdn.net/article/details/105319294

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章