Linux基礎-2、基本命令
瞭解完Linux的相關的基礎知識之後,我們來了解了解Linux的基本命令吧!
1、目錄管理
首先我們先回顧下相對路徑和絕對路徑的一些知識:
絕對路徑是啥啊,就是我們平常計算機上那些能表示一個文件位置,唯一的一個路徑。
比如說D:\WeChat\wechat.exe 就是個絕對路徑。
相對路徑就是相對我們當前所處目錄,那個文件的具體位置。
其中…代表上一級目錄。
比如說我們現在在D:\WeChat\locales裏,想去訪問D:\WeChat\zjj這裏。
需要通過cd…\zjj這個命令來。
我們先來看看一些常用命令!
- ls: 列出目錄
- cd:切換目錄
- pwd:顯示目前的目錄
- mkdir:創建一個新的目錄
- rmdir:刪除一個空的目錄
- cp: 複製文件或目錄
- rm: 移除文件或目錄
- mv: 移動文件與目錄,或修改文件與目錄的名稱
我們分別來試試。
ls
ls可以列出目錄中的東西,就有點像我們的眼睛一樣,想看啥看啥。後面跟上需要看的目錄即可,下面是根目錄下的文件夾。
其中後面還可以跟兩個參數。
-
-a :全部的文件,連同隱藏文件( 開頭爲 . 的文件) 一起列出來(常用)
-
-l :長數據串列出,包含文件的屬性與權限等等數據;(常用)
- ls -al / #列出根目錄下所有文件(包括隱藏文件的具體信息)
cd
cd一般用於切換目錄,這個命令與我們在windows cmd中的操作基本一致。
cd home #進入home目錄
cd ../media #從home目錄中進入media目錄
cd / #回根目錄
pwd
pwd 是 Print Working Directory 的縮寫,也就是顯示目前所在目錄的命令。
我們這是在根目錄。
mkdir
想創建目錄就用mkdir
mkdir 後面添加目錄名即可創建!如圖可以發現我們在home目錄中創建了zjj目錄。
這裏還有兩個可選參數
- -m :配置文件的權限喔!直接配置,不需要看默認權限 (umask) 的臉色~
- -p :幫助你直接將所需要的目錄(包含上一級目錄)遞歸創建起來!
我們創建多層級文件夾試試。
我們發現壓根就不能創建,這是因爲平常的mkdir只能創建單級目錄,要想創建多級目錄需要遞歸創建,在mkdir後面要加-p.
加了-p之後,創建成功!
rmdir
刪除目錄咋辦啊?這時我們使用rmdir,不過他只能刪除空的目錄。
比如說我們想刪除slsl目錄
rmdir slsl
這樣就刪除了,與mkdir同樣,如果想遞歸刪除的話需要在後面加上-p
比如說我們想刪除下zjj目錄,我們就需要再後面加-p(因爲裏頭有個smlm目錄。)
rmdir -p zjj/smlm #將zjj/smlm一併刪除
cp
複製東西就用cp嘞。
其中還包含以下參數:
- **-a:**相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用)
- **-p:**連同文件的屬性一起復制過去,而非使用默認屬性(備份常用);
- **-d:**若來源檔爲連結檔的屬性(link file),則複製連結檔屬性而非文件本身;
- **-r:**遞歸持續複製,用於目錄的複製行爲;(常用)
- **-f:**爲強制(force)的意思,若目標文件已經存在且無法開啓,則移除後再嘗試一次;
- **-i:**若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)
- **-l:**進行硬式連結(hard link)的連結檔創建,而非複製文件本身。
- **-s:**複製成爲符號連結檔 (symbolic link),亦即『捷徑』文件;
- **-u:**若 destination 比 source 舊才升級 destination !
我們來試試
cp /root/install.sh /home #拷貝/root下的install.sh到 home裏
最後發現確實有的!
rm
刪除文件一般我們使用rm命令
選項與參數:
- -f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;
- -i :互動模式,在刪除前會詢問使用者是否動作
- -r :遞歸刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!!
這裏我們還是試一下
rm -i install.sh #刪除install.sh 再刪除前進行確認
這裏還有一個梗,大家老能在網上調侃程序員說要刪庫跑路,其實常用的就是這條指令
rm -rf / #遞歸刪除根目錄下所有文件,並且不會提示任何警告信息
千萬別瞎嘗試hhhh
mv
如果我們想移動文件或者修改文件的名稱,我們常用mv命令
其中還是包含以下參數:
- -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
- -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
- -u :若目標文件已經存在,且 source 比較新,纔會升級 (update)
試試!
我們試試把當前目錄下的install.sh移動到根目錄下
mv install.sh / #把當前目錄下的install.sh移動到根目錄下
還真有!
想給他改個名字咋辦
mv第二個參數不寫目錄,直接寫要改的名字就行啦!
mv install.sh test #把install.sh重命名爲test
改完了!
2、文件管理
(1)文件屬性
我們在使用ls -l查看文件的時候可以看到這麼一組東西,
這到底是幹啥的?
其實這正好對應着我們文件屬性以及類別的內容,各位可以根據這一串東西來判定該文件的類別以及權限屬性,是不是非常神奇?
首先我們這串東西的第一位代表着文件的類別,主要來說分爲以下幾種。
- 當爲[ d ]則是目錄
- 當爲[ - ]則是文件;
- 若是[ l ]則表示爲鏈接文檔(link file);(指向另一個東西的文件,就有點像快捷方式那樣子)
- 若是[ b ]則表示爲裝置文件裏面的可供儲存的接口設備(可隨機存取裝置);
- 若是[ c ]則表示爲裝置文件裏面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。
再之後的9位代表文件的權限,按每三位爲一組,分別代表屬主,屬組以及其他用戶的權限。其中r代表讀,w代表寫、x代表執行,如果沒有相關權限就會用-表示,下面的圖可以使大家更好理解。
上面這個文件的類型是目錄文件,屬主擁有全部讀寫執行的權限,屬組和其他用戶沒有寫的權限。
更改文件屬性
有文件屬性這麼個東西,我們當然是可以根據自己的需要進行修改,主要要使用以下幾個命令。
1、chgrp:更改文件屬組(不常用)
語法:
以下的-R都是遞歸操作的意思
chgrp [-R] 屬組名 文件名
2、chown:更改文件屬主,也可以同時更改下文件屬組
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
我們來試一下這個命令,改一下文件的屬主以及屬組。下面是文件最開始的信息。
執行下
chown xjj:xjj install.sh #將屬主和屬組改爲xjj
3、chmod:更改文件9個權限屬性
在chmod指令中,我們不使用傳統的rwx來表示權限,而是使用阿拉伯數字對權限進行表示,r爲4,w爲2,x爲1,將每一個用戶類別的權限相加,得到唯一一位不大於7的阿拉伯數字就是其擁有的權限。
-rwxrwxrwx
比如說它的權限就是777,
rwxrwx–
它的權限是770
chmod的具體語法如下:
chmod [-R] xyz 文件或目錄
我們來試着改一下!
發現權限更改成功!
文件查看
最重要的看文件怎麼能少不了呢?看文件主要使用以下命令:
1、cat
由第一行開始顯示文件內容
選項與參數:
- -A :相當於 -vET 的整合選項,可列出一些特殊字符而不是空白而已;
- -b :列出行號,僅針對非空白行做行號顯示,空白行不標行號!
- -E :將結尾的斷行字節 $ 顯示出來;
- -n :列印出行號,連同空白行也會有行號,與 -b 的選項不同;
- -T :將 [tab] 按鍵以 ^I 顯示出來;
- -v :列出一些看不出來的特殊字符
我們來試一下:
2、tac
如果我們想倒着讀,用tac就可。
3、nl
大傢伙到這會不會有些問題,如果我們想讓這文件顯示行號咋整?除了在cat和tac後面加參數,linux還爲我們提供了一個命令,那就是nl命令。
選項與參數:(不常用)
- -b :指定行號指定的方式,主要有兩種:
-b a :表示不論是否爲空行,也同樣列出行號(類似 cat -n);
-b t :如果有空行,空的那一行不要列出行號(默認值); - -n :列出行號表示的方法,主要有三種:
-n ln :行號在熒幕的最左方顯示;
-n rn :行號在自己欄位的最右方顯示,且不加 0 ;
試一下:
發現確實在前面增加了行號嘞。
4、more
當我們的文件太長,需要一頁一頁的翻動時,我們一般會使用more命令,在more命令執行中也可以按這幾個鍵。
- 空白鍵 (space):代表向下翻一頁;
- Enter :代表向下翻『一行』;
- /字串 :代表在這個顯示的內容當中,向下搜尋『字串』這個關鍵字;
- :f :立刻顯示出檔名以及目前顯示的行數;
- q :代表立刻離開 more ,不再顯示該文件內容。
- b 或 [ctrl]-b :代表往回翻頁,不過這動作只對文件有用,對管線無用。
我們快來試試:
5、less
less是加強版的more,可以往上翻頁。
在操作時可以有以下的命令
- 空白鍵 :向下翻動一頁;
- [pagedown]:向下翻動一頁;
- [pageup] :向上翻動一頁;
- /字串 :向下搜尋『字串』的功能;
- ?字串 :向上搜尋『字串』的功能;
- n :重複前一個搜尋 (與 / 或 ? 有關!)
- N :反向的重複前一個搜尋 (與 / 或 ? 有關!)
- q :離開 less 這個程序;
我們來試一試
發現顯示照常!並且還可以通過上下鍵進行翻頁
6、head、tail
取出文件的前幾行用head,反之取出文件的後幾行可以用tail。在指令後面添加-n 行數即可。
如下就是顯示前20行的命令。
7、硬鏈接、軟鏈接
硬鏈接:兩個文件名指向同一個文件,A 和 B 對文件系統來說是完全平等的。刪除其中任何一個都不會影響另外一個的訪問。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。(就有點像你拷貝出來備份了一個,刪了一個不影響另一個的使用)
軟鏈接:相反,軟鏈接就有點像我們平常所說的快捷方式,如果源文件刪了,他就沒啥用了。
下面我們來測試下吧!
[root@s6 home]# touch jj #在這裏我們使用touch命令創建一個jj文件
[root@s6 home]# ls
jj www xjj
[root@s6 home]# ln jj jj1 #使用ln命令爲jj創造jj1的硬鏈接
[root@s6 home]# ln -s jj jj2 #添加-s爲jj創造jj2軟鏈接
[root@s6 home]# ls
jj jj1 jj2 www xjj
[root@s6 home]# echo "jj handsome" >>jj #往jj裏寫入一段話
這裏我們用到了touch命令以及echo命令
touch主要就是用於創建一個文件
echo是用來往文件中寫入東西的
輸出一下
[root@s6 home]# cat jj
jj handsome
[root@s6 home]# cat jj1
jj handsome
[root@s6 home]# cat jj2
jj handsome
不出所料,可以顯示的!
這時我們將jj刪除,看看會發生啥情況。
我們發現jj2變紅了,這裏變紅說明他的源文件已經丟失了。
輸出一下:
[root@s6 home]# cat jj1
jj handsome
[root@s6 home]# cat jj2
cat: jj2: No such file or directory #已經找不到了。。