一、系統目錄知識
/bin:
bin 是 Binaries (二進制文件) 的縮寫, 這個目錄存放著最經常使用的命令。
/boot:
這里存放的是啟動 Linux 時使用的一些核心文件,包括一些連接文件以及鏡像文件。
/dev :
dev 是 Device(設備) 的縮寫, 該目錄下存放的是 Linux 的外部設備,在 Linux 中訪問設備的方式和訪問文件的方式是相同的。
/etc:
etc 是 Etcetera(等等) 的縮寫,這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。(核心)
/home:
用戶的主目錄,在 Linux 中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的,如上圖中的 alice、bob 和 eve。
/lib:
lib 是 Library(庫) 的縮寫這個目錄里存放著系統最基本的動態連接共享庫,其作用類似于 Windows 里的 DLL 文件。幾乎所有的應用程序都需要用到這些共享庫。
/opt:
opt 是 optional(可選) 的縮寫,這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。
/root:
該目錄為系統管理員,也稱作超級權限者的用戶主目錄。
/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超級用戶的二進制文件) 的縮寫,這里存放的是系統管理員使用的系統管理程序。
/tmp:
tmp 是 temporary(臨時) 的縮寫這個目錄是用來存放一些臨時文件的。
/usr:
?usr 是 unix system resources(unix 系統資源) 的縮寫,這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似于 windows 下的 program files 目錄。
二、Linux 文件基本屬性
在 Linux 中我們通常使用以下兩個命令來修改文件或目錄的所屬用戶與權限:
chown (change owner) : 修改所屬用戶與組。
chmod (change mode) : 修改用戶的權限。
下圖中通過 chown 來授權用戶,通過 chmod 為用戶設置可以開門的權限。
三、Linux 文件與目錄管理
絕對路徑:
路徑的寫法,由根目錄 / 寫起,例如: /usr/share/doc 這個目錄。
相對路徑:
路徑的寫法,不是由 / 寫起,例如由 /usr/share/doc 要到 /usr/share/man 底下時,可以寫成: cd ../man 這就是相對路徑的寫法。
處理目錄的常用命令
????????ls(英文全拼:list files): 列出目錄及文件名
????????cd(英文全拼:change directory):切換目錄
????????pwd(英文全拼:print work directory):顯示目前的目錄
????????mkdir(英文全拼:make directory):創建一個新的目錄
????????rmdir(英文全拼:remove directory):刪除一個空的目錄
????????cp(英文全拼:copy file): 復制文件或目錄
????????rm(英文全拼:remove): 刪除文件或目錄
????????mv(英文全拼:move file): 移動文件與目錄,或修改文件與目錄的名稱
????????touch 創建一個普通文件 ?touch a.txt
你可以使用 man [命令] 來查看各個命令的使用文檔,如 :man cp。 man是英文單詞手冊的簡寫
Linux 文件內容查看
????????cat ?由第一行開始顯示文件內容
????????tac ?從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!
????????nl ? 顯示的時候,順道輸出行號!
????????more 一頁一頁的顯示文件內容
????????less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
????????head 只看頭幾行
????????tail 只看尾巴幾行
你可以使用 man [命令] 來查看各個命令的使用文檔,如 :man cp。 man是英文單詞手冊的簡寫
Ctrl + C 終止當前執行的操作
echo 用于字符串的輸出,屬于shell操作
?? ?echo 111 > a.txt ?將111輸出重定向(覆蓋)命令,將文件中的內容覆蓋。
?? ?echo 111 > a.txt ?將111輸出重定向(追加)命令,追加新的內容。
?? ?或者僅打印 ? ?echo hello
?? ??? ??? ? ? ? ? ? ? ? ? hello?
邏輯與 和 邏輯或
?? ?a && b ?a執行成功才會執行a
?? ?a ? || ? b ?a執行失敗才會執行b
find命令:用于在指定目錄下查找文件
?? ?find ?指定目錄 -name/-type/-size ?值 ? ? type是按照類型匹配 ? -size 按照文件大小
?? ?返回文件的位置信息
?? ??? ?通配符 *?
?? ?查找以.conf結尾的文件
?? ?find /etc -name "*.conf"
shell三劍客:grep \ ?sed ?\ awk
grep 搜索 : 用于查找文件里符合條件的字符串。通常配合 | 管道 對命令執行的結果進行搜索 ? ps:進程管理器(process)
?? ?ps -ef ? 查看系統當前正在運行的進程 ,并顯示 uid 和 pid 和 cmd表示進程的路徑等?
?? ??? ?ps -ef | grep sshd ? 查找sshd的進程
?? ??? ??? ?管道前的結果 給后面的進行過濾
?? ??? ?ps -ef | grep crond | grep -v grep ? ? ? -v 取反,在第一個管道查找的結果中去掉包含 grep 的內容
which 搜索 用于查找文件
ln(英文全拼:link files) 命令:鏈接:分為:軟連接和硬鏈接?
?? ?硬鏈接的意思是一個文件可以有多個名稱;而軟連接的方式則是產生一個特殊的文件,該文件的內容指向另一個文件的位置(類似:windows中的快捷方式) ?
?? ?軟硬鏈接的區別是有無 -s 參數
?? ??? ?ln -s 目標文件的絕對路徑 軟鏈接名(快捷方式)
?? ??? ?ln 目標文件的絕對路徑 硬鏈接名
打包壓縮 tar
?? ?參數: -c 建立新的備份文件
?? ??? ? ? -x 從備份文件中還原文件
?? ? ? ? ? ? ? -v 顯示命令執行過程
?? ? ? ? ? ? ? -f 指定備份文件?
?? ??? ? ? -z 通過gzip指定處理備份文件
?? ?打包: ?tar -cvf files.tar files ? ? 將files文件打包 命名為 files.tar
?? ??? ? ? ?tar -zcvf files.tar.gz?? ?files ? ?將files文件打包 命名為 files.gz
?? ?解壓 -zxvf
history 查看歷史命令
tab鍵 自動補齊
Ctrl + a 把光標移動到命令開頭位置
Ctrl + e 把光標移動到命令結尾位置
?vi / vim 編輯器
vim 是 vi 的編輯器的增強版
?? ?三種模式:命令模式(command mode) ?剛進入文件時
?? ??? ??? ?輸入模式(insert mode)?? ? ? 使用 a ?或者 i ,退出 使用Esc
?? ??? ??? ?底線模式(用于退出、保存)?? ?:wq ? :q! ? ?或者shift + ZZ
?? ?光標移動:
?? ??? ?0 行首 ?$ 行尾 ,命令模式下
?? ??? ?跳到文件的最后一行 G
?? ??? ?跳到文件的第一行 gg?? ??? ?
?? ?復制?? ?命令模式下
?? ??? ?yy 復制光標當前所在行內容
?? ??? ?nyy 復制當前往下n行
?? ?粘貼 命令模式下
?? ??? ?p 當前行的下一行粘貼
?? ??? ?P 當前行的上一行粘貼
?? ?刪除?
?? ??? ?dd 刪除光標當前所在行
?? ??? ?ndd 刪除當前行往下 n 行
?? ?撤銷
?? ??? ?u 撤銷上一步操作 , 類似于 windows 中的 Ctrl + z
?? ??? ?ctrl + r 反撤銷
?? ?行號與搜索功能
?? ??? ?顯示行號?? ?:set nu ?取消顯示行號 ?:set nonu
?? ??? ?搜索 ?/d ?搜索字符d 按n向下切換 ?D向上切換
?? ??? ?:noh 取消搜索匹配后的高亮
?? ?替換
?? ??? ?:2,4s/原內容/替換內容/gc ?? ?將2-4行的進行替換 ?
?? ? ? ?沒有g表示,替換每一行匹配的第一個,g表示替換這一行所有匹配到的
? ? ? ? ? ? c表示替換前給用戶提示
?? ?注意:如果進行全局替換,所謂的第一行到最后一行
?? ??? ?:%s/原內容/替換內容/gc