目录
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 - 暗色