目錄
Linux 常用命令
1. 幫助命令
# 查詢命令
man command
2. 文件管理
# PATH
ls - 列出目錄下的文件
cd - 切換到指定目錄下
pwd - 顯示當前所在路徑
# FILE
touch - 創建一個空文件
mkdir - 創建一個空目錄
rmdir - 刪除一個空目錄
rm - 刪除文件或目錄
cp - 複製文件或目錄
mv - 移動文件或目錄
3. 權限管理
# 命令包括
chgrp - 設置用戶組
chown - 設置文件所有者
chmod - 設置文件權限
umask - 減文件權限
chattr - 設置文件的隱藏屬性
lsattr - 查看文件的隱藏屬性
# 一般權限
r - 可讀
w - 可寫
x - 可執行
# 特殊權限
s - SUID/SGID
t - SBIT
# 隱藏屬性包括 (設置此屬性的效果)
A - 其他用戶訪問此文件時, atime 不可更改
S - 同步文件寫入磁盤
a - 只能增加數據, 不能刪除與修改數據
c - 存儲時壓縮數據, 讀取時解壓
d - 不可被 dump 命令備份
i - 不可被刪除, 改名, 設置連接, 無法寫入或添加數據
s - 如果文件被刪除, 它會完全出磁盤移除
u - 與 s 相反, 如果文件被刪除, 還能在磁盤中找回
4. 查找文件
# 它們真實的在磁盤中查找文件
which - 查找可執行文件
find - 查找特定文件或目錄
# 它們使用數據庫進行查找, 而不是"真實"的
whereis - 查找特定文件或目錄
locate - 同 whereis
# 更新數據庫
updatedb
5. 查看文件內容
cat - 從頭到尾查看 (常用)
tac - 從尾到頭查看
head - 查看頭部的 N 行
tail - 查看尾部的 N 行
more - 從頭到尾查看, 可向前翻頁
less - 比 more 功能更強, 可隨意翻頁
od - 以二進制顯示內容
6. 壓縮與解壓文件
# 常用 Linux 壓縮後綴, 雖然 Linux 並不靠後綴分辨文件類型, 但這便於人區分
*.Z - compress 程序壓縮文件
*.gz - gzip 程序壓縮文件
*.bz2 - bzip2 程序壓縮文件
*.tar - tar 程序打包文件, 並沒有壓縮過
*.tar.gz - tar 程序打包文件, 經過 gzip 壓縮
*.tar.bz2 - tar 程序打包文件, 經過 bzip2 壓縮
# 單文件壓縮與解壓
compress, uncompress (過時,很少用)
gzip, zcat (經常用)(zcat 用於查看壓縮文件)
bzip2, bzcat (經常用)(bzcat 用於查看壓縮文件)
# 多文件與目錄 (tar)
-c : 新建打包文件
-t : 查看打包文件的內容有那些文件名
-x : 解打包或解壓縮的功能, 可以配合 -C 在指定目錄解壓開
-j : 通過 bzip2 的支持進行壓縮/解壓
-z : 通過 gzip 的支持進行壓縮/解壓
-v : 在壓縮/解壓的過程中把正在處理的文件名顯示出來
-f filename : -f 後面接要被處理的文件名
-C 目錄 : 特定要在哪個目錄解開
# 其他常用參數
-p : 保留數據原本的權限和屬性
-P : 保留絕對路徑, 即允許備份數據中有根目錄存在
--exclude=FILE: 在壓縮過程中, 不要把 FILE 打包
VIM 的常用命令
1. 移動光標的方法
# 基本命令
h 或 ← - 光標向左移動一個字符
l 或 → - 光標向右移動一個字符
j 或 ↓ - 光標向下移動一個字符
k 或 ↑ - 光標向上移動一個字符
[Ctrl]+[f] - 屏幕向下移動一頁, 相當於[Page Down]
[Ctrl]+[b] - 屏幕向上移動一頁, 相當於[Page Up]
[Ctrl]+[d] - 屏幕向下移動半頁
[Ctrl]+[u] - 屏幕向上移動半頁
+ - 光標移動到非空格符的下一行
- - 光標移動到非空格符的上一行
n<space> - 光標向後移動 n 個字符
0或[Home] - 光標移動到當前行首
$或[End] - 光標移動到當前行尾
H - 光標移動到屏幕的最上方
M - 光標移動到屏幕的中間
L - 光標移動到屏幕的最下方
G - 移動到文件行尾
nG - 移動到文件第 n 行
gg - 移動到文件行首
N[Enter] - 向下移動 n 個字符
2. 查找與替換
/word - 向下查找名爲 word 的字符串
?word - 向上查找名爲 word 的字符串
n - 重複前一次的查找動作
N - 反向重複前一次的查找動作, 即如果前一次是?word, 則按下N後變成/word
:n1,n2 s/word1/word2/g - 在第n1與n2行之間尋找 word1 這個字符串, 並用 word2 替換 word1
:1,$ s/word1/word2/g - 在第1行與最後一行尋找 word1 這個字符串, 並用 word2 替換 word1
:1,$ s/word1/word2/gc - 在第1行與最後一行尋找 word1 這個字符串, 並用 word2 替換 word1, 並在替換前詢問是否確認此操作
3. 刪除、複製與粘貼
x,X - x是向後刪除一個字符, X是向前刪除一個字符
nx - 向後刪除 n 個字符
dd - 刪除當前行
ndd - 刪除光標所在的向下n行
d1G - 刪除所在行到第一行
dG - 刪除所在行到行尾
d$ - 刪除光標所在字符到所在行的行尾
d0 - 刪除光標所在字符到所在行的行首
yy - 複製所在行
nyy - 複製光標所在的向下n行
y1G - 複製當前行到行首
yG - 複製當前行到行尾
y$ - 複製光標所在字符到所在行的行尾
y0 - 複製光標所在字符到所在行的行首
p,P - p粘貼到向下一行, P粘貼到向上一行
4. 移動光標的方法
J - 將光標所在行與下一行的數據結和成一行
c - 重複刪除多個數據 [5cj]
u - 恢復前一個操作
. - 重做前一個操作
[Ctrl]+r - 重做上一個操作
5. 進入插入或替換模式
i, I - 進入插入模式
- i 從當前光標插入, l 從所在行的第一個非空格字符處插入
a, A - 進入插入模式
- a 從當前光標所在下一個字符插入, A 從光標所在行的最後一字符插入
o, O - 進入插入模式
- o 爲當前光標所在下一行插入新的一行, O 爲當前光標所在上一行插入新的一行
r, R - 進入替換模式
- r 會替換光標所在的字符一次, R 會替換光標所在的字符, 直到 Esc 退出替換模式
[Esc] - 退出編輯模式, 回到一般模式
6. 命令行的保存,離開等命令
:w - 將編輯的內容寫入硬盤
:w! - 強制寫入該文件
:q - 離開 vi
:q! - 若修改過文件, 卻又不想保存, 使用 q!
:wq - 寫入文件, 並離開 vi
ZZ - 若文件沒有改動, 則不保存離開, 若文件改動, 則保存離開
:w filename - 另存文件
:r filename - 讀入另一個文件
:n1,n2 w filename - 把 n1 行到 n2 行間的數據保存爲 filename 這個文件
:! command - 暫離 vi, 到終端執行 command 命令
# 其他
:set nu - 顯示行號
:set nonu - 不顯示行號
7. 塊選擇命令
V - 字符選擇, 會將光標經過的地方反白選擇
V - 行選擇, 會將光標經過的行反白選擇
y - 將反白的地方複製
d - 將反白的地方刪除
[Ctrl] + v - 塊選擇, 可以用長方形反白選擇
8. 多文件編輯
:n - 編輯下一個文件
:N - 編輯上一個文件
:files - 列出目前 VIM 打開的所有文件
:sp [filename] - 打開一個新窗口, 如果加了filename, 表示用新窗口打開,
否則表示兩個窗口爲同一個文件內容, 上下分屏
:vsp [filename] - 同上, 左右分屏
# up
[ctrl] + w + k - 光標移動到上方窗口
[ctrl] + w + ↑ - 同上
# down
[ctrl] + w + j - 光標移動到下方窗口
[ctrl] + w + ↓ - 同上
# left
[ctrl] + w + h - 光標移動到左方窗口
[ctrl] + w + ← - 同上
# right
[ctrl] + w + l - 光標移動到右方窗口
[ctrl] + w + → - 同上
# switchover
[ctrl] + w + w - 切換到下一窗口
# exit
[ctrl] + w + q - 結束下方窗口
# windows
[ctrl] + w + + - 增加窗口高度
[ctrl] + w + - - 減少窗口高度
[ctrl] + w + = - 所有窗口高度相同
[ctrl] + w + < - 左窗口加寬度
[ctrl] + w + > - 右窗口加寬度
9. 環境設置參數
:set - 顯示所有環境參數
:set all - 顯示所有設置過的環境參數
:set nu - 設置行號
:set nonu - 沒有行號
:set hlsearch - 高亮度查找
:set nohlsearch - 沒有高亮度查找
:set autoindent - 自動縮進
:set noautoindent - 無自動縮進
:set ruler - 顯示說明欄
:set showmode - 顯示狀態欄如 --INSERT--
:syntax on - 代碼高亮
:syntax off - 沒有代碼高亮
:set bg=dark - 亮色
:set bg=light - 暗色