1.常用的文件管理命令-使用方法及示例
常用的文件管理類(lèi)命令:mkdir、rmdir、touch、cat、tac、 head、 tail、more、less、cp、mv、rm等
注:跟在常用參數(shù)中的#代表數(shù)字
- mkdir:創(chuàng)建目錄
命令格式:
mkdir [OPTION]... DIRECTORY...
常用參數(shù):
-p 表示要?jiǎng)?chuàng)建的目錄存在時(shí)不返回錯(cuò)誤,不存在時(shí)自動(dòng)創(chuàng)建所需的目錄
-v 顯示創(chuàng)建過(guò)程信息
-m MODE 創(chuàng)建目錄是直接指定權(quán)限
命令舉例:
[root@centos7 work]#mkdir -pv 20220729mkdir: created directory ‘20220729’’
- rmdir:刪除目錄
命令格式:
rmdir [OPTION]... DIRECTORY...
常用參數(shù):
-p:刪除某目錄后,如果其父目錄為空,則一并刪除之;
-v:顯示刪除過(guò)程信息;
命令舉例:
[root@centos7 a]#rmdir -pv a/b/c/drmdir: removing directory, ‘a(chǎn)/b/c/d’rmdir: removing directory, ‘a(chǎn)/b/c’rmdir: removing directory, ‘a(chǎn)/b’rmdir: removing directory, ‘a(chǎn)’
- touch 文件時(shí)間戳修改
命令格式:
touch [OPTION]... FILE...
常用參數(shù):
-a 修改atime即修改文件訪問(wèn)時(shí)間
-m 修改ctime即修改文件修改時(shí)間
-t [[CC]YY]MMDDhhmm[.ss] 修改指定時(shí)間戳為某時(shí)間
-c 如果要?jiǎng)?chuàng)建的文件不存在,則不會(huì)創(chuàng)建
命令舉例:
[root@centos7 a]#touch a.txt[root@centos7 a]#lltotal 0-rw-r--r--. 1 root root 0 Jul 29 11:12 a.txt
- cat和tac
命令格式:
cat [OPTION]... [FILE]...
常用參數(shù):
-n:給顯示的文本行編號(hào);
-E: 顯示行結(jié)束符$
命令舉例:
[root@centos7 a]#cat -nE rm.sh
1 #! /bin/bash$
2 $
3 WRANING_COLOR="echo -e \E[1;31m"$
4 END="\E[0m"$
5 DIR=/tmp/`date +%F_%H-%M-%S`$
6 mkdir $DIR$
7 mv $* $DIR$
8 ${WRANING_COLOR}Move $* to $DIR $END$
9 $
10$
注:tac命令和cat命令相反,cat命令從文件頭向文件尾顯示,tac命令從文件尾向文件頭顯示
- head 顯示文件前幾行的內(nèi)容
命令格式:
head [OPTION]... [FILE]...
常用參數(shù):
-n# 查看從首部開(kāi)始的#行
-c# 獲取前#個(gè)字節(jié)內(nèi)容
命令舉例:
[root@centos7 a]#head -5 rm.sh
#! /bin/bash
WRANING_COLOR="echo -e \E[1;31m"
END="\E[0m"
DIR=/tmp/`date +%F_%H-%M-%S`
- tail命令 顯示文件后幾行的內(nèi)容
命令格式:
tail [OPTION]... [FILE]...
常用參數(shù):
-# 看最后#行的內(nèi)容
-f 看文件最后幾行內(nèi)容后不退出,如果日志不斷有新內(nèi)容寫(xiě)入,則一直顯示
命令舉例:
[root@centos7 a]#tail -3 rm.sh
${WRANING_COLOR}Move $* to $DIR $END
- more 分屏查看文件內(nèi)容,翻屏至文件結(jié)尾自動(dòng)退出
命令格式:
more [options] file [...]
常用參數(shù):
-d 顯示翻頁(yè)及退出的提示信息
- less 與more命令相反 默認(rèn)翻屏結(jié)束后不自動(dòng)退出
命令格式:
less -?
less --help
less -V
less --version
less [-[+]aABcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]
[-b space] [-h lines] [-j line] [-k keyfile]
[-{oO} logfile] [-p pattern] [-P prompt] [-t tag]
[-T tagsfile] [-x tab,...] [-y lines] [-[z] lines]
[-# shift] [+[+]cmd] [--] [filename]...
(See the OPTIONS section for alternate option syntax with long option names.)
常用參數(shù)
-e 翻屏結(jié)束后自動(dòng)退出
-N 顯示行號(hào)
- cp 拷貝文件或文件夾
命令格式:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
常用選項(xiàng):
-i:交互式復(fù)制,即覆蓋之前提醒用戶(hù)確認(rèn);
-f:強(qiáng)制覆蓋目標(biāo)文件;
-r, -R:遞歸復(fù)制目錄;
-d:復(fù)制符號(hào)鏈接文件本身,而非其指向的源文件;(未加復(fù)制為以鏈接文件同名內(nèi)容為鏈接指向的源文件)
-a:-dR --preserve=all, archive,用于實(shí)現(xiàn)歸檔;
--preserv=
mode:權(quán)限
ownership:屬主和屬組
timestamps: 時(shí)間戳
context:安全標(biāo)簽
xattr:擴(kuò)展屬性
links:符號(hào)鏈接
all:上述所有屬性
單源復(fù)制:
如果DEST不存在:則事先創(chuàng)建此文件,并復(fù)制源文件的數(shù)據(jù)流至DEST中;
如果DEST存在:提示是否覆蓋
如果DEST是非目錄文件:則覆蓋目標(biāo)文件;
如果DEST是目錄文件:則先在DEST目錄下創(chuàng)建一個(gè)與源文件同名的文件,并復(fù)制其數(shù)據(jù)流;
[root@centos7 a]#cp -r /var/log ./
[root@centos7 a]#ls -ld logdrwxr-xr-x. 18 root root 4096 Jul 29 13:29 log
多源復(fù)制:
如果DEST不存在:錯(cuò)誤;
如果DEST存在:提示是否覆蓋
如果DEST是非目錄文件:錯(cuò)誤;
如果DEST是目錄文件:分別復(fù)制每個(gè)文件至目標(biāo)目錄中,并保持原名;
[root@centos7 a]#cp /tmp/a /tmp/b test ./cp: cannot stat ‘test’: No such file or directory
- mv 移動(dòng)或重命名文件或文件夾
命令格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用參數(shù):
-i 交互式輸出,即移動(dòng)或覆蓋之前提示用戶(hù)確認(rèn)
-f 強(qiáng)制操作
--如果SRC是單個(gè)文件
如果DEST不存在:改名
如果DEST存在:提示是否覆蓋
[root@centos7 a]#mv a.txt e.txt[root@centos7 a]#[root@centos7 a]#mv b.txt c.txtmv: overwrite ‘c.txt’?
--如果SRC是多個(gè)文件
如果DEST不存在:提示目標(biāo)不是目錄
如果DEST存在:提示是否覆蓋
[root@centos7 a]#mv b.txt c.txt testmv: overwrite ‘test/b.txt’? ymv: overwrite ‘test/c.txt’? y
--如果SRC是個(gè)目錄
如果DEST不存在:剪切功能
如果DEST存在:提示是否覆蓋
[root@centos7 a]#mv test tteemv: overwrite ‘ttee/test’? ymv: cannot move ‘test’ to ‘ttee/test’: File exists
- rm 刪除文件或文件夾
命令格式:
rm [OPTION]... FILE...
常用參數(shù):
-i 交互式
-f 強(qiáng)制刪除
-r 遞歸刪除
命令舉例:
[root@centos7 a]#rm -r d.txtrm: remove regular file ‘d.txt’? n
[root@centos7 a]#[
root@centos7 a]#rm -f d.txt
[root@centos7 a]#
2.常用的用戶(hù)以及用戶(hù)組管理命令有哪些,并演示命令以及用法
常用命令:
useradd、usermod、userdel、groupadd、groupmod、groupdel、passwd、gpasswd、id、su等
useradd 創(chuàng)建用戶(hù)
命令格式:
useradd [options] LOGIN
useradd -D
useradd -D [options]
常用參數(shù):
-u, --uid UID:指定UID;
-g, --gid GROUP:指定基本組ID,此組得事先存在;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用戶(hù)所屬的附加組,多個(gè)組之間用逗號(hào)分隔;
-c, --comment COMMENT:指明注釋信息;
-d, --home HOME_DIR:以指定的路徑為用戶(hù)的家目錄;通過(guò)復(fù)制/etc/skel此目錄并重命名實(shí)現(xiàn);指定的家目錄路徑如果事先存在,則不會(huì)為用戶(hù)復(fù)制環(huán)境配置文件;
-s, --shell SHELL:指定用戶(hù)的默認(rèn)shell,可用的所有shell列表存儲(chǔ)在/etc/shells文件中;
-r, --system:創(chuàng)建系統(tǒng)用戶(hù);
命令舉例
[root@centos7 tmp]#useradd testuser -u 666 -G jack -c "Hello World" -d /tmp/testuser -s /bin/csh
useradd: cannot set SELinux context for home directory /tmp/testuser
[root@centos7 tmp]#
usermod 用戶(hù)修改
命令格式:
usermod [options] LOGIN
常用參數(shù):
-u, --uid UID:修改用戶(hù)的ID為此處指定的新UID;
-g, --gid GROUP:修改用戶(hù)所屬的基本組;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用戶(hù)所屬的附加組;原來(lái)的附加組會(huì)被覆蓋;
-a, --append:與-G一同使用,用于為用戶(hù)追加新的附加組;
-c, --comment COMMENT:修改注釋信息;
-d, --home HOME_DIR:修改用戶(hù)的家目錄;用戶(hù)原有的文件不會(huì)被轉(zhuǎn)移至新位置;
-m, --move-home:只能與-d選項(xiàng)一同使用,用于將原來(lái)的家目錄移動(dòng)為新的家目錄;
-l, --login NEW_LOGIN:修改用戶(hù)名;
-s, --shell SHELL:修改用戶(hù)的默認(rèn)shell;
-L, --lock:鎖定用戶(hù)密碼;即在用戶(hù)原來(lái)的密碼字符串之前添加一個(gè)"!";
-U, --unlock:解鎖用戶(hù)的密碼;
命令舉例:
[root@centos7 tmp]#usermod hello -u 601 -g 1002 -G 1000 -md /home/patrol -l testuser -s /bin/bash
[root@centos7 tmp]#
[root@centos7 tmp]#tail -1 /etc/passwd
testuser:x:601:1002:Hello World:/home/patrol:/bin/bash
[root@centos7 tmp]#
userdel 刪除用戶(hù)
命令格式:
userdel [options] LOGIN
常用參數(shù):
-r:刪除用戶(hù)時(shí)一并刪除其家目錄;
命令舉例:
[root@centos7 tmp]#userdel testuser
[root@centos7 tmp]#
groupadd 添加用戶(hù)組
命令格式:
groupadd [options] group
常用參數(shù):
-g GID:指定GID;默認(rèn)是上一個(gè)組的GID+1;
-r: 創(chuàng)建系統(tǒng)組;
命令舉例:
[root@centos7 tmp]#groupadd testgroup -g 5002 -r
[root@centos7 tmp]#tail -1 /etc/group
testgroup:x:5002:
[root@centos7 tmp]#
groupmod 用戶(hù)組修改
命令格式:
groupmod [options] GROUP
常用參數(shù):
-g GID:修改GID;
-n new_name:修改組名;
命令舉例:
[root@centos7 tmp]#tail -1 /etc/group
testgroup:x:5002:
[root@centos7 tmp]#
[root@centos7 tmp]#groupmod testgroup -g 5011 -n testgroup1
[root@centos7 tmp]#tail -1 /etc/group
testgroup1:x:5011:
groupdel 用戶(hù)組刪除
命令格式:
groupdel [options] GROUP
常用參數(shù):
命令舉例:
[root@centos7 tmp]#groupdel testgroup1
[root@centos7 tmp]#
passwd 修改用戶(hù)登錄口令,
命令格式:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays]
[-S] [--stdin] [username]
注:passwd USERNAME 修改指定用戶(hù)的密碼,只有root用戶(hù)有此權(quán)限
常用參數(shù):
-l, -u:鎖定和解鎖用戶(hù);
-d:清除用戶(hù)密碼串;
-e DATE: 過(guò)期期限,日期;
-i DAYS:非活動(dòng)期限;
-n DAYS:密碼的最短使用期限;
-x DAYS:密碼的最長(zhǎng)使用期限;
-w DAYS:警告期限;
--stdin:避免彈出交互式輸入密碼的內(nèi)容
echo "PASSWORD" | passwd --stdin USERNAME
命令舉例:
[root@centos7 tmp]#echo "password" | passwd --stdin tom
Changing password for user tom.
passwd: all authentication tokens updated successfully.
gpasswd 修改組密碼
命令格式:
gpasswd [option] group
常用參數(shù):
-a USERNAME:向組中添加用戶(hù)
-d USERNAME:從組中移除用戶(hù)
命令舉例:
[root@centos7 tmp]#useradd nike
[root@centos7 tmp]#gpasswd -a nike tom
Adding user nike to group tom
[root@centos7 tmp]#gpasswd -d nike tom
Removing user nike from group tom
[root@centos7 tmp]#
id 顯示用戶(hù)信息
命令格式:
id [OPTION]... [USER]
常用參數(shù):
-u: 僅顯示有效的UID;
-g: 僅顯示用戶(hù)的基本組ID;
-G:僅顯示用戶(hù)所屬的所有組的ID;
-n: 顯示名字而非ID;
命令舉例:
[root@centos7 tmp]#id tom
uid=5001(tom) gid=5001(tom) groups=5001(tom),1008(jack)
[root@centos7 tmp]#
su 切換用戶(hù)
命令格式:
su [options...] [-] [user [args...]]
常用參數(shù):
登錄式切換:會(huì)通過(guò)讀取目標(biāo)用戶(hù)的配置文件來(lái)重新初始化
su - USERNAME
su -l USERNAME
非登錄式切換:不會(huì)讀取目標(biāo)用戶(hù)的配置文件進(jìn)行初始化
su USERNAME
注:管理員可無(wú)密碼切換至其它任何用戶(hù);
命令舉例:
[root@centos7 tmp]#id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@centos7 tmp]#su - jack
Last login: Thu Jul 29 15:58:26 CST 2022 on pts/0
[jack@centos7 ~]$
[jack@centos7 ~]$id
uid=5003(jack) gid=1008(jack) groups=1008(jack) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[jack@centos7 ~]$