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