目錄
命令基本格式
命令提示符:[root@localhost~]#
其中:
內容 | 說明 |
---|---|
root | 當前登陸用戶 |
localhost | 主機名 |
~ | 當前所在目錄(家目錄)。如果是root用戶登錄,那麼它的家目錄就是 /root,如果是其他用戶登錄,如user1用戶,則它的家目錄就是 /home/user1 |
# | 超級用戶的提示符。普通用戶的提示符是$。 |
(注意:在Windows內局域網是不允許有相同主機名的計算機存在,否則它們倆之間是不能上網的,誰也不能通信,局域網內ip地址不能重疊,主機名也不能重疊。Linux中的主機名在局域網內也可以相同。)
命令格式:命令 [選項] [參數]
注意:
個別命令使用不遵循此格式
當有多個選項時,可以寫在一起
簡化選項與完整選項 -a等於–all
如:查詢目錄中內容:ls
ls [選項] [文件或目錄]
選項:
-a 顯示所有文件,包括隱藏文件
-l 顯示詳細信息
-d 查看目錄屬性
-h 人性化顯示文件大小
-i 顯示inode(可以說是文件的id號)
(文件權限:
如:-rw-r–r–. (.代表ACL權限)
通過權限位第1位區分文件類型。
文件類型(Linux中文件類型只有7種)(最常見的3種文件類型:-代表文件;d代表目錄;l代表軟鏈接文件,軟鏈接就是快捷方式)
rw- r– r–
u所有者 g所屬組 o其他人
r讀 w寫 x執行
其中1表示引用計數,只在我們的硬鏈接中有用。
在Linux中 . 開頭的文件名是隱藏文件。)
(Ctrl+L 清屏)
文件處理命令
目錄或文件處理
(1)建立目錄:mkdir
mkdir [-p] [目錄名]
-p 遞歸創建
(2)切換所在目錄:cd(change directory)
簡化操作:
命令 | 功能 |
---|---|
cd ~ 或者 cd | 進入當前用戶的家目錄 |
cd - | 進入上次目錄 |
cd .. | 進入上一級目錄 |
cd . | 進入當前目錄 |
相對路徑:參照當前所在目錄,進行查找;絕對路徑:從根目錄開始指定,一級一級遞歸查找。在任何目錄下,都能進入指定位置。
(3)查詢所在目錄位置:pwd(print working directory)
(4)刪除空目錄:rmdir(remove empty directories)
rmdir [目錄名](只能刪除空白目錄)
(5)刪除文件或目錄:rm
rm [-rf] [文件或目錄]
選項:-r 刪除目錄; -f 強制
如: rm -rf /test/*
其中*表示刪除的是test目錄下的所有內容
rm -rf /test/
表示的是刪除test目錄
(6)複製命令:cp
cp [選項] [原文件或目錄] [目標目錄]
選項:
-r 複製目錄
-p 連帶文件屬性複製
-d 若原文件是鏈接文件,則複製鏈接屬性
-a 相當於 -pdr
注:
ll命令 == ls -l命令
date命令:顯示系統時間
(7)剪切或改名命令:mv
mv [原文件或目錄] [目標目錄]
Linux中常見目錄
目錄 | 作用 |
---|---|
/ | 根目錄 |
/bin | 命令保存目錄(普通用戶就可以讀取的命令) |
/boot | 啓動目錄,啓動相關文件 |
/dev | 設備文件保存目錄 |
/etc | 配置文件保存目錄 |
/home | 普通用戶的家目錄 |
/lib | 系統庫保存目錄 |
/mnt | 系統掛載目錄 |
/media | 掛載目錄 |
/root | 超級用戶的家目錄 |
/tmp | 臨時目錄 |
/sbin | 命令保存目錄(超級用戶才能使用的目錄) |
/proc、/sys | 直接寫入內存的 |
/usr | 系統軟件資源目錄 |
/usr/bin/ | 系統命令(普通用戶) |
/usr/sbin/ | 系統命令(超級用戶) |
/var | 系統相關文檔內容 |
注:1)根目錄下的bin和sbin,usr目錄下的bin和sbin,這四個目錄都是用來保存系統命令的。2)proc和sys目錄不能直接操作,這兩個目錄保存的是內存的掛載點。
鏈接命令
ln [-s] [原文件] [目標文件]
功能描述:生成鏈接文件;選項:-s 創建軟鏈接。
硬鏈接特徵:
1. 擁有相同的i節點(ls -i 文件
命令可以查看i節點)和存儲的block塊,可以看做是同一個文件;
2. 可通過i節點識別;
3. 不能跨分區;
4. 不能針對目錄使用。
使用硬鏈接方式創建的文件同原文件相比:修改任何一方文件的內容都會影響另外一方;刪除其中一個文件都不影響另外一個文件的數據。
軟鏈接特徵:
1. 類似Windows快捷方式;
2. 軟鏈接擁有自己的i節點和block塊,但是數據塊中只保存原文件的文件名和i節點號,並沒有實際的文件數據;
3. lrwxrwxrwx
l 表示 軟鏈接,軟鏈接文件權限都爲 rwxrwxrwx,但訪問該文件時,權限還要看原文件的權限;
4. 修改任意文件,另一個都會改變;
5. 刪除原文件,軟鏈接不能使用。
注:做軟鏈接時,原文件的路徑一定要寫絕對路徑!
搜索命令
文件搜索命令
(1)locate
命令
locate 文件名
:在後臺數據庫中按文件名搜索,搜索速度更快。
locate
命令所搜索的後臺數據庫:/var/lib/mlocate
(默認自動一天一更新);我們可以使用updatedb
命令手動更新數據庫。
locate
命令是根據/etc/updatedb.conf
這個配置文件進行搜索的:
PRUNE_BIND_MOUNTS = "yes"
表示開啓搜索限制;PRUNEFS =
表示搜索時,不搜索的文件系統;PRUNENAMES =
表示搜索時,不搜索的文件類型;PRUNEPATHS =
表示搜索時,不搜索的路徑。
(2)find
命令
find [搜索範圍] [搜索條件]
:搜索文件。
如:find / -name install.log
。
避免大範圍搜索,會非常耗費系統資源;
find是在系統當中搜索符合條件的文件名,需要文件名完全匹配。使用通配符後可以進行模糊查詢。
Linux中的通配符
通配符 | 說明 |
---|---|
* | 匹配任意內容 |
? | 匹配任意一個字符 |
[] | 匹配任意一箇中括號內的字符 |
如:
find /root -name "ab*"
:在/root
目錄下查找文件名以ab開頭的文件或目錄。(匹配“ab”)
find /root -name "ab?"
:在/root
目錄下查找以ab開頭的3個字符命令的文件或目錄。(不匹配“ab”)
find /root -name "ab[cd]"
:在/root
目錄下查找文件名爲abc
或abd
的文件或目錄。
如:find /root -iname install.log
:不區分大小寫根據文件名進行搜索。
find /root -user root
:按照所有者搜索。這裏表示按root用戶搜索其所擁有的文件。
find /root -nouser
:查找沒有所有者的文件。
注:沒有所有者的文件一般都是垃圾文件,我們可以手動把它們刪除。除了下面兩種情況,第一種,由系統內核產生的文件,如/proc
和/sys
目錄下的文件,文件可能沒有所有者;第二種,外來接入的U盤、光盤等,此外裏面的文件如果由Windows產生則不存在所有者。(Windows系統不是沒有文件所有者這個概念,而是它忽略了這個概念。)
find /var/log/ -mtime +10
:查找10天前修改的文件。
選項:
-atime
:文件訪問時間
-ctime
:改變文件屬性
mtime
:修改文件內容
參數,如:
-10:10天內修改的文件
10:10天當天修改的文件
+10:10天前修改的文件
find . -size 25k
:查找文件大小爲25KB的文件。這裏查找的是當前目錄下。
參數,如:
-25k:小於25KB的文件
25:等於25KB的文件
+25k:大於25KB的文件
注:可以搜索以MB爲單位的文件,如find . -size 2M
。
find . inum 234567
:查找i節點爲234567的文件。(通過ls -i [文件名]
可以查看文件的i節點)
find /etc -size +20k -a -size -50k
:查找/etc/
目錄下,大於20KB並且小於50KB的文件。
選項:
-a(and):邏輯與,兩個條件都要滿足
-o(or):邏輯或,兩個條件滿足一個即可
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
:查找/etc/
目錄下,大於20KB並且小於50KB的文件,並顯示詳細信息。其中-exec 命令 {} \;
表示將前一個命令的結果作爲參數執行-exec
後面的這條命令。此外-ok 命令 {} \;
也具有相同的功能,不同的是,對每次命令結果作爲後面命令的參數執行前會詢問用戶是否執行,輸入y則執行。
命令搜索命令
(1)搜索命令的命令whereis
whereis 命令名
:搜索命令所在路徑及幫助文檔所在位置。
選項:
-b:只查找可執行文件所在路徑
-m:只查找命令的幫助文件所在路徑
(2)搜索命令的命令which
which 命令名
:搜索命令所在路徑及別名。
注:whereis
和which
命令搜索的都是系統命令。
(3)PATH環境變量
- PATH環境變量:定義的是使用命令時系統搜索命令的路徑,同樣也是whereis
和which
搜索命令時查找的路徑。
[root@localhost ~]# echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/wml/.local/bin:/home/wml/bin
字符串搜索命令
(1)搜索字符串命令grep
grep [選項] 字符串 文件名
:在文件當中匹配符合條件的字符串。
選項:
-i 忽略大小寫
-v 排除指定字符串
find命令與grep命令的區別
- find命令:在系統當中搜索符合條件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
- grep命令:在文件當中搜索符合條件的字符串,如果需要匹配,使用正則表達式進行匹配,正則表達式是包含匹配。
幫助命令
(1)幫助命令man
獲取指定命令的幫助。
man
的級別
級別 | 說明 |
---|---|
1 | 查看命令的幫助 |
2 | 查看可被內核調用的函數的幫助 |
3 | 查看函數和函數庫的幫助 |
4 | 查看特殊文件的幫助(主要是/dev目錄下的文件) |
5 | 查看配置文件的幫助 |
6 | 查看遊戲的幫助 |
7 | 查看其它雜項的幫助 |
8 | 查看系統管理員可用命令的幫助 |
9 | 查看和內核相關文件的幫助 |
man -f 命令
(相當於 whatis 命令
):查看命令擁有哪幾個級別的幫助。
如:
man 5 passwd
man 4 null
man 8 ifconfig
man -k 命令
(相當於apropos 命令
):查看和命令相關的所有幫助。
(2)選項幫助
命令 --help
:獲取命令選項的幫助。
如:ls --help
。
(3)shell內部命令幫助
help shell內部命令
:獲取shell內部命令的幫助。
如:
whereis cd
:確定是否是shell內部命令。如果沒有輸出命令的可執行文件,說明命令爲內部命令。
help cd
:獲取內部命令幫助。
(4)詳細命令幫助info
info 命令
顯示結果後,通過按鍵操作,如:
回車:進入子幫助頁面(帶有*號的標記處回車)
u:進入上層頁面
n:進入下一個幫助小節
p:進入上一個幫助小節
q:退出
壓縮與解壓縮命令
- 常用壓縮格式:
.zip
、.gz
、bz2
;.tar.gz
、.tar.bz2
。
(一).zip
格式
(1).zip
格式壓縮
zip 壓縮文件名 源文件
:壓縮文件。
zip -r 壓縮文件名 源目錄
:壓縮目錄。
(2).zip
格式解壓縮
unzip 壓縮文件名
:解壓縮.zip
文件。
(二).gz
格式
(1).gz
格式壓縮
gzip 源文件
:壓縮爲.gz
格式的壓縮文件,源文件會消失。
gzip -c 源文件 > 壓縮文件
:壓縮爲.gz
格式,源文件保留。
gzip -r 目錄
:壓縮目錄下所有的子文件,但是不能壓縮目錄。
(2).gz
格式解壓縮
gzip -d 壓縮文件
:解壓縮文件。
gunzip 壓縮文件
:解壓縮文件。
gunzip -r 壓縮目錄
:解壓縮目錄,會解壓被壓縮目錄中的子文件。
(三).bz2
格式
(1).bz2
格式壓縮
bzip2 源文件
:壓縮爲.bz2
格式的文件,不保留源文件。
bzip2 -k 源文件
:壓縮之後保留源文件。
注意:bzip2
命令不能壓縮目錄。
(2).bz2
格式解壓縮
bzip2 -d 壓縮文件
:解壓縮文件,-k保留壓縮文件。
bunzip2 壓縮文件
:解壓縮文件,-k保留壓縮文件。
(四).tar.gz
格式和.tar.bz2
格式
(1)打包命令tar
tar -cvf 打包文件名 源文件
選項:
-c 打包
-v 顯示過程
-f 指定打包後的文件名
如:tar -cvf tmp.tar tmp
。
(2)解打包命令
tar -xvf 打包文件名
選項:
-x 解打包
如:tar -xvf tmp.tar
。
(3).tar.gz
壓縮格式
其實.tar.gz
格式是先打包爲.tar
格式,再壓縮爲.gz
格式。
tar -zcvf 壓縮包名.tar.gz 源文件
選項:
-z 壓縮爲.tar.gz
格式
tar -zxvf 壓縮包名.tar.gz
選項:
-x 解壓縮.tar.gz
格式
(4).tar.bz2
壓縮格式
tar -jcvf 壓縮包名.tar.bz2 源文件
選項:
-z 壓縮爲.tar.bz2
格式
tar -jxvf 壓縮包名.tar.bz2
選項:
-x 解壓縮.tar.bz2
格式
如:
tar -jxvf tmp.tar.bz2 -C /home/user1/
:壓縮文件到指定目錄。
tar -zcvf test.tar.gz tmp1 tmp2
:壓縮多個文件。
tar -zcvf /tmp/test.tar.gz tmp1 tmp2
:壓縮多個文件,並將壓縮成功後的壓縮包放置在/tmp/
目錄下。
tar -ztvf test.tar.gz
:查看壓縮包裏面的內容,但不解壓。
關機和重啓命令
(1)shutdown
命令
shutdown [選項] 時間
選項:
-c 取消前一個關機命令
-h 關機
-r 重啓
如:
shutdown -r now
:立即重啓。
shutdown -r 00:30
:指定某個時間後重啓。運行該命令後,終端會“卡住”,被暫停使用。
shutdown -r 00:30 &
:指定某個時間後重啓,但不“卡住”終端。其中&表示將當前命令放入系統後臺執行,不佔用當前的操作終端。
(2)其他關機命令
halt
poweroff
init 0
這幾個關機命令都不太安全,在關機時並不會正確幫我們保存服務。
(3)其他重啓命令
reboot
(相對安全)
init 6
上面init 0
和init 6
中的0和6表示什麼呢?系統運行級別。
系統運行級別 | 說明 |
---|---|
0 | 關機 |
1 | 單用戶 |
2 | 不完全多用戶,不含NFS服務 |
3 | 完全多用戶 |
4 | 未分配 |
5 | 圖形界面 |
6 | 重啓 |
runlevel
:查詢系統運行級別。如結果爲:N 3
。第一個表示進入當前系統運行級別的上一個級別,N表示null,也就是一開機就進入了3級別。第二個數字3表示當前級別。
cat /etc/inittab
;修改系統默認運行級別。如結果爲:id:3:initdefault:
。
(4)退出登錄命令
logout
其他常用命令
掛載命令
(1)查詢與自動掛載
mount
:查詢系統中已經掛載的設備。
mount -a
:依據配置文件/etc/fstab
的內容,自動掛載。
(2)掛載命令格式
mount [-t 文件系統] [-o 特殊選項] 設備文件名 掛載點
選項:
-t 文件系統:加入文件系統類型來指定掛載的類型,可以ext3、ext4、iso9660等文件系統。
-o 特殊選項:可以指定掛載的額外選項。如下:
參數 | 說明 |
---|---|
atime/noatime | 更新訪問時間/不更新訪問時間。訪問分區文件時,是否更新文件的訪問時間,默認爲更新 |
async/sync | 異步/同步,默認爲異步 |
auto/noauto | 自動/手動,mount -a命令執行時,是否會自動安裝/etc/fstab文件內容掛載,默認爲自動 |
defaults | 定義默認值,相當於rw,suid,dev,exec,auto,nouser,async這七個選項 |
exec/noexec | 執行/不執行,設定是否允許在文件系統中執行可執行文件,默認是exec允許 |
remount | 重新掛載已經掛載的文件系統,一般用於指定修改特殊權限 |
suid/nosuid | 具有/不具有SUID權限,設定文件系統是否具有SUID和SGID的權限,默認是具有 |
user/nouser | 允許/不允許普通用戶掛載,設定文件系統是否允許普通用戶掛載,只有root可以掛載分區 |
usrquota | 寫入代表文件系統支持用戶磁盤配額,默認不支持 |
grpquota | 寫入代表文件系統支持組磁盤配額,默認不支持 |
如:mount -o remount,noexec /home
重新掛載/home
分區,並執行noexec
,即分區中不可以運行可執行文件。(這裏省略了 設備文件名 參數,因爲 /home
分區已經被掛載,系統知道/home
分區對應的設備文件名,所以這裏可以省略。如果分區未被掛載,掛載時需要指明設備文件名。)
(3)掛載光盤
注:任何一個空目錄都可以作爲“盤符”。在Linux中,/
根目錄爲我們準備了三個空目錄,/media
、/mnt
、/misc
。
mkdir /mnt/cdrom/
:建立掛載點。
mount -t iso9660 /dev/sr0 /mnt/cdrom/
(或者 mount -t iso9660 /dev/cdrom /mnt/cdrom/
因爲 /dev/cdrom
是/dev/sr0
的軟連接。兩種方式都可以,但是推薦前一種。):掛載光盤。可以簡寫爲:mount /dev/sr0 /mnt/cdrom/
。
光盤的設備文件名是固定的,爲/dev/sr0
。
(4)卸載命令
umount 設備文件名或掛載點
如:umount /mnt/cdrom
。
(5)掛載U盤
fdisk -l
:查看U盤設備文件名。
mount -t vfat /dev/sdb1/ /mnt/usb/
:執行掛載。(vfat指的是fat32文件系統。)
注:Linux默認不支持NTFS文件系統。解決方法:1)重新編譯內核,添加NTFS支持;2)下載安裝ntfs-3g
。但是即便我們通過這兩個方法實現了對NTFS文件系統的支持,在Linux中這個系統也只是只讀的。
用戶登錄查看和用戶交互命令
(1)查看登錄用戶信息
w [用戶名]
命令輸出:
- USER:登錄的用戶名;
- TTY:登錄終端;
- FROM:從哪個IP地址登錄;
- LOGIN@:登錄時間;
- IDLE:用戶閒置時間;
- JCPU:指的是和該終端連接的所有進程佔用的時間。這個時間裏並不包括過去的後臺作業時間,但卻包括當前正在運行的後臺作業所佔用的時間。
- PCPU:是指當前進程所佔用的時間;
- WHAT:當前正在運行的命令。
who [用戶名]
命令輸出:用戶名 登錄終端 登錄時間 [登錄來源IP地址]。
(2)查詢當前登錄和過去登錄的用戶信息
(包括系統的重啓時間)
last
last
命令默認是讀取/var/log/wtmp
文件數據。
命令輸出:用戶名 登錄終端 登錄IP 登錄時間 退出時間 在線時間
(3)查看所有用戶的最後一次登錄時間
lastlog
lastlog
命令默認是讀取/var/log/lastlog
文件內容。
命令輸出:用戶名 登錄終端 登錄IP 最後一次登錄時間。
修改系統時間
(需要root用戶或者sudo權限)
sudo date -s MM/DD/YY # 修改日期
sudo date -s hh:mm:ss # 修改時間
在修改時間以後,修改硬件CMOS的時間:
sudo hwclock --systohc # 非常重要,如果沒有這一步的話,後面時間還是不準
或者
sudo hwclock -w
使用date
修改系統時間後,可能會沒有效果,那麼可能需要取消自動從互聯網同步時間纔可以。如下:
timedatectl set-ntp 0
開啓同步則:
timedatectl set-ntp 1