linux系統是一個多用戶多任務的分時操做系統,但系統並不能識別人
,它經過帳號
來區別每一個用戶。每一個linux系統在安裝的過程當中都要爲root
帳號設置密碼,這個root
即爲系統的第一個帳號。每個用這個帳號登陸系統的用戶都是超級管理員
,他們對此係統有絕對的控制權。經過向系統管理員進行申請,還能夠爲系統建立普通帳號。每一個用普通帳號登陸系統的用戶,對系統都只有部分控制權。
咱們知道計算機中的數據是以二進制0、1的形式存儲在硬件之上的。在linux中,爲了管理的方便,系統將這些數據組織成目錄和文件,並以一個樹形的結構呈現給用戶。以下圖所示:linux
其中處於頂端的/
是根目錄,linux下全部的文件均起始於根目錄。另外很重要的一點,linux中不只普通文檔是文件,目錄是文件,甚至設備、進程等等都被抽象成文件。這樣作的目的是爲了簡化操做和方便管理。
因而,本文開始所說的控制權
,即爲用戶對系統中文件的控制權。一般所說的某某文件的權限,是針對特定用戶而言的。
另外,每個登陸的用戶,在任意的時刻均處於某個目錄以內,稱爲當前目錄(current directory
)。用戶在剛剛登陸的時候所處的目錄是家目錄,root用戶的家目錄是/root
,普通用戶的家目錄一般爲/home/user_name
。在這裏第一個字符/
便是上文所說的根目錄,root
和home
是根目錄下的兩個子目錄名,要注意home後面的/
是目錄分隔符,而不是目錄名的一部分,user_name
是普通用戶家目錄的名字。
下面咱們來看具體命令:shell
pwd
打印當前目錄pwd [OPTION]...
例如:數據庫
[root@centos7 ~]# pwd /root
cd
切換目錄cd [DIR]
例如切換到根目錄而後打印當前目錄(注意命令提示符的變化):vim
[root@centos7 ~]# cd / [root@centos7 /]# pwd /
這兩個命令很是簡單,簡單到它們的選項都不經常使用,其中cd命令後面跟一個路徑名。這個路徑名能夠是「絕對的」也能夠是「相對的」。絕對的表示成以/
爲開頭的路徑名,如命令cd /usr/local/src
中的路徑名;相對的表示成相對於當前目錄的路徑名,若將linux中目錄的包含與被包含關係比喻成父子關係的話,符號..
表明的是父目錄,符號.
表明當前目錄。
例:
假設當前所處目錄爲/usr/local/src,那麼切換到根目錄能夠用兩種方法:cd /
和cd ../../..
centos
[root@centos7 src]# cd ../../.. [root@centos7 /]# pwd /
而後再切換回root的家目錄: cd root
和cd ./root
安全
[root@centos7 /]# cd ./root [root@centos7 ~]# pwd /root
另外若是cd後面任何參數都沒有的時候,執行的效果是切換回家目錄:bash
[root@centos7 /]# cd [root@centos7 ~]# pwd /root
ls
列出目錄內容ls [OPTION]... [FILE]...
當命令ls後不跟任何參數的時候顯示當前目錄的內容less
[root@centos7 ~]# ls anaconda-ks.cfg install.log install.log.syslog
上面的例子顯示了/root目錄下的三個文件anaconda-ks.cfg
、anaconda-ks.cfg
、anaconda-ks.cfg
。
選項-l
可使ls命令的結果以長格式顯示:ssh
[root@centos7 ~]# ls -l total 84 -rw------- 1 root root 1666 Jan 14 2016 anaconda-ks.cfg -rw-r--r-- 1 root root 55745 Jan 14 2016 install.log -rw-r--r-- 1 root root 5039 Jan 14 2016 install.log.syslog
顯示結果的意思後述。tcp
mkdir
建立目錄mkdir [OPTION]... DIRECTORY...
一般的使用方法是命令名以後直接跟目錄名(能夠多個),這裏說一下linux文件命名的規則:linux容許文件名使用除字符/
以外的全部字符,文件名的最大字符數爲255(中文字符爲127),linux不鼓勵在文件名中出現特殊字符(容易引發混淆),文件名對大小寫敏感。文件或目錄數量限制與所使用的文件系統有關。
如當前目錄下建立temp目錄並用ls查看:
[root@centos7 ~]# mkdir temp [root@centos7 ~]# ls anaconda-ks.cfg install.log install.log.syslog temp
選項-p
能夠遞歸地建立子目錄,如進入temp並建立目錄dir1和dir2,dir1的子目錄test:
[root@centos7 ~]# cd temp [root@centos7 temp]# mkdir -p dir1/test dir2 [root@centos7 temp]# ls dir1 dir2 [root@centos7 temp]# cd dir1 [root@centos7 dir1]# ls test
touch
「建立文件」touch [OPTION]... FILE...
其實此命令做用是修改文件時間,當指定的文件不存在時就會建立新文件。因爲文件時間的更改能夠經過許多其它途徑,反而許多用戶都誤覺得它就是建立文件的命令。
如在temp目錄下建立文件file1 在temp的子目錄dir1下建立文件file2:
[root@centos7 temp]# touch file1 dir1/file2 [root@centos7 temp]# ls dir1 dir2 file1 [root@centos7 temp]# cd dir1 [root@centos7 dir1]# ls file2 test
useradd
添加帳號useradd [options] name
如建立一個名叫learner的帳號:
[root@centos7 dir1]# useradd learner
useradd
命令默認在建立用戶帳號的同時也會建立用戶的家目錄,同時更新系統中與用戶相關的配置文件(linux中有許多配置文件,它們的做用是爲軟件運行設置環境信息、參數等,它們一般是純文本的格式,方便用戶變動其內容以改變軟件運行環境。在linux中,大多數配置文件都處於目錄/etc
內,如與用戶管理相關的配置文件:/etc/passwd,/etc/group,/etc/shadow,/etc/gshadow等)。
讓咱們進入新建立的用戶家目錄並用ls命令查看目錄內容:
[root@centos7 dir1]# cd /home/learner [root@centos7 learner]# ls [root@centos7 learner]#
終端上並無打印出任何信息,試試ls的-a選項:
[root@centos7 learner]# ls -a . .. .bash_logout .bash_profile .bashrc
選項-a做用是顯示目錄下全部文件,包括當前目錄.
和父目錄..
,linux中以.
開頭的文件是隱藏文件。在這裏的三個隱藏文件是用戶learner登陸系統時所要用到的配置文件。
passwd
添加或更改帳號口令passwd [OPTION]... [NAME]
注意經過命令useradd新添加的帳號並不能立刻進行登陸,還必須爲帳號添加口令
爲新用戶learner添加口令:
[root@centos7 ~]# passwd learner Changing password for user learner. New UNIX password: xxxxxx #此處的xxxxxx並不在屏幕上顯示 BAD PASSWORD: it is too simplistic/systematic #此處可能會給出密碼太簡單的警告 Retype new UNIX password: xxxxxx #重複輸入,此處的xxxxxx不在屏幕上顯示 passwd: all authentication tokens updated successfully.
當passwd命令後沒有用戶名直接執行時,它的做用是更改當前帳號的口令。
cat
查看文件內容cat [OPTION]... [FILE]...
如查看保存系統帳號的配置文件/etc/passwd
[root@centos7 ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin .... learner:x:1000:1000::/home/learner:/bin/bash
這裏節選了部分輸出,咱們看到新建立的帳號learner的信息在文件最後一行。文件中每一行都被:
分割爲7列,拿第一行舉例說明每一列所表示的含義:
1) root表示帳號名。 2) x是口令,在一些系統中,真正的口令加密保存在/etc/shadow裏,這裏保留x或*。 3) 0是用戶ID。 4) 0是用戶組ID,對應着/etc/group文件中的一條記錄。 5) root是描述性信息。 6) /root是用戶家目錄。 7) /bin/bash是用戶的登陸shell,每個登陸的用戶,系統都要啓動一個shell程序以供用戶使用。
對應於新建立的用戶learner來講,它的用戶ID是1000,一般用戶ID(UID)與用戶名是一一對應的。root的UID是0。用戶組ID(GID)若是在建立用戶的時候沒有被指定,那麼系統會生成一個和UID號相同的GID,並把新用戶放到這個組裏面。用戶組的意義是爲了給權限控制增長靈活性,好比把不一樣的用戶歸到一個組以內,而後使文件針對這個組設置權限。
系統中還有一些登陸shell爲/sbin/nologin
的用戶,這些用戶是「僞用戶」,它們是不能登陸的,它們的存在主要是爲了方便管理,知足相應的系統進程對文件屬主的要求。
head
tail
more
less
查看內容這四個命令使用和cat
相似,只是顯示方式的區別。head
從文件的第一行開始顯示,默認顯示10行,使用選項-n
能夠指定顯示行數:
[root@centos7 ~]# head -n 3 /etc/group root:x:0: bin:x:1: daemon:x:2:
顯示文件/etc/group的前三行。
/etc/group中每行被:
分隔成4列:
1) 組名 2) 口令,linux中通常無組口令,此處通常爲x或* 3) 組ID(GID) 4) 組內成員列表,多個用逗號分隔。若是字段爲空表示用戶組爲GID的用戶名。
tail
默認輸出文件的倒數10行內容,也能夠用選項-n
指定行數:
[root@centos7 temp]# tail -n 4 /etc/shadow postfix:!!:16814:::::: sshd:!!:16814:::::: tcpdump:!!:16994:::::: learner:$6$.U5pPYhu$h9TnYR9L4dbJY6b6VgnAQBG5qEg6s5fyJpxZVrAipHeeFhHAiHk6gjWa/xOfvWx.CzM2fvk685OEUc.ZdBYiC0:17095:0:99999:7:::
顯示文件/etc/shadow的後4行。
/etc/shadow中保存的是帳號密碼等信息,每行被:
分隔成9列:
1) 用戶名 2) 加密的密碼 3) 上次修改口令的時間;這個時間是從1970年01月01日算起到最近一次修改口令的時間間隔(天數)。 4) 兩次修改口令間隔最少的天數;若是這個字段的值爲空,賬號永久可用; 5) 兩次修改口令間隔最多的天數;若是這個字段的值爲空,賬號永久可用; 6) 提早多少天警告用戶口令將過時;若是這個字段的值爲空,賬號永久可用; 7) 在口令過時以後多少天禁用此用戶;若是這個字段的值爲空,賬號永久可用; 8) 用戶過時日期;此字段指定了用戶做廢的天數(從1970年的1月1日開始的天數),若是這個字段的值爲空,賬號永久可用; 9) 保留字段,目前爲空,以備未來發展之用;
/etc/shadow中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的數據自動產生。
另外命令tail
還有個經常使用選項-f
,做用是隨着文件內容的增長而輸出,默認輸出間隔爲1s。more
和less
兩個命令的做用都是分頁顯示文件內容,區別是more不容許往回翻,只能用enter鍵和空格鍵分別顯示下一行和下一頁(相似於man命令),less容許往回翻,向上箭頭和pageup按鍵也是可用的。讀者可自行實驗這兩個命令,這裏再也不舉例。
groupadd
建立用戶組groupadd [OPTION] group
選項'-g'能夠爲新建立用戶組指定GID。
如建立一個新用戶組group1並指定其GID爲1005,而後再新建立一個用戶tom,使他的UID爲1002,GID爲1000,登陸shell爲/bin/sh:
[root@centos7 ~]# groupadd -g 1005 group1 [root@centos7 ~]# useradd -u 1002 -g 1000 -s /bin/sh tom [root@centos7 ~]# tail -n 1 /etc/passwd tom:x:1002:1000::/home/tom:/bin/sh [root@centos7 ~]# tail -n 1 /etc/group group1:x:1005:
這裏useradd命令的選項-u
、-g
和-s
分別指定新用戶的uid、gid和登陸shell。
chmod
改變文件權限chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE...
在看此命令用法以前,咱們先來解釋一下命令ls
的選項-l
的輸出:
[root@centos7 temp]# ls -l 總用量 0 drwxr-xr-x 3 root root 29 10月 21 20:34 dir1 drwxr-xr-x 2 root root 6 10月 21 20:33 dir2 -rw-r--r-- 1 root root 0 10月 21 20:34 file1
這部分輸出被分爲7個部分:
1) -rw-r--r-- 10個字符中第一個字符-表明文件類型,linux中文件共有7種類型,分別表示以下: d:表明文件是一個目錄 l:符號連接 s:套接字文件 b:塊設備文件 c:字符設備文件 p:命名管道文件 -:普通文件,或者說除上述文件外的其餘文件 剩下的9個字符每三個一組,表示這個文件的權限,linux中文件權限用二進制的000-111(一位八進制數)來分別表明文件的權限,其中: r(read):讀權限(若是是文件表示讀取文件內容,若是是目錄表示瀏覽目錄)。二進制第一位置1即100,十進制爲數字4。 w(write):寫權限(對文件而言,具備新增、修改文件內容的權限,對目錄來講,具備刪除、移動目錄內文件的權限。)。二進制第二位置1即010,十進制爲數字2。 x(execute):執行權(對文件而言,具備執行文件的權限;對目錄來講具備進入該目錄的權限。)。二進制第三位置1即001,十進制爲數字1。 -(無權限):當沒有上述權限時。二進制表示爲000。 這樣本例中最後一行文件file1權限: 前三個字符`rw-`表示文件的全部者(`owner`)對文件具備讀和寫的權限,十進制數字爲4+2=6。 中間三個字符`r--`表示文件的所屬組(`group`)對文件具備讀權限,十進制數字爲4。 最後三個字符`r--`表示系統中其餘用戶(`others`)對文件具備讀權限,十進制數字爲4。 這樣文件的權限能夠用十進制數字`644`來表示。 對於目錄dir1來講: 前三個字符`rwx`表示目錄全部者(`owner`)對其具備讀、寫和執行的權限,十進制表示爲4+2+1=7。 中間三個字符`r-x`表示目錄的所屬組(`group`)對其具備讀和執行的權限,十進制表示爲4+1=5。 後三個字符`r-x`表示系統中其餘用戶(`others`)對其具備讀和執行的權限,十進制表示爲4+1=5。 這個目錄權限用十進制表示即爲`755`,注意文件和目錄相同權限之間的區別。 2) 權限後面的數字表明文件的硬連接數 3) root文件的全部者,有時表示爲用戶的UID。 4) root文件的所屬組,有時表示爲用戶組的GID。 5) 文件大小,以字節`Byte`爲單位。 6) 10月 21 表示文件內容最近一次被修改的時間。 7) 最後一列爲文件名。
如給文件file1的用戶組增長執行權限:
[root@centos7 temp]# chmod g+x file1 [root@centos7 temp]# ls -l file1 -rw-r-xr-- 1 root root 0 10月 21 20:34 file1
這裏g+x
表示給group
增長執行x
的權限。
如給文件file1的其餘人減小讀權限:
[root@centos7 temp]# chmod o-r file1 [root@centos7 temp]# ls -l file1 -rw-r-x--- 1 root root 0 10月 21 20:34 file1
這裏o-r
表示給others
減小讀r
權限。
如給文件file1的任何用戶都設置成rw-權限:
[root@centos7 temp]# chmod a=rw file1 [root@centos7 temp]# ls -l file1 -rw-rw-rw- 1 root root 0 10月 21 20:34 file1
這裏a=rw
表示給全部人all
設置成rw-
權限。
或者用十進制表示法直接指定文件的權限:
[root@centos7 temp]# chmod 644 file1 [root@centos7 temp]# ls -l file1 -rw-r--r-- 1 root root 0 10月 21 20:34 file1
如給目錄dir1和目錄內的全部目錄和文件權限都設置成777:
[root@centos7 temp]# chmod 777 -R dir1 [root@centos7 temp]# ls -l 總用量 0 drwxrwxrwx 3 root root 29 10月 21 20:34 dir1 drwxr-xr-x 2 root root 6 10月 21 20:33 dir2 -rw-r--r-- 1 root root 0 10月 21 20:34 file1
選項-R
做用是遞歸地改變目標權限。
另外如目錄/tmp
的權限:
[root@centos7 tmp]# ls -l / .... drwxrwxrwt. 7 root root 88 10月 22 21:14 tmp ....
咱們看到權限最後一位是t
,這裏表明粘滯位(sticky
),它的做用是給目錄特殊的權限:使用戶不能刪除該目錄下不屬於此用戶的文件。t
後面的.
表示該文件被selinux的安全上下文保護。
如可執行文件/bin/su
的權限:
[root@centos7 bin]# ls -l /bin/su -rwsr-xr-x. 1 root root 32072 11月 20 2015 /bin/su
全部者的權限rws
,這裏的s
表明suid
,若是在用戶組位置的話表明sgid
,做用是給文件特殊的權限:當用戶執行此文件的時候,把他當成是文件的全部者來執行。
這些特殊用途的的權限對普通用戶來講知道便可。
lsattr
列出隱藏權限lsattr [option] [files...]
如:
[root@centos7 temp]# lsattr ---------------- ./dir1 ---------------- ./dir2 ---------------- ./file1
列出了文件的隱藏權限位,共有16位(因爲隱藏權限是文件系統相關的,不一樣的文件系統對於文件的隱藏權限的設定不必定相同)。
chattr
給文件設置隱藏權限chattr [+-=] [mode] files...
如給文件file1增長隱藏權限a:
[root@centos7 temp]# chattr +a file1 [root@centos7 temp]# lsattr file1 -----a---------- file1
這裏的a
權限表示:這個文件將只能添加數據,而不能刪除也不能修改數據,只有root才能配置這個屬性。
給文件file2增長隱藏屬性i:
[root@centos7 temp]# chattr +i file2 [root@centos7 temp]# lsattr file2 ----i----------- file2
這裏的i
權限表示:使文件不能被修改、刪除、更名、連接。只有root才能配置這個屬性。
這些隱藏權限都不經常使用,一般知道這兩個就能夠了。
chown
改變文件的全部者和所屬組chown [OPTION]... [OWNER][:[GROUP]] FILE...
如改變文件file1的全部者爲learner:
[root@centos7 temp]# chown learner file1 [root@centos7 temp]# ls -l file1 -rw-r--r-- 1 learner root 0 10月 21 20:34 file1
如遞歸地改變目錄dir1和其下面的全部目錄和文件,使它們的全部者和所屬組均爲learner:
[root@centos7 temp]# chown -R learner:learner dir1 [root@centos7 temp]# ls -l 總用量 0 drwxrwxrwx 3 learner learner 29 10月 21 20:34 dir1 ....
這裏的用戶和用戶組能夠用對應的uid和gid代替,冒號:
也能夠換爲點號.
。
userdel
和groupdel
用於刪除用戶和用戶組。userdel
用於刪除用戶帳號,選項-r
能夠將用戶家目錄一併刪除。groupdel
用於刪除用戶組,注意不能移除現有用戶的主組。在移除此組以前,必須先移除此用戶。
id
打印用戶ID信息id [OPTION]... [USER]
當不跟用戶名時顯示當前用戶信息:
[root@centos7 ~]# id uid=0(root) gid=0(root) 組=0(root)
whoami
,who
,w
顯示登陸用戶信息命令whoami
打印出當前用戶名:
[root@centos7 ~]# whoami root
命令who
打印當前登陸用戶信息:
[root@centos7 ~]# who root tty1 2016-09-30 15:18 root pts/0 2016-10-23 17:12 (192.168.78.140) learner pts/1 2016-10-23 17:49 (192.168.78.140) root pts/2 2016-10-23 17:50 (192.168.78.140)
顯示信息中第一列爲用戶名,第二列爲登陸終端,第三列爲登陸時間,最後爲登陸ip地址。
命令w
顯示信息與命令who
相似,增長了一些系統信息:
[root@centos7 ~]# w 17:56:59 up 23 days, 2:39, 4 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 309月16 23days 0.01s 0.01s -bash root pts/0 192.168.78.140 17:12 7:31 0.01s 0.00s bash learner pts/1 192.168.78.140 17:49 7:29 0.00s 0.00s -bash root pts/2 192.168.78.140 17:50 3.00s 0.00s 0.00s w
輸出的第一行顯示了系統運行時間,當前有多少用戶登陸,cpu的平均負載(之後文章中會有詳述)。
餘下的信息增長了空閒時間,cpu的使用時間以及運行的命令。
su
執行用戶命令su [options...] [-] [user [args...]]
兩種經常使用用法:
選項-c command
用於使用目標帳號執行-c指定的命令:
[root@centos7 ~]# su learner -c pwd /root
例子中使用帳號learner執行了命令pwd。
當不使用選項-c時則爲切換用戶:
[root@centos7 ~]# whoami root [root@centos7 ~]# su learner [learner@centos7 root]$ whoami learner
注意若是是從普通帳號切換至root或其餘帳號時,須要輸入對應密碼。
帶與不帶選項-
或-l
或--login
切換帳號時,會有環境變量上的區別。同時帶這些選項也會把當前目錄切換至目標帳號的家目錄。使用命令exit
能夠退出:
[root@centos7 ~]# pwd /root [root@centos7 ~]# su - learner 上一次登陸:日 10月 23 18:22:23 CST 2016pts/5 上 [learner@centos7 ~]$ pwd /home/learner [learner@centos7 ~]$ exit 登出 [root@centos7 ~]# whoami root
sudo
做爲另外一個用戶來執行命令sudo [OPTION]... command
linux中爲了安全,每每並不容許每一個用戶都用root帳號登陸系統,一般都會建立一些普通用戶。但有些命令是隻有root用戶才能執行的,爲了更靈活的分配權限,使普通用戶也能執行某些root命令,咱們可使用sudo
來完成這一任務。
sudo經過維護一個特權到用戶名映射的數據庫將特權分配給不一樣的用戶,這些特權可由數據庫中所列的一些不一樣的命令來識別。爲了得到某一特權項,有資格的用戶只需簡單地在命令行輸入sudo與命令以後,按照提示再次輸入口令(用戶本身的口令,不是root用戶口令)。
使用-l
選項能夠查看當前用戶能夠執行的root命令有哪些:
[learner@centos7 ~]$ sudo -l We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for learner: 對不起,用戶 learner 不能在 centos7 上運行 sudo。
這裏看到learner用戶並不能使用sudo。若要設置用戶使用sudo,須要編輯sudo
的配置文件/etc/sudoers
。該文件中以符號#
開頭的都是註釋行,用來解釋或描述配置,並不起實際做用。
須要使用命令visudo
來編輯修改/etc/sudoers
(使用方法和使用vi/vim編輯器相似,後面有文章詳細描述)。
配置文件中的一個條目格式爲:
user MACHINE=COMMANDS
如給用戶learner在全部地方(ALL
)運行任何命令(ALL
):
learner ALL=(ALL) ALL
以後查看:
[learner@centos7 ~]$ sudo -l [sudo] password for learner: 匹配此主機上 learner 的默認條目: .... .... 用戶 learner 能夠在該主機上運行如下命令: (ALL) ALL
固然並不會給普通用戶全部權限,這裏只是舉例。一般的作法是給某個用戶某些特定的命令權限,如容許用戶tom在主機machine上執行當即關機的命令,在/etc/sudoers中添加條目:
tom machine=/usr/sbin/shutdown -h now
注意machine
是tom登陸系統所用的主機名,能夠用ip地址代替,如使用命令w
時FROM那一列所顯示的登陸ip。等號後面的命令名必須是命令的絕對路徑,-h now
是命令/usr/sbin/shutdown
的參數,命令效果是當即關機。等號後面能夠接多個命令,用逗號分隔它們。同時用戶名也能夠是用戶組,用%組名
代替。另外,用戶tom在執行sudo命令時,sudo後面的命令寫法也必須和配置中的一致。
mv
移動文件或目錄mv [OPTION]... SOURCE... DIRECTORY
mv
命令的做用是把文件或目錄從源移動到目標目錄,路徑能夠是絕對的也能夠是相對的
如將文件file2從當前目錄移動到/root/temp/dir2中:
[root@centos7 temp]# ls dir1 dir2 file1 file2 [root@centos7 temp]# mv file2 /root/temp/dir2/ [root@centos7 temp]# ls dir1 dir2 file1 [root@centos7 temp]# ls dir2/ file2
命令mv還能夠對文件進行更名,如將目錄dir2移動到dir1內並更名爲dir3:
[root@centos7 temp]# ls dir1 dir2 file1 [root@centos7 temp]# mv dir2 ./dir1/dir3 [root@centos7 temp]# ls dir1 file1 [root@centos7 temp]# ls dir1/ dir3 file2 test
cp
複製文件或目錄cp [OPTION]... SOURCE... DIRECTORY
如複製文件file1爲file3:
[root@centos7 temp]# ls dir1 file1 [root@centos7 temp]# cp file1 file3 [root@centos7 temp]# ls dir1 file1 file3
複製目錄dir1內目錄dir3及其包含內容到當前目錄下,起名爲dir2:
[root@centos7 temp]# cp -r dir1/dir3/ ./dir2 [root@centos7 temp]# ls dir1 dir2 file1 file3
複製目錄的時候須要使用選項-r
,當目標已存在時,會須要用戶確認是否覆蓋,輸入y或yes表示確認覆蓋,輸入n或no表示取消覆蓋:
[root@centos7 temp]# cp file1 file3 cp:是否覆蓋"file3"? y [root@centos7 temp]# cp file1 file3 cp:是否覆蓋"file3"? no
可使用選項-f
(force)來強制複製,不須要確認。
[root@centos7 temp]# cp -rf dir1/test ./dir2/
注意此處-rf
,當有多個選項做用於一個命令時,在不引發混淆的狀況下能夠連寫。
rm
刪除文件rm [OPTION]... FILE...
選項-r
做用是遞歸地刪除目錄,-f
的做用是強制刪除:
[root@centos7 temp]# ls dir1 dir2 file1 file3 [root@centos7 temp]# rm -rf dir2/ [root@centos7 temp]# ls dir1 file1 file3
whereis
查找系統命令whereis [options] name...
命令做用是顯示命令名稱的絕對路徑和命令的手冊位置:
[root@centos7 test]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
du
估算文件佔用空間大小du [OPTION]... [FILE]...
如查看文件file1的大小:
[root@centos7 temp]# du file1 4 file1
輸出的結果第一列表示所佔空間大小(單位是KB)。第二列是是文件名。
可使用選項-h
用人類可讀(human readable)的方式顯示:
[root@centos7 temp]# du -h file1 4.0K file1
當使用-s
選項做用在目錄上時,只顯示總用量。不用時則顯示該目錄下的每一個文件:
[root@centos7 temp]# du dir1 0 dir1/test 0 dir1/dir3 0 dir1 [root@centos7 temp]# du -sh dir1 0 dir1
linux秉承「一切皆文件」的思想,在這樣的思想做用之下,linux內的全部操做均可以說是文件相關的。這裏列出的命令都是最爲基礎的文件相關命令,每個使用者都須要牢記。固然這裏並不能將它們的全部用法一一列舉,如想了解更多,必定要記得man
!