作為程序猿,熟悉一些unix/linux命令行是非常必要的,因為部署服務的服務器現在基本上用的都是unix/linux系統,很少在windows上部署服務的。 今天我們就介紹一些在linux上的文件系統結構和基本操作命令。
命令:ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip
好了,開始吧。
1.ls命令
ls == list,根據不同的選項,列舉指定目錄或文件的相關信息,是Unix/Linux下最常用的命令之一,cd到某一目錄下后執行的第一個命令。
ls命令格式:ls [OPTION]... [FILE]...
列舉文件信息(默認為當前目錄)。
-a
-a選項同
,但會列舉當前目錄或者指定目錄下的所有文件,包括dot文件(.開頭的文件)和.目錄和..目錄。-A
-A選項同
,但會列舉當前目錄或者指定目錄下的所有文件,包括dot文件(.開頭的文件),但不包括.目錄和..目錄。-l
-l選項的
將列舉當前目錄或指定目錄中文件或者子目錄的詳細信息。ls -l列舉的信息包含7個以Tab的域:
- 第一個域:第一個字符指明了文件類型
- -: 普通文件;
- d: 目錄文件;
- l: 符號鏈接;
- s: socket文件;
- b: 塊設備;
- c: 字符設備;
- p: 管道文件。
后面的9個字符指明了文件的訪問權限:每三位指明一類用戶的權限,分別是文件屬主、同組用戶、其它用戶,權限分為讀(r)、寫(w)、執行(x)。
- 第二個域:鏈接數。普通文件至少為1,目錄至少為2(.和..);
- 第三域:文件屬主;
- 第四域:用戶組;
- 第五域:文件大小,其中目錄大小通常為塊大小的整數倍;
- 第六域:文件的最近修改日期和時間,修改文件意味着對其內文件或子目錄的增添和修改;
- 第七域:文件名
ls -t
按文件的修改時間列舉文件,最近修改的在前。
ls -1
單獨行列舉文件。
ls -lat
-lh
組合選項,-h表示文件size以人性化表示,那樣就會以K、M、G為單位查看文件大小
模糊列舉: 其中,*代表任意個字符(包括0個),?代表一個字符。
ls /etc/a*e
列出/etc/目錄下以字母a開頭且以字母e結尾的目錄和文件。
ls /bin/l?
列出/bin/目錄下以字母l開頭的目錄和文件,且目錄名或文件名的長度為2.
2.chmod
變更文件或目錄的權限。
說明:在UNIX系統家族里,文件或目錄權限的控制分別以讀取,寫入,執行3種一般權限來區分。該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
- 文字設定法: chmod [who] [+ | - | =] [mode] 文件名
命令中各選項的含義為:
操作對象who可是下述字母中的任一個或者它們的組合:
u 表示“用戶(user)”,即文件或目錄的所有者。
g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶。
o 表示“其他(others)用戶”。
a 表示“所有(all)用戶”。它是系統默認值。
操作符號可以是:
+ 添加某個權限。
- 取消某個權限。
= 賦予給定權限並取消其他所有權限(如果有的話)。
設置mode所表示的權限可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
s 在文件執行時把進程的屬主或組ID置為該文件的文件屬主。方式“u+s”設置文件的用戶ID位,“g+s”設置組ID位。
t 保存程序的文本到交換設備上。
u 與文件屬主擁有一樣的權限。
g 與和文件屬主同組的用戶擁有一樣的權限。
o 與其他用戶擁有一樣的權限。
文件名:以空格分開的要改變權限的文件列表,支持通配符。
在一個命令行中可給出多個權限方式,其間用逗號隔開。例如:chmod g+r,o+r example
使同組和其他用戶對文件example 有讀權限。 - 數字設定法: 我們必須首先了解用數字表示的屬性的含義:0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,然后將其相加。所以數字屬性的格式應為3個從0到7的八進制數,其順序是(u)(g)(o)。
例如,如果想讓某個文件的屬主有“讀/寫”二種權限,需要把4(可讀)+2(可寫)=6(讀/寫)。
數字設定法的一般形式為:
chmod [mode] 文件名
舉例說明: 為user添加讀寫權限:
chmod u+rw test.txt 或者 chmod 644 test.txt(假設默認的group 和 other的權限為讀權限)
由於篇幅問題,先介紹 ls 和chmod 其他的后面介紹。。。