SELinux
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,这个功能管理员又爱又恨,大多数生产环境也是关闭的做法,安全手段使用其他方法。
大多数ssh连接不上虚拟机,都是因为防火墙和selinux阻挡了
获取selinux状态
[root@HH ~]# getenforce Disabled
临时关闭selinux,重启后又会生效
[root@HH ~]# setenforce 0
永久关闭selinux,写入到selinux配置文件
vim /etc/selinux/config
SELINUX=disabled #更改为这个
重启后selinux永久关闭
iptables防火墙
systemctl status firewalld # 查看防火墙状态 systemctl stop firewalld # 关闭防火墙 systemctl disable firewalld # 关闭防火墙开机启动 systemctl is-enabled firewalld.service # 检查防火墙是否启动
# 查看防火墙规则 iptables -L # 清空防火墙规则 iptables -F # 关闭防火墙软件,这个服务永久关闭 systemctl stop firewalld
vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,想当与wins的notepad++
分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式:
用户刚刚启动 vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令
移动光标
w(e) # 移动光标到下一个单词 b # 移动到光标上一个单词 5j # 向下移动5行 gg # 移动光标到文档的首行 G # 移动光标到文档尾行 数字0 # 移动到本行开头 $ # 移动光标到本行结尾 H # 移动光标到屏幕首行 M # 移动到光标到屏幕的中间一行 L # 移动光标到屏幕的尾行 ctrl + f # 下一页 ctrl + b # 上一页 `. # 移动光标到上一次的修改行
查找
/zouzou # 在整篇文档中搜索zouzou字符串,向下查找 ?zouzou # 在整篇文档中搜索zouzou字符串,向上查找 * # 查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处 # # 查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处 gd # 找到光标所在单词匹配的单词,并停留在非注释的第一个匹配上 % # 找到括号的另一半!!
复制 删除 粘贴
yy # 拷贝光标所在行 dd # 删除光标所在行 D # 删除当前光标到行尾的内容 dG # 删除当前行到文档尾部的内容 p # 粘贴yy所复制的内容 x # 删除光标所在的字符 u # 撤销上一步的操作
数字
3yy # 拷贝光标所在的3行 5dd # 删除光标所在5行
底线模式
:set nu # 显示vim行号 :set nonu # 取消行号 :数字 # 调到数字那行 :q! # 强制退出,不保存 :wq! # 强制写入退出
替换
例如,有个文件内容如下
1101,jerry,1991,测试 1102,bob,1993,开发 1103,mike,1996,运维
替换当前行的第一次出现的字符串
# old 为要替换的字符串,new 为要替换成的字符串 :s/old/new/
这将把当前中模式 old 的第一次出现修改为 new。 /(斜杆)是命令不同部分之间的分隔符(当斜杆为该行的最后一个字符时,可不写)
1101,jerry,1991,测试 1102:bob,1993,开发 # 光标在第二行 1103,mike,1996,运维 :s/,/:/ # 执行后发现只有当前光标所在的行的第一次出现的字符串被替换了
替换当前行的所有字符串
# old 为要替换的字符串,new 为要替换成的字符串,g 代表要替换所有 :s/old/new/g
把当前行 old 的每次出现改为 new,而不只是该行的第一个 old。:s 命令允许替换串后面带有选项,上面语法中的 g 代表全局( g 选项影响一行中的每个模式,不要把它与影响文件中所有行的 :g 命令混淆)
1101,jerry,1991,测试 1102:bob:1993:开发 # 光标在第二行 1103,mike,1996,运维 :s/,/:/g # 执行后发现第二行的所有 , 字符串都被替换成了 :因为加了 g
替换指定行的
通过在 :s 命令前加上地址前缀,可以把它的范围扩展到多行。例如下面命令把 2 行到 3 行的 old 的每次出现都改为 new
:2,3s/old/new/g
例如
1101,jerry,1991,测试 # 光标在第一行 1102:bob:1993:开发 1103:mike:1996:运维 :2,3s/,/:/g # 执行后发现第二行和第三行的 , 都被替换成了 :
全局替换
# 下面的命令把整个文件中的 old 的每次出现都改为 new :1,$s/old/new/g # 我们知道 % 等价于 1,$,所以上行命令也可以这样写 :%s/old/new/g
例如
1101:jerry:1991:测试 1102:bob:1993:开发 1103:mike:1996:运维 :1,$s/,/:/g # 执行后整个文件的 , 都被替换成了 : # 等价于下面的 :%s/,/:/g
终端中使用快捷键
有时候我们会在终端中输入一些命令,如何快速的回到开头和结尾,删除光标前后的数据呢?
ctrl+a 或者 Home
:跳到光标所在行的行首ctrl+e 获取 End
:跳到光标所在行的行尾Ctrl + U
:从光标位置删除到行首。Ctrl + K
:从光标位置删除到行尾Alt + < (左箭头)
:光标移动到前一个单词Alt + > (右箭头)
:光标移动到后一个单词Ctrl + r
:搜素之前使用过的命令Ctrl + w
:删除光标所在位置前任意个空格以及空格前的一个单词Ctrl + xx
:光标所在输入位置与行尾互相切换跳转