CentOS教程(七)- 常用命令使用介紹(上)
“一切皆檔案”是Linux的基本哲學之一。普通的檔案、目錄、裝置等一切“東西”在Linux中均是以檔案形式展現。
好的,讓我們來記住上面引言的話:
一切皆檔案
一切皆檔案
一切皆檔案
重要的事情說三遍。
在上一文中,我建議大家學習Linux命令有以下方法:
1。 除了常用命令,不要刻意去記住全部命令。
2。 學會使用命令速查。
3。 學會使用
——help
來閱讀幫助
這一章節中,我們來看看常用命令有哪些。
預設規則
命令也是檔案
一般來說,特定root管理員賬戶執行的命令,放在
/sbin
或者
/usr/sbin
下。其它使用者執行的命令,放在
/bin
或
/usr/bin
下
在上圖中,我們在
/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之天路
文章下面有個贊同,看後點贊,手有餘香
因為你的鼓勵,我才會更有動力去創作更多的原創文章