一、登錄時(shí)忘記root密碼怎么辦?(進(jìn)入單用戶模式)
?????? 世界上最遙遠(yuǎn)的距離不是我站在你的面前你卻不知道我愛(ài)你,而是當(dāng)你打開(kāi)了電腦,卻忘記了密碼。沒(méi)錯(cuò),我就遇到了這種情況,明明上一秒設(shè)置的密碼,下一秒就忘記了。于是我就只好求助于萬(wàn)能的度娘,下面是centos7忘記密碼的方法,反正我是成功了,以下:????
??? 首先重啟我們的虛擬機(jī),進(jìn)入這個(gè)頁(yè)面時(shí),快速的按下e鍵

???然后進(jìn)入到這個(gè)界面,在linux16行中,將ro這一行改為rw init=/sysroot/bin/sh,然后按ctrl+x進(jìn)入單用戶模式,


????? ?接下來(lái)使用命令系統(tǒng):"choot /sysroot",重置密碼:"passwd root",更新selinux信息:"touch /.autorelabel",最后重啟即可,密碼修改完成。
二、關(guān)于軟鏈接和硬鏈接的區(qū)別
????? 硬鏈接就是同一個(gè)文件使用了多個(gè)別名(它們有共同的inode),硬鏈接可由命令link或ln創(chuàng)建,由于硬鏈接是有著相同inodo號(hào)僅文件名不同的文件,因此刪除一個(gè)硬鏈接文件并不影響其他有相同inodo號(hào)的文件。硬鏈接不能對(duì)目錄進(jìn)行創(chuàng)建,只可對(duì)文件創(chuàng)建。
軟鏈接也叫符號(hào)鏈接,與硬鏈接不同,文件用戶數(shù)據(jù)塊中存放的內(nèi)容是另一文件的路徑名指向。軟鏈接就是一個(gè)普通文件,只是數(shù)據(jù)塊內(nèi)容有點(diǎn)特殊。ln -s表示創(chuàng)建的是軟鏈接。刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關(guān)軟鏈接就變成的死鏈接。
?三 IO重定向及管理
??? ?1. 什么是IO重定向?
????? ?linux啟動(dòng)后,會(huì)默認(rèn)打開(kāi)3個(gè)文件描述符,分別是:標(biāo)準(zhǔn)輸入standard input 0,正確輸出standard output 1,錯(cuò)誤輸出:error output 2;一條shell命令執(zhí)行,都會(huì)繼承父進(jìn)程的文件描述符。因此,所有運(yùn)行的shell命令,都會(huì)有默認(rèn)3個(gè)文件描述符。對(duì)于任何一條linux 命令執(zhí)行,它會(huì)是這樣一個(gè)過(guò)程:

一個(gè)命令執(zhí)行前,先會(huì)準(zhǔn)備好所有輸入輸出,如果這個(gè)時(shí)候出現(xiàn)錯(cuò)誤,命令將終止,不會(huì)執(zhí)行。這些默認(rèn)的輸出,輸入都是linux系統(tǒng)內(nèi)定的,我們?cè)谑褂眠^(guò)程中,有時(shí)候并不希望執(zhí)行結(jié)果輸出到屏幕。我想輸出到文件或其它設(shè)備。這個(gè)時(shí)候我們就需要進(jìn)行輸出重定向了。
???2. 可用于輸入的設(shè)備:文件
??????????? 鍵盤(pán)設(shè)備、文件系統(tǒng)上的常規(guī)文件、網(wǎng)卡等;
?????? 可用于輸出的設(shè)備:文件
??????????? 顯示器、文件系統(tǒng)上的常規(guī)文件、網(wǎng)卡等;
?????? 程序的數(shù)據(jù)流有三種:
??????????? 輸入的數(shù)據(jù)流:<-- 標(biāo)準(zhǔn)輸入(stdin),鍵盤(pán);
?????????? ?輸出的數(shù)據(jù)流:--> 標(biāo)準(zhǔn)輸出(stdout),顯示器;
??????????? 錯(cuò)誤輸出流: ?-->錯(cuò)誤輸出(stdeer),顯示器;
????? ?fd: ?file descriptor ,文件描述符
????????? 標(biāo)準(zhǔn)輸入:0
????????? 標(biāo)準(zhǔn)輸出:1
????????? 錯(cuò)誤輸出:2
???3. ?linux shell下常用輸入輸出操作符是:
??????? 1.1. 輸出重定向:>
???????????????? 特性:覆蓋輸出
????????????? 輸出重定向:>>
???????????????? 特性:追加輸出
????????????# set -C
?????????????? 禁止覆蓋輸出重定向至已存在的文件;
?????????????? 此時(shí)可使用強(qiáng)制覆蓋輸出:>|
???????????# set -C
?????????????? 關(guān)閉上述特性
???????????錯(cuò)誤輸出流重定向:2>,2>>
???????????將正確輸出和錯(cuò)誤輸出放入到不同的文件中:

???????????將正確輸出轉(zhuǎn)換為錯(cuò)誤:1>&2
???????????將錯(cuò)誤輸出轉(zhuǎn)換為正確:2>&1
???????????合并正常和錯(cuò)誤輸出流:
??????????????&> , &>>
??或 ????COMMAND > /path/to/somefile 2>&1
?????????COMMAND >> /path/to/somefile 2>&1????


?????????特殊設(shè)備:/dev/null (黑洞,將不在顯示)
?????????():合并多個(gè)程序的STDOUT??

??????????注意:()的優(yōu)先級(jí)大于>,而>的優(yōu)先級(jí)大于;

???????2.2. 輸入重定向:<
???????????tr命令:轉(zhuǎn)換和刪除字符
????????????? tr[OPTION]...SET1 [SET2]
???????????????把輸入的數(shù)據(jù)當(dāng)中的字符,凡是在SET1定義范圍內(nèi)出現(xiàn)的通通對(duì)位轉(zhuǎn)換為SET2出現(xiàn)的字符。
????????????-c ?取字符集的補(bǔ)集
????????????-d ?刪除所有屬于第一字符集的字符
????????????-s ?把連續(xù)重復(fù)的字符以單獨(dú)一個(gè)字符表示
????????????-t ?將第一個(gè)字符集對(duì)應(yīng)字符轉(zhuǎn)化為第二字符集對(duì)應(yīng)的字符

???????????用法1:
??????????????tr SET1 SET2 < /PATH/FROM/SOMEFILE
??????????????tr -d SET1 < /PATH/FROM/SOMEFILE
????????????(注意:不改原文件)
???????????????????[:alnum:]:字母和數(shù)字
???????????????????[:alpha:]:字母
???????????????????[:cntrl:]:控制(非打印 )字符
???????????????????[:digit:]:數(shù)字
???????????????????[:graph:]:圖形字符
???????????????????[:lower:]:小寫(xiě)字母
???????????????????[:print:]:可打印字符
???????????????????[:punct:]:標(biāo)點(diǎn)符號(hào)
???????????????????[:space:]:空白字符
???????????????????[:upper:]:大寫(xiě)字母
???????????????????[:xdigit:]:十六進(jìn)制字符
?????????讓我們來(lái)詳細(xì)的看一下tr命令:

??????????那么看一下\t和\v ??
?????????????\t

??????????????\v??

?3.3 ?多行重定向:使用“<<終止詞”命令從鍵盤(pán)把多行重導(dǎo)向給STDIN

???????注意:標(biāo)準(zhǔn)輸入的重定向后跟的是一個(gè)文件。
????4.4 管道 ??
??????????| 將正確結(jié)果重定向給下一條命令
???????? ?2>&1 | 或 |& ?全部結(jié)果重定向 ??????
????? ?Linux系統(tǒng)中的命令可以將標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),還能將這些數(shù)據(jù)送到標(biāo)準(zhǔn)輸?出中去,這種功能被系統(tǒng)進(jìn)一步的利用,從而產(chǎn)生出一種新的特性,稱之為管道符“|”,這個(gè)符號(hào)可以將一個(gè)命令的標(biāo)準(zhǔn)輸出管道為另外一個(gè)命令的標(biāo)準(zhǔn)輸入。
?需要注意的是管道符的使用有兩個(gè)條件:
???1、管道命令只能處理前一個(gè)命令的標(biāo)準(zhǔn)輸出,而不能處理標(biāo)準(zhǔn)錯(cuò)誤;


???2、管道命令右邊命令必須能夠接收標(biāo)準(zhǔn)輸入。
?tee 命令:
???? tee命令的作用像字母T一樣,很形象的表示了它的功能:它把輸出的一個(gè)副本輸送到標(biāo)準(zhǔn)輸出,另一個(gè)副本拷貝到相應(yīng)的文件中,在輸出到文件的同時(shí),也把信息顯示到屏幕上輸出。
?COMMAND | tee/PATH/TO/SOMEFILE (保存且顯示)
????? -a 存在,不覆蓋
四、用戶組和權(quán)限管理
?? 1. linux用戶和組管理
安裝上下文:進(jìn)程以發(fā)起者的身份運(yùn)行,進(jìn)程對(duì)文件的訪問(wèn)權(quán)限,取決于發(fā)起此進(jìn)程的用戶的權(quán)限。


為了能夠讓那些后臺(tái)進(jìn)程或服務(wù)類進(jìn)程以非管理員的身份運(yùn)行,通常需要為此創(chuàng)建多個(gè)普通用戶,這類用戶從不用登錄系統(tǒng),因此稱為系統(tǒng)用戶。
??2. ?groupadd :添加組

????????-g GID:手動(dòng)自定GID,默認(rèn)是上一個(gè)組的GID+1
?????????-r :創(chuàng)建系統(tǒng)組
??????groupmod :修改組屬性
?????????-g :修改GID
?????????-n :修改組名
??????groupdel :刪除組
??????useradd :創(chuàng)建用戶 ?
?????????-u :指定UID
?????????-g :指定基本組ID,但此組要事先存在
?????????-G :指明用戶的附加組,多個(gè)組之間用逗號(hào)隔開(kāi)
?????????-c :指明注釋信息
?????????-d :以指定的路徑為用戶的家目錄,通過(guò)復(fù)制/etc/skel此目錄并重命名實(shí)現(xiàn),指定的家目錄路徑如果事先存在,則不會(huì)為用戶復(fù)制環(huán)境配置文件。

?????????-s :指定用戶的默認(rèn)shell,可用的所有shell列表存儲(chǔ)在/etc/shells文件中
?????????-r :創(chuàng)建系統(tǒng)用戶
????(注意:創(chuàng)建用戶時(shí)的諸多默認(rèn)設(shè)定設(shè)置文件為/etc/login.defs)
??????useradd -D :顯示創(chuàng)建用戶的默認(rèn)設(shè)置
??????useradd -D 選項(xiàng):修改默認(rèn)選項(xiàng)的值
???????????修改的結(jié)果保存于/etc/default/useradd文件中
??????usermod命令:修改用戶屬性
?????????usermod [選項(xiàng)] 登錄
???????????-u :修改用戶的ID為此處指定的新ID
???????????-g :修改用戶所屬的基本租
???????????-G :修改用戶所屬的附加組,原來(lái)的附加組會(huì)被覆蓋
???????????-a :與-G一同使用,用于為用戶追加新的附加組
???????????-c :修改注釋信息
???????????-d :修改用戶的家目錄,用戶原有的文件不會(huì)被轉(zhuǎn)移至新的位置
???????????-m :只能與-d選項(xiàng)一同使用,用于將原來(lái)的家目錄移動(dòng)為新的家目錄