Linux概述及目錄命令相關的操作

一、Linux的環境搭建

Linux 的安裝,安裝步驟比較繁瑣,現在其實雲服務器挺普遍的,價格也便宜,如果直接不想搭建,也可以直接買一臺學習用。

我學習用的Linux系統是CentOS7,CentOS7在Linux系統中比較常見主流也適合學習。

(1)虛擬機安裝CentOS

  • 缺點:耗資源,不推薦使用此方式

虛擬機安裝CentOS有兩種方式:

1、可以通過鏡像進行安裝
2、安裝 VMware 虛擬機軟件,然後打開我們的鏡像即可使用

(2)購買CentOS的雲服務器(推薦)
虛擬機安裝後佔用空間,也會有些卡頓,我們作爲程序員其實可以選擇購買一臺自己的服務器,這樣的話更加接近真實線上工作;

流程如下:
1、阿里雲購買服務器:https://www.aliyun.com/minisite/goods?userCode=0phtycgr

2、購買完畢後,獲取服務器的ip地址,重置服務器密碼,就可以遠程登錄了

3、下載 xShell 工具,進行遠程連接使用!

可以直接新建連接;
也可以通過命令行連接:ssh 用戶名@ip地址或機器名

連接成功效果如下:
(xShell連接成功後上方是一個綠點)
在這裏插入圖片描述

注意事項:
如果要打開端口,需要在阿里雲的安全組面板中開啓對應的出入規則,不然的話會被阿里攔截!阿里雲服務器打開端口的教程如下:https://www.bt.cn/bbs/thread-2897-1-1.html

如果前期不好操作,推薦安裝寶塔面板,傻瓜式的管理服務器

1、按照前面給的開端口教程,在阿里雲服務器端開啓對應的端口

2、用命令安裝寶塔面板
寶塔面板安裝教程:https://www.bt.cn/bbs/thread-19376-1-1.html

3、安裝完畢後會得到遠程面板的地址,賬號,密碼,就可以登錄了

4、登錄之後就可以可視化的安裝環境和部署網站!在寶塔面板上可視化操作安裝。

寶塔面板安裝登錄成功如下:
在這裏插入圖片描述

二、Linux系統開關機

(1)開機登錄

開機會啓動許多程序。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。

開機成功後,它會顯示一個文本登錄界面,這個界面就是我們經常看到的登錄界面,在這個登錄界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作爲參數傳給login程序來驗證用戶的身份,密碼是不顯示的,輸完回車即可!

一般來說,用戶的登錄方式有三種:

  • 命令行登錄
  • ssh登錄
  • 圖形界面登錄

最高權限賬戶爲 root,可以操作一切!

(2)關機
在linux領域內大多用在服務器上,很少遇到關機的操作。畢竟服務器上跑一個服務是永無止境的,除非特殊情況下,不得已纔會關機。

關機指令爲:shutdown ;
sync # 將數據由內存同步到硬盤中。

不管是重啓系統還是關閉系統,首先要運行 sync 命令,把內存中的數據寫到磁盤中。然後再執行關機指令

sync # 將數據由內存同步到硬盤中。

shutdown # 關機指令,你可以man shutdown 來看一下幫助文檔。例如你可以運行如下命令關機:

shutdown –h 10 # 這個命令告訴大家,計算機將在10分鐘後關機

shutdown –h now # 立馬關機

shutdown –h 20:25 # 系統會在今天20:25關機

shutdown –h +10 # 十分鐘後關機

shutdown –r now # 系統立馬重啓

shutdown –r +10 # 系統十分鐘後重啓

reboot # 就是重啓,等同於 shutdown –r now

halt # 關閉系統,等同於shutdown –h now 和 poweroff

三、Linux系統的目錄結構

在Linux中,所有的目錄都在根目錄下,根目錄爲:/
在這裏插入圖片描述

/bin:bin是Binary的縮寫, 這個目錄存放着最經常使用的命令。

/boot: 這裏存放的是啓動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。

/dev : dev是Device(設備)的縮寫, 存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。

/etc: 這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。

/home:用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。

/lib:這個目錄裏存放着系統最基本的動態連接共享庫,其作用類似於Windows裏的DLL文件。

/lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裏就存放了一些文件。

/media:linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。

/mnt:系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然後進入該目錄就可以查看光驅裏的內容了。

/opt:這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。

/proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。

/root:該目錄爲系統管理員,也稱作超級權限者的用戶主目錄。

/sbin:s就是Super User的意思,這裏存放的是系統管理員使用的系統管理程序。

/srv:該目錄存放一些服務啓動之後需要提取的數據。

/sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。

/tmp:這個目錄是用來存放一些臨時文件的。

/usr:這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似於windows下的program files目錄。

/usr/bin: 系統用戶使用的應用程序。

/usr/sbin: 超級用戶使用的比較高級的管理程序和系統守護程序。

/usr/src: 內核源代碼默認的放置目錄。

/var:這個目錄中存放着在不斷擴充着的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件。

/run:是一個臨時文件系統,存儲系統啓動以來的信息。當系統重啓時,這個目錄下的文件應該被刪掉或清除。

/www :存放服務器網站相關的資源,環境,網站的項目

四、Linux目錄命令的相關操作

你可以使用 man [命令]來查看各個命令的使用文檔,如 :man cp

接下來就來看幾個常見的處理目錄的命令:

ls: 列出目錄

cd:切換目錄

pwd:顯示目前的目錄

mkdir:創建一個新的目錄

rmdir:刪除一個空的目錄

cp: 複製文件或目錄

rm: 移除文件或目錄

mv: 移動文件與目錄,或修改文件與目錄的名稱

ls: 列出目錄

語法:ls [選項與參數] [目錄]

選項與參數:

-a :全部的文件,連同隱藏文件( 開頭爲 . 的文件) 一起列出來(常用)

-l :長數據串列出,包含文件的屬性與權限等等數據;(常用)

-h:搭配-l使用,可以將詳細信息中的大小單位進行轉換

將目錄下的所有文件列出來(含屬性與隱藏檔):
[root@CentOS7-First ~]# ls -alh

cd :切換目錄

cd是Change Directory的縮寫,這是用來變換工作目錄的命令。

語法:cd [相對路徑或絕對路徑]

# 切換到用戶目錄下
[root@CentOS7-First ~]# cd home  

pwd :顯示目前所在的目錄

pwd 是 Print Working Directory 的縮寫,也就是顯示目前所在目錄的命令。

語法:pwd [-P]

選項與參數:

-P :顯示出確實的路徑,而非使用連接(link) 路徑。

# 單純顯示出目前的工作目錄
[root@CentOS7-First ~]# pwd
/root

# 如果是鏈接,要顯示真實地址,可以使用 -P參數
[root@CentOS7-First /]# cd bin
[root@CentOS7-First bin]# pwd -P
/usr/bin

mkdir:創建新目錄

語法:mkdir [-mp] 目錄名稱

選項與參數:

-m :配置文件的權限。直接配置,不需要看默認權限 (umask) 的臉色

-p :幫助你直接將所需要的目錄(包含上一級目錄)遞歸創建起來!

# 進入我們用戶目錄下
[root@CentOS7-First /]# cd /home

# 創建一個 test 文件夾
[root@CentOS7-First home]# mkdir test

# 創建多層級目錄
[root@CentOS7-First home]# mkdir test1/test2/test3/test4
mkdir: cannot create directory ‘test1/test2/test3/test4’:
No such file or directory  # <== 沒辦法直接創建此目錄

# 加了這個 -p 的選項,可以自行幫你創建多層目錄!
[root@CentOS7-First home]# mkdir -p test1/test2/test3/test4

# 創建權限爲 rwx--x--x 的目錄。
[root@CentOS7-First home]# mkdir -m 711 test2
[root@CentOS7-First home]# ls -l
drwxr-xr-x 2 root root 4096 Apr  8 11:31 test
drwxr-xr-x 3 root root 4096 Apr  8 11:32 test1
drwx--x--x 2 root root 4096 Apr  8 11:33 test2

【注】這裏注意區分mkdir和touch命令:
mkdir是創建新目錄;
touch是創建新文件。
我們這裏講的命令都是對目錄的操作,不是對文件的操作。

rmdir : 刪除空的目錄

語法:rmdir [-p] 目錄名稱

選項與參數:

-p :連同上一級『空的』目錄也一起刪除

# 看看有多少目錄存在?
[root@CentOS7-First home]# ls -l
drwxr-xr-x 2 root root 4096 Apr  8 11:31 test
drwxr-xr-x 3 root root 4096 Apr  8 11:32 test1
drwx--x--x 2 root root 4096 Apr  8 11:33 test2

# 可直接刪除掉,沒問題
[root@CentOS7-First home]# rmdir test

# 因爲尚有內容,所以無法刪除!
[root@CentOS7-First home]# rmdir test1
rmdir: failed to remove ‘test1’: Directory not empty

# 利用 -p 這個選項,立刻就可以將 test1/test2/test3/test4 依次刪除。
[root@CentOS7-First home]# rmdir -p test1/test2/test3/test4

【注】這個 rmdir 僅能刪除空的目錄,你可以使用 rm 命令來刪除非空目錄,後面會講。

cp :複製文件或目錄

語法:
cp [選項與參數] 來源檔(source) 目標檔(destination)
cp [options] source1 source2 source3 .... directory

選項與參數:

-a:相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用)

-p:連同文件的屬性一起復制過去,而非使用默認屬性(備份常用);

-d:若來源檔爲連結檔的屬性(link file),則複製連結檔屬性而非文件本身;

-r:遞歸持續複製,用於目錄的複製行爲;(常用)

-f:爲強制(force)的意思,若目標文件已經存在且無法開啓,則移除後再嘗試一次;

-i:若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)

-l:進行硬式連結(hard link)的連結檔創建,而非複製文件本身。

-s:複製成爲符號連結檔 (symbolic link),亦即『捷徑』文件;

-u:若 destination 比 source 舊才升級 destination 。

# 找一個有文件的目錄,這裏找到 root目錄
[root@CentOS7-First home]# cd /root
[root@CentOS7-First ~]# ls
install.sh
[root@kuangshen ~]# cd /home

# 複製 root目錄下的install.sh 到 home目錄下
[root@CentOS7-First home]# cp /root/install.sh /home
[root@CentOS7-First home]# ls
install.sh

# 再次複製,加上-i參數,增加覆蓋詢問
[root@CentOS7-First home]# cp -i /root/install.sh /home
cp: overwrite ‘/home/install.sh’? y # n不覆蓋,y爲覆蓋

rm :移除文件或目錄

語法:rm [-選項與參數] 文件或目錄

選項與參數:

-f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;

-i :互動模式,在刪除前會詢問使用者是否動作

-r :遞歸刪除!最常用在目錄的刪除了!這是非常危險的選項!!!

# 將剛剛在 cp 的實例中創建的 install.sh刪除掉!
[root@CentOS7-First home]# rm -i install.sh
rm: remove regular file ‘install.sh’? y
# 如果加上 -i 的選項就會主動詢問喔,避免你刪除到錯誤的檔名!

# 儘量不要在服務器上使用 rm -rf /
#爲什麼不要使用這個,相信你肯定懂的。。。。

mv :移動文件與目錄,或修改名稱

語法:
mv [選項與參數] source destination
mv [選項與參數] source1 source2 source3 .... directory

選項與參數:

-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;

-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!

-u :若目標文件已經存在,且 source 比較新,纔會升級 (update)

# 複製一個文件到當前目錄
[root@CentOS7-First home]# cp /root/install.sh /home

# 創建一個文件夾 test
[root@CentOS7-First home]# mkdir test

# 將複製過來的文件移動到我們創建的目錄,並查看
[root@CentOS7-First home]# mv install.sh test
[root@CentOS7-First home]# ls
test
[root@CentOS7-First home]# cd test
[root@CentOS7-First test]# ls
install.sh

# 將文件夾重命名,然後再次查看!
[root@CentOS7-First test]# cd ..
[root@CentOS7-First home]# mv test mvtest
[root@CentOS7-First home]# ls
mvtest

五、基本屬性

Linux系統是一種典型的多用戶系統,不同的用戶處於不同的地位,擁有不同的權限。爲了保護系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的權限做了不同的規定。

在Linux中我們可以使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組,如:
在這裏插入圖片描述
以圈出來的一條記錄爲例:
Effie文件的第一個屬性用"d"表示。"d"在Linux中代表該文件是一個目錄文件。

在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等等

  • 當爲[ d ]則是目錄
  • 當爲[ - ]則是文件;
  • 若是[ l ]則表示爲鏈接文檔 ( link file );
  • 若是[ b ]則表示爲裝置文件裏面的可供儲存的接口設備 ( 可隨機存取裝置 );
  • 若是[ c ]則表示爲裝置文件裏面的串行端口設備,例如鍵盤、鼠標 ( 一次性讀取裝置 )。

接下來的字符中,以三個爲一組,且均爲『rwx』 的三個參數的組合。

其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)

要注意的是,這三個權限的位置不會改變,如果沒有權限,就會出現減號[ - ]而已。

每個文件的屬性由左邊第一部分的10個字符來確定(如下圖):
在這裏插入圖片描述
從左至右用0-9這些數字來表示。

第0位確定文件類型,第1-3位確定屬主(該文件的所有者)擁有該文件的權限。第4-6位確定屬組(所有者的同組用戶)擁有該文件的權限,第7-9位確定其他用戶擁有該文件的權限。

其中:
第1、4、7位表示讀權限,如果用"r"字符表示,則有讀權限,如果用"-"字符表示,則沒有讀權限;

第2、5、8位表示寫權限,如果用"w"字符表示,則有寫權限,如果用"-"字符表示沒有寫權限;

第3、6、9位表示可執行權限,如果用"x"字符表示,則有執行權限,如果用"-"字符表示,則沒有執行權限。

對於文件來說,它都有一個特定的所有者,也就是對該文件具有所有權的用戶。

同時,在Linux系統中,用戶是按組分類的,一個用戶屬於一個或多個組。

文件所有者以外的用戶又可以分爲文件所有者的同組用戶和其他用戶。

因此,Linux系統按文件所有者、文件所有者同組用戶和其他用戶來規定了不同的文件訪問權限。

在以上實例中,Effie文件是一個目錄文件,屬主和屬組都爲 root。

六、修改文件屬性

1、chgrp:更改文件屬組

chgrp [-R] 屬組名 文件名

-R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數,那麼該目錄下的所有文件的屬組都會更改。

2、chown:更改文件屬主和屬組

更改文件屬主也可以同時更改文件屬組
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名

3、chmod:更改文件9個屬性

chmod [-R] xyz 文件或目錄

Linux文件屬性有兩種設置方法,一種是數字,一種是符號。

Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute (rwx) 權限。

七、文件查看命令

參考我寫的這篇文章:Linux文件內容查看相關命令

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