1、命令提示符
[root@localhost ~]#
root: 當前登入的使用者
localhost: 主機名(linux不同於windows,主機名可以相同)
~: 當前所在目錄(~代表家目錄)
#: 超級使用者的提示符
$: 普通使用者的提示符
2、命令格式
命令 [選項] [引數]
個別命令使用不遵循此格式
當有多個選項時,可以寫到一起
簡化選項與完整選項 -a 等於 --all
選項作用是調節命令的功能
3、ls
查詢目錄中的內容
ls [選項] [檔案或目錄]
- 選項
-a 顯示所有檔案,包括隱藏檔案
-l 顯示詳細資訊
-d 檢視目錄屬性
-h 人性化顯示檔案大小
-i 顯示inode
- 注意
不加檔案或目錄,顯示當前目錄
ll
命令是ls -l
的簡化所以以點開頭的檔案都是隱藏檔案
-d 檢視當前目錄的有關屬性,即./
-i 檢視檔案儲存的i節點號
- ll返回資訊含義
總用量 4
-rw-------. 1 root root 1541 6月 15 00:39 anaconda-ks.cfg
-rw-------: 代表檔案或目錄的許可權
.: ACL許可權
1: 引用計數
root: 檔案或目錄所有者
root: 檔案或目錄所屬組
1541: 檔案大小,單位位元組b
6月 15 00:39: 最後一次檔案或目錄修改時間
- 許可權表示方式
目錄也是檔案,可以叫目錄檔案
1、mkdir
建立目錄
mkdir -p [目錄名]
-p 遞迴建立
英文: make directories
2、cd
切換所在目錄
cd [目錄]
- 注意
英文: change directories
ctrl+l
: 清屏
- 簡化操作
cd ~
或者cd
: 進入當前使用者的家目錄
cd /
: 返回根
cd ..
: 進入上一級目錄
cd -
: 進入上一次目錄
- Tab鍵
補全命令或者路徑
3、pwd
查詢所在目錄位置
pwd
print working directory
4、rmdir
刪除空目錄
rmdir [目錄名]
remove empty directories
基本不用這個命令,用下一個
5、rm
刪除檔案或者目錄
rm -rf [檔案或目錄]
-r 刪除目錄
-f 強制
英文: remove
- 注意
這個命令很危險,字元介面linux是沒有回收站的,刪了就沒啦
rm -rf /
: 終結命令,這是原子彈,用了就gameover啦
6、cp
複製命令
cp [選項] [原檔案或目錄] [目標目錄]
- 選項
-r 複製目錄,不加則複製檔案
-p 連帶檔案屬性複製(檔案時間問題)
-d 若原檔案是連結檔案,則複製連結屬性
-a 相當於 -pdr
英文: copy
- 注意
如果目標檔案有檔名則改名複製,否則原名複製
7、mv
剪下或改名命令
mv [原檔案或目錄] [目標目錄]
move
- 注意
mv命令不需要加-r,預設支援檔案和目錄的移動
如果目標目錄加檔名,則實現改名移動
8、touch
新建空檔案
touch [檔名]
在當前目錄新建
9、常用目錄作用
- /
根目錄
- /bin 和 /sbin
根目錄下的bin和sbin,usr目錄下的bin和sbin,這四個目錄都是用來儲存系統命令的
bin目錄下的命令是任何使用者都可以執行,sbin目錄下的命令只有超級使用者可以執行
- /boot
啟動目錄,存放啟動和引導檔案
- /dev
特殊檔案儲存目錄,儲存硬體檔案等
- /etc
放配置檔案的目錄
- /home
普通使用者的家目錄
- /root
超級使用者的家目錄
- /lib
存放linux函式庫的位置
- /media
外接光碟掛載空目錄
- /misc
磁外接掛載空目錄
- /mnt
U盤、行動硬碟外接掛載空目錄
- /proc 和 /sys
這兩個目錄儲存的是記憶體的掛載點,所以不能直接操作,因為記憶體有限,且重啟資料丟失
- /tmp
臨時目錄
- /usr
系統軟體資源目錄
- /var
系統可變文件目錄
1、ln
生成連結檔案
ln -s [原檔案] [目標檔案]
- 選項
-s 建立軟連結
英文: link
- 硬連結
擁有相同的i節點和儲存block塊,可以看做是同一個檔案
可以通過i節點識別
不能跨分割槽
不能針對目錄使用
我的理解是:在相同分割槽儲存空間建立兩個檔案,指向同一個索引
區別太小,限制太多,不建議使用
- 軟連結
類似windows快捷方式
軟連結擁有自己的i節點和block塊,但是資料塊中只儲存原檔案的路徑和i節點,並沒有實際的檔案資料
lrwxrwxrwx l為軟連結 且軟連結檔案許可權都為rwxrwxrwx
修改任意檔案,另一個都改變
刪除原檔案,軟連結不能使用
重點:軟連結原檔案必須寫絕對路徑
1、locate
檔案搜尋命令
locate [部分檔名]
locate是從
/var/lib/mlocate
資料庫中進行搜尋,find是遍歷整個資料夾,所以find比較耗費資源,當然也就比較慢locate不能馬上搜尋到新建的檔案,因為
/var/lib/mlocate
資料庫是一天一更新locate是搜尋的是資料庫,所以預設根據公共配置檔案搜尋全部檔案
不同的linux版本的locate資料庫名字可能不同
缺點是隻能按照檔名搜尋
- 公共配置檔案
/etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes"
# 開啟搜尋限制
PRUNEFS = "..."
# 搜尋時,不搜尋的檔案系統
PRUNENAMES = "..."
# 搜尋時,不搜尋的檔案型別(副檔名)
PRUNEPATHS = "..."
# 搜尋時,不搜尋的路徑
2、updatedb
更新locate資料庫
updatedb
預設全域性更新
3、whereis
搜尋命令所在路徑及幫助文件所在位置
whereis [命令名]
-b 只查詢可執行檔案
-m 只查詢幫助檔案
4、which
搜尋命令所在路徑及命令的別名
which [命令名]
為什麼ls會有顏色,通過
which ls
可以看到ls的別名是ls --color=auto
,原因就是這個color等於auto
- whereis和which的注意事項
不是所有的命令都能通過這兩個命令找到,比如cd,原因是cd是linux中shell的內建命令
shell初步認為是字元介面
因此上述兩個命令只能找外部安裝的命令
- 檢視PATH環境變數
echo $PATH
5、find
強大的搜尋命令
find [搜尋範圍] [搜尋條件]
- 根據檔名搜尋
find /root -name install.log
避免大範圍搜尋,尤其是線上上,非常耗費資源
檔名搜尋預設完全匹配
要想實現模糊查詢,請加萬用字元,且檔名用雙引號括起來
萬用字元
* 匹配任意內容
? 匹配任意一個字元
[] 匹配任意一箇中括號內的字元
- 根據檔名搜尋(不區分大小寫)
find /root -iname install.log
其它情況同上一個
- 根據檔案所有者搜尋
find /root -user root
- 查詢沒有所有者的檔案(垃圾檔案)
find /root nouser
沒有所有者的檔案是垃圾檔案,可以清理
注:核心生成的檔案和外來檔案是沒有所有者的,這不是垃圾檔案
- 根據檔案時間搜尋
find /var/log -mtime +10
- 檔案時間條件
atime 檔案訪問時間
ctime 修改檔案屬性時間
mtime 修改檔案內容時間
- 時間條件,預設天
-10 10天內修改的檔案
10 10天當天修改的檔案
+10 10天前修改的檔案
- 根據檔案大小搜尋
find . size 25k
-25k 小於25KB的檔案
25k 等於25KB的檔案
+25k 大於25KB的檔案
- 注意
.: 代表當前目錄
預設單位是一個扇區,不要用
千位元組小寫k
兆位元組大寫M
- 根據i節點搜尋
find . -inum 262422
這個命令與
ls -i
配合使用
- 根據檔案大小搜尋(與或運算)
find /etc -size +20k -a -size -50k
上面代表搜尋/etc下大於20k且小於50k的檔案
-a and 與運算
-o or 或運算
- 對搜尋結果執行操作
find /etc -size +20k -a -size +50k -exec ls -lh {} \;
搜尋到內容,並顯示詳細資訊
-exec 命令 {} \;
,此為固定格式,對搜尋結果執行操作
- 一個刪除操作
find /root -name "cangls*" -exec rm -rf {} \;
6、grep
在檔案中匹配符合字串的行,並列出
grep [選項] 字串 檔名
-i 忽略大小寫
-v 排除指定字串,取反
7、grep與find的區別
- find命令: 在系統當中搜尋符合條件的檔名,如果需要匹配,使用萬用字元匹配,萬用字元是完全匹配
- grep命令: 在檔案當中搜尋符合條件的字串,如果匹配,使用正規表示式進行匹配,正規表示式時包含匹配
1、man
獲取指定命令的幫助格式
man [命令]
英文: manual
返回格式裡的NAME: 是命令的作用解釋
返回格式裡的SYNOPSIS: 是命令的格式
命令幫助主要是OPTION的相關解釋
OPTION一般包含簡和全兩種格式
- 篩選資訊
... ...
/OPTION
例如:
... ...
/-d
以上會篩選出含有-d的OPTION選項
n
鍵向下跳,shift+n
向上跳
- man的級別
1: 檢視命令的幫助
2: 檢視可被核心呼叫的函式的幫助
3: 檢視函式和函式庫的幫助
4: 檢視特殊檔案的幫助(主要是/dev目錄下的檔案)
5: 檢視配置檔案的幫助
6: 檢視遊戲的幫助
7: 檢視其它雜項的幫助
8: 檢視系統管理員可用命令的幫助
9: 檢視和核心相關檔案的幫助(這個好像取消掉了)
例如:
man ls
返回:
LS(1) User Commands LS(1)
... ...
上面的LS(1)就是命令的幫助
- 檢視命令有哪些級別的幫助
man -f 命令
或者:
whatis 命令
- 檢視具體級別的幫助(預設最小級別)
man 級別數字 命令
例如:
man 5 passwd # 檢視passwd的配置幫助
man 4 null # 檢視null特殊檔案的幫助,null相當於黑洞
man 8 ifconfig # 檢視ip配置幫助
- 檢視與命令相關的所有命令的幫助(相當於模糊搜尋)
man -k 命令
或者:
apropos 命令
例如:
apropos passwd
這個適用於忘了命令全名,但能記得一部分字元
2、--help
獲取命令的選項幫助
命令 --help
例如:
ls --help
這個可以輸出中文,因為安裝的時候用的中文以及遠端工具支援中文
3、help
獲取shell內部命令的幫助
help shell內部命令
例如:
help cd
- 如何確定一個命令是否是shell內部命令
whereis 命令
看是否有執行檔案,有則為外部命令,無則為內部命令
- help和man的區別
help只能獲取shell內部命令的幫助,不能獲取shell外部命令的幫助
man能獲取shell內部命令的幫助,但是獲取的是全部shell內部命令的幫助
4、info
獲取命令的詳細幫助(非常全,相關的都給你列出來)
info 命令
回車: 進入子幫助頁面(在帶有
*
號的地方)u: 進入上層頁面
n: 進入下一個幫助小節
p: 進入上一個幫助小節
q: 退出
常見壓縮格式:
.zip
.gz
.bz2
常見壓縮格式:
.tar.gz
.tar.bz2
1、.zip格式
壓縮檔案
zip 壓縮檔名 原始檔
壓縮目錄
zip -r 壓縮檔名 源目錄
解壓縮zip檔案
unzip 壓縮檔案
2、.gz格式
- 壓縮
gzip 原始檔
壓縮為.gz格式的壓縮檔案,原始檔會消失
gzip -c 原始檔 > 壓縮檔案
例如:
gzip -c cangls > cangls.gz
壓縮為.gz格式,原始檔會保留
>: 作用是將命令的結果輸入到後面的檔案中
gzip -r 目錄
壓縮目錄下所有的子檔案(挨個壓縮),但是不能壓縮目錄
- 解壓縮
gzip -d 壓縮檔案
或者:
gunzip 壓縮檔案
解壓後,原壓縮檔案同樣消失
同樣支援解壓縮目錄,但是是挨個解壓目錄裡面的gz壓縮檔案,需要加-r
3、.bz2格式
- 壓縮
bzip2 原始檔
壓縮為.bz2格式,不保留原始檔
bzip2 -k 原始檔
壓縮之後保留原始檔
bzip2命令不能壓縮目錄
- 解壓縮
bzip2 -d 壓縮檔案
或者:
bunzip2 壓縮檔案
加-k,保留壓縮檔案
4、tar
打包(解包)命令(解決.gz和.bz2不能壓縮目錄的缺陷)
tar [選項] 打包檔名 原始檔
例如:
tar -cvf longzls.tar longzls
- 選項
-c: 打包
-x: 解包
-t: 檢視包裡面的內容
-v: 顯示過程
-f: 指定打包後的檔名
- 注意
操作步驟先打包後壓縮
原始檔只有在-c的時候有
5、.tar.gz格式
其實.tar.gz格式是先打包為.tar格式,在壓縮為.gz格式
下面是一步處理.tar.gz格式
- 壓縮
tar -zcvf 壓縮包名.tar.gz 原始檔
- 指定壓縮位置和多檔案壓縮
tar -zcvf /tmp/壓縮包名.tar.gz 檔案1 檔案2 ...
- 解壓
tar -zxvf 壓縮包名.tar.gz
- 指定解壓位置
tar -zxvf 壓縮包名.tar.gz -C /tmp/
6、.tar.bz2格式
其實.tar.bz2格式是先打包為.tar格式,在壓縮為.bz2格式
下面是一步處理.tar.bz2格式
- 壓縮
tar -jcvf 壓縮包名.tar.bz2 原始檔
- 指定壓縮位置和多檔案壓縮
tar -jcvf /tmp/壓縮包名.tar.bz2 檔案1 檔案2 ...
- 解壓
tar -jxcf 壓縮包名.tar.bz2
- 指定解壓位置
tar -jxvf 壓縮包名.tar.bz2 -C /tmp/
1、shutdown
關機與重啟
shutdown [選項] 時間(填寫實際時間,而不是多少時間之後)
例如:
shutdown -r now
- 選項
-c: 取消前一個關機命令(因為有時間,所以可以取消)
-h: 關機
-r: 重啟
- 注意
shutdown命令比較安全,能夠正確儲存伺服器資料,最好用這個
- 後臺符執行,不佔用shell介面
shutdown -r 05:30 &
&: 後臺符
2、其它關機與重啟命令
關機
halt
poweroff
init 0
重啟
reboot
init 6
以上關機和重啟不怎麼用,不安全(reboot還行,能用用)
- 關於init後面的數字問題
這個叫系統執行級別
0: 關機
1: 單使用者(類似windows的安全模式,進去進行系統修復)
2: 不完全多使用者,不含NFS服務(NFS: 檔案共享服務)
3: 完全多使用者(字元介面就是3級別)
4: 未分配
5: 圖形介面
6: 重啟
init是呼叫系統級別的命令
- runlevel
檢視當前系統級別和上一次的系統級別
runlevel
- 定義系統的預設執行級別
cat /etc/inittab
進去看一下,然後用vim工具修改,儲存即可
X: 在linux中代表圖形介面
3、logout
退出登入
logout
- 注意
遠端工具關閉前,必須退出登入,防止使用者卡著,尤其windows(登出)
1、mount
檢視系統中已經掛載的裝置
mount
依據配置檔案/etc/fstab的內容,自動掛載
mount -a
正式掛載
mount [-t 檔案系統] [-o 特殊選項] 裝置檔名 掛載點
- 選項
-t 檔案系統: 加入檔案系統型別來指定掛載的型別,可以使ext3、ext4、iso9660等檔案系統
-o 特殊選項: 可以指定掛載的額外選項
- 例如修改/home掛載點的執行許可權
mount -o remount,noexec /home
上述命令,會禁用/home下的執行檔案
- 掛載光碟
建立掛載點
mkdir /mnt/cdrom
掛載光碟
mount -t iso9660 /dev/cdrom /mnt/cdrom
或者:
mount /dev/sr0 /mnt/cdrom
- 掛載U盤
檢視系統中已經識別的硬碟
fdisk -l
掛載U盤
mount -t vfat /dev/sdb1 /mnt/usb
2、umount
解除安裝命令
umount 裝置檔名或者掛載點
例如:
umount /mnt/cdrom
用完以後必須解除安裝,防止linux精神錯亂
3、w
檢視當前使用者的登入資訊
w
- 命令輸出
USER: 登入的使用者名稱
TTY: 登入終端(tty1是本地,pts/NUM是遠端)
FROM: 從哪個IP地址登入
LOGIN@: 登入時間
IDLE: 使用者閒置時間
JCPU: 指的是和該終端連線的所有程式佔用的時間。這個時間並不包括過去的後臺作業時間,但卻包括當前正在執行的後臺作業所佔用的時間
PCPU: 是指當前程式所佔用的時間
WHAT: 當前正在執行的命令
4、who
檢視當前使用者的登入資訊(簡)
who
- 命令輸出
使用者名稱
登入終端
登入時間(登入來源IP)
5、last
檢視當前登入和過去登入的使用者資訊
last
- 注意
last命令預設是讀取/var/log/wtmp檔案資料
/var/log/wtmp是二進位制檔案,不能直接編輯,只能通過last讀取,防止黑客篡改
還能看到重啟資訊
- 命令輸出
使用者名稱
登入終端
登入IP
登入時間
退出時間(線上時間)
6、lastlog
檢視所有使用者的最後一次登入時間
lastlog
- 注意
lastlog命令預設是讀取/var/log/lastlog檔案內容
/var/log/lastlog也是二進位制檔案
- 命令輸出
使用者名稱
登入終端
登入IP
最後一次登入時間