日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux-02-常用的命令-必须掌握

發布時間:2024/7/19 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux-02-常用的命令-必须掌握 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 目錄管理
      • 基本屬性
      • 文件內容查看

目錄管理

絕對路徑和相對路徑

我們知道Linux的目錄結構為樹狀結構,最頂級的目錄為根目錄 /。

其他目錄通過掛載可以將它們添加到樹中,通過解除掛載可以移除它們。

在開始本教程前我們需要先知道什么是絕對路徑與相對路徑。

絕對路徑:

路徑的寫法,由根目錄 / 寫起,例如:/usr/share/doc 這個目錄。

相對路徑:

路徑的寫法,不是由 / 寫起,例如由 /usr/share/doc 要到 /usr/share/man 底下時,可以寫成:cd …/man 這就是相對路徑的寫法啦!

處理目錄的常用命令

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

  • ls: 列出目錄
  • cd:切換目錄
  • pwd:顯示目前的目錄
  • mkdir:創建一個新的目錄
  • rmdir:刪除一個空的目錄
  • cp: 復制文件或目錄
  • rm: 移除文件或目錄
  • mv: 移動文件與目錄,或修改文件與目錄的名稱

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

ls (列出目錄)

在Linux系統當中, ls 命令可能是最常被運行的。

語法:

[root@www ~]# ls [-aAdfFhilnrRSt] 目錄名稱

選項與參數:

  • -a :全部的文件,連同隱藏文件( 開頭為 . 的文件) 一起列出來(常用)
  • -l :長數據串列出,包含文件的屬性與權限等等數據;(常用)

將目錄下的所有文件列出來(含屬性與隱藏檔)

[root@www ~]# ls -al ~

cd (切換目錄)

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

語法:

cd [相對路徑或絕對路徑]

測試:

# 切換到用戶目錄下 [root@kuangshen /]# cd home # 使用 mkdir 命令創建 kuangstudy 目錄 [root@kuangshen home]# mkdir kuangstudy# 進入 kuangstudy 目錄 [root@kuangshen home]# cd kuangstudy# 回到上一級 [root@kuangshen kuangstudy]# cd ..# 回到根目錄 [root@kuangshen kuangstudy]# cd /# 表示回到自己的家目錄,亦即是 /root 這個目錄 [root@kuangshen kuangstudy]# cd ~

接下來大家多操作幾次應該就可以很好的理解 cd 命令的。

pwd ( 顯示目前所在的目錄 )

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

[root@kuangshen kuangstudy]#pwd [-P]

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

測試:

# 單純顯示出目前的工作目錄 [root@kuangshen ~]# pwd /root# 如果是鏈接,要顯示真實地址,可以使用 -P參數 [root@kuangshen /]# cd bin [root@kuangshen bin]# pwd -P /usr/bin

mkdir (創建新目錄)

如果想要創建新的目錄的話,那么就使用mkdir (make directory)吧。

mkdir [-mp] 目錄名稱

選項與參數:

  • -m :配置文件的權限喔!直接配置,不需要看默認權限 (umask) 的臉色~
  • -p :幫助你直接將所需要的目錄(包含上一級目錄)遞歸創建起來!

測試:

# 進入我們用戶目錄下 [root@kuangshen /]# cd /home# 創建一個 test 文件夾 [root@kuangshen home]# mkdir test# 創建多層級目錄 [root@kuangshen home]# mkdir test1/test2/test3/test4 mkdir: cannot create directory ‘test1/test2/test3/test4’: No such file or directory # <== 沒辦法直接創建此目錄啊!# 加了這個 -p 的選項,可以自行幫你創建多層目錄! [root@kuangshen home]# mkdir -p test1/test2/test3/test4# 創建權限為 rwx--x--x 的目錄。 [root@kuangshen home]# mkdir -m 711 test2 [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

rmdir ( 刪除空的目錄 )

語法:

rmdir [-p] 目錄名稱

選項與參數:**-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# 因為尚有內容,所以無法刪除! [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 ( 復制文件或目錄 )

語法:

[root@www ~]# cp [-adfilprsu] 來源檔(source) 目標檔(destination) [root@www ~]# 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@kuangshen home]# cd /root [root@kuangshen ~]# ls install.sh [root@kuangshen ~]# cd /home# 復制 root目錄下的install.sh 到 home目錄下 [root@kuangshen home]# cp /root/install.sh /home [root@kuangshen home]# ls install.sh# 再次復制,加上-i參數,增加覆蓋詢問? [root@kuangshen home]# cp -i /root/install.sh /home cp: overwrite ‘/home/install.sh’? y # n不覆蓋,y為覆蓋

rm ( 移除文件或目錄 )

語法:

rm [-fir] 文件或目錄

選項與參數:

  • -f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;
  • -i :互動模式,在刪除前會詢問使用者是否動作
  • -r :遞歸刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!!

測試:

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

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

語法:

[root@www ~]# mv [-fiu] source destination [root@www ~]# mv [options] source1 source2 source3 .... directory

選項與參數:

  • -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
  • -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
  • -u :若目標文件已經存在,且 source 比較新,才會升級 (update)

測試:

# 復制一個文件到當前目錄 [root@kuangshen home]# cp /root/install.sh /home# 創建一個文件夾 test [root@kuangshen home]# mkdir test# 將復制過來的文件移動到我們創建的目錄,并查看 [root@kuangshen home]# mv install.sh test [root@kuangshen home]# ls test [root@kuangshen home]# cd test [root@kuangshen test]# ls install.sh# 將文件夾重命名,然后再次查看! [root@kuangshen test]# cd .. [root@kuangshen home]# mv test mvtest [root@kuangshen home]# ls mvtest

基本屬性

看懂文件屬性

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

在Linux中我們可以使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組,如:

實例中,boot文件的第一個屬性用"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系統按文件所有者、文件所有者同組用戶和其他用戶來規定了不同的文件訪問權限。

在以上實例中,boot 文件是一個目錄文件,屬主和屬組都為 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權限。

先復習一下剛剛上面提到的數據:文件的權限字符為:『-rwxrwxrwx』, 這九個權限是三個三個一組的!其中,我們可以使用數字來代表各個權限,各權限的分數對照表如下:

r:4 w:2 x:1

每種身份(owner/group/others)各自的三個權限(r/w/x)分數是需要累加的,例如當權限為:[-rwxrwx—] 分數則是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= — = 0+0+0 = 0
chmod 770 filename

可以自己下去多進行測試!

文件內容查看

概述

Linux系統中使用以下命令來查看文件的內容:

  • cat 由第一行開始顯示文件內容
  • tac 從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!
  • nl 顯示的時候,順道輸出行號!
  • more 一頁一頁的顯示文件內容
  • less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
  • head 只看頭幾行
  • tail 只看尾巴幾行

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

cat 由第一行開始顯示文件內容

語法:

cat [-AbEnTv]

選項與參數:

  • -A :相當於 -vET 的整合選項,可列出一些特殊字符而不是空白而已;
  • -b :列出行號,僅針對非空白行做行號顯示,空白行不標行號!
  • -E :將結尾的斷行字節 $ 顯示出來;
  • -n :列印出行號,連同空白行也會有行號,與 -b 的選項不同;
  • -T :將 [tab] 按鍵以 ^I 顯示出來;
  • -v :列出一些看不出來的特殊字符

測試:

# 查看網絡配置: 文件地址 /etc/sysconfig/network-scripts/ [root@kuangshen ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes

tac

tac與cat命令剛好相反,文件內容從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!如:

[root@kuangshen ~]# tac /etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT=yes BOOTPROTO=dhcp DEVICE=eth0

nl 顯示行號

語法:

nl [-bnw] 文件

選項與參數:

  • -b :指定行號指定的方式,主要有兩種:-b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);-b t :如果有空行,空的那一行不要列出行號(默認值);
  • -n :列出行號表示的方法,主要有三種:-n ln :行號在熒幕的最左方顯示;-n rn :行號在自己欄位的最右方顯示,且不加 0 ;-n rz :行號在自己欄位的最右方顯示,且加 0 ;
  • -w :行號欄位的占用的位數。

測試:

[root@kuangshen ~]# nl /etc/sysconfig/network-scripts/ifcfg-eth0 1DEVICE=eth0 2BOOTPROTO=dhcp 3ONBOOT=yes

more 一頁一頁翻動

在 more 這個程序的運行過程中,你有幾個按鍵可以按的:

  • 空白鍵 (space):代表向下翻一頁;
  • Enter :代表向下翻『一行』;
  • /字串 :代表在這個顯示的內容當中,向下搜尋『字串』這個關鍵字;
  • :f :立刻顯示出檔名以及目前顯示的行數;
  • q :代表立刻離開 more ,不再顯示該文件內容。
  • b 或 [ctrl]-b :代表往回翻頁,不過這動作只對文件有用,對管線無用。
[root@kuangshen etc]# more /etc/csh.login ....(中間省略).... --More--(28%) # 重點在這一行喔!你的光標也會在這里等待你的命令

less 一頁一頁翻動,以下實例輸出/etc/man.config文件的內容:

less運行時可以輸入的命令有:

  • 空白鍵 :向下翻動一頁;
  • [pagedown]:向下翻動一頁;
  • [pageup] :向上翻動一頁;
  • /字串 :向下搜尋『字串』的功能;
  • ?字串 :向上搜尋『字串』的功能;
  • n :重復前一個搜尋 (與 / 或 ? 有關!)
  • N :反向的重復前一個搜尋 (與 / 或 ? 有關!)
  • q :離開 less 這個程序;
[root@kuangshen etc]# more /etc/csh.login ....(中間省略).... : # 這里可以等待你輸入命令!

head 取出文件前面幾行

語法:

head [-n number] 文件

選項與參數:-n 后面接數字,代表顯示幾行的意思!

默認的情況中,顯示前面 10 行!若要顯示前 20 行,就得要這樣:

[root@kuangshen etc]# head -n 20 /etc/csh.login

tail 取出文件后面幾行

語法:

tail [-n number] 文件

選項與參數:

  • -n :后面接數字,代表顯示幾行的意思

默認的情況中,顯示最后 10 行!若要顯示最后 20 行,就得要這樣:

[root@kuangshen etc]# tail -n 20 /etc/csh.login

拓展:Linux 鏈接概念

Linux 鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。

情況下,ln 命令產生硬鏈接。

硬連接

硬連接指通過索引節點來進行連接。在 Linux 的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在 Linux 中,多個文件名指向同一索引節點是存在的。比如:A 是 B 的硬鏈接(A 和 B 都是文件名),則 A 的目錄項中的 inode 節點號與 B 的目錄項中的 inode 節點號相同,即一個 inode 節點對應兩個不同的文件名,兩個文件名指向同一個文件,A 和 B 對文件系統來說是完全平等的。刪除其中任何一個都不會影響另外一個的訪問。

硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連接。只刪除一個連接并不影響索引節點本身和其它的連接,只有當最后一個連接被刪除后,文件的數據塊及目錄的連接才會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。

軟連接

另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似于 Windows 的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的軟鏈接(A 和 B 都是文件名),A 的目錄項中的 inode 節點號與 B 的目錄項中的 inode 節點號不相同,A 和 B 指向的是兩個不同的 inode,繼而指向兩塊不同的數據塊。但是 A 的數據塊中存放的只是 B 的路徑名(可以根據這個找到 B 的目錄項)。A 和 B 之間是“主從”關系,如果 B 被刪除了,A 仍然存在(因為兩個是不同的文件),但指向的是一個無效的鏈接。

測試:

[root@kuangshen /]# cd /home [root@kuangshen home]# touch f1 # 創建一個測試文件f1 [root@kuangshen home]# ls f1 [root@kuangshen home]# ln f1 f2 # 創建f1的一個硬連接文件f2 [root@kuangshen home]# ln -s f1 f3 # 創建f1的一個符號連接文件f3 [root@kuangshen home]# ls -li # -i參數顯示文件的inode節點信息 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

從上面的結果中可以看出,硬連接文件 f2 與原文件 f1 的 inode 節點相同,均為 397247,然而符號連接文件的 inode 節點不同。

# 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

通過上面的測試可以看出:當刪除原始文件 f1 后,硬連接 f2 不受影響,但是符號連接 f1 文件無效;

依此您可以做一些相關的測試,可以得到以下全部結論:

  • 刪除符號連接f3,對f1,f2無影響;
  • 刪除硬連接f2,對f1,f3也無影響;
  • 刪除原文件f1,對硬連接f2沒有影響,導致符號連接f3失效;
    出,硬連接文件 f2 與原文件 f1 的 inode 節點相同,均為 397247,然而符號連接文件的 inode 節點不同。
# 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

通過上面的測試可以看出:當刪除原始文件 f1 后,硬連接 f2 不受影響,但是符號連接 f1 文件無效;

依此您可以做一些相關的測試,可以得到以下全部結論:

  • 刪除符號連接f3,對f1,f2無影響;
  • 刪除硬連接f2,對f1,f3也無影響;
  • 刪除原文件f1,對硬連接f2沒有影響,導致符號連接f3失效;
  • 同時刪除原文件f1,硬連接f2,整個文件會真正的被刪除。

總結

以上是生活随笔為你收集整理的linux-02-常用的命令-必须掌握的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。