文件 & 目錄操作(16 個)
ls
● ls -a 查看所有文件,包含隱藏文件
● ls -l 簡寫 ll,查看詳細信息
● ls -h 文件大小以易讀的方式顯示
cd
● cd ../ 返回上級目錄
● cd ~ 前往家目錄
● cd - 返回上一次所在目錄
cp
● cp -r 復制目錄及目錄下文件
find
● find / -name 'target' 查詢根目錄下面文件名為 target 的文件
mkdir
● mkdir -p /tmp/test 遞歸創建目錄
mv
● mv -f source destination 強制
pwd
● pwd 顯示當前路徑
rm
● rm -rf / 強制刪除根目錄及目錄下的文件,就是我們通常所說的刪庫跑路
touch
● touch target 創建 target 文件,若文件存在則改變文件時間戳
tree
● tree 功能是以樹形結構顯示目錄下的內容
basename
● basename /tmp/1 顯示文件名
dirname
● dirname /tmp/1 顯示路徑
chattr
● chattr +i /tmp/1 加 i 屬性,防止文件被修改
lsattr
● lsattr /tmp/1 查看文件的擴展屬性
file
● file /tmp/1 顯示文件類型
md5
● md5 /tmp/1 顯示文件 MD5 值
查看文件 & 內容處理(18 個)
cat
● cat -n 顯示行號
● cat file1 file2 打開文件 1 和 2
more
● more file1 逐頁顯示
less
● less file1 也是逐頁顯示,與 more 方向相反
head
● head -n file 顯示文件頭 n 行
tail
● tail -n file 顯示文件尾 n 行
● tailf file 實時顯示文件尾 10 行,常用于跟蹤日志信息
cut
● who|cut -b 1-3,5 輸出每行的 1 至 3 個字節和第 5 個字節
● who|cut -c -3 輸出每行的 1 至 3 個字符
● who|cut -c 3- 輸出每行的第 3 個字符到行尾
● who|cut -d ' ' -f 1 以空格為分隔符,輸出第一個域
split
● split -b 10k date.file 將文件分割為 10k 的多個子文件
● split -b 10k date.file split_file 指定子文件前綴為 split_file
paste
● psate file1 file2 file3 將 3 個文件按列合并
sort
● sort -n 按照數值大小排序
● sort -r 倒序排序
● sort -t 指定分隔符
● sort -u 忽略相同行
uniq
● uniq -c 顯示出現次數,只有相鄰的才算重復
● uniq -d 只顯示重復的行
● unqi -u 只顯示不重復的行
wc
● wc -l 顯示列數
diff
● diff file1 file2 比較兩個文件差異
rev
● rev file 反向輸出文件內容
grep
● grep 'target' file 過濾輸出文件中包含 target 的行
● grep -v 'target' file 過濾輸出文件中不包含 target 的行
● grep -c 'target' file 過濾輸出文件中包含 target 的行數
● grep -i 'target' file 忽略大小寫
● egrep '[1-9]|a' file 過濾輸出正則匹配到的行
● seq 10 | grep "5" -A 3 顯示匹配某個結果之后的 3 行
● seq 10 | grep "5" -B 3 顯示匹配某個結果之前的 3 行
● seq 10 | grep "5" -C 3 顯示匹配某個結果的前三行和后三行
join
● join file1 file2 將兩個文件中,指定欄位內容相同的行連接起來
tr
● cat text | tr ' ' ' ' 將制表符替換成空格
vim
三種模式:
● 編輯模式(命令模式)
● 輸入模式
● 末行模式
模式的轉換
編輯 -> 輸入
i: 在當前光標所在字符的前面,轉為輸入模式;
a: 在當前光標所在字符的后面,轉為輸入模式;
o: 在當前光標所在行的下方,新建一行,并轉為輸入模式;
I:在當前光標所在行的行首,轉換為輸入模式
A:在當前光標所在行的行尾,轉換為輸入模式
O:在當前光標所在行的上方,新建一行,并轉為輸入模式;
輸入 -> 編輯
ESC
編輯 -> 末行:
:
末行 -> 編輯:
ESC,ESC
打開文件
vim +# :打開文件,并定位于第#行
vim +:打開文件,定位至最后一行
vim +/PATTERN : 打開文件,定位至第一次被PATTERN匹配到的行的行首
關閉文件
:q 退出
:wq 保存并退出
:q! 不保存并退出
:w 保存
:w! 強行保存
移動光標(編輯模式)
- 逐字符移動
h: 左
l: 右
j: 下
k: 上
#h: 移動#個字符
- 以單詞為單位移動
w: 移至下一個單詞的詞首
e: 跳至當前或下一個單詞的詞尾
b: 跳至當前或前一個單詞的詞首
#w: 移動#個單詞
- 行內跳轉
0: 絕對行首
^: 行首的第一個非空白字符
$: 絕對行尾
- 行間跳轉
#G:跳轉至第#行
gg: 第一行
G:最后一行
翻屏
Ctrl+f: 向下翻一屏
Ctrl+b: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
刪除單個字符
x: 刪除光標所在處的單個字符
#x: 刪除光標所在處及向后的共#個字符
刪除命令: d
dd: 刪除當前光標所在行
#dd: 刪除包括當前光標所在行在內的#行;
撤消編輯操作
u:撤消前一次的編輯操作
#u: 直接撤消最近#次編輯操作
連續u命令可撤消此前的n次編輯操作
撤消最近一次撤消操作:Ctrl+r
查找
/PATTERN
?PATTERN
n 下一個
N 上一個
文件壓縮 & 解壓縮(3 個)
tar
● tar zxvf FileName.tar.gz 解壓
● tar zcvf FileName.tar.gz DirName 壓縮
zip
● zip -r html.zip/home/html 遞歸壓縮
unzip
● unzip test.zip -d /tmp 解壓到指定目錄下
信息顯示(11 個)
uname
● uname -a 顯示系統全部信息
hostname
● hostname 顯示主機名
dmesg
● dmesg 顯示開機信息
uptime
● uptime 顯示系統運行時間及負載
stat
● stat 顯示文件的狀態信息
du
● du -sh 顯示路徑下所有文件大小
● du -sh local 顯示路徑下 local 目錄文件大小
● du -sh * 顯示路徑下所有目錄文件大小
df
● df -h 顯示系統磁盤空間的使用情況
top
● top 實時顯示系統資源使用情況
free
● free -m 以 M 為單位查看系統內存
date
● date +"%Y-%m-%d" 2019-05-28
● date -d "1 day ago" +"% Y-% m-% d" 輸出昨天日期
● date -d "+1 day" +% Y% m% d 顯示前一天的日期
● date -d "-1 day" +% Y% m% d 顯示后一天的日期
● date -d "-1 month" +% Y% m% d 顯示上一月的日期
● date -d "+1 month" +% Y% m% d 顯示下一月的日期
● date -d "-1 year" +% Y% m% d 顯示前一年的日期
● date -d "+1 year" +% Y% m% d 顯示下一年的日期
cal
● cal 日歷信息
搜索文件(4 個)
which
● which pwd 顯示命令路徑
find
● find /-name 'target' 查詢根目錄下面文件名為 target 的文件
whereis
● whereis php 查找二進制命令
locate
● locate target 從數據庫 (/var/lib/mlocate/mlocate.db) 查找目標文件,使用 updatedb 更新庫
進程管理(11 個)
jobs
● jobs 查看當前有多少在后臺運行的命令
bg
● bg 1 將一個在后臺暫停的命令,繼續執行,1 為作業號
● (ctrl+z)可以掛起程序,返回作業號
fg
● fg 1 將后臺中的命令調至前臺繼續運行 ,1 為作業號
kill
● kill 進程號 殺進程
● kill -9 進程號 強殺進程
● killall
● killall php 通過進程名字殺進程
● killall -9 php 通過進程名字強殺進程
pkill
● 用法同上
crontab
● crontab -l 查看定時任務
● crontab -e 編輯定時任務
● crontab -l -u user1 查看 user1 定時任務,只有 root 才有權限
● crontab -e -u user1 編輯 user1 定時任務,只有 root 才有權限
ps
● ps -ef 查看進程,顯示 UID,PPIP,C 與 STIME,每個程序所使用的環境變量欄位
● ps -axu 查看所有進程,并顯示屬于用戶
pstree
● pstree -p 顯示當前所有進程的進程號和進程 id 樹
● pstree -a 顯示所有進程的所有詳細信息樹
nohup
● nohup command & 退出賬戶時不掛斷程序,仍在后臺運行
pgrep
● pgrep -l httpd 查找 http 相關的進程號
用戶管理(7 個)
useradd
● useradd boy -u 888 建立一個新用戶賬戶,并設置 ID
● useradd –g sales jack –G company,employees
● -g:加入主要組 -G:加入次要組
usermod
● usermod -G staff newuser2 將 newuser2 添加到組 staff 中
● usermod -l newuser1 newuser 修改 newuser 的用戶名為 newuser1
● usermod -L newuser1 鎖定賬號 newuser1
● usermod -U newuser1 解除對 newuser1 的鎖定
userdel
● userdel -f user1 強制刪除用戶
● userdel -r user1 刪除用戶的同時,刪除與用戶相關的所有文件
groupadd
● groupadd -g 1000 group1 建立一個新組,并設置組 ID 加入系統
passwd
● passwd user1 修改 user1 密碼
● passwd -l user1 鎖住密碼
● passwd -d user1 刪除密碼
su
● su root 切換身份
sudo
● sudo command 已管理員身份運行命令
網絡操作(11 個)
telnet
● telnet 127.0.0.1 登錄遠程主機
ssh
● ssh root@127.0.0.1 -p22 登錄遠程主機
scp
● scp local_file remote_username@remote_ip:remote_folder 本地拷貝到遠程
● scp remote_username@remote_ip:remote_folder local_file 遠程拷貝到本地
wget
● wget url 下載一個文件
● wget --limit-rate=300k url 限速下載
● wget -c url 斷點續傳
● wget -b url 后臺下載
ping
● ping www.baidu.com -c 2 收到兩個包就結束
route
● route 顯示當前路由
ifconfig
● ifconfig 查看、配置、啟用或禁用網絡接口
ifup
● ifup eth0 開啟 eth0 網卡
● ifdown
● ifdown eth0 關閉 eth0 網卡
netstat
● netstat -at 列出所有 tcp 端口
● netstat -au 列出所有 udp 端口
● netstat -l 只顯示監聽端口
ss
● ss -t -a 顯示所有 tcp 鏈接
● ss -l 顯示處于監聽狀態的套接字
磁盤 & 文件系統(7 個)
mount
● mount /dev/hda1 /mnt 將 /dev/hda1 掛載到 /mnt 目錄下
● umount
● umount -v /mnt/mymount/ 卸載 /mnt/mymount/
fsck
● fsck -y /dev/hda2 檢查并修復 linux 文件系統
dumpe2fs
● dumpe2fs /dev/hda1 查看文件系統信息
dump
● dump -0u -f /tmp/homeback.bak /home
將 /home 目錄所有內容備份到 /tmp/homeback.bak 文件中,備份層級為 0 并在 /etc/dumpdates 中記錄相關信息
fdisk
● fdisk /dev/sdb
輸入 m 列出可以執行的命令
輸入 p 列出磁盤目前的分區情況
輸入 d 然后選擇分區,刪除現有分區
輸入 print 查看分區情況,確認分區已經刪除
輸入 n 建立新的磁盤分區
輸入 w 最后對分區操作進行保存
mkfs
● mkfs -t ext3 /dev/sda6 將 sda6 分區格式化為 ext3 格式
系統權限(3 個)
chmod
● chmod 777 file1 修改 file1 文件權限為 777
● chmod u+x,g+w file1 為 file1 設置自己可以執行,組員可以寫入的權限
chown
● chown -R root /usr/meng 修改將目錄 /usr/meng 及其下面的所有文件、子目錄的文件主改成 root
chgrp
● chgrp -R mengxin /usr/meng 將 /usr/meng 及其子目錄下的所有文件的用戶組改為 mengxin
關機重啟(5 個)
shutdown
● shutdown -h now 立即關機
● shutdown +5 "System will shutdown after 5 minutes" 指定 5 分鐘后關機,同時送出警告信息給登入用戶
halt
● halt -p 關閉系統后關閉電源
● halt -d 關閉系統,但不留下紀錄
poweroff
● poweroff -f 強制關閉操作系統
logout
● logout 退出當前登錄的 Shell
exit
● exit 退出當前登錄的 Shell
其他(6 個)
echo
● echo 'hello' 打印字符串、變量
● printf 'hell0' 格式化輸出字符串
rpm
● rpm -ivh your-package.rpm 安裝 rpm 包
● rpm -Uvh your-package.rpm 升級 rpm 包
● rpm -e package 卸載
● rpm -qa 列出所有安裝過的包
● rpm -ql 包名 rpm 包中的文件安裝到那里去
yum
● yum install php 安裝 php
● yum remove php 卸載 php
clear
● clear 清屏
history
● history 10 最近使用的 10 條歷史命令