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






