linux-1. 常用命令

1. 搜索命令

命令which, whereis, locate和 find的區別
which: 在$PATH目錄下查找文件。只能查找可執行文件,該命令基本只在$PATH路徑中搜索,查找範圍小,查找速度快。默認只返回第一個匹配的文件路徑,通過選項-a可以返回所有匹配結果。

which cp

whereis: 在預定目錄下(whereis -l查看)查找文件。不只可以查找命令,其他它文件類型都可以(man中說只能查找命令,源文件和man文件,實際測試可以查找大多數文件)。在$PATH路徑基礎上增加了一些系統目錄的查找,查找範圍比which稍大,查找速度快,可以能過-b選項,限定只搜索二進制文件。

whereis useradd

locate: 在數據庫中查找目錄或文件。超快速查找任意文件。它會從linux內置的 索引數據庫 查找文件的路徑,索引速度超快,剛剛新建的文件可能需要 一定時間才能加入該索引數據庫,可以通過執行updatedb命令來強制更新一次索引,這樣確保不會遺漏文件。該 命令通常會返回大師匹配項,可以使用-r選項通過正則表達式來精確匹配。

# 在文件資料庫中查找文件: /var/lib/mlocate/mlocate.db
# updatedb:更新文件資料庫
# /tmp目錄下保存的文件是不會被收錄到locate文件資料庫中的
# -i:不區分大小寫
locate inittab

find: 遍歷目錄查找文件。直接搜索整個文件目錄,默認直接從根目錄開始搜索,建議在以上命令都無法解決問題時才用它,功能最強大但速度超慢。除非衆多指定一個很小的搜索範圍。通過-name選項指定要查找的文件名,運行通配符。

# 語法 find [搜索範圍] [匹配條件]
# 精確搜索
# 按文件名搜索, 在/etc目錄下查找文件init
# -iname: 不區分大小寫
find /etc -name init
# 這是精確的搜索,/etc/inittab這樣的文件是搜索不到
# 如果要模糊搜索,可以使用通配符
find /etc -name *init*

# 在根目錄下查找大於100MB的文件,首先要把大小換算成數據塊的個數
# +n 大於 -n 小於 n 等於
# 1數據塊 512字節 0.5K, 所以200MB=102400KB=204800個數據塊
find / -size +204800

# 在根目錄下查找所有者爲px的文件
# -group根據所屬組查找
find /home -user px
# -gid n       :尋找羣組ID爲n的文件 
# -group name  :尋找羣組名稱爲name的文件 
# -uid n       :尋找擁有者ID爲n的文件 
# -user name   :尋找用戶者名稱爲name的文件 
# -name file   :尋找文件名爲file的文件(可以使用通配符) 

# 根據時間屬性查找文件
# -amin 訪問時間     access
# -cmin 文件屬性改變 	change(文件的權限,所有者,所屬組,其它人,ls可以看到的信息lrwxrwxrwx)
# -mmin 文件內容		modify	
# 在/etc目錄下,5分鐘時間內,查找文件屬性被改變的文件
find /etc -cmin -5
# +: 超過多長時間, -:多長時間內 

# 在/etc下查找大於80MB小於100MB的文件
# -a: 並
# -o:或
# -type:根據文件類型查找 f文件, d目錄, l軟鏈接文件
# -inum:根據i節點查找 
find /etc -size +163840 -a -size -204800
# 以init開頭的文件
find /etc -name init* -a -type f

# 在/etc下查找inittab文件並顯示其詳細信息
# -exec/-ok 命令 {} \; 對搜索結果執行操作
find /etc -name inittab -exec ls -l {} \;

ls

# ls [option] [參數]
# -a: 顯示所有文件,包括隱藏文件
# -l: 詳細信息顯示
# -d: 查看目錄屬性
# -h: 人性化顯示文件或目錄大小
# -t: 按時間排序
# -i: i節點號
ls -al
# -rw------- 1 panxiong panxiong 5441 Jan 13 11:19 .bash_history
# 文件屬性 1:文件的引用計數 所有者 所屬組 文件或目錄大小 文件最後一次修改時間 文件名
# -:文件 d: 目錄 l:軟鏈接

2. 目錄處理命令

# mkdir
# make directories
# mkdir -p [目錄名]
# -p: 遞歸創建
mkdir -p ~/dir1/dir2/dir3
mkdir -p ~/dir1/dir2/dir3 ~/dir1/dir2/dir4

# cd 目錄銀的
# cd ~: 家目錄
# cd -:回到上一次目錄

# pwd: 顯示當前目錄

# rmdir: 刪除空目錄,不能刪除非空目錄

# 複製命令:cp
# cp -rp [原文件或目錄] [目標目錄]
# -r: 複製目錄
# -p:保留文件屬性
cp -r ~/dir1/dir2/dir3 /root
# 同時複製多個文件到/tmp中
cp /root/install.log /root/install.log.syslog /tmp
# 複製文件的同時更名
cp /root/install.log /tmp/mylog
# 複製目錄的同時更名
cp -r /root /tmp/myroot 

# 剪切和更名命令: mv
# mv [原文件或目錄] [目標目錄]
mv ~/dir1/dir2/dir3 /tmp
# 目錄改名,文件改名也一樣
mv ~/dir1/dir2/dir3 ~/dir1/dir2/new_dir3

# 刪除目錄
# rm -rf [文件或目錄]
# -r:刪除目錄
# -f: 強制刪除

3. 文件處理命令

# 1.創建空文件
# touch [文件名]
# 創建兩個文件
touch file1 file2
# 如果是想創建文件名爲"file1 file2”的文件, 但是不建議這樣命名
touch "file1 file2"

# 2.顯示文件內容
# cat [文件名]
# -n:顯示行號
cat -n /etc/issue

# tac [文件名]
# 反向顯示
tac /etc/issue

# more [文件名] :分頁顯示文件內容
# 空格或f:翻頁
# Enter: 換行
# q或Q: 退出
more /etc/services

# less [文件名]:和more一樣,但是可以向上翻頁
# /關鍵詞:搜索關鍵詞 n:下一個
# 上箭頭:向上一行
# pageUP:向上翻一頁
less /etc/services

# head命令:可以查看文件的前幾行
# 顯示/etc/services的前7行,如果沒有-n, 默認是顯示前10行
head -n  7 /etc/services

# tail命令:可以查看文件的末尾幾行
# 顯示/etc/services的最後3行,如果沒有-n, 默認是顯示最後10行
# -f: 動態顯示文件的末尾內容
tail -n 3 /etc/services

4. 鏈接命令 ln

# ln -s [原文件] [目標文件]
# -s: 創建軟鏈接
# 創建文件/etc/issue的軟鏈接/tmp/issue.soft
ln -s /etc/issue /tmp/issue.soft
# 創建文件/etc/issue的硬鏈接/tmp/issue.soft
ln -s /etc/issue /tmp/issue.hard
# 硬鏈接可以同步更新, 修改硬鏈接的文件內容,原文件也會修改或者原文件修改了文件內容, 硬鏈接的文件內容也會同步修改 
# 硬鏈接不能跨分區,軟鏈接可以跨分區
# 硬鏈接不能針對目錄使用,軟鏈接可以

5. 更改文件權限

# 只有root和文件所有者纔可以改變文件權限
 # chmod [{ugoa}{+-=}{rwx}] [文件或目錄]
 # chmod [mode=421] [文件或目錄]
 # -R:遞歸修改
 chmod g+w,o-w test.txt
 chmod g=rwx test.txt
 chmod 755 test.txt
 # 更改目錄及其下所有的子文件的權限更改爲755
 chmod -R 755 testdir
  

在這裏插入圖片描述

# chown: change file ownership 改變文件或目錄的所有者
# 執行用戶:所有用戶
# chown [用戶] [文件或目錄]
# 將text.txt的所有者變更爲px,用戶必須存在,否則會出錯
chown px text.txt
# chgrp: change file group ownership 改變文件或目錄的所屬組
# 執行用戶:所有用戶
# chown [用戶組] [文件或目錄]
# 將text.txt的所屬組變更爲px_group,用戶必須存在,否則會出錯
groupadd px_group
chgrp px_group text.txt 
# umask [-S]:the user file-creation mask 顯示、設置文件的缺省權限
# -S: 以rwx形式顯示新建文件缺省權限
# 修改umask,使新建目錄只有754權限
umask 023

6. 幫助命令

# man 獲得幫助命令 
# man [命令或配置文件]
# 1:命令的幫助, 5:配置文件的幫助
# 命令的格式可以在配置文件中查看
man ls 
# 查看配置文件
man services

# 命令 --help
# --help:查看命令有哪些選項
ls --help 

# info

# help: 獲得Shell內置命令的幫助信息
help umask
help if 
# **whatis:** 將man手冊NAME節區下的那句描述的話打印出來
# whatis: 查看命令的作用描述信息
# whatis 命令

# apropos: 查看配置文件的簡短信息
apropos services

7. 用戶管理命令

# 1. 添加新用戶
# 執行權限:root
# useradd 用戶名
useradd px 

# 2.設置或更改用戶密碼
# 執行權限:所有用戶,普通用戶只能更改自己的密碼,root可以更改所有用戶的密碼
# passwd 用戶名
passwd px

# 3. 查看登錄用戶信息
# 執行權限:所有用戶
who

# 4.查看更加詳細的登錄用戶信息
w
# LOGIN@ IDLE   JCPU   PCPU WHAT
# LOGIN@:用戶登錄的時間
# IDLE: 空閒時間
# JCPU:累積佔用CPU時間
# PCPU:當前存在執行的操作佔用CPU的時間
# WHAT:當前正在執行的操作

8. 網絡命令

# 1. write: 給用戶發信息,以Ctrl+D保存結束
# 執行權限:所有用戶
# write 用戶名 (用戶需要在線)
write px

# 2.wall(write all):給所有用戶發信息
# 執行權限:所有用戶
# write [message]
wall hello everyone 

# 3. ping: 測試網絡連通性
# 執行權限:所有用戶
# write [option] IP地址
# -c: 指定發關次數
ping -c 3 www.baidu.com

# 4. ifconfig:查看和設置網卡信息
# 執行權限:root
# ifconfig 網卡名稱 IP地址
ifconfig eth0 192.168.8.250

# 5. mail: 查看發送電子郵件
# 執行權限:所有用戶
# mail [用戶名]
mail root

# 6. last:列出目前與過去登入系統的用戶信息
# 執行權限:所有用戶
# last
last

# 7. lastlog: 檢查某特定用戶上次登錄的時間
# 執行權限:所有用戶
# lastlog
# -u: 用戶uid
lastlog
lastlog -u 502

# 8. tracerout: 顯示數據包到主機間的路徑 
# 執行權限:所有用戶
# traceroute
traceroute www.baidu.com

# 9. mount
# mount [-t 文件系統] 設備文件名 掛載點
# 執行權限:所有用戶
mkdir /mnt/cdrom
mount -t iso9660 /dev/sr0 /mnt/cdrom
# 卸載需要先退出掛載點
umount /dev/sr0
# 或者 但只能選擇一個
umount /mnt/cdrom

netstat:顯示網絡相關信息,一般查看本機開啓的端口

# 常用選項:
# -t: TCP協議
# -u: UDP協議
# -l: 監聽
# -r: 路由
# -n: 顯示IP地址和端口號
netstat -tlun # 查看本機監聽的端口
netstat -an # 查看本機所有的網絡連接,用的少
netstat -rn # 查看本機路由表和網關

在這裏插入圖片描述
Proto: 協議
Recv-Q: 接收緩衝隊列中的數據大小,0代表接收網絡很通暢,無積壓
Send-Q:發送緩衝隊列中的數據大小,0代表發送網絡很通暢,無積壓
Local Address:本地IP地址和本機端口
Foreign Address :遠程IP地址和端口
State:TCP纔有State
在這裏插入圖片描述

9. 關機重啓命令

# 1. shutdown [option] 時間
# -c: 取消前一個關機命令
# -h: 關機
# -r: 重啓
shutdown -h now
shutdown -h 20:30
shutdown -r now

# halt, poweroff, inint 0
# reboot, init 6

# 修改系統默認運行級別
cat /etc/inittab

# 查詢系統運行級別
runlevel

# logout:退出命令

在這裏插入圖片描述

10. 壓縮與解壓命令

zip
語法 zip 選項[-r] [壓縮後文件名] [文件或目錄]

# -q 不顯示指令執行過程
# -r 遞歸處理,將指定目錄下的所有文件和子目錄一併處理
# -d 從壓縮文件內刪除指定的文件
# -v 顯示指令執行過程或顯示版本信息

# 將 /home/html/ 這個目錄下所有文件和文件夾打包爲當前目錄下的 html.zip:
zip -q -r html.zip /home/html
# 如果在我們在 /home/html 目錄下,可以執行以下命令:
zip -q -r html.zip *
# 從壓縮文件 cp.zip 中刪除文件 a.c
zip -dv cp.zip a.c

unzip

# 把文件解壓到當前目錄下
unzip test.zip
# 如果要把文件解壓到指定的目錄下,需要用到-d參數
unzip -d /temp test.zip
# 解壓的時候,有時候不想覆蓋已經存在的文件,那麼可以加上-n參數
unzip -n test.zip
unzip -n -d /temp test.zip
# 只看一下zip壓縮包中包含哪些文件,不進行解壓縮
unzip -l test.zip
# 查看顯示的文件列表還包含壓縮比率
unzip -v test.zip
# 檢查zip文件是否損壞
unzip -t test.zip
# 將壓縮文件test.zip在指定目錄tmp下解壓縮,如果已有相同的文件存在,要求unzip命令覆蓋原先的文件
unzip -o test.zip -d /tmp/

.gz
gzip只能壓縮文件,不能壓縮目錄,而且不保留原文件
壓縮:gzip + 文件名 : gzip test
解壓縮:gunzip + 壓縮文件 或者 gzip -d + 壓縮文件

tar:打包目錄
語法:tar 選項[-zcf] [壓縮後文件名] [目錄]
-c 打包
-v 顯示詳細信息
-f 指定文件名
-z 打包同時壓縮

# 只打包
tar -cvf test.tar test
# 打包的同時壓縮
tar -zcf test.tar.gx test

tar命令解壓縮
-x 解包
-v 顯示詳細信息
-f 指定解壓文件
-z 解壓縮

# 解包
tar -zxf test.tar.gz

bzip2: gzip的生級版本
語法: bzip2 選項[-k] [文件]
-k 產生壓縮文件後保留原文件

bzip2 -k test
tar -jcf test.tar.bz2 test

解壓縮:

bunzip2 -k test.bz2
tar -jxf test.tar.bz2

11. 其它命令

grep: 在文件中搜尋字串匹配的行並輸出
-i: 不區分大小定
-v: 排除指定字串

grep multiuser /etc/inittab
# 將有#號的行都去掉
grep -v # /etc/inittab
# 將以#號開關的行都去掉
grep -v ^# /etc/inittab

發佈了140 篇原創文章 · 獲贊 44 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章