查看当前防火墙状态。
systemctl status firewalld
关闭当前防火墙。
systemctl stop firewalld
开机防火墙不启动
systemctl disable firewalld
underscores_in_headers on;
nginx里面有个underscores_in_headers 配置,默认是off,这个配置是默认忽略掉请求header里
面的"_"的,改成on即可,或者把请求头里别用"_"!!!
netstat -anlp | grep -w 80 查看端口 端口属于哪个服务
ip a 掌握查看keepalived绑定的浮动
vim 基础命令
查询命令 / ?
跳行 ngg
删除行 dd :1,2d 删除1到2行
批量修改 :0,$s/pro/pros/gc s替换 g匹配多个也全修改 c确认
乱码 :set encoding=utf-8
翻页 ctrl + f 向下翻页 ctrl + b 向上翻页 G最后 gg第一行
光标 0 移到行首 ^行首第一个非空白字符处 $移到行尾
H 当前屏幕最上一行 M 当前屏幕中间一行 L 当前屏幕最下面一行
r R 替换 r替换一个 R替换多个直到esc结束
yy 复制所在的行 3yy复制光标所在行在内向下的连续3行
y3k复制当前行和上三行 y3j复制当前行和下三行
yw复制一个字 y$复制到行末 y0从光标位置复制到行首
p在光标所在的位置后面或下行粘贴刚刚复制的东西 可以是yy的行内容 yw的字词 y$的一段内容
P(大写p)在光标所在的位置前面或上一行黏贴岗复制的东西
dd删除光标所在的当前行 3dd=d2j删除光标所在行在内的向下连续3行 d2k删除光标所在行与其向上2行
dw删除光标所在位置的一个单词 通过d删除的内容会自动进入到剪切板中 可以通过p/P命令进行粘贴
ddp/P交换上下两行内容
D删除到行末 = d$ x剪切当前字符=复制并删除 X剪切前一个字符=复制并删除
u恢复前一个操作
ctrl + r回滚回复的操作内容 与u回复操作相反
J将下一行和当前行连接为一行
xp交换当前字符和下一个字符 拆分为x剪切p粘贴 .重复上一个编辑命令
fx在当前行中找x字符 找到了就跳转至
;重复上一个f命令 而不用重复输入fx 即;为next 寻找下一个相同字符位置
高级命令模式内容::
]p有缩进的粘贴 vim会自动调节代码的缩进
~切换大小写 当前字符
g~iw切换当前字的大小写
gUiw将当前字变成大写
guiw将当前字变成小写
>>将当前行右移一个单位
<<将当前行左移一个单位
==自动缩进当前行
ZQ不保存修改内容并退出vi
ZZ保存修改的内容并退出vi
tx 与fx类似,但是只是跳到x的前一个字符
Fx 跟fx方向相反
)或( x 跳转到上/下一个语句
{,} 跳转到上/下一个完整段落的段首位置
* 查找光标所在处的单词 向下查找
# 查找光标所在处的单词 向上查找
`. 跳转至上次编辑位置
ma 把当前位置存成标签a
`a 跳转到标签a处
gd: 跳至当前光标所在的变量的声名处
编辑模式:::
ioa 后 下一行 前 R
可视化模式::::
在命令模式下按小写字母v 选择一个字条然后左右移动,可以选择多个字符
然后按下字母y 拷贝选择的字符 然后按下字符p或者P 把拷贝的内容进行粘贴
选择后按字母d 可以对选择的内容进行删除
在命令模式下按大写字母V 选择一行 然后上下移动 可以选择多行
然后按下字母y拷贝选择的行,然后按下字母P或者p 把拷贝的内容进行粘贴
选择后按字母d 可以对选中的内容进行删除
在命令模式下按 ctrl + v 选择一列,然后上下左右移动可以选择多列内容
然后按下字母y 拷贝选择的内容 然后按字母p/P 把拷贝的内容进行粘贴
选择后按字母d 可以对选中的内容进行删除
实际环境中若通过vi打开文件,中文显示乱码,则按照下面方式配置解决:
可以在/root/.vimrc中进行设置如下内容:
vi /root/.vimrc
添加如下内容:
set fileencodings=utf-8,chinese,latin-1
set termencoding=utf-8
set encoding=utf-8
执行命令使其生效:
source /root/.vimrc
最终解决vi打开中文乱码的问题。
sed高级用法
sed 和 awk 太多了
grep 过滤内容
grep -v -E -w -c -A -B -C -r -l -n -o
cat file | grep "keyword" 输出文件file内容 并通过grep过滤出包含keyword内容的行
cat file | grep -v "keyword" 输出文件file内容 并通过grep过滤出不包含keyword内容的行
cat file | grep -w "keyword" 输出文件file内容 并通过grep过滤出有keyword词的行(必须是keyword 若是keywords则不算)
cat file | grep -wc "ssh" 输出文件file内容 并统计处包含ssh单词行的数量
加w是过滤出包含ssh这个单词的行数 c是count表示计数
-A = after -B = befor -C = context上下文
cat file | grep -A 3 "keyword" 输出文件file内容,过滤出包含keyword内容的行,并输出匹配内容行之后的三行内容
cat file | grep -B 3 "keyword" 输出文件file内容,过滤出包含keyword内容的行,并输出匹配内容行之前的三行内容
cat file | grep -C 3 "keyword" 输出文件file内容,过滤出包含keyword内容的行,并输出匹配内容行的前后三行内容
常见命令
ifconfig 查看网卡名 ip a 掌握查看keepalived绑定的浮动IP
netstat -anlp 查看端口 以及能通过端口查看到该端口属于那个服务 例如:netstat -anlp | grep 80 或 netstat -anlp | grep -w 80
其中LISTEN表示监控端口,即启动这个端口的真正服务进程
最后面一列的xxxx/yyyy 表示该端口是属于进程号为xxxx的yyyy服务。
df -h/-i/T 查看磁盘空间和分区文件系统类型
df -h::: 文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 27G 9.5G 17G 36% /
如上最后一列"/"表示根分区挂载目录,第一列为文件系统或磁盘分区。
36%表示挂载在根目录"/"上的分区/dev/mapper/cl-root 磁盘空间使用了36%。
du -sh/-sk 查看文件或目录大小
grep -v/-r/-c/-E/-A/-B/-C/-l/-n/-w 过滤输出内容
sed -i/-n "s///g" 过滤或修改文件 或输出内容
awk -F"'{print $2}'对输出或文件内容进行按列处理
top -H/-p/数字1 查cpu内核数 查看cpu进程内存等情况
top 第一行 等于uptime命令结果
内存使用情况 free -m
top默认进程以cpu使用率排序 若想按内存使用率排序 按大写字母C
按大写字母P 安排cpu使用率对进程排序
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
pid进程号 启动用户 已使用的 虚拟内存 物理内存 共享内存 状态S cpu 内存 该进程启动运行多长时间 进程名
其中cpu的运行状态
R运行状态:并不意味着进程一定再运行中,也可以在运行队列里
S睡眠状态:进程在等待事件完成;(浅度睡眠可以被唤醒)
D磁盘睡眠状态: 不可中断睡眠(深度睡眠不可以被唤醒,通常在磁盘写入时发生)
T停止状态:可以通过发送SIGSTOP信号给进程来停止进程,可以发送SIGCONT信号让进程继续运行
命令:kill SIGCONT pid 可以让停止状态进程继续进行。
X死亡状态:该状态是返回状态,在任务列表中看不到
Z僵尸状态:子进程退出,父进程还在进行,但是父进程没有督导子进程的退出状态,子进程进入僵尸状态;
T追踪停止状态 trancing stop
uptime 查看cpu负载
uptime命令的结果内容与top命令输出中第一行相同。
top - 21:37:56 up 27 days, 23:57, 2 users, load average: 1.54, 1.91, 2.34
up 27 days表示服务器运行了27天,2 users 表示当前有2个用户在线, load average表示CPU负载情况:
kill pid 标识停止指定进程号的服务 kill -9 pid 标识发送强制停止该进程号pid服务的信号
kill sigcont pid 表示向进程号为pid的服务发送信号,让该服务继续运行
free -m 掌握如何查看内存 以及分析内存使用情况
# free -m
total used free shared buffers cached
Mem: 145058 144284 774 83 2107 19407
-/+ buffers/cache: 122768 22289
Swap: 147444 14804 132640
总内存145058MB,剩余内存774MB,共享内存shared: 83MB,缓冲内存buffers:2107MB, 缓存内存cached:19407MB
缓冲内存:存放即将会写入磁盘的数据,为避免大量写入,提升写入磁盘的效率。
缓存内存:存放从磁盘中读取出来存放在内存的数据,为提升读取速度。
ssh 远程登陆命令 ssh root@ip 或 ssh -p 22 root@ip
scp 远程拷贝命令:
scp file root@ip:/home/ 本地拷贝到远程服务器
scp root@ip:/home/t.txt /home/ 远程服务器拷贝到本地
scp -P 22 file root@ip:/home/ 指定ssh服务端口号远程拷贝
cp [-rf] 拷贝文件[目录] cp -rf file1 home/file2
mv 重命名 或 移动文件 或 目录 mv file_old_name file_new_name
cat 或 tac 查看文档 cat file 正序输出 tac file 倒序输出
ps -ef 查看进程 掌握!
ps -ef | grep -v grep | grep -w sso-rst | awk '{print $2}'
获取进程pid的方法
tar zcvf ngiam.tar.gz ngiam 把ngiam目录全部打包成一个ngiam.tar.gz包 参数-v表示把压缩或者解压过程输出来,可以不带该参数
tar zxvf ngiam.tar.gz 把ngiam.tar.gz包解压到当前目录
tar zxvf ngiam.tar.gz -C /home 把ngiam.tar.gz包解压到/home目录
zip -r ngiam.zip ngiam 把ngiam目录压缩未ngiam.zip包
unzip -q ngiam.zip 或者 unzip -q ngiam.zip -d /home 解压包或解压包到指定目录 -q 不把解包过程显示出来
查看当前防火墙状态。
systemctl status firewalld
关闭当前防火墙。
systemctl stop firewalld
开机防火墙不启动
systemctl disable firewalld
free命令
Mem 行(第二行)是内存的使用情况。
Swap 行(第三行)是交换空间的使用情况。
total 列显示系统总的可用物理内存和交换空间大小。
used 列显示已经被使用的物理内存和交换空间。
free 列显示还有多少物理内存和交换空间可用使用。
shared 列显示被共享使用的物理内存大小。
buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
available 列显示还可以被应用程序使用的物理内存大小。