linux概述、基本命令
走近Linux系統(tǒng)
開機登錄
開機會啟動許多程序。它們在Windows叫做"服務(wù)"(service),在Linux就叫做"守護(hù)進(jìn)程"(daemon)。
開機成功后,它會顯示一個文本登錄界面,這個界面就是我們經(jīng)常看到的登錄界面,在這個登錄界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作為參數(shù)傳給login程序來驗證用戶的身份,密碼是不顯示的,輸完回車即可!
一般來說,用戶的登錄方式有三種:
- 命令行登錄
- ssh登錄(遠(yuǎn)程登錄,Xshell)
- 圖形界面登錄
最高權(quán)限賬戶為 root,可以操作一切!
linux中沒有錯誤就代表操作成功!!!!
關(guān)機
在linux領(lǐng)域內(nèi)大多用在服務(wù)器上,很少遇到關(guān)機的操作。畢竟服務(wù)器上跑一個服務(wù)是永無止境的,除非特殊情況下,不得已才會關(guān)機。
關(guān)機指令為:shutdown ;
sync # 將數(shù)據(jù)由內(nèi)存同步到硬盤中。shutdown # 關(guān)機指令,你可以man shutdown 來看一下幫助文檔。例如你可以運行如下命令關(guān)機:shutdown –h 10 # 這個命令告訴大家,計算機將在10分鐘后關(guān)機shutdown –h now # 立馬關(guān)機shutdown –h 20:25 # 系統(tǒng)會在今天20:25關(guān)機shutdown –h +10 # 十分鐘后關(guān)機shutdown –r now # 系統(tǒng)立馬重啟shutdown –r +10 # 系統(tǒng)十分鐘后重啟reboot # 就是重啟,等同于 shutdown –r nowhalt # 關(guān)閉系統(tǒng),等同于shutdown –h now 和 poweroff最后總結(jié)一下,不管是重啟系統(tǒng)還是關(guān)閉系統(tǒng),首先要運行 sync 命令,把內(nèi)存中的數(shù)據(jù)寫到磁盤中。
系統(tǒng)目錄結(jié)構(gòu)
1、一切皆文件
2、根目錄/,所有的文件都掛載在這個節(jié)點下
登錄系統(tǒng)后,在當(dāng)前命令窗口下輸入命令:
ls /你會看到如下圖所示:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mcrQz6bP-1621569071853)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1619766908581.png)]
樹狀目錄結(jié)構(gòu):(Linux的一切資源都掛載在這個 / 根節(jié)點下)
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-OYWD7cch-1621569071854)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1619766924632.png)]
以下是對這些目錄的解釋:
- /bin:bin是Binary的縮寫, 這個目錄存放著最經(jīng)常使用的命令。
- /boot: 這里存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。
- /dev : dev是Device(設(shè)備)的縮寫, 存放的是Linux的外部設(shè)備,在Linux中訪問設(shè)備的方式和訪問文件的方式是相同的。
- /etc: 這個目錄用來存放所有的系統(tǒng)管理所需要的配置文件和子目錄。
- /home:用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。。自己的文件基本上就是在這里存放。
- /lib:這個目錄里存放著系統(tǒng)最基本的動態(tài)連接共享庫,其作用類似于Windows里的DLL文件。
- /lost+found:這個目錄一般情況下是空的,當(dāng)系統(tǒng)非法關(guān)機后,這里就存放了一些文件。
- /media:linux系統(tǒng)會自動識別一些設(shè)備,例如U盤、光驅(qū)等等,當(dāng)識別后,linux會把識別的設(shè)備掛載到這個目錄下。
- /mnt:系統(tǒng)提供該目錄是為了讓用戶臨時掛載別的文件系統(tǒng)的,我們可以將光驅(qū)掛載在/mnt/上,然后進(jìn)入該目錄就可以查看光驅(qū)里的內(nèi)容了。
- /opt:這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE,mysql數(shù)據(jù)庫則就可以放到這個目錄下。默認(rèn)是空的。
- /proc:這個目錄是一個虛擬的目錄,它是系統(tǒng)內(nèi)存的映射,我們可以通過直接訪問這個目錄來獲取系統(tǒng)信息。(不用管)
- /root:該目錄為系統(tǒng)管理員,也稱作超級權(quán)限者的用戶主目錄。
- /sbin:s就是Super User的意思,這里存放的是系統(tǒng)管理員使用的系統(tǒng)管理程序。
- /srv:該目錄存放一些服務(wù)啟動之后需要提取的數(shù)據(jù)。
- /sys:這是linux2.6內(nèi)核的一個很大的變化。該目錄下安裝了2.6內(nèi)核中新出現(xiàn)的一個文件系統(tǒng) sysfs 。
- /tmp:這個目錄是用來存放一些臨時文件的,用完即丟的文件,如安裝包。
- /usr:這是一個非常重要的目錄,用戶的很多應(yīng)用程序和文件都放在這個目錄下,類似于windows下的program files目錄。
- /usr/bin: 系統(tǒng)用戶使用的應(yīng)用程序。
- /usr/sbin: 超級用戶使用的比較高級的管理程序和系統(tǒng)守護(hù)程序。
- /usr/src: 內(nèi)核源代碼默認(rèn)的放置目錄。
- /var:這個目錄中存放著在不斷擴(kuò)充著的東西,我們習(xí)慣將那些經(jīng)常被修改的目錄放在這個目錄下。包括各種日志文件。
- /run:是一個臨時文件系統(tǒng),存儲系統(tǒng)啟動以來的信息。當(dāng)系統(tǒng)重啟時,這個目錄下的文件應(yīng)該被刪掉或清除。
- /www:存放服務(wù)器網(wǎng)站相關(guān)的資源,環(huán)境,網(wǎng)站的項目
常用的基本命令(必掌握)
目錄管理
絕對路徑和相對路徑
我們知道Linux的目錄結(jié)構(gòu)為樹狀結(jié)構(gòu),最頂級的目錄為根目錄 /。
其他目錄通過掛載可以將它們添加到樹中,通過解除掛載可以移除它們。
在開始本教程前我們需要先知道什么是絕對路徑與相對路徑。
絕對路徑:
路徑的寫法,由根目錄 / 寫起,例如:/usr/share/doc 這個目錄。
相對路徑:
路徑的寫法,不是由 / 寫起,例如由 /usr/share/doc 要到 /usr/share/man 底下時,可以寫成:cd …/man 這就是相對路徑的寫法啦!
cd:切換目錄
./:當(dāng)前目錄
cd…:返回上一級目錄
處理目錄的常用命令
接下來我們就來看幾個常見的處理目錄的命令吧:
- ls: 列出目錄
- cd:切換目錄
- pwd:顯示目前的目錄
- mkdir:創(chuàng)建一個新的目錄
- rmdir:刪除一個空的目錄
- cp: 復(fù)制文件或目錄
- rm: 移除文件或目錄
- mv: 移動文件與目錄,或修改文件與目錄的名稱
你可以使用 man [命令] 來查看各個命令的使用文檔,如 :man cp。
ls (列出目錄)
在Linux系統(tǒng)當(dāng)中, ls 命令可能是最常被運行的。
語法:
[root@www ~]# ls [-aAdfFhilnrRSt] 目錄名稱選項與參數(shù):
- -a :全部的文件,連同隱藏文件( 開頭為 . 的文件) 一起列出來(常用)
- -l :長數(shù)據(jù)串列出,包含文件的屬性與權(quán)限等等數(shù)據(jù);(常用)
將目錄下的所有文件列出來(含屬性與隱藏檔)
[root@www ~]# ls -alcd (切換目錄)
cd是Change Directory的縮寫,這是用來變換工作目錄的命令。
語法:
cd [相對路徑或絕對路徑](絕對路徑都是以/開頭,相對路徑對于當(dāng)前項目該如何尋找(…/上一級))
# 回到上一級 [root@kuangshen kuangstudy]# cd ..# 回到根目錄 [root@kuangshen kuangstudy]# cd /# 表示回到自己的家目錄,亦即是 /root 這個目錄 [root@kuangshen kuangstudy]# cd ~pwd ( 顯示目前所在的目錄 )
pwd 是 Print Working Directory 的縮寫,也就是顯示目前所在目錄的命令。
[root@kuangshen kuangstudy]#pwd [-P]選項與參數(shù):-P :顯示出確實的路徑,而非使用連接(link) 路徑。
# 單純顯示出目前的工作目錄 [root@kuangshen ~]# pwd /root# 如果是鏈接,要顯示真實地址,可以使用 -P參數(shù) [root@kuangshen /]# cd bin [root@kuangshen bin]# pwd -P /usr/binmkdir (創(chuàng)建新目錄 )
mkdir [-mp] 目錄名稱選項與參數(shù):
- -m :配置文件的權(quán)限喔!直接配置,不需要看默認(rèn)權(quán)限 (umask) 的臉色
- -p :幫助你直接將所需要的目錄(包含上一級目錄)遞歸創(chuàng)建起來!
rmdir ( 刪除空的目錄 )
rmdir [-p] 目錄名稱選項與參數(shù):**-p :**連同上一級『空的』目錄也一起刪除 ****
# 看看有多少目錄存在? [root@kuangshen home]# ls -l drwxr-xr-x 2 root root 4096 Mar 12 21:55 test drwxr-xr-x 3 root root 4096 Mar 12 21:56 test1 drwx--x--x 2 root root 4096 Mar 12 21:58 test2# 可直接刪除掉,沒問題 [root@kuangshen home]# rmdir test# 因為尚有內(nèi)容,所以無法刪除! [root@kuangshen home]# rmdir test1 rmdir: failed to remove ‘test1’: Directory not empty# 利用 -p 這個選項,立刻就可以將 test1/test2/test3/test4 依次刪除。 [root@kuangshen home]# rmdir -p test1/test2/test3/test4注意:這個 rmdir 僅能刪除空的目錄,你可以使用 rm 命令來刪除非空目錄,后面我們會將!
cp ( 復(fù)制文件或目錄 )
[root@www ~]# cp 原來的地方 新的地方 [root@www ~]# cp [options]source1 source2.... directory # 找一個有文件的目錄,我這里找到 root目錄 [root@kuangshen home]# cd /root [root@kuangshen ~]# ls install.sh [root@kuangshen ~]# cd /home# 復(fù)制 root目錄下的install.sh 到 home目錄下 [root@kuangshen home]# cp /root/install.sh /home [root@kuangshen home]# ls install.sh# 再次復(fù)制,加上-i參數(shù),增加覆蓋詢問? [root@kuangshen home]# cp -i /root/install.sh /home cp: overwrite ‘/home/install.sh’? y # n不覆蓋,y為覆蓋rm ( 移除文件或目錄 )
rm [-fir] 文件或目錄選項與參數(shù):
- -f :就是 force 的意思,忽略不存在的文件,不會出現(xiàn)警告信息;
- -i :互動模式,在刪除前會詢問使用者是否動作
- -r :遞歸刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!!
mv ( 移動文件與目錄,或修改名稱 )
[root@www ~]# mv [-fiu] source destination [root@www ~]# mv [options] source1 source2 ... directory選項與參數(shù):
- -f :force 強制的意思,如果目標(biāo)文件已經(jīng)存在,不會詢問而直接覆蓋;
- -i :若目標(biāo)文件 (destination) 已經(jīng)存在時,就會詢問是否覆蓋!
- -u :若目標(biāo)文件已經(jīng)存在,且 source 比較新,才會升級 (update)
重命名
[root@kuangshen home]# mv test mvtest基本屬性
看懂文件屬性
Linux系統(tǒng)是一種典型的多用戶系統(tǒng),不同的用戶處于不同的地位,擁有不同的權(quán)限。為了保護(hù)系統(tǒng)的安全性,Linux系統(tǒng)對不同的用戶訪問同一文件(包括目錄文件)的權(quán)限做了不同的規(guī)定。
在Linux中我們可以使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組,如:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UbRb5JCQ-1621569071857)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1619769814945.png)]
實例中,boot文件的第一個屬性用"d"表示。"d"在Linux中代表該文件是一個目錄文件。
在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等等:
- 當(dāng)為[ d ]則是目錄
- 當(dāng)為[ - ]則是文件;
- 若是[ l ]則表示為鏈接文檔 ( link file );
- 若是[ b ]則表示為裝置文件里面的可供儲存的接口設(shè)備 ( 可隨機存取裝置 )
- 若是[ c ]則表示為裝置文件里面的串行端口設(shè)備,例如鍵盤、鼠標(biāo) ( 一次性讀取裝置 )。
接下來的字符中,以三個為一組,且均為『rwx』 的三個參數(shù)的組合。
其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執(zhí)行(execute)。
要注意的是,這三個權(quán)限的位置不會改變,如果沒有權(quán)限,就會出現(xiàn)減號[ - ]而已。
每個文件的屬性由左邊第一部分的10個字符來確定(如下圖):
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-KBKEiTxM-1621569071858)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1619770272998.png)]
從左至右用0-9這些數(shù)字來表示。
第0位確定文件類型,第1-3位確定屬主(該文件的所有者)擁有該文件的權(quán)限。第4-6位確定屬組(所有者的同組用戶)擁有該文件的權(quán)限,第7-9位確定其他用戶擁有該文件的權(quán)限。
其中:
第1、4、7位表示讀權(quán)限,如果用"r"字符表示,則有讀權(quán)限,如果用"-"字符表示,則沒有讀權(quán)限;
第2、5、8位表示寫權(quán)限,如果用"w"字符表示,則有寫權(quán)限,如果用"-"字符表示沒有寫權(quán)限;
第3、6、9位表示可執(zhí)行權(quán)限,如果用"x"字符表示,則有執(zhí)行權(quán)限,如果用"-"字符表示,則沒有執(zhí)行權(quán)限。
對于文件來說,它都有一個特定的所有者,也就是對該文件具有所有權(quán)的用戶。
同時,在Linux系統(tǒng)中,用戶是按組分類的,一個用戶屬于一個或多個組。
文件所有者以外的用戶又可以分為文件所有者的同組用戶和其他用戶。
因此,Linux系統(tǒng)按文件所有者、文件所有者同組用戶和其他用戶來規(guī)定了不同的文件訪問權(quán)限。
在以上實例中,boot 文件是一個目錄文件,屬主和屬組都為 root。
修改文件屬性
1、chgrp:更改文件屬組
chgrp [-R] 屬組名 文件名-R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數(shù),那么該目錄下的所有文件的屬組都會更改。
2、chown:更改文件屬主,也可以同時更改文件屬組
chown [–R] 屬主名 文件名 chown [-R] 屬主名:屬組名 文件名3、chmod:更改文件9個屬性 (必須要掌握)
chmod [-R] xyz 文件或目錄Linux文件屬性有兩種設(shè)置方法,一種是數(shù)字,一種是符號。
Linux文件的基本權(quán)限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權(quán)限。
先復(fù)習(xí)一下剛剛上面提到的數(shù)據(jù):文件的權(quán)限字符為:『-rwxrwxrwx』, 這九個權(quán)限是三個三個一組的!其中,我們可以使用數(shù)字來代表各個權(quán)限,各權(quán)限的分?jǐn)?shù)對照表如下:
r:4 w:2 x:1每種身份(owner/group/others)各自的三個權(quán)限(r/w/x)分?jǐn)?shù)是需要累加的,例如當(dāng)權(quán)限為:[-rwxrwx—] 分?jǐn)?shù)則是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= — = 0+0+0 = 0
文件內(nèi)容查看
概述linux系統(tǒng)中使用以下命令來查看文件的內(nèi)容:
- cat 由第一行開始顯示文件內(nèi)容
- tac 從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!
- nl 顯示的時候,順道輸出行號!
- more 一頁一頁的顯示文件內(nèi)容
- less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
- head 只看頭幾行
- tail 只看尾巴幾行
你可以使用 *man [命令]*來查看各個命令的使用文檔,如 :man cp。
cat 由第一行開始顯示文件內(nèi)容
ifconfig: 查看網(wǎng)絡(luò)配置ip地址 # 查看網(wǎng)絡(luò)配置: 文件地址 /etc/sysconfig/network-scripts/ [root@kuangshen ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes在 more 這個程序的運行過程中,你有幾個按鍵可以按的:
-
空白鍵 (space):代表向下翻一頁;
-
Enter :代表向下翻『一行』;
-
/字串 :代表在這個顯示的內(nèi)容當(dāng)中,向下搜尋『字串』這個關(guān)鍵字;
-
:f :立刻顯示出檔名以及目前顯示的行數(shù);
-
q :代表立刻離開 more ,不再顯示該文件內(nèi)容。
(more只能往下翻,不能往上翻)
less運行時可以輸入的命令有:
- 空白鍵 :向下翻動一頁;
- [pagedown]:向下翻動一頁;
- [pageup] :向上翻動一頁;
- /字串 :向下搜尋『字串』的功能;
- ?字串 :向上搜尋『字串』的功能;
- n :重復(fù)前一個搜尋 (與 / 或 ? 有關(guān)!)
- N :反向的重復(fù)前一個搜尋 (與 / 或 ? 有關(guān)!)
- q :離開 less 這個程序;
head 取出文件前面幾行
head [-n number] 文件選項與參數(shù):-n 后面接數(shù)字,代表顯示幾行的意思!
默認(rèn)的情況中,顯示前面 10 行!
拓展:Linux 鏈接概念
Linux 鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。
情況下,ln 命令產(chǎn)生硬鏈接。
硬連接
硬連接指通過索引節(jié)點來進(jìn)行連接。在 Linux 的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個編號,稱為索引節(jié)點號(Inode Index)。在 Linux 中,多個文件名指向同一索引節(jié)點是存在的。比如:A 是 B 的硬鏈接(A 和 B 都是文件名),則 A 的目錄項中的 inode 節(jié)點號與 B 的目錄項中的 inode 節(jié)點號相同,即一個 inode 節(jié)點對應(yīng)兩個不同的文件名,兩個文件名指向同一個文件,A 和 B 對文件系統(tǒng)來說是完全平等的。刪除其中任何一個都不會影響另外一個的訪問。
硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因為對應(yīng)該目錄的索引節(jié)點有一個以上的連接。只刪除一個連接并不影響索引節(jié)點本身和其它的連接,只有當(dāng)最后一個連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會被釋放。也就是說,文件真正刪除的條件是與之相關(guān)的所有硬連接文件均被刪除。
軟連接
另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接。**軟鏈接文件有類似于 Windows 的快捷方式。**它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的軟鏈接(A 和 B 都是文件名),A 的目錄項中的 inode 節(jié)點號與 B 的目錄項中的 inode 節(jié)點號不相同,A 和 B 指向的是兩個不同的 inode,繼而指向兩塊不同的數(shù)據(jù)塊。但是 A 的數(shù)據(jù)塊中存放的只是 B 的路徑名(可以根據(jù)這個找到 B 的目錄項)。A 和 B 之間是“主從”關(guān)系,如果 B 被刪除了,A 仍然存在(因為兩個是不同的文件),但指向的是一個無效的鏈接。
[root@kuangshen /]# cd /home [root@kuangshen home]# touch f1 # 創(chuàng)建一個測試文件f1 [root@kuangshen home]# ls f1 [root@kuangshen home]# ln f1 f2 # 創(chuàng)建f1的一個硬連接文件f2 [root@kuangshen home]# ln -s f1 f3 # 創(chuàng)建f1的一個符號連接文件f3 [root@kuangshen home]# ls -li # -i參數(shù)顯示文件的inode節(jié)點信息 397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f1 397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f2 397248 lrwxrwxrwx 1 root root 2 Mar 13 00:50 f3 -> f1從上面的結(jié)果中可以看出,硬連接文件 f2 與原文件 f1 的 inode 節(jié)點相同,均為 397247,然而符號連接文件的 inode 節(jié)點不同。
# echo 字符串輸出 >> f1 輸出到 f1文件 [root@kuangshen home]# echo "I am f1 file" >>f1 [root@kuangshen home]# cat f1 I am f1 file [root@kuangshen home]# cat f2 I am f1 file [root@kuangshen home]# cat f3 I am f1 file [root@kuangshen home]# rm -f f1 [root@kuangshen home]# cat f2 I am f1 file [root@kuangshen home]# cat f3 cat: f3: No such file or directory通過上面的測試可以看出:當(dāng)刪除原始文件 f1 后,硬連接 f2 不受影響,但是符號連接 f1 文件無效;
依此您可以做一些相關(guān)的測試,可以得到以下全部結(jié)論:
- 刪除符號連接f3,對f1,f2無影響;
- 刪除硬連接f2,對f1,f3也無影響;
- 刪除原文件f1,對硬連接f2沒有影響,導(dǎo)致符號連接f3失效;
- 同時刪除原文件f1,硬連接f2,整個文件會真正的被刪除。
總結(jié)
以上是生活随笔為你收集整理的linux概述、基本命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吴恩达深度学习笔记5-Course2-W
- 下一篇: 吴恩达深度学习笔记6-Course2-W