“一切皆檔案”是Linux的基本哲學之一。普通的檔案、目錄、裝置等一切“東西”在Linux中均是以檔案形式展現。

好的,讓我們來記住上面引言的話:

一切皆檔案

一切皆檔案

一切皆檔案

重要的事情說三遍。

在上一文中,我建議大家學習Linux命令有以下方法:

1。 除了常用命令,不要刻意去記住全部命令。

2。 學會使用命令速查。

3。 學會使用

——help

來閱讀幫助

這一章節中,我們來看看常用命令有哪些。

預設規則

命令也是檔案

一般來說,特定root管理員賬戶執行的命令,放在

/sbin

或者

/usr/sbin

下。其它使用者執行的命令,放在

/bin

/usr/bin

CentOS教程(七)- 常用命令使用介紹(上)

在上圖中,我們在

/bin

目錄中,找到了

ls

命令檔案。

檔案命名規則

和Windows不同,在Linux中,除了/外,其餘的字元均為合法檔案字元。Linux並不有做多大的限制,但為了避免錯誤,建議:

1。 不建議使用空格作為檔案或資料夾的名稱。

為什麼這麼說呢?假如我們有一個檔名叫

a b

,同時也有兩個資料夾

a

b

,我們使用

cp -R a b b

本意是想把

a b

複製到

b

中,但Linux還沒有這麼智慧就可以判斷出來,它可能以為你是想把

a

b

資料夾複製到

b

中。所以,為了避免這些錯誤,還是不建議使用空格作為檔案或資料夾名稱。

2。 避免使用。作為檔案或資料夾名稱的首字元。

在Linux中,以

開頭的檔案是隱藏檔案。如果我們使用了

開頭的檔名,會自動隱藏起來。除非真的需要隱藏這個檔案或資料夾。

3。 大小寫敏感,需要嚴格區分

常用命令介紹

ls命令

ls命令是顯示目標的檔案或資料夾資訊。

其全稱是list

下面ls命令,列出了家目錄下的檔案

root

@

localhost

~

#

ls

anaconda

-

ks

cfg

initial

-

setup

-

ks

cfg

可以看到,在家目錄下,有

anaconda-ks。cfg

initial-setup-ks。cfg

這兩個檔案。

ls的引數選項比較多,常用的有以下幾個

-a

這裡的a是all的英文,也就是顯示全部檔案及資料夾,包括隱藏檔案。

[root@localhost /]# ls -a

。 。。 bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

可以看到,使用了

-a

引數後,隱藏檔案也顯示出來了。

-d

檢視目錄的詳細資訊。

[root@localhost /]# ls -ld etc

drwxr-xr-x。 138 root root 8192 8月 19 21:44 etc

-l

以長格式列出檔案或資料夾的資訊,也就是顯示檔案詳細資訊。

[root@localhost /]# ls -l

總用量 20

lrwxrwxrwx。 1 root root 7 8月 19 19:07 bin -> usr/bin

dr-xr-xr-x。 5 root root 4096 9月 19 03:02 boot

drwxr-xr-x。 19 root root 3260 9月 19 03:01 dev

drwxr-xr-x。 138 root root 8192 8月 19 21:44 etc

drwxr-xr-x。 3 root root 19 8月 19 21:44 home

lrwxrwxrwx。 1 root root 7 8月 19 19:07 lib -> usr/lib

lrwxrwxrwx。 1 root root 9 8月 19 19:07 lib64 -> usr/lib64

drwxr-xr-x。 2 root root 6 4月 11 2018 media

drwxr-xr-x。 2 root root 6 4月 11 2018 mnt

drwxr-xr-x。 3 root root 16 8月 19 19:18 opt

dr-xr-xr-x。 179 root root 0 9月 19 03:01 proc

dr-xr-x——-。 5 root root 205 8月 23 00:13 root

drwxr-xr-x。 40 root root 1260 9月 19 03:01 run

lrwxrwxrwx。 1 root root 8 8月 19 19:07 sbin -> usr/sbin

drwxr-xr-x。 2 root root 6 4月 11 2018 srv

dr-xr-xr-x。 13 root root 0 9月 19 03:01 sys

drwxrwxrwt。 18 root root 4096 9月 19 04:50 tmp

drwxr-xr-x。 13 root root 155 8月 19 19:07 usr

drwxr-xr-x。 20 root root 282 8月 19 21:35 var

看到這裡,是不是覺得出來一堆資訊,都根本不知道怎麼回事了,別急,下面我們來將其拆解。

這裡一行,代表的是一個檔案或資料夾的資訊,代表的意義如下:

drwxr-xr-x。 19 root root 3260 9月 19 03:01 dev

[檔案型別及許可權] [硬連結數] [所有者] [所屬組] [大小] [建立或修改時間] [檔案或資料夾名稱]

[檔案型別及許可權]

:在檔案型別及許可權中,

drwxr-xr-x

這一串字元又分為四組來理解。

d rwx r-x r-x

[檔案型別] [所有者許可權] [所屬組許可權] [其他人許可權]

第一個字元

d

表示檔案型別,

d

表示這是一個目錄directory,

-

表示這是一個二進位制檔案,

l

表是這介一個軟連結檔案。

即然有軟連線檔案,那麼是不是就有硬連結檔案呢?這個後文再介紹,我們只需要記得

l

表示軟連結檔案就可以了。

剩下的

rwxr-xr-x

這串字元,我們將以3位為一組將其分拆為三組:

rwx

r-x

r-x

,其中

r

表示read讀許可權,

w

表示write寫許可權,

x

表示execute執行許可權。

第一組

rwx

表示所有者所擁有的權根,誰建立了這個檔案,誰就是所有者。這裡就是所有者可以讀,可以寫入,可以執行。

第二組

r-x

表示所屬組的許可權,這裡就是所屬使用者組可以讀,可以執行,但不可以寫入。

第三組

r-x

表示其他人的許可權,這裡表示其他人可以讀,可以執行,但不可以寫入。

那麼,這裡

drwxr-xr-x

組合起來,則表示這是一個目錄,所有者有讀寫執行的許可權,所屬組則只有讀取和執行許可權,其他人只有讀取和執行許可權。

[大小]

:使用

ls -l

命令檢視到的資料夾大小,這裡只作一個參考,可以說並不準確,檢視檔案大小我們後面還會學習另外一個命令。

cd命令

其英文全稱是change directory,更換工作目錄命令。

我們把工作目錄從家目錄更換到/tmp下

[root@localhost ~]# cd /tmp

值得一提的是,回到上一級目錄,是使用cd ..,其cd和..之間是有空格的,這個是需要注意的。

絕對路徑和相對路徑

在Linux中,根目錄是用

\

來表示。

絕對路徑是由根目錄

\

開始寫起,比如

\home

表示在根目錄下的home目錄。

而相對路徑則不由根目錄寫起,比如我們進入到了

\home

目錄,再由home目錄進入到test目錄,只需寫

cd test

,這個test就是相對於

\home

來的,稱之為相對路徑。

[root@localhost ~]# cd /home #絕對路徑寫法

[root@localhost home]# pwd

/home

[root@localhost home]# cd test #相對路徑寫法,少了/符號

[root@localhost test]# pwd

/home/test

pwd

其英文全稱是print working directory,這個命令較為簡單,以絕對路徑方式顯示當前的工作目錄。

[root@localhost ~]# pwd

/root

mkdir

英文全稱是make directory, 建立一個空目錄。如我們要在

/

根目錄下建立一個test目錄:

[root@localhost home]# cd /

[root@localhost /]# mkdir /test

[root@localhost /]# ls

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys test tmp usr var

touch

建立檔案命令,要建立一個空的檔案,就可以使用touch命令。還是在

/test

目錄下,我們建立一個test檔案:

[root@localhost /]# cd /test

[root@localhost test]# touch test

[root@localhost test]# ls -l

總用量 0

-rw-r——r——。 1 root root 0 9月 19 22:51 test

可以看到,一個名叫test的二進位制檔案被我們建立了。

cp

英文全稱是copy,複製檔案或目錄。比如我們要把

~

家目錄中的

anaconda-ks。cfg

initial-setup-kg。cfg

這兩個檔案複製到

\test

目錄中:

[root@localhost /]# cd ~

[root@localhost ~]# ls

anaconda-ks。cfg initial-setup-ks。cfg

[root@localhost ~]# cp anaconda-ks。cfg initial-setup-ks。cfg /test

[root@localhost ~]# cd /test

[root@localhost test]# ls

anaconda-ks。cfg initial-setup-ks。cfg test

一般的複製格式是:cp file1 file2 dir1 #把檔案file1、file2複製到dir1中,這裡的dir1可以使用絕對路徑,也可以使用相對路徑。

但是我們要複製目錄怎麼辦? 使用

-r

可以把指定目錄下的所有檔案與子目錄複製到指定的目錄中。

[root@localhost /]# cp -r /etc /test

[root@localhost /]# cd /test

[root@localhost test]# ls

anaconda-ks。cfg etc initial-setup-ks。cfg test

mv

英文全稱是move,其有兩個功能:移動檔案、更名

移動檔案:比如我們要移動test目錄下的initial-setup-ks。cfg到/test/test1目錄下

[root@localhost test]# mkdir test1

[root@localhost test]# ls

anaconda-ks。cfg etc initial-setup-ks。cfg test test1

[root@localhost test]# mv initial-setup-ks。cfg test1

[root@localhost test]# cd test1

[root@localhost test1]# ls

initial-setup-ks。cfg

[root@localhost test1]# cd 。。

[root@localhost test]# ls

anaconda-ks。cfg etc test test1

更名:比如我們要把

anaconda-ks。cfg

改名為

anaconda。cfg

[root@localhost test]# ls

anaconda-ks。cfg etc test test1

[root@localhost test]# mv anaconda-ks。cfg anaconda。cfg

[root@localhost test]# ls

anaconda。cfg etc test test1

改目錄名稱也是同理。

rm

全稱是remove,刪除檔案或目錄 比如要刪除

/test/anaconda。cfg

檔案

[root@localhost test]# ls

anaconda。cfg etc test test1

[root@localhost test]# rm anaconda。cfg

rm:是否刪除普通檔案 “anaconda。cfg”?y

[root@localhost test]# ls

etc test test1

在Linuxe中,還需要確認是否要刪除檔案,輸入

y

就把檔案刪除了,如果要刪除很多檔案,不想要一個一個地提示,我們使用

-f

引數選項就可以了。

但在伺服器的操作中,刪除檔案還是需要謹慎的,所以

-f

引數選項還是要謹慎使用。

但是我們在寫一些自動化執行指令碼時,因為是自動化執行,不可能一個一個確認,所以這時候

-f

這個引數選項就起作用了。

rm -r 刪除目錄

[root@localhost test]# rm -r test1

rm:是否進入目錄“test1”? y

rm:是否刪除普通檔案 “test1/initial-setup-ks。cfg”?y

rm:是否刪除目錄 “test1”?y

rmdir

刪除空目錄,一般來說,這個命令比較少使用,在現實環境中,一般目錄都是有檔案的,我們需要刪除了這個目錄下的所有檔案及資料夾,才使用

rmdir

這個命令來刪除目錄,這樣也太麻煩了。

最後

更多的原創文章,請關注我的個人微信公眾號:Python之天路

文章下面有個贊同,看後點贊,手有餘香

因為你的鼓勵,我才會更有動力去創作更多的原創文章