練習筆記:linux常見命令
阿新 • • 發佈:2019-02-19
一 命令的基本格式
df 檢視掛載的盤
linux的管理員是root 而非adminstrator [root@localhost~ ]#
root 當前登入的使用者
locahost 主機名 和windows不同點在於 同一個區域網絡下主機名可以相同 windows則不可以
~當前所在的目錄(家目錄) 超級使用者是在root 普通使用者在home
#超級使用者的提示符號 普通使用者則是$提示 pwd可以檢視當前所在的目錄
cd 切換目錄 cd/usr/local/src 就切換到了src目錄下 命令的格式: 命令【選項】【引數】
選項是可以任選的 用來調整命令的的功能 多個選項可以寫在一起 比如 ls -al 顯示所有檔案的和其詳細資訊
簡化選項 用- 完整選項-- 比如 -a與--all都是一樣的功能 顯示當前目錄下的所有檔案 包括隱藏檔案
注意:選項不能單獨使用 必須和命令一起
比如顯示當前目錄下的所有檔案 ls -a 而不能直接-a 注意!!老問題 Is command not found 報錯 是因為 ls而非Is L的小寫 而非i的大寫 新手常見錯誤 查詢目錄中的內容 ls 也注意 !linux中區分大小寫!!
ls [選項][檔案或者目錄] 如果省略檔案或者目錄 則預設是使用者當前所在的目錄
ls -a :顯示所有檔案 包括隱藏檔案 在linux中 開頭是.的檔案都是隱藏檔案 隱藏檔案可以輕易的查詢到不管是linux還是windows 隱藏檔案一般是系統檔案 以免被誤操作
ls -l 顯示詳細資訊 會顯示:檔案許可權 引用計數(表示被呼叫的次數) 所有者 所屬組 檔案大小 最後一次的修改時間 檔名
Is -d 檢視目錄屬性
Is -h 人性化顯示檔案大小 比如把1200直接顯示為1.2k
ls -i 顯示inode inode 即是檔案的ID號 每個檔案都有一個id號 系統查詢的時候通過id號查詢檔案 這個命令顯示檔案的id號 linux中的許可權: 預設是10位 第一位程式碼檔案型別 linux沒有拓展名這種東西 只能靠第一位來表示檔案型別 只有7種
在linux中一切皆是檔案 包括硬體!
常見 的三種 如果第一位是- 表示是個普通檔案 d表示目錄 |軟連結檔案(快捷方式)
系統的四種 塊裝置檔案 套接字檔案 字元裝置檔案 管道檔案 /dev目錄下的就是硬體裝置檔案 除了第一位之外 剩下的9位 每三位為一組 分別是 u 所有者 g所屬組 o 其他人 比如 使用者組 同一個使用者組裡許可權一樣
r讀 w寫 x執行 二,檔案處理命令
2.1.目錄處理命令 目錄是也是檔案 目錄檔案 類似windos中資料夾的概念 1.建立目錄mkdir 英文意思:make directories
mkdir -p 【目錄名】
-p 是遞迴建立 比如要建立nchu下面的lxx 而且當前沒有nchu這個目錄的時候 就要mkdir -p nchu/lxx 注意:用ls查詢的時候 子目錄是不會顯示出來的 需要用cd命令進去 2.切換所在目錄:cd
cd【目錄】 英文意思 change directory
cd ~ 或者cd 入當前使用者的家目錄(即使使用者登陸所在的目錄) ps:補充 ctrl + l 清屏
cd - 回到上次的目錄
cd .. 進入上級目錄
cd . 進入當前目前 (等於沒有動) 相對路徑:參照當前所在目錄 進行查詢 比如 [root@localhost ~]# cd ../usr/local/src/ (..進入上級目錄)
絕對路徑:參照根目錄 一級一級的查詢 linux的根目錄是root 也就是超級使用者的家目錄 tab 可以按兩下 進行目錄補全和目錄補全 比如cd / 按兩下tab 可以列出所有當前目錄下的目錄和檔案 3.刪除空目錄
rmdir 英文意思:remove empty directories
只能刪除空目錄! 比如刪除之前的lxx 不能刪除nuch 裡面有laixiaoxing 這個目錄 所以非空
所以用的比較少 常見的是 rm -rf 英文意思:remove
rm 可以直接刪除檔案 但是如果要刪除目錄 需要加上r選項 比如 rm -r (但是刪的時候每個檔案都問一次yes or no)
rm -rf 可以強制刪除目錄和檔案 選項f是強制刪除 注意!! 如果使用了 rm -rf / 會把根目錄的東西全部刪掉 這是讓linux 自殺 linux的root是真的root 許可權非常高 幾乎到頂
注意!!! rm -rf /tmp/ 是刪除這個系統目錄 tmp是臨時檔案的目錄 會造成一定影響
rm -rf /tmp/* 是刪除這個目錄下面的所有檔案
linux 刪除一定要小心 4.複製命令
cp 英文copy
cp 【選項】【原檔案或者目錄】【目標目錄】
選項:
-r 複製目錄
-p 連帶檔案屬性複製
-d 若原始檔是連結檔案 則複製連結屬性
-a 相當於 -pdf 如果加了-a選項 複製的檔案或者目錄將與原始檔和目錄一模一樣 包括時間 但是i節點不一樣 !! 與硬連結有區別 可以在進行復制的時候對檔案進行改名
cp annaconda-ks.cfg /tmp/ana 則是將 annaconda-ks.cfg 複製到了tmp目錄下 且檔名為ana (注意 linux下沒有後綴名這說法) 5.剪下或者改名命令:mv 命令英文願意:move
格式: mv 【原檔案或者目錄】【目標目錄】 將檔案剪下到另一個目錄中去 注意:在剪下檔案和目錄的時候都不需要 加-r 改名的用法:原始檔所在目錄和目標目錄在同一個目錄下 就是改名 linux通過這種方法給檔案改名
三,linux常見目錄的作用 在掛載的時候 第一塊盤叫sda 第二塊叫sdb 依次類推
第一塊盤的 第一個邏輯分割槽 叫sda1 第二個邏輯分割槽 sda2 等等
第二塊盤的邏輯分割槽依次叫sdb1 sdb2 等等 cd / 即可到根目錄下 ls可以列出所有目錄 常見目錄 以及作用
/根目錄
/bin 命令儲存目錄(普通使用者就可以讀取的命令)
根目錄下的bin和sbin 與usr目錄下的bin和sbin 這四個目錄都是用來儲存作業系統命令的
sbin 裡面的命令 只有超級使用者可以執行
/sbin
/usr
/boot 啟動目錄 啟動相關檔案
/dev 裝置檔案儲存目錄 特殊檔案儲存 裡面都是硬體檔案
/etc 配置檔案儲存目錄
/home 普通使用者的家目錄
/lib 系統庫的儲存目錄 以下三個是空目錄 用來掛載裝置 掛載類似於分配碟符 只要是空目錄都可以 包括自己建的
/mnt 系統掛載目錄 掛載移動U盤 老式的linux中只有這個
/media 掛載目錄 掛載光碟
/misc 掛載目錄 掛載磁帶機 /root 超級使用者的家目錄 不代表是根目錄
/tmp 臨時目錄 儲存臨時資料
/sbin 命令儲存目錄(超級使用者才能使用的目錄) /proc 直接寫入記憶體的 這兩個不能直接操作 是記憶體的掛載點 也就是記憶體的掛載點
/sys
/usr 系統軟體資源目錄
/usr/bin/系統命令(普通使用者)
/usr/sbin/系統命令(超級使用者)
/var 系統相關文件內容 可以在家目錄root或者home 下 以為tmp 中隨便玩 其他檔案不能隨便改
四:連結命令
ln 英文意思 link 功能描述 生成連結檔案
ln -s [原檔案][目標檔案]
選項 : -s 建立軟連結 硬連結:1.擁有相同的i節點和儲存bloock塊 可以看作是同一個檔案 2.可通過i節點識別 3.不能跨分割槽 4.不能針對目錄使用 硬碟的分割槽:分為資料塊 索引表 索引表中有檔案的id號
如果檔案a與檔案b 與索引表中的id號都相同 那就是這兩個檔案是硬連結 也就是是同一個檔案 即使檔名不一樣 檔名就算不一樣 檔案也是一樣的 包括i節點
即使建立硬連結後 刪除了其中一任何一個檔案 另一個不會受影響 vi 編輯器開啟某個檔案 vi 【路徑+檔名】
比如:vi /tmp/ana.hard
修改:
:w 儲存檔案但不退出vi
:w file 將修改另外儲存到file中,不退出vi
:w! 強制儲存,不推出vi
:wq 儲存檔案並退出vi
:wq! 強制儲存檔案,並退出vi
q: 不儲存檔案,退出vi
:q! 不儲存檔案,強制退出vi
:e! 放棄所有修改,從上次儲存檔案開始再編輯 軟連結:
1.類似windows快捷方式
2.軟連結擁有自己的i節點和block塊,但是資料塊中只儲存原檔案的路徑和檔名,沒有實際的檔案資料
3.lrwxrwxrwx l軟連結 rwx讀寫執行 三個許可權
軟連結的檔案許可權都是rwxrwxrwx (那就是777許可權111 111 111) 雖然顯示的是777但是實際上檔案許可權取決於原檔案
4.修改任意檔案,另一個都改變
5.刪除原檔案 軟連結不能使用 注意!! 軟連結 如何原檔案刪除或者移動了位置 就不能用了 但是windows上移動原檔案 不會有影響
注意!! 建立軟連結 的時候路徑 一定要寫絕對路徑 如果不寫絕對路徑 只會在當前目錄尋找原檔案 找不到就會閃爍報錯 五:檔案搜尋命令
1.檔案搜尋命令 locate
格式: locate 檔名
touch 是建立一個新檔案 touch lxx 在當前目錄建立了一個lxx檔案
比如locate .log 既可以搜尋到所有帶這個檔名的檔案 並不僅限於在當前資料夾尋找
locate不能搜尋到最新的資料 因為locate是搜尋 /var/lib/mlocare 這個後臺資料庫 所以會非常快 但是這個資料庫是一天一更新 而非時刻更新 所以不能搜尋到最新的檔案
但是 可以用updatedb 這個命令強制更新下資料庫 再查詢 則可以找到了 locate的缺點是隻可以按照檔名來搜尋 (類似是模糊查詢) 優點是快
注意!!! locate是按照 etc/updatedb.conf 配置檔案來進行搜尋 在配置檔案中設定了一堆不搜尋的目錄 比如tmp u盤 .svn .git等等
所以即使在tmp中有符合條件的檔案 也不會搜尋出來 配置檔案有三個命令分別如下
PRUNE_BIND_MOUNTS="yes" 是否生效配置 yes為生效 no不生效
PRUNEFS=#搜尋時,不搜尋的檔案系統
PRUNENNAMES=#搜尋時 不搜尋的檔案型別
PRUNEPATHS=#搜尋時,不搜尋的路徑 2.搜尋命令的命令 whereis
用來搜尋命令檔案所在的位置
比如 whereis ls 就可以找到ls命令所在的檔案位置 類似的命令還有 whoami 檢視我是誰
whatis ls 檢視ls命令是幹嘛的 注意:只能whereis 只能查詢系統命令 普通檔案是不能找到的
另外: whereis 會把這個命令的可執行檔案和幫助文件都找出來
如果是加了選項
-b 只查詢可執行檔案 一般都在bin或者sbin裡面
-m只查詢幫助檔案 which 會看到命令所在位置和這個命令的別名 前提是有別名 注意:shell自帶的命令 用whereis 或者whichis是找不到的 比如cd 補充:在linux中可執行檔案必須要寫絕對路徑才能執行 但是這樣很麻煩 每次都要輸入那麼多的東西 因此有了環境變數$PATH 用於簡化使用者的操作環境
$PATH 在上面定義了路徑 就可以不用打絕對路徑 這個跟windows都是一樣的 注意!用echo $PATH可以檢視到 必須是$PATH 小寫是不支援的 3.linux最強大的命令 find命令
find [搜尋範圍][搜尋條件]
#搜尋檔案 find / -name install.log 這個範圍搜尋會非常慢 耗費大量系統資源 搜了整個根 這個只會搜尋的install.log 這個檔案 而非是模糊查詢 除非使用萬用字元
#避免大範圍搜尋 會非常耗費系統資源
#find是在系統當中搜尋符合條件的檔名,如果需要匹配,使用萬用字元匹配,萬用字元是完全匹配 萬用字元: * 匹配任意內容 ? 匹配任意一個字元 [ ] 匹配任意一箇中括號內的字元 find /root -name "install.log *" 表示在root目錄下搜包含install.log的檔案 find /root -name "*[cd]" 表示搜尋所有以c或者d結尾的檔案 注意:不加萬用字元 就是完全匹配 要一模一樣才行 find /root -iname install.log -iname是不區分大小寫的完全匹配 find /root -user root 搜尋所有者是root的檔案 -user是按所有者搜尋 find user 按所有者查詢檔案 find /root -nouser 查詢沒有所有者的檔案 (外來檔案 以及核心產生的檔案 以及垃圾檔案 都是沒有所有者的) -mtime 選項 按時間查詢檔案 比如 find /var/log/ -mtime +10 查詢/var/log/目錄 下 10天前修改的檔案 -10 10天內修改的檔案 10 10天當天修改的檔案 +10 10天前修改的檔案 atime 檔案訪問的時間 ctime 改變檔案屬性的時間 mtime 修改檔案內容的時間 find . -size 25k 按大小查詢 查詢在當前目錄下大小是25K的檔案 .表示當前目錄 -25k 小於25k +25k 大於25k 這個k是小寫 也可以按M查詢 M是大寫 注意 如果按照大小查詢的時候 不帶單位 則是以資料塊為單位 按照i節點搜尋檔案 find /root -inum 262421 查詢在root目錄下 i節點是262421的檔案 邏輯選項 -a 英文and 邏輯與 兩個條件都滿足 -o 英文or 邏輯或 兩個條件滿足一個即可 find /etc -size +20k -a -size -50k 查詢/etc目錄下 大於20kb並且小於50kb的檔案 補充:-exec/-ok 命令 {} \; 對搜尋結果進行操作 如果是-ok 命令 {} \; 則會有不斷的問y 或者n 比如 find /etc -size +20k -a -size -50k -exec ls -lh {} \; 查詢/etc目錄下 大於20kb且小於50kb的檔案 並顯示詳細資訊 4.grep命令 grep [選項] 字串 檔名 在檔案當中匹配符合條件的字串 。 是在檔案裡面進行查詢匹配 查詢檔案裡面的內容 包含這個字串的內容 選項: -i 忽略大小寫 -v 排除指定字串 比如 grep ”size“ install.log 則是在install.log裡面把所有包含size的字串 整個列出來 find命令:在系統當中搜尋符合條件的檔名,如果需要匹配,使用萬用字元匹配 萬用字元是完全匹配 grep命令:在檔案當中搜尋符合條件的字串,如果需要匹配,則使用正則表示式進行匹配,正則表示式時包含匹配 即是會把包含這個字串的都列出來 六:幫助命令 man 命令名 英文意思 manual 文件 比如 man ls 進入幫助文件 在幫助文件中 可以按上下方向鍵移動 也可以按n鍵下移 shift+n 上移 如果要確定找某個選項 只需要按/ + -選項名 比如 /-d 則會查詢-d選項 按 q是退出 幫助文件 man的級別 可以通過man man檢視到 1:檢視命令的幫助 2:檢視可被核心呼叫的函式的幫助 3:檢視函式和函式庫的幫助 4:檢視特殊檔案的幫助(主要是/dev目錄下的檔案) 5:檢視配置檔案的幫助 6:檢視遊戲的幫助 7:檢視其他雜項的幫助 8:檢視系統管理員可用命令的幫助 9:檢視和核心相關檔案的幫助 (這個未必存在 ) man -f 命令 檢視命令的幫助級別 與whatis有異曲同工之妙 輸出是一模一樣的 舉例 man -f passwd 會看到passwd命令有1和5兩個幫助級別 用 man 5 passwd 可以檢視到passwd的命令配置檔案資訊 比如 man -4 null man -8 ipconfig 如果一個命令有多個等級號 需要手動指定等級 否則預設開啟的是最小的那個等級號的幫助 man -k 命令 可以檢視到所有包含該命令名的幫助內容 其他幫助命令 比如 --help ls --help shell linux的命令直譯器作用 使用者與計算機互動的介面 help shell 獲取shell命令幫助 whereis ls 只要能找到命令可執行檔案在哪 就不是shell自帶的命令 help cd 檢視cd的幫助文件 注意!!!help 只能獲取內部命令的幫助 比如cd ls這種非shell自帶的命令是不行的 info 也可以獲取幫助 比如 info ls 但是info 命令進去的是一個大的幫助文件 info ls 是進入了這個文件並定位到了ls 這個小節的內容 info命令 -回車:進入子幫助頁面(帶有*號標記) -u:進入上層頁面 -n:進入下一個幫助小節 -p:進入上一個幫助小節 -q:退出 七:壓縮與解壓縮命令 windows下的常用壓縮格式: .zip .gz .bz2 .rar .7z linux 下的常用壓縮格式: .zip .tar.gz .tar.bz2 .zip 在兩個系統上都是通用的 命令格式 zip 壓縮檔名 原始檔 注意!!壓縮檔名可以不是一定要用.zip結尾 因為linux不是以拓展名識別檔案 軟體包 常用的在linux中都是用紅顏色表示 壓縮目錄的方式 zip -r 壓縮檔名 源目錄 ps:加上選項引數 -r 就可以壓縮目錄檔案 解壓縮命令 unzip 解壓縮.zip檔案 linux中的典型壓縮格式 .gz 與windows不通用 但是可以在windows下解壓縮 但是windows下的壓縮格式rar 不能在linux下不能解壓縮 gzip 原始檔 壓縮為.gz格式的壓縮檔案 原始檔會消失 會自動生成一個原始檔名.gz的壓縮檔案 gzip -c 原始檔 >壓縮檔案 壓縮為.gz格式 原始檔保留 例如: gzip -c cangls > cangls.gz 這個是用了輸出重定向 是把命令的結果輸出到指定檔案 比如 ls >aaa 這時候把ls命令的結果輸出到了aaa檔案中 用cat命令檢視aaa檔案內容 cat aaa 可以看到 gzip -r 目錄 壓縮目錄下所有的子檔案 但是不能壓縮目錄 解壓縮命令 gunzip 壓縮檔名 或者 gzip -d 壓縮檔名 解壓縮目錄 gunzip -r 目錄名 .bz2格式壓縮 bzip2 原始檔名 壓縮為 .bz2格式 不保留原始檔 bzip2 -k 原始檔 壓縮只之後保留原始檔 注意:bzip2命令不能壓縮目錄 解壓縮命令 bzip2 -d 壓縮檔名 解壓縮 -k 保留壓縮檔案 或者 bunzip2 壓縮檔案 解壓縮 -k 保留壓縮檔案 打包命令tar 將目錄打包為.tar 檔案 然後就可以用bzip 或者bzip2 命令進行壓縮 tar -cvf 打包檔名 原始檔 選項: -c :打包 -v:顯示過程: -f:指定打包後的檔名 例如: tar -cvf laixiaoxing.tar lxx 解打包命令 tar -xvf 已打包檔名 -x 解打包 快捷打包壓縮 tar -zcvf 壓縮包名.tar.gz 原始檔 -z:壓縮為.tar.gz 格式 補充:實際上是先打包為.tar格式,再壓縮為.gz格式 tar -zxvf 壓縮包名.tar.gz -x :解壓縮.tar.gz格式 tar -jcvf 壓縮包名 .tar.bz2 原始檔 -j:壓縮為.tar.bz2格式 tar -jxvf 壓縮包名.tar.bz2 -x:解壓縮.tar.bz2格式 壓縮多個檔案的方法 只需要再原始檔後面再加個空格再加原始檔就行了 例如 tar -zcvf /tmp/test.tar.gz jp anaconda-ks.cfg 檢視壓縮包內容 但是不解壓 tar -ztvf 壓縮包檔案 -t 即是test 可以檢視裡面的內容 八:linux的關機與重啟命令 date命令 可以檢視系統當前時間 shutdown 命令 shutdown 【選項】【時間】 -c 取消前一個關機命令 -h 關機 -r 重啟 時間處如果寫now 就是立刻生效 shutdown -r 05:30 這是意思在05:30分的時候重啟 但是一旦執行這個命令 控制檯會一直在等 將無法進行其他操作 按ctrl+c可以中止該命令 所以要讓這個命令在後臺執行 shutdown -r 05:30 & 此時想終止了 shutdown -c 即可 其他關機命令: halt poweroff init 0 不建議用 其他重啟命令 reboot init 6 系統執行級別: 0關機 1單使用者 類似windows的安全模式 2不完全多使用者,不含FNFS服務 普通字元介面 3完全多使用者 一般啟動的就是3 4未分配 5圖形介面 6重啟 檢視當前系統的執行級別 runlevel 會顯示 上一級別 當前級別 如果是N 則表示空 3 cat /etc/inittab 進入系統啟動配置檔案 修改系統預設執行級別 id:3:initdefault 將3改成5就是圖形介面 前提是安裝了 也可以改成以上的除了0和6之外的選項 linux可以同時允許登陸256個使用者,一定要正確退出,不然就會佔掉一個位置 windows則差距太遠 windowsserver2003只允許同時登陸2個 2008 4個或者8個 退出登陸命令: logout 九:linux的掛載命令 在linux中所有儲存裝置 光碟 U盤等等都需要先掛載才能用 掛載命令 mount 檢視系統中已掛載的裝置 /dev/sda5 on / type ext4 (rw) dev目錄儲存的硬體裝置 s表示sici介面 a表示第一個硬碟 b表示第二個 依次類推 5代表的是第一個邏輯分割槽 1234表示主分割槽 一個硬碟最多1個主分割槽 意思是sda5是/目錄 自動掛載 mount -a 根據配置檔案 /etc/fstab的內容 自動掛載 掛載命令格式 mount [-t 檔案系統] [-o 特殊選項] 裝置檔名 掛載點 (掛載點 是已經存在的空目錄) 選項: -t 檔案系統:加入檔案系統型別來指定掛載的型別 可以ext3 ext4 iso9660(這個是光碟型別)等檔案系統 在centOS6以上的版本上 ext4是預設 -o 特殊選項:可以指定掛載的額外選項 -o的特殊選項引數有如下: atime/noatime 更新訪問時間/不更新訪問時間 預設為更新 async/sync 非同步/同步 預設為非同步 defult 定義預設值 相當於這裡所有的預設值 auto/noauto 自動/手動 mount -a 命令執行時,是否自動安裝/etc/fstab檔案內容掛載 預設為自動 exec/noexec 執行/不執行 設定是否允許在檔案系統中執行可執行檔案 預設是exec允許 remount 重新掛載已經掛載的檔案系統 一般用於指定修改特殊許可權(因為修改完後需要重新掛載才會生效) rw/ro 讀寫/只讀 檔案系統掛載時,是否具有讀寫許可權 預設我rw suid/nosuid 具有/不具有suid許可權 預設是具有 user/nouser 允許/不允許 普通使用者掛載 設定檔案系統是否允許普通使用者掛載 預設是不允許 只有root可以掛載分割槽 usrquota 寫入代表檔案系統支援使用者磁碟配額 。預設是不支援 grpquota 寫入代表檔案系統支援組磁碟配額 預設是不支援 一般在linux中#是註釋 但是 在指令碼中 #!/bin/bash 這個#是表示之後的是指令碼命令 這個必須寫! 不然不是純的linux 指令碼比如包含複雜腳步 就執行不了 例如在home目錄下 vi hello.sh 進入之後 #!/bin/bash echo "hello word" :wq儲存退出 chmod 755 hello.sh 賦予755許可權 即-rwxr-xr-x 也就是111101101 一定要賦予許可權 不然不能執行 然後用 ./hello.sh呼叫 或者 /home/hello.sh 呼叫 就可以輸出hello word 如果輸入命令 mount -o remount,noexec /home/ 再執行hello.sh 則會許可權不夠 哪怕你是root 且檔案有執行許可權
df 檢視掛載的盤
linux的管理員是root 而非adminstrator [root@localhost~ ]#
root 當前登入的使用者
locahost 主機名 和windows不同點在於 同一個區域網絡下主機名可以相同 windows則不可以
~當前所在的目錄(家目錄) 超級使用者是在root 普通使用者在home
#超級使用者的提示符號 普通使用者則是$提示 pwd可以檢視當前所在的目錄
cd 切換目錄 cd/usr/local/src 就切換到了src目錄下 命令的格式: 命令【選項】【引數】
選項是可以任選的 用來調整命令的的功能 多個選項可以寫在一起 比如 ls -al 顯示所有檔案的和其詳細資訊
簡化選項 用- 完整選項-- 比如 -a與--all都是一樣的功能 顯示當前目錄下的所有檔案 包括隱藏檔案
注意:選項不能單獨使用 必須和命令一起
比如顯示當前目錄下的所有檔案 ls -a 而不能直接-a 注意!!老問題 Is command not found 報錯 是因為 ls而非Is L的小寫 而非i的大寫 新手常見錯誤 查詢目錄中的內容 ls 也注意 !linux中區分大小寫!!
ls [選項][檔案或者目錄] 如果省略檔案或者目錄 則預設是使用者當前所在的目錄
ls -a :顯示所有檔案 包括隱藏檔案 在linux中 開頭是.的檔案都是隱藏檔案 隱藏檔案可以輕易的查詢到不管是linux還是windows 隱藏檔案一般是系統檔案 以免被誤操作
ls -l 顯示詳細資訊 會顯示:檔案許可權 引用計數(表示被呼叫的次數) 所有者 所屬組 檔案大小 最後一次的修改時間 檔名
Is -d 檢視目錄屬性
Is -h 人性化顯示檔案大小 比如把1200直接顯示為1.2k
ls -i 顯示inode inode 即是檔案的ID號 每個檔案都有一個id號 系統查詢的時候通過id號查詢檔案 這個命令顯示檔案的id號 linux中的許可權: 預設是10位 第一位程式碼檔案型別 linux沒有拓展名這種東西 只能靠第一位來表示檔案型別 只有7種
在linux中一切皆是檔案 包括硬體!
常見 的三種 如果第一位是- 表示是個普通檔案 d表示目錄 |軟連結檔案(快捷方式)
系統的四種 塊裝置檔案 套接字檔案 字元裝置檔案 管道檔案 /dev目錄下的就是硬體裝置檔案 除了第一位之外 剩下的9位 每三位為一組 分別是 u 所有者 g所屬組 o 其他人 比如 使用者組 同一個使用者組裡許可權一樣
r讀 w寫 x執行 二,檔案處理命令
2.1.目錄處理命令 目錄是也是檔案 目錄檔案 類似windos中資料夾的概念 1.建立目錄mkdir 英文意思:make directories
mkdir -p 【目錄名】
-p 是遞迴建立 比如要建立nchu下面的lxx 而且當前沒有nchu這個目錄的時候 就要mkdir -p nchu/lxx 注意:用ls查詢的時候 子目錄是不會顯示出來的 需要用cd命令進去 2.切換所在目錄:cd
cd【目錄】 英文意思 change directory
cd ~ 或者cd 入當前使用者的家目錄(即使使用者登陸所在的目錄) ps:補充 ctrl + l 清屏
cd - 回到上次的目錄
cd .. 進入上級目錄
cd . 進入當前目前 (等於沒有動) 相對路徑:參照當前所在目錄 進行查詢 比如 [root@localhost ~]# cd ../usr/local/src/ (..進入上級目錄)
絕對路徑:參照根目錄 一級一級的查詢 linux的根目錄是root 也就是超級使用者的家目錄 tab 可以按兩下 進行目錄補全和目錄補全 比如cd / 按兩下tab 可以列出所有當前目錄下的目錄和檔案 3.刪除空目錄
rmdir 英文意思:remove empty directories
只能刪除空目錄! 比如刪除之前的lxx 不能刪除nuch 裡面有laixiaoxing 這個目錄 所以非空
所以用的比較少 常見的是 rm -rf 英文意思:remove
rm 可以直接刪除檔案 但是如果要刪除目錄 需要加上r選項 比如 rm -r (但是刪的時候每個檔案都問一次yes or no)
rm -rf 可以強制刪除目錄和檔案 選項f是強制刪除 注意!! 如果使用了 rm -rf / 會把根目錄的東西全部刪掉 這是讓linux 自殺 linux的root是真的root 許可權非常高 幾乎到頂
注意!!! rm -rf /tmp/ 是刪除這個系統目錄 tmp是臨時檔案的目錄 會造成一定影響
rm -rf /tmp/* 是刪除這個目錄下面的所有檔案
linux 刪除一定要小心 4.複製命令
cp 英文copy
cp 【選項】【原檔案或者目錄】【目標目錄】
選項:
-r 複製目錄
-p 連帶檔案屬性複製
-d 若原始檔是連結檔案 則複製連結屬性
-a 相當於 -pdf 如果加了-a選項 複製的檔案或者目錄將與原始檔和目錄一模一樣 包括時間 但是i節點不一樣 !! 與硬連結有區別 可以在進行復制的時候對檔案進行改名
cp annaconda-ks.cfg /tmp/ana 則是將 annaconda-ks.cfg 複製到了tmp目錄下 且檔名為ana (注意 linux下沒有後綴名這說法) 5.剪下或者改名命令:mv 命令英文願意:move
格式: mv 【原檔案或者目錄】【目標目錄】 將檔案剪下到另一個目錄中去 注意:在剪下檔案和目錄的時候都不需要 加-r 改名的用法:原始檔所在目錄和目標目錄在同一個目錄下 就是改名 linux通過這種方法給檔案改名
三,linux常見目錄的作用 在掛載的時候 第一塊盤叫sda 第二塊叫sdb 依次類推
第一塊盤的 第一個邏輯分割槽 叫sda1 第二個邏輯分割槽 sda2 等等
第二塊盤的邏輯分割槽依次叫sdb1 sdb2 等等 cd / 即可到根目錄下 ls可以列出所有目錄 常見目錄 以及作用
/根目錄
/bin 命令儲存目錄(普通使用者就可以讀取的命令)
根目錄下的bin和sbin 與usr目錄下的bin和sbin 這四個目錄都是用來儲存作業系統命令的
sbin 裡面的命令 只有超級使用者可以執行
/sbin
/usr
/boot 啟動目錄 啟動相關檔案
/dev 裝置檔案儲存目錄 特殊檔案儲存 裡面都是硬體檔案
/etc 配置檔案儲存目錄
/home 普通使用者的家目錄
/lib 系統庫的儲存目錄 以下三個是空目錄 用來掛載裝置 掛載類似於分配碟符 只要是空目錄都可以 包括自己建的
/mnt 系統掛載目錄 掛載移動U盤 老式的linux中只有這個
/media 掛載目錄 掛載光碟
/misc 掛載目錄 掛載磁帶機 /root 超級使用者的家目錄 不代表是根目錄
/tmp 臨時目錄 儲存臨時資料
/sbin 命令儲存目錄(超級使用者才能使用的目錄) /proc 直接寫入記憶體的 這兩個不能直接操作 是記憶體的掛載點 也就是記憶體的掛載點
/sys
/usr 系統軟體資源目錄
/usr/bin/系統命令(普通使用者)
/usr/sbin/系統命令(超級使用者)
/var 系統相關文件內容 可以在家目錄root或者home 下 以為tmp 中隨便玩 其他檔案不能隨便改
四:連結命令
ln 英文意思 link 功能描述 生成連結檔案
ln -s [原檔案][目標檔案]
選項 : -s 建立軟連結 硬連結:1.擁有相同的i節點和儲存bloock塊 可以看作是同一個檔案 2.可通過i節點識別 3.不能跨分割槽 4.不能針對目錄使用 硬碟的分割槽:分為資料塊 索引表 索引表中有檔案的id號
如果檔案a與檔案b 與索引表中的id號都相同 那就是這兩個檔案是硬連結 也就是是同一個檔案 即使檔名不一樣 檔名就算不一樣 檔案也是一樣的 包括i節點
即使建立硬連結後 刪除了其中一任何一個檔案 另一個不會受影響 vi 編輯器開啟某個檔案 vi 【路徑+檔名】
比如:vi /tmp/ana.hard
修改:
:w 儲存檔案但不退出vi
:w file 將修改另外儲存到file中,不退出vi
:w! 強制儲存,不推出vi
:wq 儲存檔案並退出vi
:wq! 強制儲存檔案,並退出vi
q: 不儲存檔案,退出vi
:q! 不儲存檔案,強制退出vi
:e! 放棄所有修改,從上次儲存檔案開始再編輯 軟連結:
1.類似windows快捷方式
2.軟連結擁有自己的i節點和block塊,但是資料塊中只儲存原檔案的路徑和檔名,沒有實際的檔案資料
3.lrwxrwxrwx l軟連結 rwx讀寫執行 三個許可權
軟連結的檔案許可權都是rwxrwxrwx (那就是777許可權111 111 111) 雖然顯示的是777但是實際上檔案許可權取決於原檔案
4.修改任意檔案,另一個都改變
5.刪除原檔案 軟連結不能使用 注意!! 軟連結 如何原檔案刪除或者移動了位置 就不能用了 但是windows上移動原檔案 不會有影響
注意!! 建立軟連結 的時候路徑 一定要寫絕對路徑 如果不寫絕對路徑 只會在當前目錄尋找原檔案 找不到就會閃爍報錯 五:檔案搜尋命令
1.檔案搜尋命令 locate
格式: locate 檔名
touch 是建立一個新檔案 touch lxx 在當前目錄建立了一個lxx檔案
比如locate .log 既可以搜尋到所有帶這個檔名的檔案 並不僅限於在當前資料夾尋找
locate不能搜尋到最新的資料 因為locate是搜尋 /var/lib/mlocare 這個後臺資料庫 所以會非常快 但是這個資料庫是一天一更新 而非時刻更新 所以不能搜尋到最新的檔案
但是 可以用updatedb 這個命令強制更新下資料庫 再查詢 則可以找到了 locate的缺點是隻可以按照檔名來搜尋 (類似是模糊查詢) 優點是快
注意!!! locate是按照 etc/updatedb.conf 配置檔案來進行搜尋 在配置檔案中設定了一堆不搜尋的目錄 比如tmp u盤 .svn .git等等
所以即使在tmp中有符合條件的檔案 也不會搜尋出來 配置檔案有三個命令分別如下
PRUNE_BIND_MOUNTS="yes" 是否生效配置 yes為生效 no不生效
PRUNEFS=#搜尋時,不搜尋的檔案系統
PRUNENNAMES=#搜尋時 不搜尋的檔案型別
PRUNEPATHS=#搜尋時,不搜尋的路徑 2.搜尋命令的命令 whereis
用來搜尋命令檔案所在的位置
比如 whereis ls 就可以找到ls命令所在的檔案位置 類似的命令還有 whoami 檢視我是誰
whatis ls 檢視ls命令是幹嘛的 注意:只能whereis 只能查詢系統命令 普通檔案是不能找到的
另外: whereis 會把這個命令的可執行檔案和幫助文件都找出來
如果是加了選項
-b 只查詢可執行檔案 一般都在bin或者sbin裡面
-m只查詢幫助檔案 which 會看到命令所在位置和這個命令的別名 前提是有別名 注意:shell自帶的命令 用whereis 或者whichis是找不到的 比如cd 補充:在linux中可執行檔案必須要寫絕對路徑才能執行 但是這樣很麻煩 每次都要輸入那麼多的東西 因此有了環境變數$PATH 用於簡化使用者的操作環境
$PATH 在上面定義了路徑 就可以不用打絕對路徑 這個跟windows都是一樣的 注意!用echo $PATH可以檢視到 必須是$PATH 小寫是不支援的 3.linux最強大的命令 find命令
find [搜尋範圍][搜尋條件]
#搜尋檔案 find / -name install.log 這個範圍搜尋會非常慢 耗費大量系統資源 搜了整個根 這個只會搜尋的install.log 這個檔案 而非是模糊查詢 除非使用萬用字元
#避免大範圍搜尋 會非常耗費系統資源
#find是在系統當中搜尋符合條件的檔名,如果需要匹配,使用萬用字元匹配,萬用字元是完全匹配 萬用字元: * 匹配任意內容 ? 匹配任意一個字元 [ ] 匹配任意一箇中括號內的字元 find /root -name "install.log *" 表示在root目錄下搜包含install.log的檔案 find /root -name "*[cd]" 表示搜尋所有以c或者d結尾的檔案 注意:不加萬用字元 就是完全匹配 要一模一樣才行 find /root -iname install.log -iname是不區分大小寫的完全匹配 find /root -user root 搜尋所有者是root的檔案 -user是按所有者搜尋 find user 按所有者查詢檔案 find /root -nouser 查詢沒有所有者的檔案 (外來檔案 以及核心產生的檔案 以及垃圾檔案 都是沒有所有者的) -mtime 選項 按時間查詢檔案 比如 find /var/log/ -mtime +10 查詢/var/log/目錄 下 10天前修改的檔案 -10 10天內修改的檔案 10 10天當天修改的檔案 +10 10天前修改的檔案 atime 檔案訪問的時間 ctime 改變檔案屬性的時間 mtime 修改檔案內容的時間 find . -size 25k 按大小查詢 查詢在當前目錄下大小是25K的檔案 .表示當前目錄 -25k 小於25k +25k 大於25k 這個k是小寫 也可以按M查詢 M是大寫 注意 如果按照大小查詢的時候 不帶單位 則是以資料塊為單位 按照i節點搜尋檔案 find /root -inum 262421 查詢在root目錄下 i節點是262421的檔案 邏輯選項 -a 英文and 邏輯與 兩個條件都滿足 -o 英文or 邏輯或 兩個條件滿足一個即可 find /etc -size +20k -a -size -50k 查詢/etc目錄下 大於20kb並且小於50kb的檔案 補充:-exec/-ok 命令 {} \; 對搜尋結果進行操作 如果是-ok 命令 {} \; 則會有不斷的問y 或者n 比如 find /etc -size +20k -a -size -50k -exec ls -lh {} \; 查詢/etc目錄下 大於20kb且小於50kb的檔案 並顯示詳細資訊 4.grep命令 grep [選項] 字串 檔名 在檔案當中匹配符合條件的字串 。 是在檔案裡面進行查詢匹配 查詢檔案裡面的內容 包含這個字串的內容 選項: -i 忽略大小寫 -v 排除指定字串 比如 grep ”size“ install.log 則是在install.log裡面把所有包含size的字串 整個列出來 find命令:在系統當中搜尋符合條件的檔名,如果需要匹配,使用萬用字元匹配 萬用字元是完全匹配 grep命令:在檔案當中搜尋符合條件的字串,如果需要匹配,則使用正則表示式進行匹配,正則表示式時包含匹配 即是會把包含這個字串的都列出來 六:幫助命令 man 命令名 英文意思 manual 文件 比如 man ls 進入幫助文件 在幫助文件中 可以按上下方向鍵移動 也可以按n鍵下移 shift+n 上移 如果要確定找某個選項 只需要按/ + -選項名 比如 /-d 則會查詢-d選項 按 q是退出 幫助文件 man的級別 可以通過man man檢視到 1:檢視命令的幫助 2:檢視可被核心呼叫的函式的幫助 3:檢視函式和函式庫的幫助 4:檢視特殊檔案的幫助(主要是/dev目錄下的檔案) 5:檢視配置檔案的幫助 6:檢視遊戲的幫助 7:檢視其他雜項的幫助 8:檢視系統管理員可用命令的幫助 9:檢視和核心相關檔案的幫助 (這個未必存在 ) man -f 命令 檢視命令的幫助級別 與whatis有異曲同工之妙 輸出是一模一樣的 舉例 man -f passwd 會看到passwd命令有1和5兩個幫助級別 用 man 5 passwd 可以檢視到passwd的命令配置檔案資訊 比如 man -4 null man -8 ipconfig 如果一個命令有多個等級號 需要手動指定等級 否則預設開啟的是最小的那個等級號的幫助 man -k 命令 可以檢視到所有包含該命令名的幫助內容 其他幫助命令 比如 --help ls --help shell linux的命令直譯器作用 使用者與計算機互動的介面 help shell 獲取shell命令幫助 whereis ls 只要能找到命令可執行檔案在哪 就不是shell自帶的命令 help cd 檢視cd的幫助文件 注意!!!help 只能獲取內部命令的幫助 比如cd ls這種非shell自帶的命令是不行的 info 也可以獲取幫助 比如 info ls 但是info 命令進去的是一個大的幫助文件 info ls 是進入了這個文件並定位到了ls 這個小節的內容 info命令 -回車:進入子幫助頁面(帶有*號標記) -u:進入上層頁面 -n:進入下一個幫助小節 -p:進入上一個幫助小節 -q:退出 七:壓縮與解壓縮命令 windows下的常用壓縮格式: .zip .gz .bz2 .rar .7z linux 下的常用壓縮格式: .zip .tar.gz .tar.bz2 .zip 在兩個系統上都是通用的 命令格式 zip 壓縮檔名 原始檔 注意!!壓縮檔名可以不是一定要用.zip結尾 因為linux不是以拓展名識別檔案 軟體包 常用的在linux中都是用紅顏色表示 壓縮目錄的方式 zip -r 壓縮檔名 源目錄 ps:加上選項引數 -r 就可以壓縮目錄檔案 解壓縮命令 unzip 解壓縮.zip檔案 linux中的典型壓縮格式 .gz 與windows不通用 但是可以在windows下解壓縮 但是windows下的壓縮格式rar 不能在linux下不能解壓縮 gzip 原始檔 壓縮為.gz格式的壓縮檔案 原始檔會消失 會自動生成一個原始檔名.gz的壓縮檔案 gzip -c 原始檔 >壓縮檔案 壓縮為.gz格式 原始檔保留 例如: gzip -c cangls > cangls.gz 這個是用了輸出重定向 是把命令的結果輸出到指定檔案 比如 ls >aaa 這時候把ls命令的結果輸出到了aaa檔案中 用cat命令檢視aaa檔案內容 cat aaa 可以看到 gzip -r 目錄 壓縮目錄下所有的子檔案 但是不能壓縮目錄 解壓縮命令 gunzip 壓縮檔名 或者 gzip -d 壓縮檔名 解壓縮目錄 gunzip -r 目錄名 .bz2格式壓縮 bzip2 原始檔名 壓縮為 .bz2格式 不保留原始檔 bzip2 -k 原始檔 壓縮只之後保留原始檔 注意:bzip2命令不能壓縮目錄 解壓縮命令 bzip2 -d 壓縮檔名 解壓縮 -k 保留壓縮檔案 或者 bunzip2 壓縮檔案 解壓縮 -k 保留壓縮檔案 打包命令tar 將目錄打包為.tar 檔案 然後就可以用bzip 或者bzip2 命令進行壓縮 tar -cvf 打包檔名 原始檔 選項: -c :打包 -v:顯示過程: -f:指定打包後的檔名 例如: tar -cvf laixiaoxing.tar lxx 解打包命令 tar -xvf 已打包檔名 -x 解打包 快捷打包壓縮 tar -zcvf 壓縮包名.tar.gz 原始檔 -z:壓縮為.tar.gz 格式 補充:實際上是先打包為.tar格式,再壓縮為.gz格式 tar -zxvf 壓縮包名.tar.gz -x :解壓縮.tar.gz格式 tar -jcvf 壓縮包名 .tar.bz2 原始檔 -j:壓縮為.tar.bz2格式 tar -jxvf 壓縮包名.tar.bz2 -x:解壓縮.tar.bz2格式 壓縮多個檔案的方法 只需要再原始檔後面再加個空格再加原始檔就行了 例如 tar -zcvf /tmp/test.tar.gz jp anaconda-ks.cfg 檢視壓縮包內容 但是不解壓 tar -ztvf 壓縮包檔案 -t 即是test 可以檢視裡面的內容 八:linux的關機與重啟命令 date命令 可以檢視系統當前時間 shutdown 命令 shutdown 【選項】【時間】 -c 取消前一個關機命令 -h 關機 -r 重啟 時間處如果寫now 就是立刻生效 shutdown -r 05:30 這是意思在05:30分的時候重啟 但是一旦執行這個命令 控制檯會一直在等 將無法進行其他操作 按ctrl+c可以中止該命令 所以要讓這個命令在後臺執行 shutdown -r 05:30 & 此時想終止了 shutdown -c 即可 其他關機命令: halt poweroff init 0 不建議用 其他重啟命令 reboot init 6 系統執行級別: 0關機 1單使用者 類似windows的安全模式 2不完全多使用者,不含FNFS服務 普通字元介面 3完全多使用者 一般啟動的就是3 4未分配 5圖形介面 6重啟 檢視當前系統的執行級別 runlevel 會顯示 上一級別 當前級別 如果是N 則表示空 3 cat /etc/inittab 進入系統啟動配置檔案 修改系統預設執行級別 id:3:initdefault 將3改成5就是圖形介面 前提是安裝了 也可以改成以上的除了0和6之外的選項 linux可以同時允許登陸256個使用者,一定要正確退出,不然就會佔掉一個位置 windows則差距太遠 windowsserver2003只允許同時登陸2個 2008 4個或者8個 退出登陸命令: logout 九:linux的掛載命令 在linux中所有儲存裝置 光碟 U盤等等都需要先掛載才能用 掛載命令 mount 檢視系統中已掛載的裝置 /dev/sda5 on / type ext4 (rw) dev目錄儲存的硬體裝置 s表示sici介面 a表示第一個硬碟 b表示第二個 依次類推 5代表的是第一個邏輯分割槽 1234表示主分割槽 一個硬碟最多1個主分割槽 意思是sda5是/目錄 自動掛載 mount -a 根據配置檔案 /etc/fstab的內容 自動掛載 掛載命令格式 mount [-t 檔案系統] [-o 特殊選項] 裝置檔名 掛載點 (掛載點 是已經存在的空目錄) 選項: -t 檔案系統:加入檔案系統型別來指定掛載的型別 可以ext3 ext4 iso9660(這個是光碟型別)等檔案系統 在centOS6以上的版本上 ext4是預設 -o 特殊選項:可以指定掛載的額外選項 -o的特殊選項引數有如下: atime/noatime 更新訪問時間/不更新訪問時間 預設為更新 async/sync 非同步/同步 預設為非同步 defult 定義預設值 相當於這裡所有的預設值 auto/noauto 自動/手動 mount -a 命令執行時,是否自動安裝/etc/fstab檔案內容掛載 預設為自動 exec/noexec 執行/不執行 設定是否允許在檔案系統中執行可執行檔案 預設是exec允許 remount 重新掛載已經掛載的檔案系統 一般用於指定修改特殊許可權(因為修改完後需要重新掛載才會生效) rw/ro 讀寫/只讀 檔案系統掛載時,是否具有讀寫許可權 預設我rw suid/nosuid 具有/不具有suid許可權 預設是具有 user/nouser 允許/不允許 普通使用者掛載 設定檔案系統是否允許普通使用者掛載 預設是不允許 只有root可以掛載分割槽 usrquota 寫入代表檔案系統支援使用者磁碟配額 。預設是不支援 grpquota 寫入代表檔案系統支援組磁碟配額 預設是不支援 一般在linux中#是註釋 但是 在指令碼中 #!/bin/bash 這個#是表示之後的是指令碼命令 這個必須寫! 不然不是純的linux 指令碼比如包含複雜腳步 就執行不了 例如在home目錄下 vi hello.sh 進入之後 #!/bin/bash echo "hello word" :wq儲存退出 chmod 755 hello.sh 賦予755許可權 即-rwxr-xr-x 也就是111101101 一定要賦予許可權 不然不能執行 然後用 ./hello.sh呼叫 或者 /home/hello.sh 呼叫 就可以輸出hello word 如果輸入命令 mount -o remount,noexec /home/ 再執行hello.sh 則會許可權不夠 哪怕你是root 且檔案有執行許可權