VIM常用语法:
一般模式:
yy:复制当前行(光标所在的行)
y3y:往后复制3行(包括光标所在的行)
dd:删除当前行(光标所在的行)
d3d:往后删除3行(包括光标所在的行)
p:粘贴所复制的内容(在光标位置复制)
u:撤销上一步操作
x:删除(向后删)
X:删除(向前删)
gg或者1G:移动到页头
G:移动到页尾
3G:移动到目第3行
^:移动到行头
$:移动到行尾
yw:复制一个词
dw:删除一个词
命令模式:
:w 保存
:q 退出
:! 强制执行
: %s/旧字符/新字符 批量替换
/ 要查找的词 n 查找下一个,N 往上查找
? 要查找的词 n是查找上一个,N是往下查找
:set nu 显示行号
:set nonu 关闭行号
ZZ(shift+zz)没有修改文件直接退出,如果修改了文件保存后退
:nohl 去除高亮显示
一般模式 -> 编辑模式:
i:当前光标前
a:当前光标后
o:当前光标行的下一行
I:光标所在行最前
A:光标所在行最后
O:当前光标行的上一行
编辑模式 -> 一般模式:
按『Esc』键
一般模式 -> 命令模式:
输入 : / ? 3个中的任何一个按钮
命令模式 -> 一般模式:
按『Esc』键
基本命令:
hostname 查看当前服务器的主机名称
systemctl start 服务名 开启服务
systemctl stop 服务名 关闭服务
systemctl restart 服务名 重新启动服务
systemctl status 服务名 查看服务状态
systemctl --type service 查看正在运行的服务
systemctl list-unit-files 查看所有服务器自启配置
systemctl disable 服务名 关掉指定服务的自动启动
systemctl enable 服务名 开启指定服务的自动启动
systemctl is-enabled 服务名 查看服务开机启动状态
pwd 显示当前工作目录的绝对路径
mkdir -p /a/b/c 递归创建目录
cat -n 显示文件内容(包括行号,包括空行)
more 要查看的文件
*****************************************************
*操作 * 功能说明 *
*空白键(space) * 向下翻一页 *
*Enter * 向下翻一行 *
*q * 立刻离开 more,不再显示该文件内容 *
*Ctrl+F * 向下滚动一屏 *
*Ctrl+B * 返回上一屏 *
*= * 输出当前行的行号 *
*:f * 输出文件名和当前行的行号 *
*****************************************************
less 要查看的文件
******************************************************
*操作 * 功能说明 *
*空白键 * 向下翻动一页 *
*[pagedown] * 向下翻动一页 *
*[pageup] * 向上翻动一页 *
*/字串 * 向下搜寻字串(n:向下查找,N:向上查找) *
*?字串 * 向上搜寻字串(n:向上查找,N:向下查找) *
*q * 离开 less 这个程序 *
******************************************************
echo -e [输出内容] 支持反斜线控制的字符转换
head 文件 查看文件头10行内容
head -n 行数 文件 查看文件指定行数内容
tail 文件 查看文件后10行内容
tail -n 行数 文件 查看文件后行数内容
tail -f 文件 实时追踪文件的更新
> 覆盖写 >> 追加写
history 查看已经执行过历史命令
**************************************************************************************************************
date +%D 11/22/22 以MM/DD/YY显示当前日期
date +%F 2022-11-22 以YYYY-MM-DD显示日期
date Tue Nov 22 21:05:58 CST 2022 显示当前时间
date "+%Y-%m-%d %H:%M:%S" 2022-11-22 21:07:28 显示年月日时分秒
date +%H-%M-%S 21-25-39 按照指定样式显示时间
date +%s 1669123562 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
date -d '1 days ago' Mon Nov 21 21:28:18 CST 2022 按照条件显示date信息
date -d '-1 month ago' Thu Dec 22 21:29:16 CST 2022 按照条件显示date信息
date -d '-1 month ago' +%Y%m%d 20221222 按照字符串的设置显示日期
date -d '-1 day' +%Y-%m-%d 2022-11-21 按照字符串的设置显示日期
**************************************************************************************************************
su 用户名称 切换到指定用户
sudo 设置普通用户具有root权限
改变文件/目录权限
chmod [{ugoa}{+-=}{rwx}] 文件或目录
chmod [mode=421] [文件或目录]
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
r=4 w=2 x=1 rwx=4+2+1=7
chmod -R 777 xiyou/ 修改整个目录中所有文件的所有者、所属组、其他用户都具有可读可写可执行权限
find [搜索范围] [选项]
**************************************************************************************************************
选项 功能 例子
-name<查询方式> 按照指定的文件名查找模式查找文件 find xiyou/ -name "*.txt"
-user<用户名> 查找属于指定用户名所有文件 find opt/ -user ch
-size<文件大小> 按照指定的文件大小查找文件(+n大于,-n小于,n等于) find /home -size +204800
**************************************************************************************************************
df -h 查看磁盘使用情况
fdisk -l 查看磁盘分区详情
ps -aux | grep xxx 查看系统中所有进程
ps -ef | grep xxx 可以查看子父进程之间的关系
kill [选项] 进程号 通过进程号杀死进程
killall 进程名称 通过进程名称杀死进程(支持通配符)
pstree -p 显示进程pid
pstree -u 显示进程所属用户
top [选项] 查看系统健康状态
**************************************************************************************************************
选项 功能
-d 秒数 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
-i 使top不显示任何闲置或者僵死进程。
-p 进程号 通过指定监控进程ID来仅仅监控某个进程的状态
**************************************************************************************************************
操作说明:
**************************************************************************************************************
操作 功能
P 以CPU使用率排序,默认就是此项
M 以内存的使用率排序
N 以PID排序
q 退出top
**************************************************************************************************************
netstat -anp | grep 进程号 查看该进程网络信息
netstat -nlp | grep 端口号 查看网络端口号占用情况
crontab [选项]
**************************************************************************************************************
选项 功能
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
**************************************************************************************************************
编辑crontab定时任务时* * * * * 含义:
**************************************************************************************************************
项目 含义 范围
第一个"*" 一小时当中的第几分钟 0-59
第二个"*" 一天当中的第几小时 0-23
第三个"*" 一个月当中的第几天 1-31
第四个"*" 一年当中的第几月 1-12
第五个"*" 一周当中的星期几 0-7(0和7都代表星期日)
**************************************************************************************************************
特殊符号:
**************************************************************************************************************
特殊符号 含义
* 代表任何时间。比如第一个"*"就代表一小时中每分钟都执行一次的意思。
, 代表不连续的时间。比如"0 8,12,16 * * * 命令",就代表在每天的8点0分,12点0分,16点0分都执行一次命令
- 代表连续的时间范围。比如"0 5 * * 1-6命令",代表在周一到周六的凌晨5点0分执行命令
*/n 代表每隔多久执行一次。比如"*/10 * * * * 命令",代表每隔10分钟就执行一遍命令
**************************************************************************************************************
例子:
**************************************************************************************************************
时间 含义
45 22 * * * 在22点45分执行命令
0 17 * * 1 每周1 的17点0分执行命令
0 5 1,15 * * 每月1号和15号的凌晨5点0分执行命令
40 4 * * 1-5 每周一到周五的凌晨4点40分执行命令
*/10 4 * * * 每天的凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1 每月1号和15号,每周1的0点0分都会执行命令
**************************************************************************************************************