Linux目錄指令
mkdir 目錄創建
mkdir [option] [parameter]
選項
-
-p遞歸創建(創建/Gumdan/...)
[root@localhost~]#mkdir ~/Desktop/Gumdan
[root@localhost~]# mkdir ~/Desktop/Gumdan/season
mkdir: /Users/Gumdam/Desktop/Gumdan: No such file or directory
[root@localhost~]# mkdir -p ~/Desktop/Gumdan/season
當要創建/Gumdan/season的時候/Gumdan不存在的話要是用-p才可以進行創建。
cd 切換目錄
| 簡化指令 | 功能 |
|---|---|
| cd / | 進入根目錄 |
| cd ~ | 進入家目錄 |
| cd | 進入家目錄 |
| cd - | 進入上一次目錄(切換前) |
| cd .. | 進入上一級目錄 |
| cd . | 進入當前目錄(沒有用) |
可以利用pwd查看自己的目錄位置,cd值得一說的一點是它是shell原本內建(自帶)的命令,可以使用搜索指令查詢得知:
[root@localhost~]# which cd
cd: shell built-in command
除了cd是shell自帶命令以外,其實還有很多指令是自帶的,例如:alias、bg、fg、echo
使用cd指令的時候需要考慮路徑的問題,路徑分為相對路徑和絕對路徑,相對路徑是參照目前目錄位置去執行的路徑,絕對路徑是則可以因為不用參照路徑,所以可以在任何目錄中執行。
| 相對路徑 | 絕對路徑 |
|---|---|
../usr/local/src |
/usr/local/src |
[root@localhost~]# pwd
/root # 參照目錄為 /root
[root@localhost~]# cd ../usr/local/src
[root@localhost src]# pwd
/usr/local/src ## 參照目錄為 /usr/local/src
[root@localhost~]# cd ../usr/local/src
cd: no such file or directory: ../usr/local ## 無法辨認 /usr、/local
[root@localhost src]# cd /usr/local/src ## 絕對路徑可以在任何位置使用
相對路徑要注意一點,當我當前目錄位置發生變化,原本可以執行的命令,就有可能不能執行,相對的絕對路徑就不會有這個問題,所以使用網路上面複製的指令時,要特別注意路徑是否正確。
在Linux當中有Tab補全的功能,建議使用Tab避免打字錯誤的狀況發生,在一些發行版本作業系統雖然指令使用方法雖然相同,但是可能會有一些小問題,比如我在Mac OS裡面的空格(blank space)在終端機上會顯示為\,所以在不使用Tab的狀況之下,打錯的可能性很高,使用Tab可以減少不必要的錯誤。
[root@localhost ~/Desktop]# cd ## 按下 Tab 鍵會出現下方補全
\$RECYCLE.BIN/ Project.logicx/ Tools/ icircuit/
Gumdan/ Rmd\ to\ pptx/ cpp\ text/
[root@localhost ~/Desktop]# cd Rmd\ to\ pptx/ ##按 Tab 選出要的
rm 刪除文件或是目錄
rm [option] [file or directory]
選項:
-
r刪除目錄 -
f強制刪除
[root@localhost ~/Desktop]# mkdir abc
[root@localhost ~/Desktop]# rm abc
rm: abc: is a directory
[root@localhost ~/Desktop]# rm -r abc
rm: remove directory 'abc'? n
[root@localhost ~/Desktop]# rm -rf abc
在Linux上面的rm指令不是Windows上面的刪除,它並不會把檔案送到回收桶,你刪了他就消失了,一般在使用rm指令的時候都會直接使用rm -rf來刪除檔案,因為刪除目錄的時候要有-r、不加-f的話有會被問是否刪除,所以一般常用rm -rf。
[root@localhost ~/Desktop]# rm -rf /
rm有一個要小心的地方,上面的這個指令真的不要打上去,這個指令會讓系統99%的數據被刪除,但是系統並不會崩潰,如果沒有raid陣列或是其他的保護檔案的措施的話文件是無法還原的,說簡單一點數據恢復牽涉的條件非常的廣,要盡量避免這種事情發生。
這是讓Linux自殺的指令,但是Linux卻會不誤的去執行它,令人不安心的是,在輸入路徑的時候這個是很可能不小心出現的錯誤,但是這也側面說明了在Linux上面使用者擁有很高的系統權限。
[root@localhost /]# rm -rf /bin
[root@localhost /]# rm -rf /bin/*
使用rm -rf的時候還要注意一個地方不要刪錯一些系統目錄或是系統的掛載點,上面的指令中的/bin/*是指/bin目錄下面的內容,這個指令如果刪除/bin的話會刪除/bin這個系統目錄,這個是我們不希望發生的,如果刪除了像是/proc、/sys之類的掛在點可能就出大事情了。
cp 複製指令
cp [option] [source file] [target file]
選項
-
-r複製目錄 -
-p連帶文件屬性一起複製 -
-d如果複製的文件是鏈接文件,複製鏈接屬性 -
-a相當於-pdr全部,一般使用-a
[root@localhost~]# cp install.log /tmp # 沒寫檔案名稱會原名複製
[root@localhost~]# cp install.log /tmp/knps # 複製后為knps
[root@localhost~]# cp Gumdan ~/Desktop # 要複製目錄要使用 -r
cp: Gumdan is a directory (not copied).
[root@localhost~]# cp -r Gumdan ~/Desktop # 保險一點使用 -a
在使用cp指令的時候,如果只有給目標目錄位置,沒有給檔案名稱的話cp指令會原名複製。
cp -a
[root@localhost~/Desktop]# date
2017年 3月 9日 周四 21時03分15秒 CST
[root@localhost~/Desktop]# ll a.out
-rwxr-xr-x 1 Gumdam staff 15K 3 6 21:51 a.out
[root@localhost~/Desktop]# cp a.out ~
[root@localhost~/Desktop]# cp -a a.out ~/b.out
[root@localhost~]# cd ~
[root@localhost~]# find *.out -exec ls -lh {} \;
-rwxr-xr-x 1 Gumdam staff 15K 3 9 21:13 a.out
-rwxr-xr-x 1 Gumdam staff 15K 3 6 21:51 b.out
如果單只是使用cp的話其他的屬性是不會被複製的例如日期、鏈接...,所以只要記得使用-a就可以了。如上面的指令有使用-a複製出來的文件日期是3月6日,而沒有使用的話,日期就是今天的日期。
mv 搬移指令
mv [file or directory] [target directory]
[root@localhost~/Desktop]# mv -r Gumdan
mv: illegal option -- r
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
[root@localhost~/Desktop]# mv Gumdam ~
mv和之前的rm還有cp不一樣,需要注意的之有它搬移目錄的時候不需要也不行使用-r,這個是因為Linux是分散式的開發,所以會有這種開發上面是有興趣人去開發的,所以有些指令會有這種選項不一的問題存在。
Linux 目錄功用
[root@localhost~/Desktop]# cd /
[root@localhost~/Desktop]# ls
bin cgroup etc lib media mnt opt root
selinux sys usr boot dev home lost+found
misc net proc sbin srv tmp var
[root@localhost~/Desktop]# cd /usr
[root@localhost~/Desktop]# ls
bin etc games include lib libexec local sbin
share src tmp
[root@localhost~/Desktop]#
根目錄和/usr目錄中的/bin目錄和/sbin是用來儲存系統命令用的目錄,/boot目錄是放開機啟動數據的,/dev目錄裡面放的是硬體相關的文件,這幾個文件沒事不用去動它,裡面是一般的使用者用不到的內容,其中/bin和/sbin的區別就是/bin儲存一般使用者的指令,是所有使用這都可以使用的指令、/sbin儲存超級使用者的指令。
/etc目錄儲存系統的一些設定檔案,是很常用到的目錄。
/home普通使用者的家目錄。
/root是最高權限使用者的家目錄。
/lib是Linux函數庫儲存的目錄,在Linux裡面啟動的時候所有函數都加載的話,啟動和執行的速度將會無比的緩慢,所以會把一些不常使用的函數庫放在/lib裡面要是用的時候再調用,不使用就算了。
/mnt、/media、/misc是Linux準備的三個掛載目錄,這三個目錄只要是空目錄就可以了,是留給使用者掛載設備用的,三個都可以使用,但是大部分人一般只使用/mnt,因為在比較早的Linux裡面只有/mnt這個掛載目錄。
/sys、/proc是儲存內存數據資料的,是內存記憶體的掛載點,是不能直接操作的,我們是不能在裡面寫資料的,第一,如果重新啟動會資料丟失、第二,如果丟太大的檔案記憶體又不夠,會系統崩潰。
/var儲存特定於此系統的可變數據,在系統啟動之間保持永久性。動態變化文件(如:資料庫、緩存目錄、日誌文件、印表機後台處理文檔和網站內容等)。
一般可以隨便放檔案的目錄只有三個/home、/root、/tmp,其他的目錄如果不清楚就不要去動它,還有不建議把所有的檔案儲存在根目錄/下面,就像是把檔案全部放在Windows的桌面一樣,在使用上根目錄是非常常訪問的目錄,為操作方便,不要把所有的檔案放在根目錄。