国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

Linux學(xué)習(xí)筆記1

2024-06-28 13:19:23
字體:
供稿:網(wǎng)友
linux學(xué)習(xí)筆記1

自從我大微軟終于放下身段,決定給開源社區(qū)一個(gè)遲來的擁抱,追隨多年的擁躉們像是突然得到了女神的垂青,各種茫然失措、痛哭流涕、歡欣鼓舞,紛紛唱了起來:“等了好久終于等到今天,夢(mèng)了好久終于把夢(mèng)實(shí)現(xiàn)……”唱完之后才想起來好像說的什么開源、跨平臺(tái)啥的和自己沒太大關(guān)系,最基本的,Linux、IOS會(huì)么?被.NET細(xì)心呵護(hù)了這許多年,現(xiàn)在跟我說開源跨平臺(tái),你是玩我呢?不說了,拖了幾個(gè)月的項(xiàng)目,老板還等著今天上線呢!

呵呵,開個(gè)玩笑,其實(shí)微軟的開放姿態(tài)是受多數(shù)方肯定和歡迎的,IT行業(yè)各方面也多少有點(diǎn)影響,對(duì)于我來說,最大的影響莫過于打算好好研究下Linux,這玩意一直都想系統(tǒng)學(xué)習(xí),奈何沒有充足的動(dòng)力,如今沒有借口了,希望能盡快入門。

按照本人博客一貫的風(fēng)格,本文并非系統(tǒng)的講解,而是側(cè)重于方便以后的復(fù)習(xí)回顧做筆記。本文綠字為個(gè)人見解,需驗(yàn)證。本系列參考書籍是《Linux就是這個(gè)范兒》,趙鑫磊和張潔著。

學(xué)習(xí)Linux第一個(gè)要面對(duì)的問題是版本選擇,尼瑪當(dāng)時(shí)我一看就傻眼了,瞬間就有打道回府的沖動(dòng)。大伙來瞅瞅,下面這還是07年時(shí)候的分支圖(摘自網(wǎng)絡(luò)),想想現(xiàn)在Android的景象,嘖嘖,這圖還能裝下么。

要從中選一個(gè)合適的,對(duì)門外漢來說確實(shí)不是件容易的事。開源就是這點(diǎn)不好,大家各行其是,說好聽點(diǎn)百花齊放,卻分流了本就不多的用戶群,若如此眾多的版本開發(fā)可以合力一處,windows還有笑傲江湖的資格么。雖說在服務(wù)器端因?yàn)殚_源的原因闖出了一片天地,但仍然無法回避占市場(chǎng)大頭的桌面客戶端的失利。博主認(rèn)為凡事都不可走極端,純開放和純封閉都不可取,兩者相互借鑒,給予自由,但又有機(jī)構(gòu)按規(guī)則統(tǒng)一版本控制,才是軟件發(fā)展的正確方式(maybe有某類開源協(xié)議支持博主的觀點(diǎn),除了GPL,博主對(duì)其它開源協(xié)議不甚清楚)。

所幸對(duì)于我們這群碼農(nóng)來說,各發(fā)行版都大同小異,一通百通。目前服務(wù)端用的比較多的免費(fèi)版本非CentOS莫屬,很多書籍也采用CentOS講解,如今已到了7.1版本。

作為.NETer,雖然勾搭上了Linux,但是正房還是Windows,不可拋棄。那么如何在同臺(tái)電腦上另外安裝Linux呢,要知道Linux和Windows的文件系統(tǒng)都不一樣,網(wǎng)上有此雙系統(tǒng)的教程,但是為了安全計(jì),我還是選擇了虛擬機(jī)的方式。虛擬機(jī)的缺點(diǎn)是軟件環(huán)境是模擬出來的,比如剛說的文件系統(tǒng),虛擬機(jī)里L(fēng)inux的文件系統(tǒng)都是由windows文件系統(tǒng)經(jīng)虛擬機(jī)轉(zhuǎn)換而來,效率上絕壁比原生安裝的低下很多。

虛擬機(jī)我選擇的是VMware Workstation,最新版11.1,注冊(cè)碼網(wǎng)上搜便是。在VMware界面上選擇CentOS鏡像文件,然后靜靜等待安裝完畢即可,在此期間會(huì)讓你輸入用戶名密碼作為安裝后的登錄用戶,然后是語(yǔ)言和輸入法選擇,完了就進(jìn)入桌面了,如下:

也沒什么特別的感覺,完全沒有各類書籍里說的驚艷,maybe CentOS偏向于服務(wù)性能,對(duì)圖形界面不care,maybe Ubuntu就不一樣了。不管怎么說,我終于向前邁出了歷史性的一步!


用戶和用戶組

Linux用戶中除了root天生就很牛逼,其他用戶都是屌絲。一個(gè)用戶至少屬于一個(gè)用戶組,/etc/passwd文件中每行即表示一個(gè)用戶,其中第4列即GID表示用戶的“初始用戶組”,用戶所屬的所有用戶組稱為“支持用戶組”。還有個(gè)概念是“有效用戶組”,所謂有效用戶組表示用戶當(dāng)前所在的用戶組,即用戶在同一時(shí)刻只能以一個(gè)用戶組成員的身份參與系統(tǒng)交互,至于為什么這么設(shè)計(jì),目前未知。

前者說了,root很牛逼,幾乎無所不能,很極端的對(duì)立,廣大屌絲一般除了自己的一畝三分地,幾乎不能干任何“有技術(shù)含量的”事(比如添加用戶),所以有點(diǎn)什么事都要麻煩root。root為了不累死,決定傳授一句咒語(yǔ)給屌絲們,讓他們能在一段時(shí)間內(nèi)具備自己(root)的能力,或者說“變身”為root,這個(gè)咒語(yǔ)就是sudo。比如/etc/shadow 這個(gè)文件是保存密碼的,普通用戶沒有權(quán)限查看,一定要看的話可以執(zhí)行“$ sudo cat /etc/shadow”,這時(shí)系統(tǒng)會(huì)要求輸入當(dāng)前用戶密碼,輸密碼雖然麻煩,但安全性高了,至少各類后臺(tái)程序不能偷偷地搞小動(dòng)作了(后來微軟也學(xué)了這招,windowsVista開始,右鍵就加入了新的菜單項(xiàng)——“以管理員身份運(yùn)行”)。要給某個(gè)用戶賦予sudo特權(quán),就需要更改/etc/sudoers 文件中的內(nèi)容,該文件能設(shè)置用戶或用戶組行使sudo權(quán)利的命令范圍,甚至可以設(shè)置sudo時(shí)不用輸入密碼,不過這自然是不安全的,不推薦。

su命令,用來切換當(dāng)前用戶。所以如果嫌sudo太麻煩,就可以使用su臨時(shí)切換到root用戶,切換用戶時(shí)須輸入目標(biāo)用戶的密碼。root用戶使用su命令切換到任何用戶都不需要輸入密碼,所以我們要在/etc/sudoers中明確禁止su被sudo特權(quán)執(zhí)行。

和用戶組類似,用戶也有實(shí)際用戶和有效用戶(即上文說的當(dāng)前用戶)的概念,分別可用whoami和whoami查看。

文件[屬性和權(quán)限]

Linux環(huán)境大小寫敏感,文件名也是,在文件名前加上“.”則該文件[夾]將隱藏。和windows不同,文件基本上沒有擴(kuò)展名,因?yàn)長(zhǎng)inux不根據(jù)擴(kuò)展名判斷文件類型,而是根據(jù)文件的內(nèi)容來判斷。。

文件連接,也是一種文件類型,基于inode,inode包含文件的元信息。我們可以將inode簡(jiǎn)單理解成一個(gè)指針,指向文件所在磁盤中的物理位置,多個(gè)文件名可以指向同個(gè)inode,這意味著,可以用不同的文件名訪問同樣的內(nèi)容;對(duì)文件內(nèi)容進(jìn)行修改,會(huì)影響到所有文件名;但是,刪除一個(gè)文件名,不影響另一個(gè)文件名的訪問,這種情況就被稱為"硬鏈接"(hard link)。除了硬鏈接以外,還有一種特殊情況。文件A和文件B的inode號(hào)碼雖然不一樣,但是文件A的內(nèi)容是文件B的路徑。讀取文件A時(shí),系統(tǒng)會(huì)自動(dòng)將訪問者導(dǎo)向 文件B。因此,無論打開哪一個(gè)文件,最終讀取的都是文件B。這時(shí),文件A就稱為文件B的"軟鏈接"(soft link)或者"符號(hào)鏈接(symbolic link)。軟連接和硬鏈接最大的不同是:軟連接指向的是目標(biāo)文件的文件名,而硬鏈接指向的是目標(biāo)文件的inode,軟連接兩個(gè)文件的inode是不一樣的,不會(huì)影響目標(biāo)文件inode的連接數(shù)。更多內(nèi)容可參看Linux的inode的理解。

創(chuàng)建連接用ln,如果是復(fù)制cp命令,那么產(chǎn)生的是一個(gè)內(nèi)容一樣的新文件。

文件權(quán)限:r、w、x、s、t。前三者分表表示讀、寫、執(zhí)行。由于權(quán)限可自由組合,所以以標(biāo)志位的形式設(shè)計(jì)是最合理的。用數(shù)字表示,r為4,w為2,x為1,那么5就是r-x,rwx就是7。文件按順序規(guī)定了擁有者、所屬組和其他無關(guān)者的權(quán)限權(quán)限,如777即表示所有用戶都對(duì)文件有讀寫執(zhí)行權(quán)限,600表示只有擁有者有對(duì)該文件的權(quán)限,且該權(quán)限為讀寫權(quán)限即rw-。

我們可以使用chmod命令改變文件權(quán)限,如chmod 700testtext,這是數(shù)字權(quán)限法,還可以使用文字表示權(quán)限更改,如 chmod u+w testtext,表示給擁有者加上寫權(quán)限。u、g、o、a分別表示擁有者、所屬組、其他無關(guān)者和全部,+、-、=分別表示增加、減去、設(shè)定。

還有s、t,這兩個(gè)權(quán)限代表什么呢?先說s,將文件的擁有者和用戶組權(quán)限的執(zhí)行位設(shè)置成s,分別稱之為SUID和SGID,對(duì)二進(jìn)制程序有效,SGID還能用在目錄上。一個(gè)文件本身具有uid和gid的屬性,表示擁有者和所屬組,在文件被執(zhí)行時(shí),還會(huì)多出兩個(gè)屬性——euid和egid——分別表示執(zhí)行文件的有效(當(dāng)前)用戶ID和有效(當(dāng)前)用戶組ID,Linux內(nèi)核主要是根據(jù)euid和egid來確定進(jìn)程對(duì)資源的訪問權(quán)限。下面舉個(gè)例子就清楚了:

假設(shè)文件myfile是屬于foo用戶的,是可執(zhí)行的,現(xiàn)在沒設(shè)SUID位,權(quán)限位是rwxr-xr-x,foo用戶的uid和gid分別為200和201。另有一用戶kevin,他的uid和gid分別為204和202。那么kevin運(yùn)行myfile程序形成的進(jìn)程的 euid=uid=204,egid=gid=202,內(nèi)核根據(jù)這些值來判斷進(jìn)程對(duì)資源訪問的限制,其實(shí)就是kevin用戶對(duì)資源訪問的權(quán)限,和foo沒關(guān)系。然后我們將myfile設(shè)為SUID,則euid和egid變成被運(yùn)行的程序的所有者的uid和gid,即現(xiàn)在kevin用戶運(yùn)行myfile,euid=200,egid=201,則這個(gè)進(jìn)程具有它的屬主foo的資源訪問權(quán)限。http://i.CUOXin.com/EditPosts.aspx?postid=4678311

不知道執(zhí)行SUID文件過程中,之前提到的系統(tǒng)的有效用戶和有效用戶組是否也對(duì)應(yīng)于執(zhí)行文件時(shí)的euid和egid,即上例后半部,kevin運(yùn)行myfile時(shí),此時(shí)的系統(tǒng)有效用戶是kevin還是foo呢?這個(gè)問題留待日后驗(yàn)證。

SUID的作用就是這樣:讓本來沒有相應(yīng)權(quán)限的用戶運(yùn)行這個(gè)程序時(shí),可以訪問他沒有權(quán)限訪問的資源。

SGID在二進(jìn)制程序上的功效和SUID類似,在目錄上能產(chǎn)生如下效果:假設(shè)該目錄的所屬組為gA,那么有效用戶組為gB的用戶進(jìn)入此目錄后,該用戶的有效用戶組就變成gA了,那么創(chuàng)建新文件,新文件的用戶組就是gA。SGID如此,那么是否上述紅字描述的問題也是一般答案呢?

更多內(nèi)容可參看linux:SUID、SGID詳解。

t,將文件的其他無關(guān)者權(quán)限執(zhí)行位設(shè)為t,稱為SBIT,僅對(duì)目錄有效。功效:用戶在設(shè)置了SBIT目錄下創(chuàng)建的文件,只有自己和root才有權(quán)利刪除此文件。


其它

$PATH環(huán)境變量,決定了shell將到哪些目錄中尋找命令或程序,PATH的值是一系列目錄,當(dāng)您運(yùn)行一個(gè)程序時(shí),Linux在這些目錄下進(jìn)行搜尋編譯鏈接。

cpio命令:顧名思義,即輸入輸出的copy,現(xiàn)代電腦的標(biāo)準(zhǔn)輸入就是鍵盤,標(biāo)準(zhǔn)輸出是屏幕,我們可以通過重定向(|、>、<)輸入輸出,用它進(jìn)行文件拷貝、打包解包等,和find等命令一起能發(fā)揮很大功效。關(guān)于cpio命令的中文man,可參看cpio命令詳解

fork:拷貝一個(gè)子進(jìn)程。如果一個(gè)進(jìn)程fork之后,此時(shí)連同該進(jìn)程是3個(gè)進(jìn)程(該進(jìn)程、fork后的父進(jìn)程、fork后的子進(jìn)程)呢,還是2個(gè)進(jìn)程(該進(jìn)程即fork后的父進(jìn)程、fork后的子進(jìn)程)呢?日后再解。

小結(jié)

接觸到現(xiàn)在,概念倒還罷了,Linux的命令也忒多了,目前簡(jiǎn)單了解的有:man、cd、cp、kill、mkdir、mv、rm、nohup、cpio、ls、ln、jobs、find、whereis、which、type、tar、chmod、chown、su、sudo、gzip、cat、tail、bg、fg、at、crontab、echo、fork、ps、top……且不說每個(gè)命令各自的命令參數(shù),尼瑪,只能說用多如牛毛來形容了。

轉(zhuǎn)載本文請(qǐng)注明出處:http://www.CUOXin.com/newton/p/4678311.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴里| 陈巴尔虎旗| 永福县| 墨竹工卡县| 秦安县| 交口县| 黄浦区| 临潭县| 延长县| 黄大仙区| 巴南区| 镇宁| 定安县| 梅河口市| 来安县| 永寿县| 大庆市| 常宁市| 西藏| 镇康县| 环江| 通榆县| 东港市| 喀喇沁旗| 林甸县| 城固县| 桐乡市| 崇义县| 新昌县| 奉节县| 井冈山市| 五大连池市| 涿鹿县| 凭祥市| 武邑县| 修水县| 浏阳市| 潜山县| 丰原市| 芦山县| 陆丰市|