vim常用快捷鍵
進入編輯
o 移動到下一行,并處于編輯狀態(tài)
O 當前光標上一行,并處于編輯模式
i 當前光標下處于編輯模式
A 當前行結尾處于編輯模式
按行操作
shift + g 到文件結尾
gg 到文件開頭
ngg 移動到第n行
n+回車 從當前行算起,向下移動n行
行內操作
$ 行尾 end鍵
0 開頭 home鍵 ^
復制粘貼刪除
yy:復制當前行
nyy:復制當前行起復制幾行
p:粘貼
yyp:復制當前行并粘貼
dd:刪除當前行
ndd:當前行為起點,刪除n行
u:撤銷
行號
:set nu 顯示行號
:set nonu 取消行號
搜索
/ 搜索
n 繼續(xù)向下搜索,N反向搜索
?80 問號回車向上查找
替換
:%s/A/B/g 把A換成B 批量替換
:%s/dd/ff/g
終端下常用的快捷鍵
TAB鍵:自動補全,連續(xù)按3下
Ctrl+a 光標切到命令行開頭
Ctrl+e 光標切到命令行結尾
Ctrl+u 剪切光標前的內容
Ctrl+k 剪切光標后的內容
Ctrl+y 粘貼剪切的內容
Ctrl+Insert 復制
shift+insert 粘貼
Ctrl+c 終斷當前行
Ctrl+l 清屏(clear)
Ctrl+d 退出當前窗口
打包、壓縮、解壓
tar 格式:tar 選項 包名 目錄/文件名(壓縮)
-z 壓縮
-c 創(chuàng)建
-v 輸出過程信息
-f 指定文件
-tf 查看包里的內容
-h 打包軟連接對應的文件
--exclude 排除文件 --exclude=被排除文件
-p 打包的時候保持屬性 類似于(cp -p)
-j 以bzip格式打包
-X 把要排除的文件放到文件列表里 包名稱后面直接跟要排除的文件名
tar 解壓
-x 解壓
zxvf 解壓 簡寫xf
用戶、用戶組、權限
useradd 添加用戶
groupadd 添加用戶組
userdel+用戶名 刪除用戶
groupdel+組名 刪除組
id + 用戶名:查看用戶ID及組ID
passwd+用戶名 設置用戶密碼
chown root:root + 文件名 修改文件所屬的用戶用戶組
chmod 修改文件權限
+x 添加執(zhí)行權限 +好表示添加
- 去掉某個權限
r 讀 對應數(shù)字4
w 寫 對應數(shù)字2
x 執(zhí)行 execute 對應數(shù)字1
chmod -R 遞歸
用戶,用戶組,其他用戶
u 用戶
g 用戶組
o 其他用戶
yum、rpm
yum
yum install + 名稱 安裝軟件
yum update 升級系統(tǒng)
yum upgrade 升級系統(tǒng)
yum search + 名稱 查找包
yum grouplist 查看包組
yum groupinstall 安裝組包
rpm
-qa 查詢軟件是否安裝 query 查詢的意思,a就是all
-ql 顯示軟件包的內容 list列表
-ivh
-e 刪除軟件包
-qf+絕對路徑 顯示命令或軟件屬于哪個軟件包
通配符、特殊字符、正則
通配符
* 代表所有,標示所有
? 表示任意單個字符
[abcd ] 表示括號里的任意單個字符
[!abcd ] 表示不匹配括號里任意字符,取反
[^abcd ] 表示不匹配括號里任意字符,取反
特殊字符
‘ ’單引號 所見即所得 引用的內容不會發(fā)生變化
“ ”雙引號 最經常使用的,可以對命令和變量進行解析(需要用反引號引起來,或者使用 $())
` ` 反引號 引用的命令會被解析,一般用來引能知行的命令,命令要解析,就用反引號
不加引號一般是指不加單引號和雙引號,等同于雙引號。適合于連續(xù)的數(shù)字。
; 表示一個命令的結束。也是命令間的分隔符
# 注釋內容
$ 去變量的值,也是正則的結尾符
{ } 生成序列
| 表示管道,管道符
重定向
1 標準輸出
2 標準錯誤輸出
0 標準輸入
> 標準輸出重定向 把后面接的文件內容清空后,然后放入自己的內容
>> 追加重定向 不清空內容,在文件尾部追加內容
2> 錯誤輸出重定向,只放入命令報錯的信息
2>>錯誤追加重定向
0<或 < 標準輸入
0<< 或 << 追加標準輸入
2>&1 正確的和錯誤的都放在同一個文件里面
& 正確的和錯誤的都放在同一個文件里面
&& 命令行 前面的執(zhí)行成功才會執(zhí)行后面的
正則表達式
^oldboy 表示以oldboy開頭,^表示以什么開頭
oldboy$ 表示以oldboy結尾,oldboy可以換任意單詞
^$ 表示空行 以結尾開頭,那就是空行
* 重復前一個字符0到多次,注意與通配符區(qū)別
. 代表『一定有一個任意字節(jié)』的意思,有一個任意的字符
\ 轉義字符,讓有意義的字符沒有意義(只表示本身)
.* 代表所有,任意字符重復0或0次以上,那就是匹配所有了
^.* 以所有字符開頭,匹配所有內容
[ ] 匹配[ ]集合內的任意一個字符
[^abc] 匹配不包含^后的任意字符
擴展正則(應用場景grep -E;egrep;grep +)
+ 匹配前一個字符1次或1次以上
[ :/ ]+ 匹配括號內的 : 或 / 字符1次或者1次以上
? 匹配前一個字符0或1次
| 表示或者,機同時過濾多個字符串
() 后向引用,前面用小括號括起來的內容,后面用 \1 再取出來
a{n,} 匹配前一個字符最少n次
a{n} 匹配前一個字符正好n次
a{,m} 匹配前一個字符最多m次
三劍客grep、sed、awk
grep grep 文本過濾工具,將過濾內容的整行輸出
-v 把不想要的排除
-i 不區(qū)分大小寫過濾
-n 對搜索到的內容顯示行號,顯示原文件的行號
-o 只輸出匹配的內容
--color 對所匹配的內容顯示顏色,默認是紅色
-w 按照單詞過濾
-E 過濾多個字符串
-A 匹配過濾內容之后的N行
-B 匹配過濾內容之前的N行
-C 匹配過濾內容前后的N行
Sed 命令 Stream Editor (字符流編輯器)
選項
-n 取消默認輸出,常與sed內置命令p連用
-i 直接修改文件內容,而不輸出到終端,不用-i是輸出修改,不修改文件
-e 允許多次編輯
內置命令
a 全拼append,表示追加文本 >> ,在指定的行后添加一行或多行文本
d 全拼delete,刪除匹配文本的行
i 全拼insert,修改源文件
p 全拼print,打印輸出匹配行的內容
替換:'s#oldboy#oldgirl#g'
過濾:sed -n '/oldboy/p' oldboyedu.txt
刪除:sed '/oldboy/d' oldboyedu.txt
替換多個字符串:sed -e 's#oldboy#oldgirl#g' -e 's#49000448#228877690#g' oldboyedu.txt
第二行后追加:sed '2a I am likaiyu \nI like oldgirl' oldboyedu.txt
awk 對復雜的內容取列
-F 指定分隔符,如果不加分隔符,默認是空格
$1表示第一列 $2表示第二列 $NF取最后一列 $(NF-1)倒數(shù)第二列
NR==數(shù)字 表示取第幾行
NR有多種形式 NR==1,NR==2 第一行和第二行
NR>=1&&NR<=5 取第一行到第五行的內容
awk過濾功能
格式:awk ‘/要過濾的內容/ ’文件
取IP地址
ifconfig |sed -n '2p' | awk -F ":" '{print $2}'|awk '{print $1}'
ifconfig eth0 | awk -F "[: ]+" 'NR==2{print $4}'
ifconfig eth0 | sed -n '2p' | awk -F ":" '{print $2}'|awk -F " " '{print $1}'
某些高大上命令
tr按字符替換
tr "被替換內容" "要替換內容" < 文件
find 查找文件或目錄(find 路徑 參數(shù) 選項)
find . -type(按文件類型查找)
f 文件
d 目錄
c
b
l
s
find . -name(按文件名稱查找)
-o 或者
!取反
find 按時間查找
-mtime 按修改時間查找
-atime 安訪問時間查找
-ctime 按改變時間查找
+7 7天前
7 7天
-7 最近7天
-exec 對找到的內容進一步處理
{ }中放前面查到的內容,結束的時候用 ; 結尾
wc 查看文件行數(shù) 單詞 字節(jié)
-l --lines 一個文件有多少行
-c --bytes 字節(jié)
-m --字符 chars
-w --words 單詞
-L --max-line-length 最長行的長度
cut 切割 簡單的按列取內容
-d 指定分割符 把前面內容和后面內容分割開來的
-f 顯示哪一列
-c char 取字符
xargs 從標準輸入建立和執(zhí)行命令 分組處理
-n 分幾行輸出
lsattr 查看文件隱藏屬性
chattr 修改文件隱藏屬性
+a append 只能追加
+i immutable 無敵
crontab
-l 顯示當前用戶的定時任務
-e 編輯當前用戶的定時任務
* 每 的意思
/n n數(shù)字 */10 * * * * 每隔/10分鐘 /隔
- 從哪里來到哪里去,連貫,連續(xù)時間
, 分割,不連貫的,沒聯(lián)系的用逗號
信息屬性查看顯示
uname 顯示linux系統(tǒng)信息
-n 查看主機名
-r 查看內核版本信息
-m 系統(tǒng)是32位還是64位
-a 查看全部信息
hostname 查看修改主機名
file 查看文件屬性
stat 查看文件目錄詳細屬性
df 查看分區(qū)信息
-h 以人類可讀方式查看
-i 查看inodes大小
du 查看文件大小
-h 人類可讀
-s 概括
df -hl 查看磁盤剩余空間
df -h 查看每個根路徑的分區(qū)大小
du -sh [目錄名] 返回該目錄的大小
du -sm [文件夾] 返回該文件夾總M數(shù)
du -h [目錄名] 查看指定文件夾下的所有文件大?。ò游募A)
ps -ef 顯示正在運行的進程信息
chkcongfig 檢查是否開機自啟動
uptime 查看系統(tǒng)負載
date 查看當前時間
-s 修改時間
+%F 顯示日期
還有一大堆顯示看man手冊吧,太特么多了
hwclock -w 修改時間后寫入硬件
3W各種查各種看
whoami 查看當前用戶
whereis + 命令 查看執(zhí)行命令所在路徑
-b 查二進制
which +命令 查看命令絕對路徑
運行級別查看及切換
runlevel 查看當前運行級別
init 切換運行級別
0 停機
1 單用戶模式
2 沒有NFS的多用戶模式帶
3 完全多用戶模式
4 保留
5 X11桌面模式
0 重啟
查看IP,子網掩碼,重啟網絡
ifconfig 查看網卡配置信息 后面加端口名稱 ifconfig eth0
ip a (ip address)查看IP地址 可以加端口名稱
route -n 查看子網掩碼
/etc/init.d/network restart 重新啟動網絡
service network restart 重新啟動網絡
關機重啟命令
shutdown -h now 立即關機
shutdown -r now 立即重啟
reboot 重啟
init 0 立即關機
init 6 立即重啟
poweroff 關機
halt 關機
exit 退出
logout 注銷
基礎操作命令
ls 列出目錄內容
-l 以長格式列出目錄內容
-a 列出目錄中所有內容
-h 以人類可讀方式列出
-d 列出目錄
--color=auto 對列出內容增加顏色(默認紅色)
-i 顯示文件索引號
-p 在文件夾后面加 / 表示目錄
--time-style=long-iso 改變詳細信息中的時間格式
-F 在列出的文件末尾加字符說明文件類型,@符號鏈接,/目錄,| fifos ,=套接字
cd 切換目錄
~ 用戶家目錄
. 當前目錄
.. 上級目錄
- 上一次所在目錄
mkdir 創(chuàng)建文件夾
-p 遞歸創(chuàng)建文件夾
touch 創(chuàng)建文件
cp 拷貝復制
-r 遞歸拷貝
-a 包含所有屬性拷貝(-pdr)
-p 含文件屬性拷貝
mv 移動或重命名
rm 刪除 (慎用)
-f 強制刪除不提示
-r 刪除文件夾
echo 顯示輸出
-n 不換行輸出
-e 激活轉義字符
\n 換行
\t 相當于tab鍵
cat 查看文件內容
-n 顯示行號
-A顯示文件屬性
more 分頁顯示文件
less 分頁顯示文件
head 查看文件頭部內容
-n 查看幾行
tail 查看文件尾部內容
-n 查看幾行
-f 動態(tài)顯示
pwd 查看當前路徑
tree 樹狀結構顯示目錄
-L 顯示幾層
-d 只顯示目錄
別名
alias 添加別名
unalias 取消別名
dos2unix 將Windows下編輯的文件轉換成linux格式
ln
ln 創(chuàng)建硬鏈接
ln -s 創(chuàng)建軟鏈接
updatedb更新mlocate.db 數(shù)據(jù)庫
locate 通過名字查找文件
ntpdate ntp1.aliyun.com
向服務器同步時間