馬哥linux作業--第三周
阿新 • • 發佈:2018-12-02
pat ech 說明 顯示 mps 不存在 以及 密碼字段 哲學思想 Q1:Linux上的文件管理類命令有哪些,其常用的使用方法及其相關示例演示。
Q2:使用命令行展開功能,創建
Q4:在
Q5:復制
Q6:創建用戶
Linux
有兩個重要的哲學思想:1、一切皆文件;2、配置文件都是TEXT文本。所以在Linux
上管理文件是非常重要的工作。在
Linux
上,針對文件的管理命令分為以下幾類
- 創建:touch
- 刪除:rm
- 復制:cp,install
- 移動:mv
- 查看文件屬性:stat
- 修改文件屬性:touch
命令詳解:
touch
- 說明:touch命令本來是用來修改文件的時間的(atime, mtime),但當不加選項時,可以創建空文件。
- 用法:
touch [OPTION]... FILE...
- 選項:
- 無:沒有選項,會創建空文件,如果文件已經存在,不會報錯,會直接修改文件的兩個時間(其實ctime也會同時被修改,因為改atime和mtime屬於修改文件元屬性)。
- -a:只修改文件的atime。
- -c:當文件不存在時,不創建文件。
- -d STRING:用
STRING
指定的時間來取代默認的當前時間;修改文件用的時間默認是當前時間,-d
參數改變這個默認值。- -h:修改符號鏈接的時間,而不是其引用的文件。
- -m:修改mtime。
- -r FILE:用指定的FILE的時間做參考,修改文件時間。
- -t STAMP:用
STAMP
指定的時間來取代默認的當前時間;STAMP
的格式為[[CC]YY]MMDDhhmm[.ss]
。- --time=WORD:指定要修改的時間,
access
表示actime
,modify
表示mtime
。- 示例:
- 創建空文件:
touch /PATH/TO/SOME_FILE
。- 創建多個空文件:
touch /PATH/TO/SOME_FILE1 /PATH/TO/SOME_FILE2 /PATH/TO/SOME_FILE3 ...
- 修改文件訪問時間:
touch -at 201810011212.13 /etc/inittab
rm
- 說明:rm用來刪除各種文件,包括目錄。
- 用法:
rm [OPTION]... FILE...
- 選項:
- -f:強制刪除,沒有提示。
- -i:交互模式刪除,刪除每個文件前都先詢問是否要刪除。
- -I:交互模式刪除,當刪除多個文件或遞歸刪除時,只詢問一次。
- --interactive[=WHEN]:
WHEN
取值為never
、once
、always
分別對應參數-f
,-I
,-i
,當不指定WHEN
時,默認為always
。- -r/-R:遞歸刪除目錄。
- -d:刪除空目錄
- -v:顯示整個刪除詳情。
- 示例:
- 刪除單個文件:
rm [-f] /PATH/TO/SOME_FILE
。- 刪除整個目錄:
rm -r /PATH/TO/SOM_DIR
或rm -fr/PATH/TO/SOM_DIR
。cp
- 說明:復制文件或目錄
- 用法:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
- 以上三種用法,只是指定源和目標的方式不一樣罷了。
- 選項:
- -a:等同於
-dR --prevserve=all
,歸檔復制,保留文件的所有屬性。- -d:等同於
--no-dereference --preserve=links
,保持鏈接。- -f:強制覆蓋已存在的目標文件。
- -i:覆蓋目標文件之前,詢問。
- -l:對源文件做硬鏈接,而不是復制。
- -L:復制鏈接指向的文件。
- -n:不覆蓋已經存在的文件。
- -P:保持鏈接
- -p:等同於
--preserve=mode,ownership,timestamps
,保留文件的權限,屬主,屬組,時間戳。- --preseve=[ATTR_LIST]:保留文件的屬性列表,可用值為
mode
,ownership
,timestamps
,context
,links
,xattr
,all
,不指定默認為--preserve=mode,ownership,timestamp
。
- mode:權限
- ownership:屬主,屬組
- timestamp:時間戳
- context:安全標簽
- links:保持鏈接
- xattr:擴展屬性
- all:以上所有
- -c:等同於
--preserve=context
。- --no-preseve=[ATTR_LIST]:不保留的文件屬性列表。
- -r/-R:遞歸復制目錄
- -reflink=[WHEN]:
- always:寫時復制,只有在原文件被修改了才會復制(類似快照)。
- --auto:正常復制。
- -s:創建符號鏈接,而不是復制文件。
- -t DIRECTORY:指定目標目錄。
- -T:指明目標是一個文件而不是目錄。
- 示例:
- 復制一個文件:
copy /etc/inittab /tmp/inittab.bak
- 復制文件到目錄:
copy /etc/inittab /tmp
- 復制多個文件到目錄:
copy /etc/inittab /etc/rc.d/rc.sysinit /tmp
- 復制目錄:
copy -r /etc /tmp
install
- 說明:復制文件的同時,設置文件的屬性
- 用法:
install [OPTION]... [-T] SOURCE DEST
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...
- 以上四種用法,只是指定源和目標的方式不一樣罷了。
- 選項:
- -d DIRECTORY...:創建目錄,後面可以跟多個目錄參數,同時創建多個。
- -m MODE:設置權限,不指定默認是
rwxr-xr-x
。- -o OWNER:指定屬主(僅管理員可用)。
- -g GROUP:指定屬組,替換進程的屬組。
- -t DIRECTORY:指定目標。
- 示例:
install -m 700 /etc/inittab /tmp
mv
- 說明:移動(重命名)文件。
- 用法:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
- 選項:
- -f:強制覆蓋已存在的目標文件。
- -i:覆蓋目標文件之前,詢問。
- -t DIRECTORY:指定目標目錄。
- -T:指明目標是一個文件而不是目錄。
- 示例:
- 移動文件:
mv /etc/inittab /tmp/inittab.bak
。- 移動文件到指定目錄:
mv /etc/issue /root
。- 移動目錄:
mv /etc /tmp
- 重命名文件/目錄:
mv A B
。stat
- 說明:顯示文件/文件系統狀態(文件名,文件大小,[acm]time,塊大小,inode號,屬主,屬組,權限等)
- 用法:
stat [OPTION] file...
- 選項:
- -L:顯示鏈接文件引用的文件的狀態,而不是鏈接文件本身。
- -Z:顯示安全標簽(如果有的話)。
- -f:顯示文件系統狀態,而不是文件。
- 示例:
stat /etc/issue
。
Q2:使用命令行展開功能,創建/tmp/a1
,/tmp/a2
,/tmp/a1/a
,/tmp/a1/b
,在/tmp
目錄下創建目錄:x_y
,x_z
,q_y
,q_z
。
mkdir -pv /tmp/a{1/{a,b},2}
touch /tmp/{x,q}_{y,z}
Q3:文件的元數據有哪些,分別表示什麽含義,如何查看?如何修改文件的時間戳信息。
可用
stat
命令,查看文件的元數據,元數據包含以下內容:
- 文件名
- 文件大小
- 占用塊大小
- 文件類型
- 所在設備
- inode號
- 硬鏈接次數
- 訪問權限
- 屬主
- 屬組
- 最後訪問時間(atime)
- 最後修改時間(mtime)
- 最後改變時間(ctime)
可以使用
touch
命令修改文件時間戳,詳見Q1
。
Q4:在/tmp
目錄下創建以tfile
開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
。
touch /tmp/tfile-`date +"%Y-%m-%d-%H-%M-%S"`
。
Q5:復制/etc/
目錄下,所有以p
開頭,以非數字結尾的文件或目錄到/tmp/mytest1
目錄中。
cp -r /etc/p*[^[:digit:]] /tmp/mytest1
Q6:創建用戶tom
,指定UID
為5001
,指定家目錄為/tmp/tom
,指定shell為/bin/zsh
,指定基本組為tom
,附加組為jack
。
useradd -u 5001 -d /tmp/tom -s /bin/zsh -G jack tom
Q7:常用的用戶以及文件管理命令有哪些,並演示命令以及用法。
文件管理命令見
Q1
。常用的用戶管理命令如下:
- useradd
- userdel
- usermod
- id
- chsh
- chfn
- chage
- su
- finger
- passwd
- groupadd
- groupdel
- groupmod
- gpasswd
- newgrp
命令詳解:
useradd
- 說明:創建新用戶或修改創建新用戶的默認信息
用法:
useradd [options] LOGIN
useradd -D
useradd -D [options]
- 選項:
- -c COMMENT:註釋信息
- -e EXPIRE_DATE:禁用賬戶時間,格式為
YYYY-MM-DD
。- -f INACTIVE:密碼過期後,隔多少天後禁用賬戶。
- -g GROUP_NUM/GROUP_NAME:指明基本組。
- -G, GROUP1[,GROUP2,...[,GROUPN]]]:指定附加組。
- -M:不創建
HOME
目錄。- -m:創建
HOME
目錄。如果加上-k
參數,會復制/etc/skel
目錄下的所有文件到HOME
目錄。- -r:創建系統賬戶,不創建主目錄。id號1-499(centos6)或1-999(centos7)為系統賬戶。
- -s SHELL:指明帳戶默認使用的shell。
- -u UID:指明uid。
- -D:顯示/更改創建用戶時的默認配置屬性(創建用戶時很多默認屬性來自於
/etc/login.defs
,-D更改的屬性保存在/etc/default/useradd
中)
- 可配置的屬性:
- GROUP:是否創建同名私有組。
- HOME:
HOME
目錄所在路徑。- INACTIVE:密碼過期後,隔多少天後禁用賬戶,默認不禁用(-1)。
- EXPIRE:禁用賬戶時間(默認不禁用)。
- SHELL:默認shell,默認為
/bin/bash
。- SKEL:骨架信息來源,默認為
/etc/skel
。- CREATE_MAIL_SPOOL:是否創建郵箱。
- 對應修改上述信息的參數
- 無選項:顯示默認屬性
- -b:HOME
- -e:EXPIRE
- -f:INACTIVE
- -g:GROUP
- -s:SHELL
userdel
- 說明:刪除用戶賬戶及相關文件
- 用法:
userdel [options] LOGIN
- 選項:
- -f:刪除賬戶的同時,刪除其
HOME
目錄(默認不刪除用戶HOME
目錄)。- 示例:
userdel -f tom
usermod
- 說明:修改用戶賬戶信息
- 用法:
usermod [options] LOGIN
- 選項:
- -a -G gid...:添加附加組。
- -c COMMENT:修改註釋信息。
- -d HOME_DIR:修改用戶
HOME
目錄。- -e EXPIRE_DATE:修改賬戶禁用時間,格式為
YYYY-MM-DD
。- -f INACTIVE:修改賬戶在密碼過期後,多少天禁用賬戶。
- -g GROUP/GID:修改基本組。
- -G GID...:覆蓋附加組。
- -l NEW_LOGIN:修改用戶名。
- -L:鎖定賬戶,方式是在密碼字段前加
!
。- -m:配合
-d
選項使用,移動用戶HOME
目錄下的文件到新位置。- -p PASSWD:修改密碼,不建議使用,因為密碼會暴露在命令歷史中。
- -s SHELL:修改默認shell。
- -u UID:修改賬戶的uid。
- -U:解鎖用戶,方式是移除密碼字段前的
!
。- 示例:
- 添加附加組:
usermod -a -G hadoop tom
- 修改shell:
usermod -s /bin/zsh tom
- 鎖定賬戶:
usermod -L tom
id
- 說明:顯示用戶標識信息。
- 用法:
id [OPTION]... [USERNAME]
- 選項:
- -Z:顯示指定用戶(默認當前用戶)的安全標簽。
- -g:顯示指定用戶(默認當前用戶)的默認gid。
- -G:顯示指定用戶(默認當前用戶)的所有gid。
- -n:配合
-u
,-g
,-G
使用,顯示名字而非數字id。- -u:顯示uid。
- 示例:
- 顯示當前用戶所有標識信息:
id
。- 顯示指定用戶的所有組:
id tom
。chsh
- 說明:修改用戶的默認shell
- 用法:
chsh [-s shell] [-l] [username]
- 選項:
- -s SHELL:指明shell。
- -l:顯示
/etc/shells
文件的內容(即所有可用shell)。- 示例:
chsh -s /bin/zsh root
chfn
- 說明:修改用戶註釋信息
- 用法:
chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] -u] [-v] [username]
- 選項:
- -f:用戶全名。
- -o:辦公室。
- -p:辦公電話。
- 示例:
chfn -f jobs root
chage
- 說明:修改賬戶密碼過期信息
- 用法:
chage [options] [LOGIN]
- 選項:
- -d LAST_DAY:上次修改密碼時間,格式
YYYY-MM-DD
。- -E EXPIRE_DAET:賬戶過期時間。
- -I:密碼過期後的鎖定時間。
- -l:顯示賬戶的所有
aging
信息。- -m DAYS:密碼最少使用時間(在此時間內不能修改密碼)。
- -M DAYS:密碼最多使用時間(超過此時間必須修改密碼)。
- -W DAYS:密碼過期前的警告時間。
- 示例:
chage -E 2018-10-10 -m 10 -M 20 -W 3 root
su
- 說明:切換用戶身份
- 用法:
su [OPTION]... [-] [USER [ARG]...]
- 選項:
- -,-l:使用登錄shell切換,不會讀取shell配置文件。
- -c COMMAND:使用指定身份執行命令,不會切換身份。
- 不指定身份,默認切換到
root
。- 示例:
su - root
finger
- 說明:查看用戶賬號相關信息
- 用法:
finger [options] [user ...] [user@host ...]
- 選項:
- -s:顯示用戶的
登錄名
,用戶名
,使用的終端
,最後登錄時間
,辦公室位置
,辦公電話
。- 示例:
finger root
passwd
- 說明:修改用戶認證信息
- 用法:
passwd [-k] [-l] [-u [-f]] [-d] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
- 選項:
- -l:鎖定賬戶。
- --stdin:從標準輸入中讀取密碼,常用於使用腳本批量修改密碼。
- -u:解鎖賬戶。
- -d:刪除密碼。
- -n:密碼最少使用時間。
- -x:密碼最多使用時間。
- -w:警告時間。
- -i:密碼過期後鎖定時間。
- 示例:
- 修改自己的密碼:
passwd
- 鎖定賬戶:
passwd -l tom
- 從標準輸入讀取密碼:
echo ‘xxx‘ | passwd --stdin
groupadd
- 說明:添加組
- 用法:
groupadd [options] group
- 選項:
- -g GID:指定gid,,不指定默認是取j最近加添的gid+1。
- -r:添加為系統組。
- -p PASSWORD:設定密碼,不推薦。
- 示例:
groupadd hadoop
groupdel
- 說明:刪除組
- 用法:
groupde group
- 示例:
groupdel hadoop
groupmod
- 說明:修改組信息
- 用法:
groupmod [options] GROUP
- 選項:
- -g GID:修改gid。
- -n NEW_GEOUP:修改組名。
- -p PASSWORD:修改密碼,不推薦。
- 示例:
groupmod -g 1000 root
gpasswd
- 說明:修改組密碼(組密碼是在用戶臨時切換到該組時用的)
- 用法:
gpasswd [option] group
- 選項:
- -a user:向組中添加用戶。
- -d user:從組中刪除用戶。
- -r:刪除密碼。
- 示例:
gpasswd root
newgrp
- 說明:臨時切換基本組。
- 用法:
newgrp [-] [group]
- 示例:
newgrp root
馬哥linux作業--第三周