中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

南昌哪里有網(wǎng)站建設百度站長工具網(wǎng)站

南昌哪里有網(wǎng)站建設,百度站長工具網(wǎng)站,江蘇雙樓建設集團有限公司網(wǎng)站,營銷推廣圖片1. 總結(jié)學過的權(quán)限,屬性及ACL相關命令及選項,示例。 一、Linux安全模型 (一)資源分派 Authentication(認證):驗證用戶身份,確保登錄系統(tǒng)的用戶是合法的。 Authorization&#xff08…
?1. 總結(jié)學過的權(quán)限,屬性及ACL相關命令及選項,示例。

一、Linux安全模型
(一)資源分派
Authentication(認證):驗證用戶身份,確保登錄系統(tǒng)的用戶是合法的。
Authorization(授權(quán)):根據(jù)用戶身份設置不同的權(quán)限,決定用戶可以對系統(tǒng)資源進行哪些操作。
Accouting(審計):記錄用戶的行為,用于事后審查,例如通過查看登錄日志來了解用戶的登錄情況。
(二)3A認證
是一套針對網(wǎng)絡設備的網(wǎng)絡訪問控制策略安全模型,用于保障網(wǎng)絡訪問的安全性。
(三)安全上下文
運行中的程序(進程)以進程發(fā)起者的身份運行,其訪問資源的權(quán)限取決于發(fā)起者的身份。只有具有相應權(quán)限的用戶才能執(zhí)行程序,并且程序在訪問文件等資源時,其權(quán)限也由發(fā)起者的身份決定。
二、用戶和組相關概念
(一)用戶
用戶類型
超級管理員:root用戶,UID為0,擁有最高權(quán)限,可以對系統(tǒng)進行任何操作。
系統(tǒng)用戶:CentOS 6以前為1 - 499,CentOS 7以后為1 - 999,這些用戶主要用于給后臺程序使用,如nginx、mysql等守護進程。
登錄用戶:CentOS 6以前為500+,CentOS 7以后為1000+,用于用戶進行交互式登錄。
(二)用戶組
用戶組類型
超級管理員組:root組,GID為0,供超級管理員使用。
系統(tǒng)組:CentOS 6以前為1 - 499,CentOS 7以后為1 - 999,用于守護進程獲取資源權(quán)限分配。
普通組:CentOS 6以前為500+,CentOS 7以后為1000+,供普通登錄用戶使用。
(三)用戶和組的關系
一個用戶至少有一個組,其中有一個主組(primary group),創(chuàng)建用戶時默認會創(chuàng)建與其同名的組作為主組,用戶也可以屬于0個或多個附加組(supplementary group)。可以通過組對用戶進行批量管理,例如對一個組授權(quán),組內(nèi)所有用戶都能繼承該組的權(quán)限。
三、用戶和組相關配置文件
(一)主要配置文件
/etc/passwd:存儲用戶及其屬性信息,包括登錄用戶名、密碼占位符、UID、所屬組ID、用戶全名或注釋、用戶家目錄以及用戶默認shell等。
/etc/shadow:存儲用戶密碼及其相關屬性,如加密后的密碼、上次修改密碼的時間、密碼有效期等信息,只有root用戶有讀權(quán)限。
/etc/group:存儲組及其屬性信息,包括組名、組密碼占位符、組ID以及組成員列表等。
/etc/gshadow:存儲組密碼及其相關屬性,如加密后的組密碼、組管理員以及組成員列表等。
(二)文件操作
可以使用專用工具來修改這些文件,如vipw和vigr用于編輯相關文件,pwck和grpck用于檢查用戶和組相關配置文件的正確性。也可以使用getent命令根據(jù)用戶名查看配置項。
四、用戶和組管理命令
(一)用戶管理命令
useradd
用于創(chuàng)建新的Linux用戶,可以指定多種選項,如UID、用戶組、家目錄、shell、是否創(chuàng)建系統(tǒng)用戶、是否創(chuàng)建家目錄、設置密碼、指定附加組等。
usermod
用于修改用戶屬性,包括修改注釋、家目錄、過期日期、密碼過期后的處理方式、組、附加組、登錄名稱、鎖定或解鎖用戶帳號、修改密碼、修改shell、修改UID等。
userdel
用于刪除Linux用戶,可以選擇是否強制刪除以及是否刪除家目錄和郵件目錄。
id
用于查看用戶的UID、GID等信息,可以顯示詳細信息,也可以只顯示特定的信息,如主組ID、附加組ID、用戶名或組名等。
su
用于切換用戶身份,可以進行登錄式切換(讀取目標用戶的配置文件,切換至目標用戶的家目錄)和非登錄式切換(不讀取目標用戶的配置文件,不改變當前工作目錄),還可以在不切換用戶的情況下,使用目標用戶的權(quán)限和環(huán)境執(zhí)行命令。
passwd
用于修改用戶密碼,可以進行多種操作,如鎖定、解鎖、刪除密碼、設置密碼有效期、提醒用戶密碼過期等,普通用戶修改自己密碼需要先驗證當前使用的密碼。
chage
用于修改用戶密碼策略,包括更改密碼的時間、設置密碼最短有效期、最長有效期、警告期、密碼過期后的寬限期以及用戶的有效期等,還可以查看用戶的密碼策略。
(二)組管理命令
groupadd
用于創(chuàng)建組,可以指定組ID、是否為系統(tǒng)組、是否允許重復GID、設置組密碼等。
groupmod
用于修改組屬性,如修改組ID、組名以及組密碼等。
groupdel
用于刪除組,強制刪除可能導致無主組的用戶不可用無法登錄。
gpasswd
用于更改組密碼,也可以修改附加組的成員關系,在組沒有密碼的情況下,加組操作只能由root用戶進行。
groupmems
用于管理附加組的成員關系,可以添加、刪除成員,查看成員列表,清除所有成員等,只有root用戶可以更改指定組的成員關系。
五、文件權(quán)限管理
(一)權(quán)限體系介紹
角色
屬主(owner):文件的所有者,通常是創(chuàng)建文件的用戶。
屬組(group):文件所屬的組,用戶可以屬于多個組,文件所屬組決定了組內(nèi)用戶對文件的權(quán)限。
其它用戶(other):不屬于屬主和屬組的用戶。
權(quán)限
讀(r,4):對文件來說,可查看文件內(nèi)容;對目錄來說,可讀取目錄中的文件名,但無法查看文件元數(shù)據(jù)。
寫(w,2):對文件來說,可修改文件內(nèi)容;對目錄來說,可在目錄中創(chuàng)建文件和刪除文件。
執(zhí)行(x,1):對文件來說,可執(zhí)行文件,發(fā)起一個進程;對目錄來說,可進入目錄,可查看文件元數(shù)據(jù),可查看文件內(nèi)容。
(二)文件所有者和屬組屬性操作
chown
用于修改文件的屬主和屬組,可以只修改所有者、只修改屬組或同時修改所有者和屬組,還可以根據(jù)原屬主屬組進行修改,支持遞歸操作以及多種選項,如顯示過程、不顯示錯誤信息等。
chgrp
用于只修改文件的屬組,支持類似chown的多種選項和操作方式,如遞歸修改、根據(jù)文件修改等。
(三)文件權(quán)限操作
chmod
用于修改文件權(quán)限,可以使用字符表示法(如u+r表示屬主加讀權(quán)限)或八進制數(shù)字表示法(如644表示屬主可讀寫,屬組可讀,其它用戶可讀),支持遞歸操作以及多種選項,如顯示過程、不顯示錯誤信息等。
(四)新建文件和目錄的默認權(quán)限
新建文件的默認權(quán)限為666 - umask,新建目錄的默認權(quán)限為777 - umask。umask值間接影響新建文件和目錄的權(quán)限,非特權(quán)用戶umask默認是002,root的umask默認是022,可以通過umask命令查看和修改umask值,并且可以在全局設置文件(如/etc/bashrc、/etc/bash.bashrc或~/.bashrc)中持久保存umask設置。
(五)特殊權(quán)限
SUID(4)
作用于二進制可執(zhí)行文件上,用戶執(zhí)行該文件時將繼承此程序所有者的權(quán)限??梢酝ㄟ^chmod命令設置SUID權(quán)限,例如chmod u+s FILE。
SGID(2)
作用于二進制可執(zhí)行文件上,用戶執(zhí)行該文件時將繼承此程序所有組的權(quán)限;作用于目錄上,此目錄中新建的文件的所屬組將自動從此目錄繼承??梢酝ㄟ^chmod命令設置SGID權(quán)限,例如chmod g+s FILE或chmod g+s DIR。
Sticky(1)
作用于目錄上,此目錄中的文件只能由所有者自己或root來刪除??梢酝ㄟ^chmod命令設置Sticky權(quán)限,例如chmod o+t DIR。
(六)訪問控制列表ACL
ACL權(quán)限功能
提供更細粒度的權(quán)限控制,可以單獨對指定的用戶設定各不相同的權(quán)限,彌補了rwx權(quán)限體系只能將用戶分成三種角色的不足。CentOS7默認創(chuàng)建的xfs和ext4文件系統(tǒng)具有ACL功能,CentOS7之前版本需要手動增加。
ACL相關命令
setfacl:用于設置ACL權(quán)限,可以修改、刪除ACL權(quán)限,設置默認ACL,遞歸執(zhí)行等操作。
getfacl:用于查看設置的ACL權(quán)限

#linux用戶管理總結(jié)
vipw|vigr  g|--group ? #編輯 group 文件
vipw|vigr -p|--passwd ? #編輯 passwd 文件
vipw  -s|--shadow ? #編輯 /etc/shadow 
vigr  -s|--shadow    #/etc/gshadow 文件
pwck -q|--quiet ? ? ? ? ? #只報告錯誤,忽略警告
pwck  -r|--read-only ? ? ? #顯示錯誤和警告,但不改變文件
pwck  -R|--root CHROOT_DIR #chroot 到的目錄
pwck  -s|--sort ? ? ? ? ? ? #通過 UID 排序項目
grpck -r|--read-only ? ? ? ? ?#顯示錯誤和警告,但不改變文件
grpck -R|--root CHROOT_DIR ? ?#chroot 到的目錄
grpck -s|--sort ? ? ? ? ? ? ? #通過 UID 排序項目
getent passwd|shadow|group|gshadow username #查看passwd|shadow|group|gshadow中username信息id username #查看用戶id,用戶組id,用戶屬組
id -a ?username? #顯示詳細信息,默認選項
id -Z|--context username #僅顯示安全上下文信息,要開啟selinux 配置才有
id -g|--group ?username ? #僅顯示GID,就是只顯示主組ID
id -G|--groups ?username #顯示主組和附加組ID,就是所有組ID
id -n|--name ? username? #顯示用戶名或組名,要組合使用 -nu|-ng|-nG
id -u|--user ? username #僅顯示UIDsu -m|-p|--preserve-environment username?#不重置環(huán)境變量
su -g|--group group ?username? ? ? ? ? ? ? ?#指定主組,只有root 切普通用戶才能指定此參數(shù)
su -|-l|--login ? ?username? ? ? ? ? ? ? #完全切換
su -c|--command command ? username?? ? ? ? ?#不切換用戶,而是臨時使用該用戶權(quán)限和環(huán)境執(zhí)行命令
su --session-command command ? ?username? ? #使用上同 -c 選項,但不會創(chuàng)建會話
su -f|--fast ? ? username?#向shell 傳遞 -f 選項(csh 或 tcsh)
su-s|--shell shell ?username #切換用戶后,指定 /etc/shells中的shell環(huán)境, 
su -P|--pty ? ? ? ? username#開一個新的終端useradd -u|--uid UID username?  #指定UID
useradd -g|--gid GID ? username ? #指定用戶組,-g groupname|--gid GID
useradd -c|--comment COMMENT username ?#新賬戶的 GECOS 字段
useradd -d|--home-dir HOME_DIR ?username #指定家目錄,可以是不存在的,指定家目錄,并不代表創(chuàng)建
useradd s|--shell SHELL username ? #指定 shell,可用shell在/etc/shells 中可以查看
useradd -r|--system ?username ? ? ? ? ? ? #創(chuàng)建系統(tǒng)用戶,CentOS 6之前 ID<500,CentOS7 以后
useradd  -m|--create-home ?username ? ? ? #創(chuàng)建家目錄,一般用于登錄用戶
useradd  -M|--no-create-home ?username ? ? #不創(chuàng)建家目錄,一般用于不用登錄的用戶
useradd -p|--password PASSWORD ?username  #設置密碼,這里的密碼是以明文的形式存在
useradd -o|--non-unique ? username? ? ? ? #允許使用重復的 UID 創(chuàng)建用戶
useradd -G|--groups GROUP1[,GROUP2,...] ? username #為用戶指明附加組,組須事先存在
useradd -N|--no-user-group ? username? ? #不創(chuàng)建同名的組,使用users組做主組
useradd -D|--defaults ? ? ? ?username? ? #顯示或更改默認的 useradd 配置,/etc/default/useradd
useradd -e|--expiredate EXPIRE_DATE username #指定賬戶的過期日期 YYYY-MM-DD 格式
useradd -f|--inactive INACTIVE ?username ? ? #密碼過期之后,賬戶被徹底禁用之前的天數(shù)
useradd -k|--skel SKEL_DIR username#創(chuàng)建家目錄,生成默認文件,默認是/etc/skel/,要配合-m
useradd  -K|--key KEY=VALUE username? #不使用 /etc/login.defs 中的默認值,自己指定
useradd-l|--no-log-init username#不將用戶添加到最近登錄和登錄失敗記錄usermod -c|--comment COMMENT username?#修改注釋
usermod -d|--home HOME_DIR username? ? #修改家目錄
usermod -e|--expiredate EXPIRE_DATE username ??#修改過期的日期,YYYY-MM-DD 格式
usermod -f|--inactive INACTIVE ?username ? ? #密碼過期之后,賬戶被徹底禁用之前的天數(shù)
usermod -g|--gid GROUP ? ? ?username  #修改組
usermod -G|--groups GROUPS ?username  # 新附加組,原來的附加組將會被覆蓋;若保留同時使用-a選項
usermod -a|--append GROUP  ?username #將用戶追加至上邊 -G 中提到的附加組中,并不從其它組中刪除
usermod -l|--login LOGIN ? username? ? ? ? ? #新的登錄名稱
usermod -L|--lock ? ?username ? ? ? ? ? ? ? ?#鎖定用戶帳號,在/etc/shadow 密碼欄的增加 !
usermod -m|--move-home username? ? ? ? ? ? ? #將家目錄內(nèi)容移至新位置,和 -d 一起使用
usermod -o|--non-unique ?username ? ? ? ? ? ?#允許使用重復的(非唯一的) UID
usermod -p|--password PASSWORD username #修改密碼,這里是明文,如果要修改密碼,則要用加密后
usermod -s|--shell SHELL ? username? #修改 shell
usermod -u|--uid UID username?  ? ? ?#修改 UID
usermod -U|--unlock username? ? ? ? ??#解鎖用戶帳號,將 /etc/shadow 密碼欄的!拿掉userdel -f|--force ?username? #強制刪除,哪怕用戶正在登錄狀態(tài)
userdel -r|--remove ?username?#刪除家目錄和郵件目錄passwd -k|--keep-tokens username? ? ? #保持身份驗證令牌不過期
passwd -d|--delete ? ?username ? ? ? ?#刪除用戶密碼,也刪除密碼鎖,僅root有權(quán)限操作
passwd -l|--lock ? ? ?username ? ? ? ?#鎖定用戶密碼,僅root有權(quán)限操作
passwd -u|--unlock ? username? ? ? ? ?#解鎖用戶密碼,僅root有權(quán)限操作
passwd -e|--expire ? ? username? ? ? ?#終止用戶密碼,用戶下次登錄成功后要立馬修改,僅root
passwd -f|--force ? ? username? ? ? ? #強制執(zhí)行操作
passwd -x|--maximum=DAYS ?username ? ?#指定用戶密碼最長有效期,僅root有權(quán)限操作
passwd -n|--minimum=DAYS username? ?#指定用戶密碼最短有效期,僅root有權(quán)限操作
passwd -w|--warning=DAYS ?username? ?#在密碼過期前多少天開始提醒用戶,僅root有權(quán)限操作
passwd -i|--inactive=DAYS username? #當密碼過期后少天該用戶賬號會被禁用,僅root有權(quán)限操作
passwd -S|--status ? username? ? ? #查詢用戶的密碼狀態(tài),僅root有權(quán)限操作
passwd --stdin ? ?username ? ? ? #從標準輸入接收密碼,Ubuntu無此選項chage -d LAST_DAY ?username#更改密碼的時間
chage -m|--mindays username#MIN_DAYS
chage -M|--maxdays username#MAX_DAYS
chage -W|--warndays username#WARN_DAYS
chage -I|--inactive INACTIVE username#密碼過期后的寬限期
chage -E|--expiredate EXPIRE_DATE username#用戶的有效期
chage -l username#顯示密碼策略groupadd -f|--force ? groupname? ?#如果組已經(jīng)存在則成功退出
groupadd -g|--gid GID ? groupname??#指定組ID,默認系統(tǒng)分配,指定值不要超過[GID_MIN,GID_MAX]
groupadd -K|--key KEY=VALUE  ?groupname ??#不使用 /etc/login.defs 中的默認值,自己指定,
groupadd -o|--non-unique ? ?groupname ? ? #允許創(chuàng)建有重復 GID 的組
groupadd -p|--password PASSWORD ?groupname#為新組使用此加密過的密碼
groupadd -r|--system ? ?groupname ?#創(chuàng)建一個系統(tǒng)組 CentOS 6之前groupmod -g|--gid GID ? ? groupname?#將組 ID 改為 GID
groupmod -n|--new-name NEW_GROUP ?groupname?#改名為 NEW_GROUP
groupmod -o|--non-unique ? ? ? ?groupname #允許使用重復的 GID
groupmod -p|--password PASSWORD ?groupname #將密碼更改為(加密過的) PASSWORD
groupdel -f|--force ?groupname#強制刪除 gpasswd  -a|--add username  groupname#向組中添加用戶
gpasswd  -d|--delete username  groupname#從組中移除用戶
gpasswd  -r|--delete-password ?groupname#刪除組密碼
gpasswd  -R|--restrict ? ? ? ?groupname#向其成員限制訪問組 GROUP
gpasswd -M|--members USER,... ? ?groupname#批量加組
gpasswd  -A|--administrators ADMIN,... ?groupname#批量設組管理員groupmems -g|--group groupname ? #更改為指定組 (只有root)
groupmems -a|--add username ? ? #指定用戶加入組
groupmems -d|--delete username #從組中刪除用戶
groupmems -p|--purge groupname? #從組中清除所有成員
groupmems -l|--list ? groupname? #顯示組成員列表

#linux用戶權(quán)限總結(jié)
chown?-c|--changes ?filename ?#同-v選項,但只顯示更新成功的信息
chown -f|--silent|--quiet filename? #不顯示錯誤信息
chown -v|--verbose ? ? ? ?filename ?#顯示過程
chown --dereference ? ? ? ?filename #修改的是符號鏈接指向的文件,而不是鏈接文件本身
chown -h|--no-dereference ? filename#修改的是符號鏈接文件,而不是其指向的目標文件
chown --from=user:group ? ?filename #根據(jù)原屬主屬組來修改,相當于一個查詢條件
chown --no-preserve-root ? filename?#不特別對待“/”,意思就是將根目錄當成普通目錄來執(zhí)行,
chown --preserve-root ? ? ?filename #不允許在"/"上遞歸操作
chown --reference=RFILE ? ?filename #復制該文件的屬主屬組信息給指定文件
chown-R|--recursive ? ? ? ?filename#遞歸操作
#下列選項配合 -R 使用
chown -H ? ? ? ? ? ? ? ? ? filename?#如果參數(shù)是指向目錄的軟鏈接,則只修改指向的目錄,
chown -L ? ? ? ? ? ? ? ? ? filename?#更改所有遇到的符號鏈接指向的目錄
chown -P ? ? ? ? ? ? ? ? ? filename?#不更改符號鏈接指向的目錄chgrp -c|--changes ? ? filename ? ? ?#同-v選項,但只顯示更新成功的信息
chgrp -f|--silent|--quiet ?filename  #不顯示錯誤信息
chgrp -v|--verbose ? ? ?filename  ? ?#顯示過程
chgrp --dereference ? ? ? filename ? #修改的是符號鏈接指向的文件,而不是鏈接文件本身
chgrp -h|--no-dereference ?filename  #修改的是符號鏈接文件,而不是其指向的目標文件
chgrp --no-preserve-root ? ?filename #不特別對待“/”,意思就是將家目錄當成普通目錄來執(zhí)行
chgrp --preserve-root ? ? filename ? #不允許在"/"上遞歸操作
chgrp --reference=RFILE ? filename ? #復制該文件的屬主屬組信息給指定文件
chgrp -R|--recursive ? ? ?filename  ?#遞歸操作
#下列選項配合 -R 使用,
chgrp -H ? ? ? ? filename ??#如果參數(shù)是指向目錄的軟鏈接,則只修改指向的目錄,不改變目錄里面文件
chgrp -L ? ? ? ? ?filename#更改所有遇到的符號鏈接指向的目錄
chgrp -P ? ? ? ? ? filename #不更改符號鏈接指向的目錄chmod -c|--changes ? ?  filename? ? #同-v選項,但只顯示更新成功的信息
chmod -f|--silent|--quiet  filename? #不顯示錯誤信息
chmod -v|--verbose ? ? ? ? filename #顯示過程
chmod --no-preserve-root ? filename #不特別對待“/”,意思就是將家目錄當成普通目錄來執(zhí)行
chmod --preserve-root ? ?  filename? #不允許在"/"上遞歸操作
chmod --reference=RFILE ?  filename? #根據(jù)其它文件權(quán)限來操作,復制該文件的權(quán)限信息給指定文件
chmod -R|--recursive ? ? filename ? #遞歸操作umask  -p ? ?#如果省略 MODE 模式,以可重用為輸入的格式輸入
umask  -S ? ?#以字符顯示
umask  u=rw,g=r,o= #設置創(chuàng)建文件權(quán)限chmod u+s filename... #添加文件SUID權(quán)限
chmod 4xxx filename #添加文件SUID權(quán)限 
chmod u-s filename...#去除文件SUID權(quán)限
chmod g+s filename... #添加文件SGID權(quán)限
chmod 2xxx filename#添加文件SGID權(quán)限
chmod g-s filename...#添加文件SGID權(quán)限
chmod o+t dirname...#添加文件Sticky權(quán)限
chmod 1xxx dirname #添加文件Sticky權(quán)限
chmod o-t dirname...#添加文件Sticky權(quán)限
chattr -p filename #設置文件項目編號
chattr -R ?filename ? #遞歸執(zhí)行
chattr -V ? filename? #顯示過程,并輸出chattr 版本
chattr -f ?filename ? #不輸出錯誤信息
chattr -v version filename #設置版本
lsattr filename #顯示文件屬性setfacl -m|--modify=acl ? filename? ? ? #修改acl權(quán)限
setfacl -M|--modify-file=file filename#從文件讀取規(guī)則
setfacl -x|--remove=acl ? ?filename ? ? #刪除文件acl 權(quán)限
setfacl -X|--remove-file=file filename#從文件讀取規(guī)則
setfacl -b|--remove-all ? ? ? filename? #刪除文件所有acl權(quán)限
setfacl -k|--remove-default ? filename? #刪除默認acl規(guī)則
setfacl --set=acl ? ? ? ? ? filename? ? #用新規(guī)則替換舊規(guī)則,會刪除原有ACL項,用新的替代
setfacl --set-file=file  filename? #從文件讀取新規(guī)則
setfacl --mask ? ? ? filename? ?#重新計算mask值
setfacl -n|--no-mask ? filename?#不重新計算mask值
setfacl -d|--default ? ?filename  #在目錄上設置默認acl
setfacl -R|--recursive ?filename #遞歸執(zhí)行
setfacl -L|--logical ? ?filename #將acl 應用在軟鏈接指向的目標文件上,與-R一起使用
setfacl -P|--physical ? ? filename?#將acl 不應用在軟鏈接指向的目標文件上,與-R一起使用
setfacl -m mask::rx filename #mask權(quán)限
getfacl filename #查看權(quán)限列表


2. 結(jié)合vim幾種模式,學會使用vim幾個常見操作。

1)如何打開文件。并在打開文件(命令模式)之后如何退出文件。

打開文件
在終端中輸入vim 文件名即可打開指定文件。例如,如果要打開名為test.txt的文件,可以輸入vim test.txt。此時進入命令模式。


退出文件
1、命令模式->命令擴展模式 退出
如果沒有對文件進行任何修改,先輸入: 進入命令擴展模式,再輸入q就可以退出文件。
如果對文件進行了修改但不想保存,先輸入:進入命令擴展模式,再輸入q!強制退出(會放棄所有修改)。
如果對文件進行了修改并且想要保存后退出,先輸入:進入命令擴展模式,在輸入wq(先保存再退出)。
2、命令模式 退出
輸入ZZ保存修改就可以退出文件。
輸入ZQ不保存修改就可以退出文件。

2)打開文件(命令模式)之后,進入插入模式。并在插入模式中如何回到打開文件的狀態(tài)(命令模式),并在命令模式之后如何退出文件。
3)打開文件(命令模式)之后,進入插入模式,編寫一段話,"馬哥出品,必屬精品", 之后從插入模式中如何回到打開文件的狀態(tài)(命令模式),并在命令模式之后如何退出文件。

從命令模式進入插入模式
在命令模式下,可以使用以下按鍵進入插入模式:
i:在光標當前位置插入。
a:在光標當前位置的下一個字符處插入。
o:在光標所在行的下一行插入新的一行并進入插入模式。
I:在光標所在行的行首插入。
A:在光標所在行的行尾插入。


從插入模式回到命令模式
在插入模式下,按下Esc鍵即可回到命令模式。
完成特定內(nèi)容編寫后的操作(包含插入、返回命令模式和退出)
按照要求,在打開文件(命令模式)后進入插入模式(如按i),輸入 “馬哥出品,必屬精品”。
然后按Esc鍵回到命令模式。
若要保存并退出,可以輸入:wq;若不想保存并退出,輸入:q!;若只是想保存不退出,輸入:w。


4)使用cat命令驗證文件內(nèi)容,是剛剛自己寫的內(nèi)容。

在完成上述文件的編輯并保存退出后,可以使用cat命令來查看文件內(nèi)容。
如果編輯的文件名為test.txt,在終端輸入cat test.txt,就可以看到文件中的內(nèi)容是否為剛剛自己編寫的 “馬哥出品,必屬精品”。


5)(可選),命令模式下,光標在單詞,句子上進行前后,上下跳轉(zhuǎn)。行復制粘貼。行刪除。

光標跳轉(zhuǎn)
在單詞間跳轉(zhuǎn):
w:將光標移至下一個單詞的開頭。
b:將光標移至上一個單詞的開頭。
e:將光標移至當前單詞的末尾。
在句子間跳轉(zhuǎn):
):將光標移至下一個句子的開頭。
(:將光標移至上一個句子的開頭。
上下跳轉(zhuǎn):
j:光標向下移動一行。
k:光標向上移動一行。
行復制粘貼
復制行:在命令模式下,將光標移至要復制的行,按yy(復制當前行),若要復制多行,可以使用數(shù)字yy(例如3yy表示復制從當前行開始的 3 行)。
粘貼行:將光標移至要粘貼的位置,按p(粘貼在光標所在行的下一行)或者P(粘貼在光標所在行的上一行)。
行刪除
在命令模式下,將光標移至要刪除的行,按dd即可刪除當前行。若要刪除多行,可以使用數(shù)字dd(例如3dd表示刪除從當前行開始的 3 行)


3. 總結(jié)學過的文本處理工具,文件查找工具,文本處理三劍客, 文本格式化命令(printf)的相關命令及選項,示例。

一、文本處理工具
1. cat
命令格式:cat [選項] [文件]
常用選項及功能
-n:為所有行編號(包括空行)。
-b:只為非空行編號。
-E:在每行末尾顯示$表示行尾。
-T:將制表符顯示為^I。
示例
查看文件并顯示所有行號:cat -n file.txt
查看文件并只對非空行編號:cat -b file.txt
2. more
命令格式:more [選項] [文件]
常用選項及功能
-d:顯示詳細的操作提示信息。
-s:將連續(xù)的空行壓縮為一行。
示例
分頁查看文件并顯示提示:more -d file.txt
查看文件并壓縮空行:more -s file.txt
3. less
命令格式:less [選項] [文件]
常用選項及功能
-N:顯示行號。
-S:當行過長時,截斷顯示,可通過左右箭頭查看完整內(nèi)容。
-i:搜索時忽略大小寫。
示例
查看文件并顯示行號:less -N file.txt
在less中搜索忽略大小寫的內(nèi)容:/search -i
4. nl
功能:為文件添加行號,類似cat -b。
示例
為文件添加行號:nl file.txt
5. tac
功能:逆序顯示文件內(nèi)容。
示例
逆序顯示文件:tac file.txt
6. rev
功能:反轉(zhuǎn)每行的字符順序。
示例
反轉(zhuǎn)每行字符:rev file.txt
7. head
命令格式:head [選項] [文件]
常用選項及功能
-n [行數(shù)]:顯示文件開頭的指定行數(shù),若行數(shù)為負數(shù),則從文件開頭到倒數(shù)第|行數(shù)|行。
-c [字節(jié)數(shù)]:顯示文件開頭的指定字節(jié)數(shù)。
示例
查看文件前 5 行:head -n 5 file.txt
查看文件前 10 字節(jié):head -c 10 file.txt
8. tail
命令格式:tail [選項] [文件]
-n [行數(shù)]:顯示文件末尾的指定行數(shù),若行數(shù)為負數(shù),則從第|行數(shù)|行到文件末尾。
-c [字節(jié)數(shù)]:顯示文件末尾的指定字節(jié)數(shù)。
-f:實時跟蹤文件末尾的新增內(nèi)容,常用于日志監(jiān)控。
示例
查看文件后 3 行:tail -n 3 file.txt
實時跟蹤日志文件:tail -f log.txt
9. cut
命令格式:cut [選項] [文件]
常用選項及功能
-d [分隔符]:指定分隔符,默認是制表符。
-f [字段列表]:指定要提取的字段,如單個字段、多個離散字段或連續(xù)字段。
-C:按字符切割。
示例
提取/etc/passwd文件中以:分隔的第 1、3 和 7 列:cut -d: -f1,3,7 /etc/passwd
10. paste
命令格式:paste [選項] [文件]
常用選項及功能
-d [分隔符]:指定分隔符,默認是制表符。
-s:將文件的所有行合并為一行。
示例
合并兩個文件同行號的列:paste -d ' ' file1.txt file2.txt
將文件的所有行合并為一行:paste -s file.txt
11. wc
命令格式:wc [選項] [文件]
常用選項及功能
-l:統(tǒng)計行數(shù)。
-w:統(tǒng)計單詞數(shù)。
-c:統(tǒng)計字節(jié)數(shù)。
-m:統(tǒng)計字符數(shù)。
-L:顯示最長行的長度。
示例
統(tǒng)計文件的行數(shù)、單詞數(shù)和字節(jié)數(shù):wc -lwc file.txt
12. sort
命令格式:sort [選項] [文件]
常用選項及功能
-r:逆序排序。
-n:按數(shù)字大小排序。
-h:按人類可讀的格式排序(如1K、2M等)。
-f:忽略大小寫。
-u:去除重復行。
示例
對文件內(nèi)容按數(shù)字大小排序:sort -n file.txt
按人類可讀格式排序:sort -h file.txt
13. uniq
命令格式:uniq [選項] [文件]
常用選項及功能
-c:在每行前顯示該行重復出現(xiàn)的次數(shù)。
-d:只顯示重復的行。
-u:只顯示不重復的行。
示例
統(tǒng)計文件中重復行的次數(shù):sort file.txt | uniq -c
14. diff
命令格式:diff [選項] [文件1] [文件2]
常用選項及功能
-u:以統(tǒng)一格式輸出差異,便于查看和生成補丁文件。
示例
比較兩個文件的差異:diff -u file1.txt file2.txt
15. patch
功能:將diff生成的補丁文件應用到原始文件。
示例
應用補丁文件:patch file1.txt patch_file
二、文件查找工具
1. find
命令格式:find [路徑] [選項] [表達式]
常用選項及功能
-name [文件名模式]:按文件名查找,支持通配符。
-type [文件類型]:按文件類型查找,如f(文件)、d(目錄)等。
-size [大小條件]:按文件大小查找,如+10M(大于 10 兆)、-5k(小于 5 千字節(jié))。
-mtime [時間條件]:按文件修改時間查找,如+3(3 天前修改的)、-1(1 天內(nèi)修改的)。
-exec [命令] {} \;:對找到的文件執(zhí)行指定命令。
示例
在/home/user目錄下查找所有.txt文件:find /home/user -name '*.txt'
查找/var/log目錄下 3 天前修改的文件并刪除:find /var/log -mtime +3 -exec rm {} \;
2. locate
命令格式:locate [選項] [模式]
常用選項及功能
-i:忽略大小寫查找。
-c:只顯示匹配的文件數(shù)量。
-r:使用正則表達式查找。
示例
查找包含python的文件(忽略大小寫):locate -i python
統(tǒng)計包含error的文件數(shù)量:locate -c error
三、文本處理三劍客
1. grep
命令格式:grep [選項] [模式] [文件]
常用選項及功能
-i:忽略大小寫匹配。
-v:反向匹配,顯示不包含模式的行。
-r:遞歸搜索目錄及其子目錄。
-n:顯示匹配行的行號。
-c:統(tǒng)計匹配的行數(shù)。
-o:只顯示匹配的字符串。
-q:靜默模式,不第個輸入,類型為圖片讀到的內(nèi)容是:
-A [行數(shù)]:顯示匹配行后指定行數(shù)的內(nèi)容。
-B [行數(shù)]:顯示匹配行前指定行數(shù)的內(nèi)容。
-C [行數(shù)]:顯示匹配行前后指定行數(shù)的內(nèi)容。
-e [模式1] -e [模式2]:匹配多個模式中的任意一個。
-w:匹配整個單詞。
-E:使用擴展正則表達式。
-F:不使用正則表達式,按字符串字面匹配。
-P:支持 Perl 風格的正則表達式。
-f [文件]:從文件中讀取模式進行匹配。
示例
在文件中查找包含hello的行并顯示匹配行后 2 行:grep -A 2 hello file.txt
遞歸查找目錄中包含error或warning的文件:grep -r -e error -e warning /home/user/docs
2. sed
命令格式:sed [選項] '命令' [文件]
常用選項及功能
-i:直接修改文件內(nèi)容(謹慎使用),可指定備份后綴,如-i.bak。
-e:在同一命令行執(zhí)行多個命令。
-n:只輸出處理后的行。
基本命令及功能
s/舊字符串/新字符串/[修飾符]:替換操作,修飾符g表示全局替換,p顯示替換行,w保存替換行到文件。
d:刪除行。
p:打印行。
a \新行內(nèi)容:在指定行后添加新行。
i \新行內(nèi)容:在指定行前插入新行。
c \新行內(nèi)容:替換指定行內(nèi)容。
w [文件]:保存匹配行到文件。
r [文件]:讀取文件內(nèi)容到指定位置。
示例
在文件中替換所有apple為banana并保存替換行到新文件:sed -i.bak 's/apple/banana/g' file.txt && sed -i.bak 'w new_file.txt' file.txt
在指定行后添加新行:sed '3a new line' file.txt
3. awk
命令格式:awk [選項] '腳本' [文件]
常用選項及功能
-F [分隔符]:指定字段分隔符。
-v [變量名]=[變量值]:定義變量。
腳本編寫示例
打印文件中第二列:awk -F ',' '{print $2}' data.csv
計算文件中數(shù)字的總和:awk '{sum += $1} END{print sum}' nums.txt
根據(jù)條件處理行:awk '$1 > 10' log.txt
四、文本格式化命令(printf)
命令格式:printf '格式字符串' [參數(shù)列表]
格式說明符
% s:格式化字符串。
% d:格式化整數(shù)。
% f:格式化浮點數(shù)。
% c:格式化單個字符。
% e、% E:格式化科學計數(shù)法表示的浮點數(shù)。
% o:格式化八進制數(shù)。
% x、% X:格式化十六進制數(shù)。
修飾符
寬度指定:如 %5d(整數(shù)寬度為 5,右對齊),%-5d(左對齊)。
精度指定:如 %5.2f(總寬度 5,小數(shù) 2 位)。
示例
格式化輸出字符串和整數(shù):printf "The number is %d and the string is %s\n" 10 "Hello"
按指定寬度和精度輸出浮點數(shù):printf "The value is %7.3f\n" 3.14159


4. 總結(jié)文本處理的grep命令相關的基本正則和擴展正則表達式。

grep 命令相關的正則表達式
一、基本正則表達式
字符匹配
普通字符:直接匹配字符本身。例如,grep "hello" file.txt會匹配文件file.txt中包含hello的行。
特殊字符
.(點號):匹配任意單個字符。例如,grep "h.lp" file.txt會匹配help、h1lp等。
[](字符類):匹配方括號內(nèi)的任意一個字符。例如,grep "h[aeiou]lp" file.txt會匹配help、hulp等以h開頭,lp結(jié)尾,中間是元音字母的字符串。
[^](否定字符類):匹配不在方括號內(nèi)的任意一個字符。例如,grep "h[^aeiou]lp" file.txt會匹配h1lp、hXlp等中間不是元音字母的字符串。
重復匹配
*(星號):匹配前面的字符零次或多次。例如,grep "a*b" file.txt會匹配b、ab、aab等。
\{n\}:匹配前面的字符恰好n次。例如,grep "a\{3\}b" file.txt會匹配aaab。
\{n,\}:匹配前面的字符至少n次。例如,grep "a\{2,\}b" file.txt會匹配aab、aaab等。
\{n,m\}:匹配前面的字符至少n次且最多m次。例如,grep "a\{1,3\}b" file.txt會匹配ab、aab、aaab。
位置匹配
^(脫字符):匹配行首。例如,grep "^hello" file.txt會匹配以hello開頭的行。
$(美元符號):匹配行尾。例如,grep "world$" file.txt會匹配以world結(jié)尾的行。
二、擴展正則表達式(使用-E選項或egrep命令)
字符匹配
與基本正則表達式類似,但增加了一些便捷的字符類:
[:alpha:]:匹配任意字母字符。
[:digit:]:匹配任意數(shù)字字符。
[:alnum:]:匹配任意字母或數(shù)字字符。
[:space:]:匹配任意空白字符(空格、制表符等)。
[:punct:]:匹配任意標點符號。
重復匹配
+(加號):匹配前面的字符一次或多次。例如,egrep "a+b" file.txt會匹配ab、aab等,但不匹配b(區(qū)別于*)。
?(問號):匹配前面的字符零次或一次。例如,egrep "a?b" file.txt會匹配b和ab。
邏輯匹配
|(豎線):表示邏輯或。例如,egrep "hello|world" file.txt會匹配包含hello或world的行。
分組匹配
()(括號):用于分組。例如,egrep "(ab)+" file.txt會匹配ab、abab等。


5. sed將文件test中第50行中的helloworld改為nihao
sed -i '50s/helloworld/nihao/g' test 


7. 在每一行后增加一空行
測試文件為cp /etc/passwd ~/,不要直接修改passwd文件
sed -i 'G' passwd~

8.刪除文件每行的第一個字符。
9.刪除文件每行的第二個字符
10.刪除文件每行的最后一個字符
11.刪除文件每行的倒數(shù)第二個字符(有精力的同學第二個鏈接可以多練習)
sed 's/^.//' test #刪除文件每行的第一個字符
sed -r 's/(.)(.)(.*)/\1\3/' test #刪除文件每行的第二個字符
sed -r 's/(.*)(.$)/\1/' test #刪除文件最后的第一個字符
sed -r 's/(.*)(.)(.$)/\1\3/' test #刪除文件最后的第二個字符

test文件?


參考答案5-11:https://qxblog.top/%E9%A2%98%E7%9B%AE-%E6%96%87%E6%9C%AC%E4%B8%89%E5%89%91%E5%AE%A2%E5%92%8Cshell/
參考答案5-11:https://www.cnblogs.com/zll1217/articles/15394141.html

?

12. 總結(jié)變量命名規(guī)則,不同類型變量(環(huán)境變量,位置變量,只讀變量,局部變量,狀態(tài)變量)如何使用。

變量命名規(guī)則主要包括命名要求與命名習慣:
命名要求
大小寫區(qū)分:在命名時嚴格區(qū)分大小寫,不同大小寫形式代表不同的命名。
避免保留字和內(nèi)置變量:不能使用像 “if”“for” 等程序中的保留字以及內(nèi)置變量進行命名。
字符使用限制:只能用數(shù)字、字母及下劃線進行命名,且不能以數(shù)字開頭,同時不支持短橫線 “-”,命名還需與主機名有所不同。
命名習慣
見名知義:使用能體現(xiàn)實際作用的英文單詞命名,避免使用簡寫,例如不用 “ATM” 這種簡略形式。
大小寫規(guī)范
變量名大寫:適用于特定的全局變量或重要變量。
局部變量小寫:局部變量采用小寫命名。
函數(shù)名小寫:函數(shù)名以小寫形式呈現(xiàn)。
命名方式
大駝峰命名法:如 “StudentFirstName”,由多個單詞組成,每個單詞首字母大寫,其余小寫,常用于類名等重要概念的命名。
小駝峰命名法:像 “studentFirstName”,第一個單詞首字母小寫,后續(xù)單詞首字母大寫,其余小寫,常見于變量和方法命名。
下劃線命名法:例如 “student_name”,使用下劃線連接單詞,在特定編程風格或語言中較為常用。


不同類型的 Shell 變量及其使用方式:
一、環(huán)境變量
定義與設置
在大多數(shù) Shell(如 bash)中,可以使用export命令來定義環(huán)境變量。例如,要定義一個名為MY_VAR的環(huán)境變量并賦值為hello,可以在命令行中輸入:
? ? ?export MY_VAR = "hello"
也可以在 Shell 配置文件(如~/.bashrc或~/.bash_profile)中定義環(huán)境變量,這樣變量在每次登錄時都會自動設置。
使用目的
環(huán)境變量用于在整個系統(tǒng)環(huán)境或者用戶的 Shell 會話中傳遞信息。例如,PATH環(huán)境變量定義了系統(tǒng)查找可執(zhí)行文件的路徑,當你在命令行輸入一個命令時,系統(tǒng)會根據(jù)PATH中的路徑來查找對應的可執(zhí)行文件。
許多程序會讀取特定的環(huán)境變量來獲取配置信息。例如,JAVA_HOME環(huán)境變量通常被 Java 相關的程序用來確定 Java 安裝的目錄。
訪問方式
在 Shell 腳本或命令行中,可以直接使用$符號加上環(huán)境變量名來訪問環(huán)境變量的值。例如,要查看MY_VAR的值,可以使用echo $MY_VAR。
二、位置變量
定義與性質(zhì)
位置變量是由 Shell 自動定義的特殊變量,用于接收命令行參數(shù)。在 Shell 腳本中,$1表示第一個參數(shù),$2表示第二個參數(shù),以此類推。$0表示腳本本身的名稱。
使用示例
假設存在一個名為test.sh的腳本,內(nèi)容如下:
? ? ?#!/bin/bash
? ? ?echo "The script name is: $0"
? ? ?echo "The first parameter is: $1"
? ? ?echo "The second parameter is: $2"
如果在命令行中執(zhí)行./test.sh arg1 arg2,那么$0的值為test.sh,$1的值為arg1,$2的值為arg2。
三、只讀變量
定義與設置
使用readonly命令來定義只讀變量。例如,
readonly MY_READONLY_VAR = "fixed value"。
一旦定義為只讀變量,就不能再修改其值。
使用場景
當有一些值在腳本運行過程中不應該被修改時,可以將其定義為只讀變量。例如,腳本中用于計算的常量或者一些配置信息中不允許改變的部分。
注意事項
如果試圖修改只讀變量的值,Shell 會報錯。例如,在定義了readonly MY_READONLY_VAR = "value"之后,執(zhí)行MY_READONLY_VAR="new value"會導致錯誤。
四、局部變量
定義與范圍
在 Shell 腳本或函數(shù)內(nèi)部定義的變量通常是局部變量。在 bash 中,可以使用local關鍵字在函數(shù)內(nèi)部定義局部變量。例如:
? ? ? my_function() {
? ? ? ?local local_var = "local value";
? ? ? ?echo $local_var;
? ? ?}
局部變量的作用范圍僅限于定義它的函數(shù)內(nèi)部。在函數(shù)外部無法訪問該局部變量。
使用意義
局部變量有助于避免變量名沖突。當不同的函數(shù)可能使用相同的變量名來表示不同的含義時,使用局部變量可以確保每個函數(shù)內(nèi)部的操作不會相互干擾。
五、狀態(tài)變量
特殊意義與常見類型
在 Shell 腳本中,狀態(tài)變量通常用于表示命令執(zhí)行的結(jié)果狀態(tài)。例如,$?是一個特殊的狀態(tài)變量,它保存了最近一次執(zhí)行的命令的退出狀態(tài)碼。退出狀態(tài)碼為 0 表示命令執(zhí)行成功,非 0 表示命令執(zhí)行失敗。
使用示例
執(zhí)行一個命令,然后檢查其狀態(tài):
? ? ?ls /nonexistent_directory
? ? ?echo "The exit status of the 'ls' command is: $?"
可以根據(jù)$?的值在腳本中進行不同的操作,例如判斷一個命令是否成功執(zhí)行,如果失敗則執(zhí)行一些錯誤處理操作。

13. 通過shell編程完成,30雞和兔的頭,80雞和兔的腳,分別有幾只雞,幾只兔?
#!/bin/bash
HEAD=$1
FOOT=$2
RABBIT=$[$[FOOT-2*HEAD]/2]
CHOOK=$[HEAD-RABBIT]
echo RABBIT:$RABBIT
echo CHOOK:$CHOOK

?chook_rabbit.sh? shell文件?

?


14. 結(jié)合編程的for循環(huán),條件測試,條件組合,完成批量創(chuàng)建100個用戶,
1)for遍歷1..100
2)先id判斷是否存在
3)用戶存在則說明存在,用戶不存在則添加用戶并說明已添加。
#! /bin/bash
for i in {1..100};doid user$i >/dev/null && echo user$i is exist ||{useradd user$i;PASS=`cat /dev/urandom | tr -dc '[:alnum:]' |head -c12`;echo $PASS | passwd --stdin user$i &> /dev/null;echo user$i:$PASS >> /root/user.log;echo "user$i is created";}
done

user_add.sh? shell文件

http://www.risenshineclean.com/news/58779.html

相關文章:

  • 做名片哪個網(wǎng)站最好搜索引擎優(yōu)化的具體操作
  • 百度百科搜索入口seo賺錢嗎
  • 外國人做的漢字網(wǎng)站網(wǎng)站推廣技巧和方法
  • 一級a做爰片性av免費網(wǎng)站如何自己做引流推廣
  • 昆山做網(wǎng)站的公司武漢標兵seo
  • android安裝教程搜索引擎營銷就是seo
  • 網(wǎng)站做的好的公司搜索引擎排名競價
  • 山東省建設廳定額網(wǎng)站合肥網(wǎng)絡seo推廣服務
  • 保定專業(yè)做網(wǎng)站如何做好精準營銷
  • 怎么用APdiv做網(wǎng)站導航欄行者seo無敵
  • 泰安房產(chǎn)網(wǎng)簽數(shù)據(jù)免費seo教程
  • wordpress 仿虎嗅沈陽百度推廣優(yōu)化
  • 新疆吐魯番建設網(wǎng)站搜索引擎優(yōu)化崗位
  • wordpress網(wǎng)站模板下載建筑設計網(wǎng)站
  • 涿州住房和城鄉(xiāng)建設局網(wǎng)站微信軟文范例100字
  • 網(wǎng)站建設需要會什么軟件seo優(yōu)化需要多少錢
  • asp做bs網(wǎng)站怎么寫網(wǎng)頁百度網(wǎng)站優(yōu)化
  • 建設一個返利網(wǎng)站芭蕉視頻app無限次數(shù)
  • 可以加外鏈的網(wǎng)站網(wǎng)站seo優(yōu)化免費
  • 設計師網(wǎng)站知乎最近七天的新聞大事
  • 徐州建設局網(wǎng)站51趣優(yōu)化網(wǎng)絡seo工程師教程
  • asp網(wǎng)站開發(fā)軟件seo標題生成器
  • node.js 網(wǎng)站開發(fā)cpc廣告接單平臺
  • 黃做網(wǎng)站發(fā)廣告平臺有哪些免費
  • 網(wǎng)站推廣有哪些公司可以做網(wǎng)絡運營是做什么的工作
  • 銷售型網(wǎng)站seo的范疇是什么
  • 玉林網(wǎng)站建設公司小說引流推廣
  • 江蘇常州青之峰做網(wǎng)站營銷頁面
  • 射洪哪里可以做網(wǎng)站優(yōu)化大師apk
  • 寧波營銷型網(wǎng)站建設可以發(fā)廣告的100個網(wǎng)站