Linux 常用命令
ls 顯示目錄
ls + 目錄/正則表達(dá)式
-l == ll 列表顯示
-a 顯示出隱藏文件
-h 顯示文件大小(不能單獨(dú)使用)
cd 切換目錄
. 當(dāng)前目錄
.. 上一級(jí)目錄
../.. 上上級(jí)目錄
- 上一次目錄
~ 用戶目錄
pwd 顯示當(dāng)前目錄絕對(duì)路徑
yum 安裝軟件包
-y 所有詢問都選擇yes
locale 系統(tǒng)字符集查詢
-a 查詢系統(tǒng)可用的所有字符集
將顯示在終端的內(nèi)容重定向到文件
> filename 文件不存在自動(dòng)新建,存在則清空后再寫入
>> filename 文件不存在自動(dòng)新建,存在則直接追加寫入
more 查看長文件
可用空格進(jìn)行翻頁,Enter向下翻一行
常配合'|'一起使用
eg: ls -alh | more
less 支持前后翻頁
pageup 向上翻一頁
pagedown或空格 向下翻一頁
Enter 向下翻一行
支持vim常用翻頁操作
head 從開頭顯示文件內(nèi)容
-n num filename 顯示文件開頭num行
tail 從尾部顯示多行
顯示指定行:tail -n num 文件
動(dòng)態(tài)顯示:tail -f 文件
touch 創(chuàng)建文件
mkdir 創(chuàng)建文件夾
-p 可以創(chuàng)建 A/B/C 這類文件夾
rmdir 刪除文件夾
rm 可以刪除文件和文件夾(刪除后恢復(fù)很難)
-r 遞歸刪除(刪除文件夾必須加)
-f 強(qiáng)制刪除
-i 交互式
+ 正則表達(dá)式
# 刪除當(dāng)前目錄下文件名含有2013的文件
find . -name *.exe -type f -exec rm -rf {} \;
su 切換為root用戶
- username 切換到username用戶家目錄
ln 創(chuàng)建連接文件
ln filename 創(chuàng)建硬鏈接
-------- <- 源文件
| 數(shù)據(jù) | <- ln1
-------- <- ln2
ln -s filename 創(chuàng)建軟連接
--------
| 數(shù)據(jù) | <- 源文件 <- ln1
--------
cat 查看文件
+ >/>> 將查看的內(nèi)容重定向
+ 文件1 + 文件2 順序查看文件(配合重定向合并文件)
grep 在文件中搜索
-n + '正則' + 文件名 顯示對(duì)應(yīng)的行號(hào)
-i 忽略大小寫
-v + '正則' 查找除了正則的內(nèi)容
egrep 比 grep -E更適合使用正則
egrep '0{2}' = grep -E '0\{2\}'
man + commend_name 查看命令幫助信息
chmod 修改文件屬性
drwxrw-r-x username groupname 4096 10月 21 11:08 filename
d 文件類型
rwx 文件擁有者username的權(quán)限
rw- 文件擁有者username對(duì)應(yīng)組groupname的權(quán)限
r-x 其他用戶的權(quán)限
4096 文件大小
10月 21 11:08 文件最后一次修改時(shí)間
'r' 讀
'w' 寫
'x' 執(zhí)行
'-' 沒有對(duì)應(yīng)權(quán)限
eg:chmod u/g/o/a +/-/= rwx 文件名
u 文件擁有者
g 文件擁有者同一組的用戶
o 其他用戶
a 所有用戶
+ 添加
- 撤銷
= 設(shè)定
數(shù)字法
4 -> r
2 -> w
1 -> x
eg: r--r--r-- -> 444
rwxr----x -> 741
chmod 777 文件夾 不修改文件夾內(nèi)的文件
chmod 777 文件夾 -R 遞歸修改文件夾及其內(nèi)的所有文件
mv 移動(dòng)(剪切)/重命名
mv old_name new_name 重命名
-f 禁止交互式
gzip 壓縮
-d 解壓
-人壓縮有所子目錄
zip 壓縮
zip filename 沒有文件時(shí)自動(dòng)創(chuàng)建
unzip -d 路徑 filename.zip 解壓(路徑不存在可自動(dòng)生成)
tar 打包,壓縮
-c 打包
-v 顯示進(jìn)度
-f 制定文件名稱,f后面一定是tar所以放最后
-x 解包
eg:tar -cvf filename.tar */路徑 將所有當(dāng)前路徑/指定路徑下的全部文件打包到filename.tar
tar -zcvf filename.tar.gz * 打包并用gzip壓縮
tar -zxvf filename.tar.gz * 解包并用gzip解壓
tar -jcvf filename.tar.bz2 * 打包并用bzip2壓縮
tar -jxvf filename.tar.bz2 * 解包并用bzip2解壓
tar ... -C 路徑 解壓縮到指定路徑中
which 查看命令路徑
ifconfig 查看ip信息
ifconfig ethname down 關(guān)閉ethname網(wǎng)卡
ifconfig ethname up 開啟ethname網(wǎng)卡
ifconfig ethname 查看ethname網(wǎng)卡信息
ping 測試網(wǎng)絡(luò)連接
ssh 遠(yuǎn)程登入
ssh username@host
who 查看當(dāng)前登入的用戶
whoami 查看當(dāng)前登錄
exit 登出
useradd 添加用戶
-m 自動(dòng)建主目錄
-d /home/username 指定用戶登錄的指定目錄(如果不使用,默認(rèn)為/home目錄下)
-g 用戶組 添加到某個(gè)用戶組
eg:useradd -m -d /home/username
userdel 刪除用戶
userdel username 刪除用戶但不刪除主目錄
userdel username -r 刪除用戶和其主目錄
passwd username 修改用戶的密碼
su 切換到root用戶
su - username 切換到username用戶
sudo 指令添加root權(quán)限
groups username 查看用戶所在的組
groupadd 添加組
groupdel 刪除組
usermod -g newgroups username 修改用戶的用戶組
usermod -a -G newgroups username 給用戶添加一個(gè)新的用戶組
給用戶添加sudo權(quán)限
sudo usermod -a -G adm username
sudo usermod -a -G sudo username
chown username filename 修改文件的擁有者
chgrp groupname filename 修改文件擁有者的用戶組
cal 查看當(dāng)前日歷
cal -y 顯示整年日歷
cal -y number 顯示number日歷
date 查看或設(shè)置時(shí)間
date [MMDDhhmm[[CC]YY][.SS]]
eg: date 011313142016.15 2016年1月13日13點(diǎn)14秒15分
data + format
%Y(2016) = %y(16) 年
%m 月
%d 日
%H 時(shí)
%M 分
%S 秒
eg: date '+%Y:%m:%d' 2017:9:1
jobs 查看當(dāng)前運(yùn)行的程序
Ctrl + Z stop程序
bg %num 切換到后臺(tái)運(yùn)行
fg %num 切換到前臺(tái)運(yùn)行
ps 查看進(jìn)程信息
-a 顯示終端上的所有進(jìn)程,包括其他用戶的進(jìn)程
-u 顯示進(jìn)程的詳細(xì)狀態(tài)
-x 顯示沒有控制終端的進(jìn)程
-w 顯示加寬,以便顯示更多的信息
-r 只顯示還在運(yùn)行的進(jìn)程
USER PID %CPU %MEN VSZ RSS TTY STAT START TIME COMMAND
執(zhí)行者 進(jìn)程號(hào) CPU 內(nèi)存量 命令/程序
top 動(dòng)態(tài)顯示進(jìn)程
M 按內(nèi)存使用量排序
P 根據(jù)CPU排序
T 按進(jìn)程運(yùn)行時(shí)間的長短排序
U 根據(jù)輸入的用戶名查找
K 根據(jù)輸入的PID來殺死進(jìn)程
q 退出
h 幫助
kill PID 殺死進(jìn)程號(hào)為PID的進(jìn)程
-9 在使用kill后沒有終止進(jìn)程時(shí),強(qiáng)制終止進(jìn)程
reboot 重啟
shutdown
-r now 重啟,會(huì)給別的用戶提示
-h now 關(guān)機(jī)
-r/-h 20:05 在20:05時(shí)重啟/關(guān)機(jī)
-r/-h +10 在分鐘后重啟/關(guān)機(jī)
init 0 關(guān)機(jī)
init 6 重啟
df 檢測磁盤空阿
-a 顯示所有文件系統(tǒng)
-m 以1024字節(jié)為單位
-t 顯示各指定文件系統(tǒng)的磁盤空間使用情況
-T 顯示文件系統(tǒng)
du 檢測當(dāng)前目錄磁盤存儲(chǔ)空間
-h 轉(zhuǎn)換單位
-a 遞歸顯示所有
-S 顯示指定文件或目錄占用的數(shù)據(jù)塊
-b 以字節(jié)為單位顯示磁盤占用情況
-l 計(jì)算所有文件大小,對(duì)硬鏈接多次計(jì)算
du -sh filename/目錄 顯示文件或目錄的大小
wc 統(tǒng)計(jì)指定文件中的字節(jié)數(shù)、數(shù)字、行數(shù),并將統(tǒng)計(jì)結(jié)果顯示輸出
-c 統(tǒng)計(jì)字節(jié)數(shù)
-l 統(tǒng)計(jì)行數(shù)
-m 統(tǒng)計(jì)字符數(shù),這個(gè)標(biāo)志不能與-c標(biāo)志一起使用
-w 統(tǒng)計(jì)字?jǐn)?shù),一個(gè)字被定義為空白、跳格或換行字符分隔的字符串
-L 打印最長行的長度
vim / vi
命令模式
Shift + 2個(gè)z 保存并推出
k 光標(biāo)上
j 光標(biāo)下
H 光標(biāo)左
L 光標(biāo)右
M 光標(biāo)移到中間行
L 光標(biāo)移到尾行最后一行行首
umn + G 光標(biāo)移動(dòng)到指定行
num + yy 從所在行復(fù)制到num行
p 粘貼
num + dd 從所在行剪切到num行
u 撤銷
Ctrl + r 反撤銷
w 向后移動(dòng)一個(gè)字
b 向前移動(dòng)一個(gè)字
{ 按段向上移動(dòng)
} 按段向下移動(dòng)
Ctrl + d 向下翻半屏
Ctrl + u 向上翻半屏
Ctrl + f 向下翻一屏
Ctrl + b 向上翻一屏
gg 光標(biāo)到文件頭
G 光標(biāo)到文件末尾
Ctrl + n 自動(dòng)補(bǔ)全(編輯格式)
x 刪除后面一個(gè)字符
X 刪除前面一個(gè)字符
D 往后刪除全部到行末
do 往前刪除全部到行首
dw 刪一個(gè)單詞
>> 文本右縮進(jìn)
<< 文本左縮進(jìn)
. 執(zhí)行上命令
v + 上/下 進(jìn)行多選
r 替換
^ 移到行首
$ 移到行末
Home + d 刪除到行首
Shift + d 刪除到行尾
末行模式
w 保存
!強(qiáng)制
q 退出
q! 不保存退出
wq = x 保存并退出
set number 顯示行號(hào)
set nonumber 關(guān)閉行號(hào)
set fileencoding 查看文件編碼
/ + 搜索的內(nèi)容
n 向下找
N 向上找
noh 取消高亮
:%s/A/B/g 將所有的A替換為B
:1,10s/A/B/G 1到10行的A替換為B
:!'shell命令' 執(zhí)行對(duì)應(yīng)的shell命令
I/A/O/i/a/o 命令模式 -> 編輯模式
I 從光標(biāo)所在行的行首開始編輯
i 從光標(biāo)前開始編輯
A 從光標(biāo)所在行的行末開始編輯
a 從光標(biāo)后開始編輯
O 從光標(biāo)上方開始編輯
o 從光標(biāo)下方開始編輯
Shift + ; 命令模式 -> 末行模式
Esc 編輯模式 -> 命令模式
Esc 末行模式 -> 命令模式
fdisk 磁盤操作
fdisk -l 查看全部磁盤情況
fdisk disk_name 對(duì)磁盤分區(qū)
mkfs.ext3 new_disk 對(duì)分區(qū)格式化
mount -a 掛載所有分區(qū)
cp 復(fù)制
cp file 目錄
cp -r 目錄 新目錄
查看文件編碼
file --mime-encoding filename
!$ 選擇上一個(gè)命令最后一個(gè)參數(shù)
vim 配置 顯示行號(hào) tab配置
編輯 vimrc 添加
set nu
set ts=4
set expandtab
set autoindent
uniq 用于報(bào)告或忽略文件中的重復(fù)行,一般與sort命令結(jié)合使用
-c 或 ——count 在每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù);
-d 或 --repeated 僅顯示重復(fù)出現(xiàn)的行列;
-f <欄位> 或--skip-fields=<欄位> 忽略比較指定的欄位;
-s <字符位置> 或 --skip-chars=<字符位置> 忽略比較指定的字符;
-u 或 ——unique:僅顯示出一次的行列;
-w <字符位置> 或 --check-chars=<字符位置> 指定要比較的字符。
netstat 用于顯示各種網(wǎng)絡(luò)相關(guān)信息
-a (all)顯示所有選項(xiàng),netstat默認(rèn)不顯示LISTEN相關(guān)
-t (tcp)僅顯示tcp相關(guān)選項(xiàng)
-u (udp)僅顯示udp相關(guān)選項(xiàng)
-n 拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)化成數(shù)字。(重要)
-l 僅列出有在 Listen (監(jiān)聽) 的服務(wù)狀態(tài)
-p 顯示建立相關(guān)鏈接的程序名(macOS中表示協(xié)議 -p protocol)
-r 顯示路由信息,路由表
-e 顯示擴(kuò)展信息,例如uid等
-s 按各個(gè)協(xié)議進(jìn)行統(tǒng)計(jì) (重要)
-c 每隔一個(gè)固定時(shí)間,執(zhí)行該netstat命令
echo $? 查看上一個(gè)命令的執(zhí)行結(jié)果(原理是打印剛剛執(zhí)行完的進(jìn)程提供給系統(tǒng)內(nèi)核的退出碼)
返回0表示成功
放回0以外的值表示失敗