Linux系統(tǒng)-文件系統(tǒng)&用戶組管理-問題解答

1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關(guān)示例演示。

1)ls

ls ?-l ?/home/ ? ? #顯示home目錄下文件或文件夾的包括訪問權(quán)限、所屬用戶、所屬主組、文件大小等信息, ls ?-l ?也是別名ll的命令與選項部分。

ls ?-a ? ?/root ? ?#顯示root目錄下包括隱藏文件在內(nèi)的所有文件

ls ?-d ? ?/etc/* ? ?#顯示etc目錄下所有子目錄(不包括文件)

ls ?-S ? /root ? ? #按文件從大到小排列顯示root目錄下各文件

ls ?-Sr ? /root ??#按文件從小到大排列顯示root目錄下各文件

ls ?-U ??/root ? #按文件創(chuàng)建時間從新到舊排列顯示root目錄下各文件

ls ? -X ??/root ? #按文件后綴排序顯示root目錄下各文件

ls ?-R ??/root ? ?#遞歸顯示root目錄下所有文件

ls ?-t ??/root ? ? #按修改數(shù)據(jù)內(nèi)容的時間(mtime)從新到舊排列顯示root目錄下各文件

2)touch

touch ? ?/data/file1 ? ? ?#在data目錄下創(chuàng)建file1文件,如果目錄下已經(jīng)有同名文件,則不會覆蓋同名文件

touch ? -t ? 201910200830.50 ? /etc/hosts ? ? ? ?#修改/etc/hosts文件的atime以及mtime的時間戳為2019年10月20日8點30分50秒

touch ?-c ?/data/f2 ? ? #刷新data目錄下f2文件的atime、mtime、ctime,如果f2文件不存在,則不會創(chuàng)建f2

3)cp

cp ?etc/hosts ? /home/ ? ? #復(fù)制/etc/hosts文件到 /home目錄下,如果home目錄下沒有hosts文件,則自動創(chuàng)建同名文件;如果有,則會直接覆蓋。

cp ?-i ??etc/hosts ? /home/ ??#復(fù)制/etc/hosts文件到 /home目錄下,如果home目錄下沒有hosts文件,則自動創(chuàng)建同名文件;如果有,則會詢問用戶是否覆蓋。

cp ?-r ?/etc/ntp ? /root ? ? #復(fù)制/etc/ntp目錄下所有子目錄以及文件到root目錄下

cp ?-a ? ?/home/* ?/data/ ? ?#復(fù)制/home/目錄下所有子目錄以及文件到data目錄下,所有文件的類型、軟鏈接、文件所屬關(guān)系、時間戳等信息都一并復(fù)制(但是home目錄下的隱藏文件不會被復(fù)制到data目錄下)

cp ?-av ??/home/* ?/data/ ? #在實現(xiàn)cp ?-a ? ?/home/* ?/data/ ? 復(fù)制的基礎(chǔ)上,在終端上顯示復(fù)制過程

cp ?-u ? /etc/* ? /data/ ? ? ? #將etc目錄下的文件復(fù)制到data目錄下,如果etc目錄的文件比data目錄下的同名文件新,則覆蓋data目錄下的同名文件,如果etc目錄下的文件比data目錄里的與之同名文件舊,則不覆蓋。

cp ? --backup=numbered ? ?etc/hosts ? /home/hosts ? ? ?#將etc目錄下hosts文件復(fù)制到home目錄下的hosts,在復(fù)制之前,會先對home目錄的hosts文件進行備份,避免被覆蓋后,原文件內(nèi)容丟失。

4)mv

mv ? /etc/hosts ? ?/data/ ? ? ? ? #將etc目錄下hosts文件轉(zhuǎn)移到data目錄下,如果data目錄有同名文件,則直接覆蓋 ? ?

mv ?-i ? ?/etc/hosts ? ?/data/ ? ?#將etc目錄下hosts文件轉(zhuǎn)移到data目錄下,如果data目錄有同名文件,則詢問是否覆蓋?

mv ?f1 ? f2 ? ? ? #將當前目錄下的f1文件修改名字為f2

mv ? -t ? ?/data/ ? ?/etc/hosts ? ? #將etc目錄下hosts文件轉(zhuǎn)移到data目錄下,如果data目錄有同名文件,則直接覆蓋 。功能實現(xiàn)上與mv ? /etc/hosts ? ?/data/ ? ?相同,但是移出路徑參數(shù)與移入路徑參數(shù)的位置發(fā)生了互換

mv ? ?downloads/ ? ?D ? ? ?#將當前目錄下的downloads目錄的名字改成D

5)rm

rm ? /data/f1 ? ? #刪除data目錄下的f1文件

rm ?-r ? /data/* ? ?#遞歸刪除data目錄下的所有文件

rm ?-rf ? ?/data/* ? #強制遞歸刪除data目錄下的所有文件

6)file

file ? /etc/hosts ? ? #查看etc目錄下hosts文件的文件類型,如文本文件、壓縮文件、可執(zhí)行程序等

7)stat

?stat ? /data/f1 ? ? ?#查看/data/f1文件的三個時間,內(nèi)容數(shù)據(jù)修改時間mtime,讀取時間atime,元數(shù)據(jù)修改時間ctime

8)pwd

#在當前目錄下輸入pwd回車,查看當前所在目錄路徑

pwd ?-P ? ?#顯示當前目錄或文件夾的真實路徑

9)cd

cd ?/data ? ?#進入data目錄 ??

cd ?~root ? ?#進入root的家目錄

cd ?- ? ? ? #回到剛才離開的目錄

10)mkdir

mkdir ?/data/dir ? ? ? ?#在data目錄下創(chuàng)建dir目錄?

mkdir ?-p ? /data/dir1/dir2/dir3/dir4 ? ? ? ? ??#在data目錄下創(chuàng)建子目錄dir1/dir2/dir3/dir4,若dir1、dir2、dir3都不存在,則遞歸創(chuàng)建

11)rmdir

rmdir ? ? /data/dir ? ? ? ?#刪除data目錄下的dir目錄,如果dir里面有文件,則dir不能被刪除

rmdir ?-p ? ?/data/dir1/dir2/dir3/dir4 ? ? ? ? ?#若dir1、dir2、dir3、dir4都是空目錄,則遞歸刪除data目錄下的dir1、dir2、dir3、dir4目錄

12)ln

ln ? ?/data/f1 ? ?/data/f2 ? ? ? ?#在data目錄下創(chuàng)建文件f1的硬鏈接f2

ln ?-s ? ? f1 ? f1.link ? ? ? ? ? ?#在當前目錄下創(chuàng)建文件f1的軟鏈接f1.link

#當軟鏈接路徑與原文件路徑不同時,如軟鏈接位置是:/root/f1.link ?,而原文件路徑是:/data/f1 ? 。 則在創(chuàng)建軟鏈接時需要相對于軟鏈接的路徑,對原文件路徑補完相對路徑,具體如下:

ln ?-s ?../data/f1 ? /root/f1.link


2、使用命令行展開功能,創(chuàng)建/tmp/a1,?/tmp/a2,?/tmp/a1/a,?/tmp/a1/b,在/tmp目錄下創(chuàng)建目錄:x_y,?x_z,?q_y,?q_z

答:

1)創(chuàng)建/tmp/a1,?/tmp/a2,?/tmp/a1/a,?/tmp/a1/b

mkdir? ?/tmp/a{1,2}

touch ? /tmp/a1/{a,b}

2)在/tmp目錄下創(chuàng)建目錄:x_y,?x_z,?q_y,?q_z

mkdir ? ? /tmp/{x,q}_{y,z}


3、文件的元數(shù)據(jù)信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

答:文件的元數(shù)據(jù)信息包括:

文件類型:指文件所屬的類型,包括目錄、文本文件、壓縮文件、可執(zhí)行程序等。系統(tǒng)實際上查看文件的頭部信息,magic number。

節(jié)點編號:每個文件、文件夾在同一個磁盤分區(qū)內(nèi),都有一個唯一的節(jié)點編號inode,用于識別磁盤分區(qū)內(nèi)的文件。節(jié)點編號的數(shù)量在一個磁盤分區(qū)內(nèi)是有限的,如果節(jié)點編號耗盡,無論磁盤空間是否真的占滿,都會顯示磁盤空間已滿。

硬鏈接數(shù):是指指向該文件節(jié)點編號inode的文件名稱數(shù)量。

所屬用戶UID:創(chuàng)建該文件的用戶的uid

所屬主組GID:創(chuàng)建該文件的用戶的主組gid

文件大?。?/b>表示該文件的磁盤空間占用大小

mtime時間戳:指文件的內(nèi)容數(shù)據(jù)發(fā)生修改時的時間點

atime時間戳:指文件被訪問時的時間點

ctime時間戳:指文件的元數(shù)據(jù)發(fā)生變化時的時間點

訪問權(quán)限:指不同用戶對文件的訪問、修改、執(zhí)行等操作的權(quán)限

指向磁盤數(shù)據(jù)塊的直接指針:直接指向磁盤數(shù)據(jù)塊的指針,一個文件最多有12個直接指針,每個直接指針指向一個4k大小的數(shù)據(jù)塊

指向磁盤數(shù)據(jù)塊的間接指針:間接指向磁盤數(shù)據(jù)塊的指針,一個間接指針會先指向一個4k大小數(shù)據(jù)塊作為次階指針表,該數(shù)據(jù)塊又分成1024個4字節(jié)大小的區(qū)間,一個區(qū)間存儲一個次階的指針,次階指針指向一個4k的磁盤數(shù)據(jù)塊存儲真正的文件數(shù)據(jù),若依然不能滿足空間要求,則可繼續(xù)嵌套次階指針表,直到滿足文件存儲要求為止。


查看元數(shù)據(jù)信息方式:

1)ls ?-l ? /data ? ? #可查看data目錄下非隱藏文件的訪問權(quán)限、所屬用戶UID、所屬用戶主組GID、mtime時間戳、文件大小、硬鏈接數(shù)。

2)stat ? ?/root/bin ? ? #可查看root目錄下bin目錄的atime時間戳、mtime時間戳、ctime時間戳

3)ls ? -lc ???/root/ ? ?#查看root目錄下非隱藏文件的ctime時間戳

4)ls ? -lu ? ??/root/ ??#查看root目錄下非隱藏文件的atime時間戳

5)ls ?-i ? ?/root ? ? ?#查看root目錄下所有非隱藏文件的節(jié)點編號

6)file ? /root/.bashrc ? ? ?#查看root目錄下.bashrc文件的文件類型


修改文件的時間戳信息:

touch ? -t ? 201910200830.50 ? /etc/hosts ? ?? #將etc目錄下hosts文件的atime和mtime時間戳修改成2019年10月2日8時30分50秒

touch ? -a ??/etc/hosts ? ?#更新etc目錄下hosts文件的atime和ctime為當前時間

touch ? -m ??/etc/hosts ? ??#更新etc目錄下hosts文件的mtime和ctime為當前時間


4、在/tmp目錄下創(chuàng)建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

答: ?touch ?/tmp/tfile-`date ?+"%F-%H-%M-%S"`


5、復(fù)制/etc目錄下所有以p開頭,以非數(shù)字結(jié)尾的文件或目錄到/tmp/mytest1目錄中。

答:

mkdir ? ?/tmp/mytest1 ? ??#先創(chuàng)建mytest1目錄

cp ? ?-a ? ? /etc/p*[^0-9] ? ? ?/tmp/mytest1/

或:

cp ? ? -a ? ? ?/etc/p*[^[:digit:]] ? ? ?/tmp/mytest1/


6、創(chuàng)建用戶tom,指定UID為5001,指定家目錄為/tmp/tom,?指定shell為/bin/zsh,?指定基本組為tom,附加組為jack

答:

useradd ? -u 5001 ?-md ?/tmp/tom ? -s ?/bin/zsh ? ? -G ?jack ? ?tom


7、常用的用戶以及文件管理命令有哪些,并演示命令以及用法。

1)useradd

useradd ? jack ? ? #創(chuàng)建用戶jack,用戶策略采用系統(tǒng)默認配置

useradd ? -u 1008 ?jack ? ? ??#創(chuàng)建用戶jack,指定用戶的UID為1008

useradd ? -d ? /data/jack ? ?jack ? ??#創(chuàng)建用戶jack,指定用戶家目錄路徑為/data/jack

useradd ? -g ?1111 ?jack ? ??#創(chuàng)建用戶jack,指定用戶主組是GID=1111的組,但GID=1111的組需要事先存在,否則無法創(chuàng)建

useradd ? -G ?tom ?jack ? ? ?#創(chuàng)建用戶jack,指定用戶jack加入附加組tom,但tom組需要事先存在,否則無法創(chuàng)建

useradd ?-s ?/bin/zsh ?jack ? ? ?#創(chuàng)建用戶jack,制定用戶jack的shell類型是zsh

useradd ?-r ? ?jack ? ? ? ?#創(chuàng)建系統(tǒng)用戶jack,系統(tǒng)用戶默認不創(chuàng)建家目錄

useradd ?-r ?-md ? /data/jack ? ?jack ? ? #配合-d選項,創(chuàng)建系統(tǒng)用戶jack,指定該系統(tǒng)用戶創(chuàng)建家目錄/data/jack,并在家目錄中載入默認配置文件

useradd ?-N ? ?jack ? ??#創(chuàng)建用戶jack,不創(chuàng)建jack同名主組,將jack主組默認為users

useradd ?-M ? ?jack ? ?#創(chuàng)建用戶jack,強制用戶jack不創(chuàng)建家目錄


2)usermod

usermod ?-G ?wang ? jack ? ? #將jack用戶的附加組更改為wang,原有附加組刪除

usermod ?-aG ?wang ? jack ? ?#在不退出原有附加組情況下,jack用戶增加附加組wang

usermod ? -l ? jacky ? jack ? ? ?#修改用戶名稱為jacky

usermod ?-e ?20181212 ?jack ? ?#將用戶jack的賬號過期日期修改為2018年12月12日

usermod ?-s ? /bin/csh ? ?jack ? ??#修改用戶jack的shell類型為csh,與命令: ?chsh ? -s ? /bin/csh ? jack ? ?相等?

usermod ?-c ? ?'abcdefg' ? ?jack ? ?#編輯用戶jack的注釋為abcdefg


3)userdel

userdel ? jack ? ? ?#刪除用戶jack

userdel ? -r ? ?jack ? ? #刪除用戶jack,包括用戶的家目錄、郵箱


4)groupadd

groupadd ? -g ? 1010 ?leo ? ?#創(chuàng)建組leo,指定GID為1010

groupadd ? -r ? ?leo ? ? ? #創(chuàng)建系統(tǒng)組leo


5)groupmod

groupmod ?-n ? lee ?leo ? ?#修改組leo名字為lee

groupmod ?-g ? 1111 ? leo ? #修改組leo的GID為1111


6)groupdel

groupdel ? ? wang ? ? ? ? ? #刪除wang組,但是wang組必須不是任何用戶的主組,否則不可以刪除


7)su

su ? ?jack ? #當前用戶非登錄切換到j(luò)ack賬號,不讀取jack賬號配置文件

su ?- ? jack ??#當前用戶登錄切換到j(luò)ack賬號,讀取jack賬號配置文件


8)groupmems

groupmems ? ?-l ? -g ? ?root ? ? ? #查看所有屬于root組的用戶


9)id

id ? ? ? #查看當前用戶的UID名稱 、 主組名稱GID 、 附屬組名稱GID

id ?root ? ??#查看root用戶的UID名稱、 ?主組名稱GID ?、附屬組名稱GID

id ?-u ?root ? ?#查看root用戶的UID名稱 ?

id ?-g ? root ??#查看root用戶的主組名稱GID ?

id ?-G ?root ??#查看root用戶的主組名稱GID 、 附屬組名稱GID

id ?-nG ?root ??#只查看root用戶的主組名稱 、 附屬組名稱


10)chfn

chfn ? jack ? ? #編輯修改用戶jack的注釋 ?,與命令:usermod ?-c ? ?'abcdefg' ? ?jack ? 類似


11)chsh

chsh ? -s ? /bin/csh ? jack ? ? #修改用戶jack的shell類型為csh


12)chage

chage ? ? jack ? ? ? ? # 交互式修改用戶jack的密碼策略,包括修改:密碼創(chuàng)建時間、最小密碼修改期、密碼有效期、過期通知、過期寬限期、賬戶有效時間

chage ? -l ? ? jack ? ? #查看用戶jack的密碼策略

chage ? ?-d ? ?0 ? ?jack ? ? #讓用戶jack密碼期限立即過期,重新登錄需要更換密碼


13)passwd ?

passwd ? ? #修改當前用戶的賬號密碼

passwd ? ?jack ? ?#修改jack賬號密碼 ?(僅限r(nóng)oot賬號)

passwd ?-e ? jack ? #強制jack用戶下次登錄修改密碼(僅限r(nóng)oot賬號)

echo ? ?hello ? | ?passwd ?--stdin ? jack ? ?#利用管道標準輸入,快速將jack用戶密碼修改成hello,無需輸入兩次新密碼,不檢驗密碼的復(fù)雜度

14)newgrp

newgrp ? ? root ? ? ? #將當前用戶的主組切換成root,原主組切換成附屬組,如果當前用戶的附屬組沒有root組,切換時需要輸入root組密碼;如果當前用戶的附屬組包含root組,則無需輸入組密碼,直接切換


15)gpasswd ??

gpasswd ? ?jack ? ? #創(chuàng)建jack組密碼

gpasswd ? -a ?wang ? jack ? ?#將wang用戶添加至jack組里


16)groups

groups ? jack ? ? ?#查看用戶jack所屬的組列表

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容