濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > linux用戶與文件基礎(chǔ)命令介紹(1)

linux用戶與文件基礎(chǔ)命令介紹(1)

熱門標(biāo)簽:百度地圖標(biāo)注直線距離 智能電銷機(jī)器人有用嗎 鶴崗400電話申請 外呼電話系統(tǒng)怎么操作 商機(jī)地圖標(biāo)注 德陽400電話申請 測繪地圖標(biāo)注名稱 怎么在百度地圖標(biāo)注公司的位置 天津電話外呼系統(tǒng)排名

linux系統(tǒng)是一個(gè)多用戶多任務(wù)的分時(shí)操作系統(tǒng),但系統(tǒng)并不能識(shí)別人,它通過賬號(hào)來區(qū)別每個(gè)用戶。每個(gè)linux系統(tǒng)在安裝的過程中都要為root賬號(hào)設(shè)置密碼,這個(gè)root即為系統(tǒng)的第一個(gè)賬號(hào)。每一個(gè)用這個(gè)賬號(hào)登錄系統(tǒng)的用戶都是超級(jí)管理員,他們對此系統(tǒng)有絕對的控制權(quán)。通過向系統(tǒng)管理員進(jìn)行申請,還可以為系統(tǒng)創(chuàng)建普通賬號(hào)。每個(gè)用普通賬號(hào)登錄系統(tǒng)的用戶,對系統(tǒng)都只有部分控制權(quán)。

我們知道計(jì)算機(jī)中的數(shù)據(jù)是以二進(jìn)制0、1的形式存儲(chǔ)在硬件之上的。在linux中,為了管理的方便,系統(tǒng)將這些數(shù)據(jù)組織成目錄和文件,并以一個(gè)樹形的結(jié)構(gòu)呈現(xiàn)給用戶。如下圖所示:


其中處于頂端的/是根目錄,linux下所有的文件均起始于根目錄。另外很重要的一點(diǎn),linux中不僅普通文檔是文件,目錄是文件,甚至設(shè)備、進(jìn)程等等都被抽象成文件。這樣做的目的是為了簡化操作和方便管理。

于是,本文開始所說的控制權(quán),即為用戶對系統(tǒng)中文件的控制權(quán)。通常所說的某某文件的權(quán)限,是針對特定用戶而言的。
另外,每一個(gè)登錄的用戶,在任意的時(shí)刻均處于某個(gè)目錄之內(nèi),稱為當(dāng)前目錄(current directory)。用戶在剛剛登錄的時(shí)候所處的目錄是家目錄,root用戶的家目錄是/root,普通用戶的家目錄通常為/home/user_name。在這里第一個(gè)字符/即是上文所說的根目錄,root和home是根目錄下的兩個(gè)子目錄名,要注意home后面的/是目錄分隔符,而不是目錄名的一部分,user_name是普通用戶家目錄的名字。

下面我們來看具體命令:

1、pwd 打印當(dāng)前目錄

pwd [OPTION]...

例如:

[root@centos7 ~]# pwd
/root

2、cd 切換目錄

cd [DIR]
例如切換到根目錄然后打印當(dāng)前目錄(注意命令提示符的變化):

[root@centos7 ~]# cd /
[root@centos7 /]# pwd
/

這兩個(gè)命令非常簡單,簡單到它們的選項(xiàng)都不常用,其中cd命令后面跟一個(gè)路徑名。這個(gè)路徑名可以是“絕對的”也可以是“相對的”。絕對的表示成以/為開頭的路徑名,如命令cd /usr/local/src中的路徑名;相對的表示成相對于當(dāng)前目錄的路徑名,若將linux中目錄的包含與被包含關(guān)系比喻成父子關(guān)系的話,符號(hào)..代表的是父目錄,符號(hào).代表當(dāng)前目錄。
例:
假設(shè)當(dāng)前所處目錄為/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后面任何參數(shù)都沒有的時(shí)候,執(zhí)行的效果是切換回家目錄:

[root@centos7 /]# cd
[root@centos7 ~]# pwd
/root

3、ls 列出目錄內(nèi)容

ls [OPTION]... [FILE]...
當(dāng)命令ls后不跟任何參數(shù)的時(shí)候顯示當(dāng)前目錄的內(nèi)容

[root@centos7 ~]# ls
anaconda-ks.cfg install.log install.log.syslog

上面的例子顯示了/root目錄下的三個(gè)文件anaconda-ks.cfg、anaconda-ks.cfg、anaconda-ks.cfg。
選項(xiàng)-l可以使ls命令的結(jié)果以長格式顯示:

[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

顯示結(jié)果的意思后述。

4、mkdir 創(chuàng)建目錄

mkdir [OPTION]... DIRECTORY...
通常的使用方法是命令名之后直接跟目錄名(可以多個(gè)),這里說一下linux文件命名的規(guī)則:linux允許文件名使用除字符/之外的所有字符,文件名的最大字符數(shù)為255(中文字符為127),linux不鼓勵(lì)在文件名中出現(xiàn)特殊字符(容易引起混淆),文件名對大小寫敏感。文件或目錄數(shù)量限制與所使用的文件系統(tǒng)有關(guān)。
如當(dāng)前目錄下創(chuàng)建temp目錄并用ls查看:

[root@centos7 ~]# mkdir temp
[root@centos7 ~]# ls
anaconda-ks.cfg install.log install.log.syslog temp

選項(xiàng)-p可以遞歸地創(chuàng)建子目錄,如進(jìn)入temp并創(chuàng)建目錄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 “創(chuàng)建文件”

touch [OPTION]... FILE...
其實(shí)此命令作用是修改文件時(shí)間,當(dāng)指定的文件不存在時(shí)就會(huì)創(chuàng)建新文件。由于文件時(shí)間的更改可以通過許多其它途徑,反而許多用戶都誤以為它就是創(chuàng)建文件的命令。如在temp目錄下創(chuàng)建文件file1 在temp的子目錄dir1下創(chuàng)建文件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 添加賬號(hào)

useradd [options] name
如創(chuàng)建一個(gè)名叫l(wèi)earner的賬號(hào):

[root@centos7 dir1]# useradd learner
useradd命令默認(rèn)在創(chuàng)建用戶賬號(hào)的同時(shí)也會(huì)創(chuàng)建用戶的家目錄,同時(shí)更新系統(tǒng)中與用戶相關(guān)的配置文件(linux中有許多配置文件,它們的作用是為軟件運(yùn)行設(shè)置環(huán)境信息、參數(shù)等,它們通常是純文本的格式,方便用戶變更其內(nèi)容以改變軟件運(yùn)行環(huán)境。在linux中,大多數(shù)配置文件都處于目錄/etc內(nèi),如與用戶管理相關(guān)的配置文件:/etc/passwd,/etc/group,/etc/shadow,/etc/gshadow等)。
讓我們進(jìn)入新創(chuàng)建的用戶家目錄并用ls命令查看目錄內(nèi)容:

[root@centos7 dir1]# cd /home/learner
[root@centos7 learner]# ls
[root@centos7 learner]# 

終端上并沒有打印出任何信息,試試ls的-a選項(xiàng):

[root@centos7 learner]# ls -a
. .. .bash_logout .bash_profile .bashrc

選項(xiàng)-a作用是顯示目錄下所有文件,包括當(dāng)前目錄.和父目錄..,linux中以.開頭的文件是隱藏文件。在這里的三個(gè)隱藏文件是用戶learner登錄系統(tǒng)時(shí)所要用到的配置文件。

7、passwd 添加或更改賬號(hào)口令

passwd [OPTION]... [NAME]
注意通過命令useradd新添加的賬號(hào)并不能馬上進(jìn)行登錄,還必須為賬號(hào)添加口令為新用戶learner添加口令:

[root@centos7 ~]# passwd learner
Changing password for user learner.
New UNIX password: xxxxxx   #此處的xxxxxx并不在屏幕上顯示
BAD PASSWORD: it is too simplistic/systematic #此處可能會(huì)給出密碼太簡單的警告
Retype new UNIX password: xxxxxx  #重復(fù)輸入,此處的xxxxxx不在屏幕上顯示
passwd: all authentication tokens updated successfully.

當(dāng)passwd命令后沒有用戶名直接執(zhí)行時(shí),它的作用是更改當(dāng)前賬號(hào)的口令。

8、cat 查看文件內(nèi)容

cat [OPTION]... [FILE]...
如查看保存系統(tǒng)賬號(hào)的配置文件/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

這里節(jié)選了部分輸出,我們看到新創(chuàng)建的賬號(hào)learner的信息在文件最后一行。文件中每一行都被:分割為7列,拿第一行舉例說明每一列所表示的含義:

1) root表示賬號(hào)名。
2) x是口令,在一些系統(tǒng)中,真正的口令加密保存在/etc/shadow里,這里保留x或*。
3) 0是用戶ID。
4) 0是用戶組ID,對應(yīng)著/etc/group文件中的一條記錄。
5) root是描述性信息。
6) /root是用戶家目錄。
7) /bin/bash是用戶的登錄shell,每一個(gè)登錄的用戶,系統(tǒng)都要啟動(dòng)一個(gè)shell程序以供用戶使用。
對應(yīng)于新創(chuàng)建的用戶learner來說,它的用戶ID是1000,通常用戶ID(UID)與用戶名是一一對應(yīng)的。root的UID是0。用戶組ID(GID)如果在創(chuàng)建用戶的時(shí)候沒有被指定,那么系統(tǒng)會(huì)生成一個(gè)和UID號(hào)相同的GID,并把新用戶放到這個(gè)組里面。用戶組的意義是為了給權(quán)限控制增加靈活性,比如把不同的用戶歸到一個(gè)組之內(nèi),然后使文件針對這個(gè)組設(shè)置權(quán)限。
系統(tǒng)中還有一些登錄shell為/sbin/nologin的用戶,這些用戶是“偽用戶”,它們是不能登錄的,它們的存在主要是為了方便管理,滿足相應(yīng)的系統(tǒng)進(jìn)程對文件屬主的要求。

9、head tail more less 查看內(nèi)容
這四個(gè)命令使用和cat類似,只是顯示方式的區(qū)別。
head從文件的第一行開始顯示,默認(rèn)顯示10行,使用選項(xiàng)-n可以指定顯示行數(shù):

[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) 組內(nèi)成員列表,多個(gè)用逗號(hào)分隔。如果字段為空表示用戶組為GID的用戶名。

tail默認(rèn)輸出文件的倒數(shù)10行內(nèi)容,也可以用選項(xiàng)-n指定行數(shù):

[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中保存的是賬號(hào)密碼等信息,每行被:分隔成9列:

1) 用戶名
2) 加密的密碼
3) 上次修改口令的時(shí)間;這個(gè)時(shí)間是從1970年01月01日算起到最近一次修改口令的時(shí)間間隔(天數(shù))。
4) 兩次修改口令間隔最少的天數(shù);如果這個(gè)字段的值為空,帳號(hào)永久可用;
5) 兩次修改口令間隔最多的天數(shù);如果這個(gè)字段的值為空,帳號(hào)永久可用;
6) 提前多少天警告用戶口令將過期;如果這個(gè)字段的值為空,帳號(hào)永久可用;
7) 在口令過期之后多少天禁用此用戶;如果這個(gè)字段的值為空,帳號(hào)永久可用;
8) 用戶過期日期;此字段指定了用戶作廢的天數(shù)(從1970年的1月1日開始的天數(shù)),如果這個(gè)字段的值為空,帳號(hào)永久可用;
9) 保留字段,目前為空,以備將來發(fā)展之用;
/etc/shadow中的記錄行與/etc/passwd中的一一對應(yīng),它由pwconv命令根據(jù)/etc/passwd中的數(shù)據(jù)自動(dòng)產(chǎn)生。
另外命令tail還有個(gè)常用選項(xiàng)-f,作用是隨著文件內(nèi)容的增加而輸出,默認(rèn)輸出間隔為1s。
more和less兩個(gè)命令的作用都是分頁顯示文件內(nèi)容,區(qū)別是more不允許往回翻,只能用enter鍵和空格鍵分別顯示下一行和下一頁(類似于man命令),less允許往回翻,向上箭頭和pageup按鍵也是可用的。讀者可自行實(shí)驗(yàn)這兩個(gè)命令,這里不再舉例。

10、groupadd創(chuàng)建用戶組

groupadd [OPTION] group
選項(xiàng)'-g'可以為新創(chuàng)建用戶組指定GID。如創(chuàng)建一個(gè)新用戶組group1并指定其GID為1005,然后再新創(chuàng)建一個(gè)用戶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命令的選項(xiàng)-u、-g和-s分別指定新用戶的uid、gid和登錄shell。

11、chmod 改變文件權(quán)限

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...

在看此命令用法之前,我們先來解釋一下命令ls的選項(xiàng)-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個(gè)部分:

1) -rw-r--r-- 10個(gè)字符中第一個(gè)字符-代表文件類型,linux中文件共有7種類型,分別表示如下:
    d:代表文件是一個(gè)目錄
    l:符號(hào)鏈接
    s:套接字文件
    b:塊設(shè)備文件
    c:字符設(shè)備文件
    p:命名管道文件
    -:普通文件,或者說除上述文件外的其他文件
剩下的9個(gè)字符每三個(gè)一組,表示這個(gè)文件的權(quán)限,linux中文件權(quán)限用二進(jìn)制的000-111(一位八進(jìn)制數(shù))來分別代表文件的權(quán)限,其中:
    r(read):讀權(quán)限(如果是文件表示讀取文件內(nèi)容,如果是目錄表示瀏覽目錄)。二進(jìn)制第一位置1即100,十進(jìn)制為數(shù)字4。
    w(write):寫權(quán)限(對文件而言,具有新增、修改文件內(nèi)容的權(quán)限,對目錄來說,具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限。)。二進(jìn)制第二位置1即010,十進(jìn)制為數(shù)字2。
    x(execute):執(zhí)行權(quán)(對文件而言,具有執(zhí)行文件的權(quán)限;對目錄來說具有進(jìn)入該目錄的權(quán)限。)。二進(jìn)制第三位置1即001,十進(jìn)制為數(shù)字1。
    -(無權(quán)限):當(dāng)沒有上述權(quán)限時(shí)。二進(jìn)制表示為000。
這樣本例中最后一行文件file1權(quán)限:
前三個(gè)字符`rw-`表示文件的所有者(`owner`)對文件具有讀和寫的權(quán)限,十進(jìn)制數(shù)字為4+2=6。
中間三個(gè)字符`r--`表示文件的所屬組(`group`)對文件具有讀權(quán)限,十進(jìn)制數(shù)字為4。
最后三個(gè)字符`r--`表示系統(tǒng)中其他用戶(`others`)對文件具有讀權(quán)限,十進(jìn)制數(shù)字為4。
這樣文件的權(quán)限可以用十進(jìn)制數(shù)字`644`來表示。
對于目錄dir1來說:
前三個(gè)字符`rwx`表示目錄所有者(`owner`)對其具有讀、寫和執(zhí)行的權(quán)限,十進(jìn)制表示為4+2+1=7。
中間三個(gè)字符`r-x`表示目錄的所屬組(`group`)對其具有讀和執(zhí)行的權(quán)限,十進(jìn)制表示為4+1=5。
后三個(gè)字符`r-x`表示系統(tǒng)中其他用戶(`others`)對其具有讀和執(zhí)行的權(quán)限,十進(jìn)制表示為4+1=5。
這個(gè)目錄權(quán)限用十進(jìn)制表示即為`755`,注意文件和目錄相同權(quán)限之間的區(qū)別。
2) 權(quán)限后面的數(shù)字代表文件的硬鏈接數(shù)
3) root文件的所有者,有時(shí)表示為用戶的UID。
4) root文件的所屬組,有時(shí)表示為用戶組的GID。
5) 文件大小,以字節(jié)`Byte`為單位。
6) 10月 21 表示文件內(nèi)容最近一次被修改的時(shí)間。
7) 最后一列為文件名。

如給文件file1的用戶組增加執(zhí)行權(quán)限:

[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增加執(zhí)行x的權(quán)限。
如給文件file1的其他人減少讀權(quán)限:

[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權(quán)限。
如給文件file1的任何用戶都設(shè)置成rw-權(quán)限:

[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設(shè)置成rw-權(quán)限。
或者用十進(jìn)制表示法直接指定文件的權(quán)限:

[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和目錄內(nèi)的所有目錄和文件權(quán)限都設(shè)置成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

選項(xiàng)-R作用是遞歸地改變目標(biāo)權(quán)限。
另外如目錄/tmp的權(quán)限:

[root@centos7 tmp]# ls -l /
....
drwxrwxrwt. 7 root root 88 10月 22 21:14 tmp
....

我們看到權(quán)限最后一位是t,這里代表粘滯位(sticky),它的作用是給目錄特殊的權(quán)限:使用戶不能刪除該目錄下不屬于此用戶的文件。
t后面的.表示該文件被selinux的安全上下文保護(hù)。
如可執(zhí)行文件/bin/su的權(quán)限:

[root@centos7 bin]# ls -l /bin/su
-rwsr-xr-x. 1 root root 32072 11月 20 2015 /bin/su

所有者的權(quán)限r(nóng)ws,這里的s代表suid,如果在用戶組位置的話代表sgid,作用是給文件特殊的權(quán)限:當(dāng)用戶執(zhí)行此文件的時(shí)候,把他當(dāng)成是文件的所有者來執(zhí)行。
這些特殊用途的的權(quán)限對普通用戶來說知道即可。

12、lsattr 列出隱藏權(quán)限

lsattr [option] [files...]
如:

[root@centos7 temp]# lsattr 
---------------- ./dir1
---------------- ./dir2
---------------- ./file1

列出了文件的隱藏權(quán)限位,共有16位(由于隱藏權(quán)限是文件系統(tǒng)相關(guān)的,不同的文件系統(tǒng)對于文件的隱藏權(quán)限的設(shè)定不一定相同)。

13、chattr 給文件設(shè)置隱藏權(quán)限

chattr [+-=] [mode] files...
如給文件file1增加隱藏權(quán)限a:

[root@centos7 temp]# chattr +a file1 
[root@centos7 temp]# lsattr file1 
-----a---------- file1

這里的a權(quán)限表示:這個(gè)文件將只能添加數(shù)據(jù),而不能刪除也不能修改數(shù)據(jù),只有root才能配置這個(gè)屬性。
給文件file2增加隱藏屬性i:

[root@centos7 temp]# chattr +i file2 
[root@centos7 temp]# lsattr file2 
----i----------- file2

這里的i權(quán)限表示:使文件不能被修改、刪除、改名、鏈接。只有root才能配置這個(gè)屬性。
這些隱藏權(quán)限都不常用,通常知道這兩個(gè)就可以了。

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
....

這里的用戶和用戶組可以用對應(yīng)的uid和gid代替,冒號(hào):也可以換為點(diǎn)號(hào).。

15、userdel和groupdel 用于刪除用戶和用戶組。
userdel用于刪除用戶賬號(hào),選項(xiàng)-r可以將用戶家目錄一并刪除。
groupdel用于刪除用戶組,注意不能移除現(xiàn)有用戶的主組。在移除此組之前,必須先移除此用戶。

16、id 打印用戶ID信息

id [OPTION]... [USER]
當(dāng)不跟用戶名時(shí)顯示當(dāng)前用戶信息:

[root@centos7 ~]# id
uid=0(root) gid=0(root) 組=0(root)

17、whoami,who,w 顯示登錄用戶信息
命令whoami打印出當(dāng)前用戶名:

[root@centos7 ~]# whoami
root

命令who打印當(dāng)前登錄用戶信息:

[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)

顯示信息中第一列為用戶名,第二列為登錄終端,第三列為登錄時(shí)間,最后為登錄ip地址。

命令w顯示信息與命令who類似,增加了一些系統(tǒng)信息:

[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

輸出的第一行顯示了系統(tǒng)運(yùn)行時(shí)間,當(dāng)前有多少用戶登錄,cpu的平均負(fù)載(以后文章中會(huì)有詳述)。余下的信息增加了空閑時(shí)間,cpu的使用時(shí)間以及運(yùn)行的命令。

18、su 執(zhí)行用戶命令

su [options...] [-] [user [args...]]
兩種常用用法:
選項(xiàng)-c command用于使用目標(biāo)賬號(hào)執(zhí)行-c指定的命令:

[root@centos7 ~]# su learner -c pwd
/root

例子中使用賬號(hào)learner執(zhí)行了命令pwd。當(dāng)不使用選項(xiàng)-c時(shí)則為切換用戶:

[root@centos7 ~]# whoami
root
[root@centos7 ~]# su learner
[learner@centos7 root]$ whoami
learner

注意如果是從普通賬號(hào)切換至root或其他賬號(hào)時(shí),需要輸入對應(yīng)密碼。
帶與不帶選項(xiàng)-或-l或--login切換賬號(hào)時(shí),會(huì)有環(huán)境變量上的區(qū)別。同時(shí)帶這些選項(xiàng)也會(huì)把當(dāng)前目錄切換至目標(biāo)賬號(hào)的家目錄。使用命令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 作為另一個(gè)用戶來執(zhí)行命令

sudo [OPTION]... command
linux中為了安全,往往并不允許每個(gè)用戶都用root賬號(hào)登錄系統(tǒng),通常都會(huì)創(chuàng)建一些普通用戶。但有些命令是只有root用戶才能執(zhí)行的,為了更靈活的分配權(quán)限,使普通用戶也能執(zhí)行某些root命令,我們可以使用sudo來完成這一任務(wù)。
sudo通過維護(hù)一個(gè)特權(quán)到用戶名映射的數(shù)據(jù)庫將特權(quán)分配給不同的用戶,這些特權(quán)可由數(shù)據(jù)庫中所列的一些不同的命令來識(shí)別。為了獲得某一特權(quán)項(xiàng),有資格的用戶只需簡單地在命令行輸入sudo與命令之后,按照提示再次輸入口令(用戶自己的口令,不是root用戶口令)。
使用-l選項(xiàng)可以查看當(dāng)前用戶可以執(zhí)行的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 上運(yùn)行 sudo。

這里看到learner用戶并不能使用sudo。若要設(shè)置用戶使用sudo,需要編輯sudo的配置文件/etc/sudoers。該文件中以符號(hào)#開頭的都是注釋行,用來解釋或描述配置,并不起實(shí)際作用。
需要使用命令visudo來編輯修改/etc/sudoers(使用方法和使用vi/vim編輯器類似,后面有文章詳細(xì)描述)。
配置文件中的一個(gè)條目格式為:

user MACHINE=COMMANDS
如給用戶learner在所有地方(ALL)運(yùn)行任何命令(ALL):

learner ALL=(ALL) ALL
之后查看:

[learner@centos7 ~]$ sudo -l
[sudo] password for learner:
匹配此主機(jī)上 learner 的默認(rèn)條目:
....
....
用戶 learner 可以在該主機(jī)上運(yùn)行以下命令:
    (ALL) ALL
當(dāng)然并不會(huì)給普通用戶所有權(quán)限,這里只是舉例。通常的做法是給某個(gè)用戶某些特定的命令權(quán)限,如允許用戶tom在主機(jī)machine上執(zhí)行立即關(guān)機(jī)的命令,在/etc/sudoers中添加條目:

tom machine=/usr/sbin/shutdown -h now
注意machine是tom登錄系統(tǒng)所用的主機(jī)名,可以用ip地址代替,如使用命令w時(shí)FROM那一列所顯示的登錄ip。等號(hào)后面的命令名必須是命令的絕對路徑,-h now是命令/usr/sbin/shutdown的參數(shù),命令效果是立即關(guān)機(jī)。等號(hào)后面可以接多個(gè)命令,用逗號(hào)分隔它們。同時(shí)用戶名也可以是用戶組,用%組名代替。另外,用戶tom在執(zhí)行sudo命令時(shí),sudo后面的命令寫法也必須和配置中的一致。

20、mv 移動(dòng)文件或目錄

mv [OPTION]... SOURCE... DIRECTORY
mv命令的作用是把文件或目錄從源移動(dòng)到目標(biāo)目錄,路徑可以是絕對的也可以是相對的
如將文件file2從當(dāng)前目錄移動(dòng)到/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還可以對文件進(jìn)行改名,如將目錄dir2移動(dòng)到dir1內(nèi)并改名為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 復(fù)制文件或目錄
cp [OPTION]... SOURCE... DIRECTORY
如復(fù)制文件file1為file3:

[root@centos7 temp]# ls
dir1 file1
[root@centos7 temp]# cp file1 file3
[root@centos7 temp]# ls
dir1 file1 file3

復(fù)制目錄dir1內(nèi)目錄dir3及其包含內(nèi)容到當(dāng)前目錄下,起名為dir2:

[root@centos7 temp]# cp -r dir1/dir3/ ./dir2
[root@centos7 temp]# ls
dir1 dir2 file1 file3

復(fù)制目錄的時(shí)候需要使用選項(xiàng)-r,當(dāng)目標(biāo)已存在時(shí),會(huì)需要用戶確認(rèn)是否覆蓋,輸入y或yes表示確認(rèn)覆蓋,輸入n或no表示取消覆蓋:

[root@centos7 temp]# cp file1 file3
cp:是否覆蓋"file3"? y
[root@centos7 temp]# cp file1 file3 
cp:是否覆蓋"file3"? no

可以使用選項(xiàng)-f(force)來強(qiáng)制復(fù)制,不需要確認(rèn)。

[root@centos7 temp]# cp -rf dir1/test ./dir2/
注意此處-rf,當(dāng)有多個(gè)選項(xiàng)作用于一個(gè)命令時(shí),在不引起混淆的情況下可以連寫。

22、rm 刪除文件

rm [OPTION]... FILE...
選項(xiàng)-r作用是遞歸地刪除目錄,-f的作用是強(qiáng)制刪除:

[root@centos7 temp]# ls
dir1 dir2 file1 file3
[root@centos7 temp]# rm -rf dir2/
[root@centos7 temp]# ls
dir1 file1 file3

23、whereis 查找系統(tǒng)命令

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

輸出的結(jié)果第一列表示所占空間大小(單位是KB)。第二列是是文件名。
可以使用選項(xiàng)-h用人類可讀(human readable)的方式顯示:

[root@centos7 temp]# du -h file1 
4.0K file1

當(dāng)使用-s選項(xiàng)作用在目錄上時(shí),只顯示總用量。不用時(shí)則顯示該目錄下的每個(gè)文件:

[root@centos7 temp]# du dir1
0  dir1/test
0  dir1/dir3
0  dir1
[root@centos7 temp]# du -sh dir1
0  dir1

linux秉承“一切皆文件”的思想,在這樣的思想作用之下,linux內(nèi)的所有操作都可以說是文件相關(guān)的。這里列出的命令都是最為基礎(chǔ)的文件相關(guān)命令,每一個(gè)使用者都需要牢記。當(dāng)然這里并不能將它們的所有用法一一列舉,如想了解更多,一定要記得man!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • linux Shell腳本里面把一個(gè)數(shù)組傳遞到awk內(nèi)部進(jìn)行處理
  • linux awk高級(jí)應(yīng)用實(shí)例
  • 一天一個(gè)shell命令 linux文本內(nèi)容操作系列-awk命令詳解
  • linux awk時(shí)間計(jì)算腳本及awk命令詳解
  • linux正則表達(dá)式awk詳解
  • linux shell awk獲得外部變量(變量傳值)簡介
  • linux之a(chǎn)wk命令的用法
  • Linux里awk中split函數(shù)的用法小結(jié)
  • linux網(wǎng)絡(luò)相關(guān)命令匯總(6)
  • linux文本分析awk基礎(chǔ)命令介紹(8)

標(biāo)簽:六盤水 武漢 滁州 丹東 百色 鎮(zhèn)江 優(yōu)質(zhì)小號(hào) 自貢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux用戶與文件基礎(chǔ)命令介紹(1)》,本文關(guān)鍵詞  linux,用戶,與,文件,基礎(chǔ),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux用戶與文件基礎(chǔ)命令介紹(1)》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux用戶與文件基礎(chǔ)命令介紹(1)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    河曲县| 郯城县| 沈丘县| 紫金县| 凌云县| 福泉市| 宜宾市| 高雄县| 治县。| 凤台县| 巴南区| 丹阳市| 拜城县| 临泉县| 荃湾区| 黎城县| 琼海市| 永年县| 巴彦淖尔市| 南安市| 洪洞县| 边坝县| 小金县| 东乌| 彰化县| 华安县| 赤壁市| 边坝县| 武山县| 余姚市| 文水县| 青龙| 万宁市| 河池市| 临猗县| 尖扎县| 德清县| 白银市| 民和| 双城市| 伊春市|