您好,登錄后才能下訂單哦!
這篇文章主要介紹“linux用戶與文件基礎命令整理”,在日常操作中,相信很多人在linux用戶與文件基礎命令整理問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux用戶與文件基礎命令整理”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
linux系統是一個多用戶多任務的分時操作系統,但系統并不能識別人,它通過賬號來區別每個用戶。每個linux系統在安裝的過程中都要為root賬號設置密碼,這個root即為系統的第一個賬號。每一個用這個賬號登錄系統的用戶都是超級管理員,他們對此系統有絕對的控制權。通過向系統管理員進行申請,還可以為系統創建普通賬號。每個用普通賬號登錄系統的用戶,對系統都只有部分控制權。
我們知道計算機中的數據是以二進制0、1的形式存儲在硬件之上的。在linux中,為了管理的方便,系統將這些數據組織成目錄和文件,并以一個樹形的結構呈現給用戶。如下圖所示:
其中處于頂端的/是根目錄,linux下所有的文件均起始于根目錄。另外很重要的一點,linux中不僅普通文檔是文件,目錄是文件,甚至設備、進程等等都被抽象成文件。這樣做的目的是為了簡化操作和方便管理。
于是,本文開始所說的控制權,即為用戶對系統中文件的控制權。通常所說的某某文件的權限,是針對特定用戶而言的。
另外,每一個登錄的用戶,在任意的時刻均處于某個目錄之內,稱為當前目錄(current directory)。用戶在剛剛登錄的時候所處的目錄是家目錄,root用戶的家目錄是/root,普通用戶的家目錄通常為/home/user_name。在這里第一個字符/即是上文所說的根目錄,root和home是根目錄下的兩個子目錄名,要注意home后面的/是目錄分隔符,而不是目錄名的一部分,user_name是普通用戶家目錄的名字。
下面我們來看具體命令:
1、pwd 打印當前目錄
pwd [OPTION]...
例如:
[root@centos7 ~]# pwd /root
2、cd 切換目錄
cd [DIR]
例如切換到根目錄然后打印當前目錄(注意命令提示符的變化):
[root@centos7 ~]# cd / [root@centos7 /]# pwd /
這兩個命令非常簡單,簡單到它們的選項都不常用,其中cd命令后面跟一個路徑名。這個路徑名可以是“絕對的”也可以是“相對的”。絕對的表示成以/為開頭的路徑名,如命令cd /usr/local/src中的路徑名;相對的表示成相對于當前目錄的路徑名,若將linux中目錄的包含與被包含關系比喻成父子關系的話,符號..代表的是父目錄,符號.代表當前目錄。
例:
假設當前所處目錄為/usr/local/src,那么切換到根目錄可以用兩種方法:cd /和cd ../../..
[root@centos7 src]# cd ../../.. [root@centos7 /]# pwd /
然后再切換回root的家目錄: cd root和cd ./root
[root@centos7 /]# cd ./root [root@centos7 ~]# pwd /root
另外如果cd后面任何參數都沒有的時候,執行的效果是切換回家目錄:
[root@centos7 /]# cd [root@centos7 ~]# pwd /root
3、ls 列出目錄內容
ls [OPTION]... [FILE]...
當命令ls后不跟任何參數的時候顯示當前目錄的內容
[root@centos7 ~]# ls anaconda-ks.cfg install.log install.log.syslog
上面的例子顯示了/root目錄下的三個文件anaconda-ks.cfg、anaconda-ks.cfg、anaconda-ks.cfg。
選項-l可以使ls命令的結果以長格式顯示:
[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
顯示結果的意思后述。
4、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
5、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
6、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登錄系統時所要用到的配置文件。
7、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命令后沒有用戶名直接執行時,它的作用是更改當前賬號的口令。
8、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的用戶,這些用戶是“偽用戶”,它們是不能登錄的,它們的存在主要是為了方便管理,滿足相應的系統進程對文件屬主的要求。
9、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按鍵也是可用的。讀者可自行實驗這兩個命令,這里不再舉例。
10、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。
11、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,作用是給文件特殊的權限:當用戶執行此文件的時候,把他當成是文件的所有者來執行。
這些特殊用途的的權限對普通用戶來說知道即可。
12、lsattr 列出隱藏權限
lsattr [option] [files...]
如:
[root@centos7 temp]# lsattr ---------------- ./dir1 ---------------- ./dir2 ---------------- ./file1
列出了文件的隱藏權限位,共有16位(由于隱藏權限是文件系統相關的,不同的文件系統對于文件的隱藏權限的設定不一定相同)。
13、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才能配置這個屬性。
這些隱藏權限都不常用,通常知道這兩個就可以了。
14、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代替,冒號:也可以換為點號.。
15、userdel和groupdel 用于刪除用戶和用戶組。
userdel用于刪除用戶賬號,選項-r可以將用戶家目錄一并刪除。
groupdel用于刪除用戶組,注意不能移除現有用戶的主組。在移除此組之前,必須先移除此用戶。
16、id 打印用戶ID信息
id [OPTION]... [USER]
當不跟用戶名時顯示當前用戶信息:
[root@centos7 ~]# id uid=0(root) gid=0(root) 組=0(root)
17、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的使用時間以及運行的命令。
18、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
19、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后面的命令寫法也必須和配置中的一致。
20、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
21、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,當有多個選項作用于一個命令時,在不引起混淆的情況下可以連寫。
22、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
23、whereis 查找系統命令
whereis [options] name...
命令作用是顯示命令名稱的絕對路徑和命令的手冊位置:
[root@centos7 test]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
24、du 估算文件占用空間大小
u [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用戶與文件基礎命令整理”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。