linux雜貨鋪

Linux重要目錄

Home目錄:/root,/home/username
普通用戶可執行文件:/bin,/usr/bin,/usr/local/bin
系統管理頁可執行文件:/sbin,/usr/sbin,usr/local/sbin
存放用戶使用系統命令和應用程序等信息.像命令.幫助文件等:usr/
配置文件目錄:/etc
臨時文件目錄:/tmp,此文件夾下的文件不穩定會被系統自動清除
內核和啓動文件:/boot
服務器數據:/var,/srv:存放一些服務器啓動之後需要提取的數據
系統信息:/proc,/sys
共享庫:/lib,/usr/lib,/usr/local/lib
其它掛載點:/media,/mnt
文件或目錄名注意:<=255個字符,區分大小寫,不能使用"/"

目錄結構詳解

用戶名@主機名 當前目錄 #系統權限 $普通權限。~只家目錄

root用戶,linux系統默認的超級管理員用戶:[root@xxxx~]#,#

root是用戶名,xxx是主機名。~:root用戶的家目錄是在root下,[huwj@xxx~]$,huwj是普通用戶名,xxx是主機名。

普通用戶的家目錄在/home下。

Linux命令

命令格式

命令 選項 參數(三者之間要有空格,區分大小寫),選項和參數是可以沒有的。

command [-options] [args]

[args]:參數(多個參數之間用空格分隔)

常用命令彙總

超級管理員root的添加用戶命令:useradd xxx
切換用戶:su huwj,sudo:暫時切換用戶獲得root權限
切換到超級管理員:su root,普通用戶切換到超級管理員需要密碼
顯示當前目錄:pwd(point name of current/working directory)
創建目錄:mkdir 目錄名 [目錄1],直接創建多層目錄:mkdir -p /home/demo/a/b/c 刪除目錄:rm -rf xxx
切換目錄:cd 目錄目標
1)絕對路徑:以/開頭的路徑
2)相對路徑:相對當前位置的路徑,"."標識當前目錄".."表示父目錄
3)"-"標識當前一個目錄(類似電視遙控器上返回)
4)"~"標識當前用戶home目錄 "~用戶名"指定用戶名對應的home目錄
退出目錄:cd ..,雙層退出cd ../..
查看目錄:ll,查看目錄:ls,顯示全部(包括隱藏文件):ls -a,顯示全部且顯示詳細信息:ls -al/ls -a -l
顯示某個文件的詳細信息:ls -al install.log,顯示兩個或多個文件詳細信息:ls -al install.log xxx.txt
模糊查詢文件:ls -al install*,向下遞歸顯示:ls -R /home/demo
查看文件:cat,清楚屏幕:clear

幫助命令:#表示需要root權限

1、#whatis 命令(如果不成功,則執行makewhatis)
2、使用help查看內建命令的幫助(enable查看內建命令),查看別名:alias
3、#man命令☆常用,man -l:在線參考手冊接口
enter按行翻,空格按頁翻;HOME/END鍵可以快速到首頁/尾頁(SecureCRT中無效);
查找按/要查找的內容,查找下一個/上一個:按n/N;退出按q
4、#info 命令,使用方式和man類似
5、命令 --help☆
6、查手冊(chm類型文件)☆
更改文件名稱:mv,例:mv [要改的文件] [改成的文件]
拷貝:cp
>cp 文件... 目標目錄  拷貝文件...到目標目錄,可以同時拷貝多個文件
例:cp install.log xxx.txt /home/demo/abc
拷貝到當前目錄:cp ~/install.log .
拷貝目錄:cp -r 目錄 目標目錄
移動文件/目錄 #mv 源 目標
Linux中沒有專門的改名的命令,mv兼職改名
在當前目錄下,是將名稱a改爲名稱b,當從當前路徑的兩個文件夾,進行mv操作時是移動。
當目錄下目標目錄存在,是移動操作,當目標目錄不存在,是改名。
創建空文件/修改時間戳:touch
當touch 已有目錄時,修改的是該文件的時間戳,當touch的是沒有的目錄時,創建的一個空文件
刪除文件或目錄:rm -rf 目錄,-r遞歸刪除,-f強制刪除
只能刪除空目錄:rmdir 目錄
刪除之前要適當備份☆☆☆☆☆
比如進行大規模修改之前,要做好備份,否則想還原到原來時候還是得按個改,相當費勁

vim:編輯文檔,編輯完成後按ESC退出,再按:,輸入wq! 回車,保存退出

關機命令

關機需要管理員權限

>shutdown -h now 立刻關機
>shutdown -h 20:25 系統會在今天20:25關機
>shutdown -h +10 十分鐘後關機
>shutdown -r now 系統立刻重啓
>shutdown -r +10 系統在十分鐘後重啓
>reboot 就是重啓
>halt 關閉系統,等同於shutdown -h now 和poweroff

linux的運行級別

>0:關機
>1:單用戶--可以改超級管理員(root)的密碼
>2:無網絡的多用戶
>3:命令行模式
>4:未用
>5:GUI(圖像桌面模式)
>6:重啓
運行級別的切換:#init 運行級別
查看運行級別:
1)who -r 顯示當前運行級別以及系統當前時間
[root@localhost ~]# who -r
run -level 5 2018-01-02 14:24
2)runlevel:顯示前一個(無則),
runlevel後顯示,5 3:表示當前爲3級別,上一次是5級別

當級別寫N的時候,表示沒有上一個級別。

運行級別的作用

1)重啓
[root@localhost~]#reboot
[root@localhost~]#shutdown -rnow
[root@localhost~]#init 6
2)服務器一般使用運行級別3,減少圖形界面包帶來的資源浪費
3)忘記密碼,修改密碼
4)修改啓動時默認的運行級別
☆☆☆運行級別之密碼恢復:
Linux系統忘記root密碼的情況該怎麼辦?重新安裝系統當然不用,進入單用戶模式更改一下root密碼即可
操作步驟:
①重啓系統(物理重啓,reboot或init 6)
②出現有圖時按enter
③進入單用戶模式
④使用passwd命令修改密碼
⑤重啓後密碼便修改完成!!
爲什麼每次啓動都是默認進入圖像界面?
因爲在/etc/inittab文件中配置的默認級別爲5,可以將它改爲3,以後啓動就自動進入命令行運行級別了
[root@localhost~]#vim /etc/inittab
改爲3後,保存;重啓。便改爲每次啓動進入命令行運行級別了。

vim命令

所有的Linux系統都會內建vi文本編輯器,其它的文本編輯器則不一定存在。很多軟件的編輯藉口都會主動調用vi,例如visudo、crontal等。vim可視爲vi的高級版本。

用途

vim具有程序編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程序開發。vim是一個類似於vi的文本編輯器,不過在vi的基礎上增加了很多新特效,vim被公認爲類vi編輯器中最好用的一個。和Emacs並列成爲類Unix系統用戶最喜愛的編輯器。

三種模式

1)一般模式    
以vim打開一個文件就直接進入一般模式(默認模式),可以使用上下左右移動光標來移動,也可以使用刪除字符或刪除整行來處理文件內容,也可以使用複製,粘貼來處理文件數據。按鍵Home和End可回到文件的首或尾。☆☆☆/word鄉下查找單詞"word",?word向上查找    
2)編輯模式    
在一般模式中可以刪除,複製,粘貼等,但無法編輯文件內容。按下i、l、o、O、a、A、r、R等任何一個字母后進入編輯模式。並在左下方出現INSERT或REPLACE。該模式下可以輸入文件內容。按<Esc>返回一般模式。        
3)命令模式    
在一般模式當中,輸入:/?三個字符中任何一個按鈕,就可以將光標移動到最下面一行。在這個模式當中,可以提供查詢,替換等功能,同時存盤,離開vi,顯示行號等等命令都是在此模式進行。    
例:創建一個空文件:touch test.txt,編輯該文件:vim test.txt進入一般模式,點a鍵,進入編輯模式輸入abc後,按ESC鍵退出,按在冒號[:]wa!更改後,保存成功,cat test.txt查看編輯完的文件內容爲abc

vim的操作
☆☆☆☆☆一般模式下替換操作:    
:s/word1/word2/g 在當前行將word1替換成word2    
:%s/word1/word2/g 在當前文件將word1替換成word2    
:n1,n2s/word1/word2/g 在n1到n2行查找word1替換成word2(n1、n2位數字)    
:1,$ s/word1/word2/g 從第一行到最後一行查找word1替換成word2    
☆☆☆☆☆一般模式下刪除操作:    
x向後刪除一個字符,nx向後刪除n個字符,X向前刪除一個字符,dd刪除光標所在行    
ndd刪除光標所在行以下n行,d1G刪除光標所在行到第一行所有數據,dG刪除光標所在行到最後一行
d$刪除光標所在處到同行最後一個字符,d0刪除光標所在處到同行第一個字符    
☆☆☆☆☆一般模式下複製操作:    
yy複製光標所在行,nyy複製光標所在向下n行(n爲數字),y1G複製光標所在行到第一行所有數據    
yG複製光標所在行到最後一行所有數據,y$複製光標所在處到同行最後一個字符,y0複製光標所在處到同行第一個字符    
p將已複製的數據粘貼到光標所在下一行    
u復原前一個操作(類似於windows中的ctrl+z)    
☆☆☆☆☆一般模式->編輯模式的轉換:    
i從光標所在處插入,l從所在行第一個非空白字符處插入,a從光標所在下一個字符處插入A從光標所在行最後一個字符處插入,o在光標所在處下一行插入新的一行,O在光標所在處上一行插入新的一行r替換光標所在處字符一次,R一直替換光標所在處文字知道按下ESC

☆☆編輯後的操作:
保存後離開--    :wq!
不保存離開--    :q!
顯示行號--    set nu
取消顯示行號-- set nonum

用戶、用戶組和文件權限

由於linux是多用戶,多任務的操作系統,爲此,會經常有多個用戶同時使用某一臺主機。爲了考慮每個用戶的隱私安全及每個用戶特殊的工作環境,設計了文件所有者這個概念。而文件所有者就是文件所屬用戶

任何一個要使用系統資源的用戶,都必須首先向系統管理頁申請一個賬號,然後以這個賬號的身份進入系統。

用戶組

用戶組是爲了團隊開發資源而設定的。舉例:某臺主機上的資源有兩個團隊共同使用,teamA(曹操,許褚,夏侯淵)和TeamB(劉備,關羽,諸葛亮)。這兩個團隊之間是競爭關係,但卻要提交同一份報告,每個團隊的成員需要有權限修改該團隊其他成員的數據,同時另一個團隊的成員無權查看本組自己的文件內容,此時用戶組就起到了關鍵作用。每個賬號都可以有多個用戶組支持。用戶、用戶組和文件權限的關係息息相關!!!☆☆☆☆

除了用戶,用戶組之外,有個其他人的角色,和用戶組沒有任何關係的用戶就叫其他人。

linux系統的理念:一切皆文件。用戶身份與用戶組記錄的文件:

a.在linux系統中,默認情況下所有的系統上的賬號信息都記錄在/etc/passwd這個文件內(包括root用戶)。而個人密碼記錄在/etc/shadow這個文件內。所有Linux的組名都記錄在/etc/group內。這三個文件非常重要,不要輕易做變動。在後續內容中,我們還會詳細做介紹。

b.綜上,用戶身份與用戶組的概念,能夠幫助我們的Linux多任務環境變的更爲容易管理。
c.實現用戶賬號的管理,要完成的工作主要有如下幾個方面:
①用戶賬號的添加、刪除與修改(以及更改用戶所屬用戶組)。
②用戶口令的管理。(剛添加完的用戶是鎖定的,需要解鎖)
③用戶組的添加、刪除管理。

1)用戶操作

用戶管理-添加用戶:            
用戶賬號的管理工作主要涉及到用戶賬號添加、修改和刪除。            
添加用戶賬號就是在系統中創建一個新賬號,然後爲新賬號分配用戶號、用戶組、主目錄和登陸Shell等資源。            
剛添加的賬號是被鎖定的,無法使用。            
useradd[選項] 用戶名            
參數說明:        nologin的用戶是僞用戶!    
選擇:            
-c comment指定一段註釋性描述            
目錄指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。            
-d目錄,指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。            
-g用戶組指定用戶所屬的用戶組。            
-G用戶組,用戶組指定用戶所屬的附加組            
-s,Shell文件,指定用戶的登陸Shell。            
-u用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重複使用其他用戶的標識號(不建議)。            
創建用戶:#useradd tom            
查看用戶信息:#id tom ->顯示UID/GIN以及tom還屬於哪些組            
[root@localhost~]# useradd tom            
[root@localhost~]# id tom            
uid=502(tom)gid=502(tom)groups=502(tom)            
在創建用戶時,如果沒創建用戶組,系統會默認創建一個默認的用戶組☆            
創建用戶,指定其UIR爲800            
[root@localhost~]# useradd -u 800 jerry            
[root@localhost~]# id jerry            
uid=800(jerry) gid=800(jerry) groups=800(jerry)            
添加用戶lucy,並設置他個人主目錄練習            
#useradd -d /usr/lucy -m lucy            
此命令創建了一個用戶lucy,其中-d和-m選項用來爲登錄名lucy產生一個主目錄/usr/lucy(/home爲默認的用戶主            
目錄所在的父目錄)            
練習:            
創建用戶gm,指定他屬於主用戶組"jerry",附加組"adm、root",登陸使用的shell是/bin/sh            
useradd -g jerry -G adm,root -s /bin/sh gm            
id gm            
用戶管理--修改用戶:            
修改用戶賬號就是根據實際情況更改用戶的有關屬性,如用戶號、主目錄、用戶組、登陸Shell等。            
修改已有用戶信息使用usermod命令,其格式如下:            
①usermod [選項] 用戶名            
②常用選項包括-c,-d,-m,-g,-G,-s,-u以及-o等,這些選項的意義與useradd命令中選項一樣,可以爲用戶指定新            
資源值。            
③另外,有些系統可以使用選項:-l新用戶名,這個選項指定一個新的賬號,即將原來的用戶名改爲新的用戶名。            
練習:將用戶gm的登陸shell修改爲bash,主目錄改爲/home/gmh,用戶組改爲root。            
先看下用戶信息:id gm            
usermod -s /bin/bash -g root -d /home/gmh gm            
注意:如果該主目錄不存在,即使加上-m選項,也不會創建該目錄。            
用戶管理-用戶口令的管理            
用戶管理的一項重要內容就是用戶口令的管理。用戶賬號剛創建時沒有口令,但是被系統鎖定,無法使用,必須爲            
其指定口令後纔可以使用,即使是指定空口令。            
指定和修改用戶口令的Shell命令是passwd,超級用戶可以爲其他用戶指定口令,普通用戶只能用它修改自己的口令            
命令格式爲:passwd [選項] [用戶名];中括號只得是可用可無,如果沒有用戶名只修改當前用戶            
可使用的選項:            
①-l(lock)鎖定口令,即禁用賬號。            
②-u(unlock)口令解鎖。            
③-d(HOME_DIR)使賬號無口令。            
④-f強迫用戶下次登陸時修改口令。            
用戶管理-切換用戶:            
#su - 目標用戶    管理頁切換用戶不需要密碼,用戶切換管理頁需要密碼            
exit,退出當前用戶。            
用戶管理-刪除用戶:            
#userdel 用戶名   刪除指定的用戶名            
[root@localhost~]# userdel alice            
[root@localhost~]# ls /home/            
alice demo ds jerry jinxf tom zs            
#userdel -r 用戶名 在刪除指定用戶的同時刪除他的home目錄(工作中不建議使用,一個用戶離職後,用戶可以            
刪除,但他的工作文件很可能還有用)

2)用戶組操作

每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理,不同linux系統對用戶組規定有所不同,入Linux下的用戶屬於與它的同名的用戶組,這個用戶組在創建用戶時同時創建的。用戶組的管理設計用戶組的添加、刪除和修改,實際上就是對/etc/group文件的更新。            
用戶組管理-添加:            
格式:groupadd [選項] 用戶組名稱
可以使用選項有:            
-g GID指定新用戶組的標識號(GID)。            
-o一般與-g選項同時使用,表示新用戶組的GID可以與系統已有用戶組的GID相同。            
添加用戶組emp            
#groupadd emp            
添加用戶組market,並制定標識號爲8000            
#groupadd -g 8000 market            
將用戶添加到附加組            
#groupadd -aG market tom    (a:append G附加組)            
用戶組管理-刪除:            
groupdel group1(group1是用戶組組名)            
用戶組管理-修改            
groupmod [選項] 用戶組名稱            
常用選項有:            
-g GID爲用戶組指定新的組標識號。            
-o與-g選項同時使用,用戶組的新GID可以與系統已有用戶組的GID相同            
-n新用戶組,將用戶組的名字改爲新名字            
用戶組管理-當前用戶切換用戶組:            
如果一個用戶同時屬於多個用戶組,那麼用戶可以在用戶組之間切換,以便具有其他用戶組的權限。            
用戶可以在登陸後,使用命令newgrp切換到其他用戶組,這個命令的參數就是目的用戶組。例:            
$newgrp root,這條命令將當前用戶切換到root用戶組,前提條件root用戶組確實是該用戶的主組或附加組。            
用戶賬號有關的系統文件詳細介紹:            
[root@localhost~]# cat /etc/passwd            
gmx:802:0:/home/z:/bin/bash            
tom:x:803:803:/home/tom:/bin/bash            
/etc/passwd中一行記錄對應着一個用戶,每行記錄又被冒號“:”分隔爲7個字段,其格式具體含義如下:            
用戶名:口令:用戶標識號:組織識號:註釋性描述:主目錄:登陸Shell            
1.“用戶名”是代表用戶賬號的字符串。            
通常長度不超過8個字符,並且有大小寫字母和/或數字組成,登錄名中不能有冒號,因爲冒號在這裏是分隔符。爲了兼容起見,登錄名中最好不要包含點字符(.)並且不適用連字符(-)和加好(+)打頭,/也不建議使用(自動創建主目錄存在問題)            
2."口令"一些系統中,存放着加密後的用戶口令字。            
雖然這個字段存放的只是用戶口令的加密串,不是銘文,但是由於/etc/passwd文件對所有用戶都可讀,所以這仍是一個安全隱患。因此現在許多Linux系統(如SVR4)都使用了shadow技術,把真正的加密後的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個特殊字符,附加"x"或"*"。            
3."用戶標識號"是一個整數,系統內部用它來標識用戶。            
一般情況下它與用戶名是一一對應的。如果幾個用戶名對應的用戶標識號是一樣的,系統內部將把它們視爲同一用戶,但是它們可以有不同的口令,不同的主目錄以及不同的登陸Shell等。通常用戶標識號的取值範圍是0~65535,0是超級用戶root的標識號,1~99由系統保留,作爲管理賬號,普通用戶標識號從100開始,在Linux系統中,這個界限是500。            
4."組織標號"字段記錄的是用戶所屬用戶組,它對應着/etc/group文件中的一條記錄。            
5."註釋性描述"字段記錄着用戶的一些個人情況。            
例如用戶的真實姓名,電話,地址等,這個字段並沒有什麼實際的用途。在不同的Linux系統中,這個字段格式並沒有統一,許多Linux系統中,這個字段存放的是一段任意的註釋性描述文字,用作finger命令的輸出。            
6."主目錄",也就是用戶的起始工作目錄。            
它是用戶在登陸到系統之後所處的目錄。在大多數系統中,各用戶的主目錄都被組織在同一個特定的目錄下,而用戶主目錄的名稱就是該用戶的登陸名。各用戶對自己的主目錄有讀、寫、執行(搜素)權限,其它用戶對此目錄的訪問權限則根據具體情況設置。            
7.用戶登陸後,要啓動一個進程,負責將用戶的操作傳給內核,這個進程是用戶登陸到系統後運行的命令解釋器或某            
個特點的程序,即Shell。Shell是用戶與Linux系統之間的接口。Linux的Shell有許多在,每種都有不同的特點,常用的有sh(Bourne Shell)csh(C Shell),ksh(Korn Shell),tcsh(TENEX/TOPS-20 type C Shell),bash(Bourne Again Shell)等。系統管理員可根據系統情況和用戶習慣爲用戶指定某個Shell,如果不指定Shell,那麼系統使用sh(或bash)爲默認的            
登陸Shell,即這個字段的值爲/bin/sh。用戶登陸Shell也可以指定爲某個特定程序(此程序不是一個命令解釋器)利用這一特點,我們可以限制用戶只能運行指定應用程序,在該應用程序運行結束後,用戶就可自動退出系統。有些Linux系統要求只有那些在系統中等級了的程序才能出現在這個字段中。            
8.系統中有一類用戶成爲僞用戶(psuedo users)            
這些用戶在/etc/passwd文件中也佔有一條記錄,但是不能登錄,因爲它們的登陸shell爲空(或/sbin/nologin)。它們的存在主要是方便系統管理,滿足相應的系統進程對文件屬主的要求。            
常見的爲用戶如下所示:            
僞用戶 含義            
bin擁有可執行的用戶命令文件            
sys擁有系統文件            
adm擁有賬戶文件            
uucp UUCP使用            
Ip Ip活Ipd子系統使用            
nobody NFS使用            
9./etc/shadow中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的數據自動產生,            
它的文件格式與/etc/passwd類似,由若干個字段組成,字段之間用":"隔開。這些字段是:            
登錄名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌            
①"登錄名"是與/etc/passwd文件中的登錄名相一致的用戶賬號            
②"口令"字段存放的是加密後的用戶口令字,長度爲13個字符,如果爲空,則對應用戶沒有口令,登陸時不需要口令;如果含有不屬於集合{./0-9A-Za-z}中的字符,則對應的用戶不能登陸。            
③"最後一次修改時間"標識的是從某個時刻起,到用戶最後一次修改口令時的天數。時間七點對不同的系統可能不一樣。            
例如在SCO Linux中,這個時間七點是1970年1月1日。            
④"最小時間間隔"指的是兩次修改口令之間所需的最小天數。            
⑤"最大時間間隔"指的是口令保持有效的最大天數。            
⑥"警告時間"字段標識的是從系統開始警告用戶到用戶密碼正式失效之間的天數。            
⑦"不活動時間"標識的是用戶沒有登陸活動但賬號仍能保持有效的最大天數。            
⑧"失效時間"字段給出的是一個絕對的天數,如果使用了這個字段,那麼就給出相應賬號的生存期,期滿後,該賬號就不再是一個合法的賬號,也就不能再用來登陸了。            
例:下面是/etc/shadow的部分內容            
[root@localhost~]# cat /etc/shadow            
root$1$wLLDDHgEB$6IPm6zobBrbncPDvkajb1:17206:0:999999:7-            
bin:*:15980:0:999999:7-            
用戶組所有信息都存放在/etc/group文件中。            
將用戶分組是Linux系統中對用戶進行管理及控制訪問權限的一種手段。            
每個用戶都屬於某個用戶組;一個組可以有多個用戶,一個用戶也可以屬於不同組。            
當一個用戶同時是多個組中成員時,在/etc/passwd文件中記錄的是用戶所屬的主組,也就是登陸時所屬的默認組,而其他組成爲附加組。            
用戶要訪問屬於附加組的文件時,必須首先使用newgrp命令使自己成爲索要訪問的組中成員。            
用戶組所有信息都存放在/etc/group文件中。此文件格式也類似於/etc/passwd文件,由冒號(:)隔開若干個字段,這些字段有:            
組名:口令:組標識號:組內用戶列表            
①"組名"是用戶組的名稱,由字母或數字夠喫,與/etc/passwd中的登錄名一樣,組名不應該重複。            
②"口令"字段存放的是用戶組加密後的口令字,一般Linux系統的用戶組都沒有口令,即這個字段一般爲空,或者是*。            
③"組織識號"與用戶標識號類似,也是一個整數,被系統內部用來標識組。            
④"組內用戶列表"是屬於這個組的所有用戶的列表/bl,不同用戶之間用逗號分隔,這個用戶組可能是用戶的主組,也可能是附加組。

3)文件權限

首先我們以root用戶的身份登錄Linux,執行ls -al查看文件,查看所有信息。ls是list的縮寫,能顯示文件的文件名和相關屬性,而-al表示列出所有的文件詳細的權限與屬性(包含隱藏文件諸如文件名以"."開頭的文件)。顯示信息詳細含義如下:

d代表目錄(directory),-代表文件。l標識連接文件(link)

文件權限一共9段,前三段代表:文件所有者權限,第二個三段:文件所屬組權限,第三個三段:其它人的權限。

r代表讀的權限,w代表寫權限,x代表可執行(excute),-代表沒有權限。這三個參數的出現順序不會改變,若沒有某個權限則會以-代替。drwx------後面的數字10只得是連接數表示有多少文件名連接到此節點(i-node)每個文件都會將他的權限與屬性記錄到文件系統的i-node中,但是Linux所使用的目錄樹卻是使用文件名來記錄,因此每個文件名就會連接到一個i-node。這個屬性記錄就是有多少不同的文件名連接到相同的一個i-node號碼。

設備與設備文件b、c:

與系統外設和存儲等相關的一些文件,通常都幾種在/dev

這個目錄中,分爲兩種:

①塊(block)設備文件b:就是一些存儲數據,以提供系統隨機訪問的接口設備,例如硬盤,軟盤等。

可以隨機的再硬盤的不同塊讀寫,這種設備就是成組設備。cd /dev;然後 ls -al sda

②字符(character)設備文件c:是一些串行端口的接口設備,例如鍵盤,鼠標。這些設備特徵是"一次性讀取"不能夠的截斷輸出。

總結:除了設備文件是我們系統很重要的文件,最好不要隨意修改之外(通常也不會讓你修改);另外一個比較有趣的文件就是連接文件,類似window的桌面快捷方式,同樣可以將Linux下的連接文件簡單的視爲一個文件或目錄的快捷方式。至於socket與FIFO文件比較難以理解,因爲他們與進程比較有關係,之後進行理解。

改變文件屬性和權限

chgrp:改變文件所屬用戶組
語法:chgrp [-R] dirname/filename
參數-R如果爲目錄遞歸修改組。
作用:使用chgrp命令可以改變一個文件的用戶組,它是changegroup的簡稱。
注意:需要注意的是,要改的組名必須要在/etc/group文件內存在纔行,否則會出錯。
案例:我們使用root的身份登錄Linux,那麼在我們的主文件內有一個install.log的文件,並且在/etc/group裏已經存在一個名爲hadoop的用戶組,但是testing這個用戶組並不存在於/etc/group中,我們要做以下操作:
chgrp hadoop money,把money用戶組改成hadoop用戶組。

chown:改變文件所有者。

語法:chown [-R] 用戶賬號 dirname/filename或  chown [-R] 用戶賬號:用戶組名 dirname/filename

作用:使用chown命令可以改變一個文件的所有者,還可以直接修改羣組的名稱;它是changeowner的縮寫。

注意:用戶必須是已經存在於系統中的賬號,也就是在/etc/passwd這個文件中有記錄的用戶名稱才能改變。如果要將目錄下的所有子文件或目錄同時改變文件所有者,加-R參數即可。

範例:將install.log的所有者改爲bin用戶:

[root@localhost~]#chown bin install.log

chmod:改變文件的權限☆☆☆☆☆

語法:chmod [-R] mode dirname/filename
作用:文件或目錄權限的改變使用的是chmod(change file mode bits)這個命令
注意:但是權限的設置方法分兩種,可以通過數字或符號進行修改。

①mode講解之數字類型改變文件權限:
Linux的基本權限有9個,分別是owner,group,others三種身份各自的read,write,excute權限,各個權限對應數字如下:
r:4、w:2、x:1
爲此每種身份各自的三個權限數字相加即可得出數字表示的權限...例如[-rwxrwx---]可以表示爲:
owner = rwx=4+2+1=7
group = rwx=4+2+1=7
others=---=0+0+0=0
範例:要修改文件權限,改爲770即可:
chmod 770 install.log
②mode講解之符號類型改變文件權限:
另一種改變權限的方法就是通過符號,Linux總共有9種權限,對應三種身份,爲此我們可以通過u,g,o代表三種身份,另外a代表全部身份。對應的權限可以寫爲r,w,x,如圖:

範例:我們要將一個文件的權限改爲[-rwxr-xr-x],具體來說:
user(u):具有可讀可寫可執行權限;
group與others(g/o):具有可讀可執行權限;
chmod u=rwx,go=rx .bashrc
chmod a+w .bashrc:讓所有的有寫權限。        
chmod a-w .bashrc:讓所有的沒有寫權限。

權限對文件的重要性

文件是實際還有數據的地方,包括一般文本文件,數據庫內容文件,二進制可執行文件(binary program)等等因此,文件全縣有如下意義:
r(read):可讀取此文件的實際內容,如讀取文本文件的文字內容等;
w(write):可以編輯,新增或者修改該文件內容;
x(execute):該文件具有可被系統執行的權限。(windows中是否可執行主要看後綴,如.exe是可執行的)
注☆:在Linux中,文件是否被執行是由是否具有"x"這個權限來絕對,與拓展名無關。

權限對目錄的重要性
r(read contents in directory):標識具有讀取目錄結構清單的權限,所以當你具有讀取(r)一個目錄權限時,    
標識你可以查詢該目錄下的文件名的數據。所以你就可以利用ls這個指令將改目錄的內容列表顯示出來。    
w(modify contents of directory):這個可寫入權限對目錄來說,表示你具有改變目錄結構清單的權限,    
也就是地下這些權限:    
①建立新的文件或子目錄:    
②刪除已存在的文件或子目錄(無論該文件的權限)    
③將已存在的文件或目錄進行重命名;    
④移動該目錄內的文件,目錄位置。    
x(access directory):在Linux中,目錄不可以被執行,目錄的x代表的是使用者能否進入該目錄成爲工作目錄的用途。所謂的工作目錄(work directory)就是你的目前所在的目錄。舉例來說,當你登入Linux時,你所在的Home目錄就是你當下的工作目錄。

Linux文件種類和擴展名

Linux文件擴展名

在windows中,能被執行的文件擴展名通常是.exe,.bat等等,而在Linux下,只要你的權限當中具有x的話即代表這個文件具有可被執行的能力。

文件種類

純文字檔(ASCII):這是Linux系統中最多的一種文件類型,成爲純文本文件是因爲內容爲我們人類可以直接讀取數據,例如數字,字母等等。舉例來說,你可以使用[cat ~/.bashrc]就可以看到該文件的內容。

二進制文件(binary):你的Linux當中可執行文件(scripts,文字批處理文件不算)

數據格式文件(data)數據接口文件(socket),數據輸送文件(FIFO,pipe)

目錄(directory)、連接文件(link)、設備與設備文件(device)、塊(block)設備文件

磁盤分區

①磁盤分區格式:
>xvdx(x爲a-z):Xen虛擬機硬盤
>hdx(x爲a-d):IDE硬盤
>sdx(x爲a-z):SCSI,SATA,USB硬盤---用的較多
這幾個分區格式只能存在一種格式。
②主分區(primary partion)和擴展分區(extension partion),這兩個分區數目之和不能大於四個。且基本分區可以馬上被使用但不能再分區。擴充分區必須再進行分區後才能使用,也就是說它必須還要進行二次分區。那麼由擴充分區再分下去的是什麼呢?它就是邏輯分區(logical partion),況且邏輯分區沒有數量上限制。linux採用的是樹型結構。最上層是根目錄,其他的所有目錄都是從根目錄出發而生成的。微軟的DOS和windows也是採用樹型結構,但是在DOS 和windows中這樣的樹型結構的根是磁盤分區的盤符,有幾個分區就有幾個樹型結構,他們之間的關係是並列的。但是在linux中,無論操作系統管理幾個磁盤分區,這樣的目錄樹只有一個。從結構上講,各個磁盤分區上的樹型目錄不一定是並列的。
③查看磁盤分區命令
fdisk -l 列出分區列表情況
df(disk free):顯示磁盤相關信息
parted -l:顯示分區情況
lsblk:查看硬件設備
通常,windows系統磁盤,一般都是C,D,E,F四個盤。Linux系統磁盤:sda1,sda2,sda3,sda4

磁盤的物理結構

磁盤:它是有一個個盤片組成的,從盤片的結構上來看途中的一圈圈灰色的同心圓爲一條條磁道,從圓心向外畫直線,可以將磁道劃分爲若干個弧段。每個磁道上一個弧段被稱爲一個扇區(圖綠色部分)。扇區是磁盤的最小組成單元,通常是512字節。磁盤包括磁頭、磁道、住面、扇區、盤片。

磁盤分區:指定分割區域起始與結束的磁柱。磁盤分區是告訴操作系統,磁盤在此分割區域內可以存取的區域。例如A磁珠到B磁珠之間的區塊,如此一來操作系統就能知道它可以制定區塊進行文件讀,寫,查詢等操作。

使用磁盤之前爲什麼需要格式化??因爲每種操作系統所設定的文件屬性/權限,以及存放數據的格式有所不同。

Ext2/Ext3/Ext4區別
這仨都是文件系統格式:df -hT,查看文件系統類型。
Linux kernel自2.6.28開始正式支持新的文件系統Ext4。
Ext4是Ext3的改進版,修改了Ext3中部分重要的數據結構。Ext3對Ext2,只增加了一個日誌功能而已。    
Ext4可以提供更佳的性能和可靠性,還有更爲豐富的功能,更大的文件系統和更大的文件。    
較之Ext3所支持的最大16TB文件系統和最大2TB文件,Ext4分別支持1EB(1048576TB,1EB=1024PB,1PB=1024TB)的文件系統,以及16TB的文件。    
無限數量的子目錄:Ext3只支持32000個子目錄,而Ext4支持無限數量子目錄Extents(區段)    
Ext3採用間接塊映射,當操作大文件時,效率極其低下。比如一個100MB大小的文件,在Ext3中要簡歷25600個數據塊    
(每個數據塊大小爲4kb)的映射表,在Ext3中,每個物理塊都需要一個邏輯塊與之相對應。Ext4引入extents概念,提高效率,每個extent爲一組連續的數據塊,理想情況下,以上文件則表示爲只需要一個extent來記錄映射關係。    
多塊分配:當寫入數據到Ext3文件系統時,Ext3的數據塊分配器每次只能分配一個4kb的塊,寫一個100MB文件就要調用25600次數據塊分配器,而Ext4的多塊分配器"multiblockallocator"(mballoc)支持一次調用分配多個數據塊。

日誌校驗

日誌是最常用部分,也極易導致磁盤硬件故障,而從損壞的日誌中恢復數據會導致更多的數據損壞。Ext4的日誌校驗功能可以很方便地判斷日誌數據是否損壞,將過去兩階段日誌機制併成一個階段,提高性能。

swap(交換分區)

使用磁盤存儲內存不夠而"溢出來"的內容。當系統物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用。
最容易成爲被釋放的對象:一些很長時間沒有什麼操作的程序。被釋放的空間被臨時保存到Swap空間中。等到那些
被換出的程序要繼續運行時,再從Swap中恢復保存的數據到內存中。
一般來說可以按照如下規則設置swap大小:
4G以內的物理內存,SWAP設置爲內存的2倍。
4-8G的物理內存,SWAP等於內存大小。
8-16G的物理內存,SWAP設置爲8G。
64-256G物理內存,SWAP設置爲16G。

系統什麼時候使用swap????

實際上,並不是等所有物理內存都消耗完畢之後,纔去使用swap的空間,什麼時候使用是由swappiness參數控制:
[root@localhost~]#cat /proc/sys/vm/swappiness 60
默認值是60。swappiness=0的時候表示最大限度使用物理內存,然後纔是swap空間,swappiness=100時候表示
積極的使用swap分區,並且把內存上的數據及時的搬運到swap空間裏。
臨時修改交換分區:sysctl vm.swappiness=10
vm.swappiness=10
這裏修改已經生效,但是如果我們重啓了系統,又會變爲60。
永久修改交換分區:
在/etc/sysctl.conf文件裏添加如下參數:vm.swappiness=10
vim /etc/sysctl.conf->i->修改->esc->wq,退出並保存。
swap開啓與關閉:
swapon -a:開啓
swapoff -a:關閉

文件的掛載

1)掛載點的意義:    
每個文件系統都有獨立的inode/block/superblock等信息,這個文件系統要能夠鏈接到目錄樹才能被我們使用。將文件系統和目錄樹結合的動作我們成爲掛載。linux系統中每個分區都是一個文件系統,都有自己的目錄層次結構。linux會將這些分屬不同分區的、單獨的文件系統按一定的方式形成一個系統的總的目錄層次結構。這裏所說的“按一定方式”就是指的掛載。將一個文件系統的頂層目錄掛到另一個文件系統的子目錄上,使它們成爲一個整體,稱爲掛載。把該子目錄稱爲掛載點。    
1、掛載點:一定是目錄,此目錄爲文件系統的入口。    
2、一個分區掛載在一個已存在的目錄上,這個目錄可以不爲空,但掛載後這個目錄下以前的內容將不可用。對於其他操作系統建立的文件系統的掛載也是這樣。但是需要理解的是:光盤、軟盤、其他操作系統使用的文件系統的格式與linux使用的文件系統格式是不一樣的。光盤是ISO9660;軟盤是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、NTFS。

mount命令:將設備掛載到某個目錄#
mount常用參數
t指定設備的文件系統類型
ext4 linux目前常用的文件系統
nfs網絡文件系統
iso9660 CD-ROM光盤標準文件系統
auto自動檢測文件系統
o指定掛載文件系統時的選項
ro以只讀方式掛載
rw以讀寫方式
mount [-fnrsvw] [-o option[,option]...] 設備文件 掛載點

掛載到某個目錄:
# mkdir /mnt/cdrom
# mount -t iso9660 /dev/cdrom1 /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
查看掛載信息:df -h
取消掛載:umount
卸載:umount設備或掛載點
umount /mnt/cdrom或umount /dev/cdrom1或# umount /dev/sr0

文件操作

df:列出文件系統整體磁盤使用情況
df -a:列出所有文件系統
df -k:以KBytes的容量顯示文件系統
df -m:以MBytes的容量顯示文件系統
h:GBytes,MBytes,Kbytes等格式自行顯示
-i:以inode數量顯示
du:文件系統磁盤使用量或目錄使用量
du -a:列出所有的文件不目錄容量
du -h:以人們較易讀的容量格式(G/M)顯示
du -s:列出總量而已,而不列出每個各別的目錄佔用量
du -k:以KBytes列出容量顯示
du -m:以MBytes列出容量顯示
dumpe2fs:觀察文件系統
dumpe2fs [options] <device>
-h:僅列出superblock的數據,不會列出其他區段內容
#dumpe22fs -h/dev/sda1----用的非常少~~~~
查看已知文件名的文件路徑:
①find / -name tnsnames.txt
②locate tnsnames.txt

網絡知識

1)網絡基礎知識
OSI七層和TCP/IP四層的關係
七層結構記憶方法:應、表、會、傳、網、數、物

OSI七層是最合理的網絡模型,OSI四層模型是運用最廣泛的。    
1)OSI引入了服務,接口,協議,分層的概念,TCP/IF借鑑了OSI的這些概念簡歷TCP/IP模型    
2)OSI先有模型,後又協議,先有標準,後進行實踐;而TCP/IP則相反,先有協議和應用再提出了模型,且是參照的OSI模型。    
3)OSI是一種理論下的模型,而TCP/IP被廣泛使用,成爲網絡互聯事實上的標準。    
TCP:transmission control protocol 傳輸控制協議    
UDP:user data protocol用戶數據包協議    
2)常用網絡設備    
①交換機:在交換機之前有一個HUB設備(已基本淘汰)    
網絡傳輸單位:    
bit/s或bps/s,百兆光纖:100Mb/s,文件大小單位:byte->B    
交換機原理:    
MAC信息表:A->1,B->。Mac地址是48位二進制數組成,方便起見轉換爲12位16進制數00:0C:29:5E:88:43

Mac地址表示計算機的唯一標識(全球唯一),相當於人的身份證號        
MAC地址是全球唯一,爲何不使用MAC地址連入互聯網,而是使用IP地址呢???        
比如身份號也是唯一的,發快遞時爲何使用收件地址是相同道理。        
MAC地址雖然是計算機的唯一標識,但是無法確定該計算機的確切的地理位置,所以指定計算機的IP來確定他的        
地理位置。局域網內,假如A->B發信息,C接不到A發的信息。

②交換機和路由器    
路由器連接外網,交換機管理局域網的私有地址,路由器和交換機有連接點就是網關。    
IP4:32位二進制數,點分10進制,4294967296(256^4),最多有這些ip地址。    
IP4地址明顯不夠用,怎麼辦?    
IP6爲普及之前的解決方案是私有地址:10.x.x.x  172.16.x.x-172.31.x.x    
☆☆☆每臺電腦的私有地址是交換機來記錄的!    
家用路由器:將交換機和路由器已經合爲一體了!!!

③網絡的概念:    
>IP地址分析    
IP地址=網絡位+主機位    
相同的網絡,網絡位肯定相同,主機位不一樣    
不同的網絡,網絡位肯定不同,主機位可能一樣    
比如:電話號碼    
北京:010-88889999    
上海:021-12345678    
交換機連接相同的網絡,路由器連接不同的網絡。    
>子網掩碼    
子網掩碼(subnet mask)又叫網絡掩碼,地址掩碼,子網絡遮罩,它是一種用來指明一個ip地址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼只有一個作用:就是將某個IP地址分成網絡地址和主機地址兩部分。
子網掩碼是一個32位地址,用於屏蔽IP地址的一部分以區別網絡標識和主機標識,並說明該IP地址是在局域網上,還是在遠程網上。
子網掩碼:在二進制的前提下,將網絡位置全設置1,主機位置全設置0,作用是判斷一個IP地址屬於哪個網絡。
用法將IP地址與子網掩碼按位做與運算。

例:              
IP地址:192.168.1.10/24(前24位爲網絡位),子網掩碼:255.255.255.0              
運算演示:              
11000000 10101000 00000001 00001010       192.168.1.10      
11111111 11111111 11111111 00000000       255.255.255.0      
11000000 10101000 00000001 00000000       192.168.1.0      
算出前24位是網絡位:192.168.1              

 >網關(Gateway)又稱爲網絡之間連接器、協議轉換器        
從一個房間走到另一個房間,必然要經過一扇門。同樣,從一個網絡向另一個網絡發信息,也必須經過一道"關口",這道關口就是網關。顧名思義,網關就是一個網絡連接到另一個網絡的"關口"。也就是網絡關卡。        
由於歷史的原因,許多有關TCP/IP的文獻曾經把網絡層使用的路由器成爲網關,在家庭很多局域網採用的都是路由來接入網絡,因此通常指的網關就是路由器的IP。        
>DNS(Domain Name System,域名系統)        
因特網上作爲域名和IP地址相互映射的一個分佈式數據庫,能夠使用戶更方便的訪問互聯網,而不用取記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。
DNS協議運行在UDP協議上,使用端口號53。
主機名到IP地址的映射有兩種方式:
1)靜態映射,每臺設備上都配置主機到IP地址的映射,各設備獨立維護自己的映射表,而且只供本設備使用;
2)動態映射,簡歷一套域名解析系統(DNS),只在專門的DNS服務器上配置主機到IP地址的映射,網絡上需要使用
主機名通信的設備,首先需要到DNS服務器查詢主機所對應的IP地址。
查看網絡設備:
Linux:ifconfig,windows:ipconfig
網絡操作:
通過主機名查看IP:host www.tedu.cn
遠程管理:
#scp -r /home/demo root@服務器IP:/root ---將本地的demo目錄拷貝到服務器IP的/root目錄下
#ssh 用戶名@服務器IP  從本機中登陸遠程服務器
如果用橋連接,局域網的所有計算機都可以互相通信。
網絡下載命令:        
wget http://www.baidu.com ---普通下載
wget -O newnam.new http://baidu.com ---以不同文件名保存
wget --limit-rate=300k http://www.baidu.com --限速下載(單位:byte/秒)
wget -c www.baidu.com  ----斷點續傳
wget -b 後臺下載
使用wget -i ----下載多個文件
例:wget -i aaa.txt,txt文件中內容爲:
http://www.baidu.com
http://www.baidu1.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章