Linux常用命令

目錄

命令基本格式

  命令提示符:[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執行
ls -l
  其中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這個配置文件進行搜索的:

/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目錄下查找文件名爲abcabd的文件或目錄。

如: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 命令名:搜索命令所在路徑及別名。
注:whereiswhich命令搜索的都是系統命令。
(3)PATH環境變量
- PATH環境變量:定義的是使用命令時系統搜索命令的路徑,同樣也是whereiswhich搜索命令時查找的路徑。

[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.gzbz2.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 0init 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章