admin 管理员组文章数量: 1086019
文章目录
- 1. vim简介
- 编码问题
- 2. 模式切换
- 2.1 输入模式
- 2.2 末行模式
- 末行模式里跳转
- 文件内容替换
- 经典案例
- 2.3 命令模式
- 命令模式里跳转
- 查找字符串
- 2.4 替换模式
- 2.5 可视模式
- 3. 随机产生字符串
- md5sum
- hash函数
- mkpasswd
- string库(python里的库)
- 4、tmux工具使用
- 5、脚本执行的四种方式
1. vim简介
Linux里面的编辑工具:vi、vim、emacs、gedit
- vi是Linux里默认安装的文本编辑器
- vim是vi的升级版
- centos 7/8 最小的安装,默认是没安装vim的
yum install/remove vim -y 安装卸载软件
编码问题
- wiidows:记事本识别vim的文本的换行符号不友好,用sublime打开比较好
- Linux: vim编辑器可以打开sublime和记事本编辑的文件内容,但是打开记事本的可能有乱码
原因: 记事本默认采用的编码(ANSI)和linux (Unicode、UTF-8)的不一样, 将记事本打开的文件另存为其他编码即可在linux里面打开不乱码
Unicode是万国码,utf8属于unicode的一个分支
python3默认的是utf-8
2. 模式切换
/root/.vimrc 这个配置文件,vim打开文件时会自动加载里面的配置
2.1 输入模式
操作键 | 功能 |
---|---|
i | 光标在哪里,就在哪里输入 |
I | 光标跳到行首并进行输入 |
o | 在光标的下一行进行输入 |
O | 在光标的上一行进行输入 |
a | 在光标的后退一格进行输入 |
A | 光标退到行尾并进行输入 |
s | 删除光标所在字符进行输入 |
S | 删除光标所在行并进行输入 |
2.2 末行模式
命令 | 功能 |
---|---|
:w! | 放弃保存 |
:w aa.txt | 另存为,接绝对路径 |
:w | 只保存不退出 |
:set number = set nu | 行号设置 |
:set nonumber =set nonu | 取消行号设置 |
:help :w | 查看帮助 |
: q! | 强制退出不保存 |
:wq = :x | 保存并退出 |
:wq!= :x! | 强制退出并保存(只用root用户可以) |
:q | 只在没有修改的时候起作用 |
:r mobile_phone.txt 或 :r /etc/hosts | 导入(读 read)文件里的内容 |
:e /lianxi/tang.txt | 退出当前文件,去打开另外一个文件tang.txt |
:set ts=4 | 设置一个tab键占4个空格,默认一个tab键占8个 |
:set paste | 设置粘贴的时候,按照原来的格式,保障格式不乱 |
:set cursorline | 显示光标所在行 line 行 cursor 光标 |
:set cursorcolumn | 显示光标所在列 column 列 |
末行模式里跳转
命令 | 功能 |
---|---|
:n | 第n行 |
: $ | 最后一行 |
文件内容替换
命令 | 功能 |
---|---|
: s/old/new/ | 将当前行中查找的第一个字符"old"替换为new |
: s/old/new/g | 将当前行中查找的所有字符串"old"替换为new |
:#,# s/old/new/g | 在行号“#,#”范围内的所有字符串"old"替换为new |
: %s/old/new/g | 在整个文件范围内替换所有的"old"为new |
: s /old/new/gc | 对每个动作提示确认 |
:%s/feng//g | 将所有的feng删除 |
经典案例
- 批量注释1到15行
:1,15s/^/#/
- 从21行到30行中所有的“/usr/local”改为“/root”
:21,30s/\/usr\/local/\/root/g
:0或:1
跳到文件第一行:$
跳到文件最后一行
2.3 命令模式
命令 | 功能 |
---|---|
ZZ | 命令模式中 保存并退出 |
x | 删除单个字符(相当于剪切) |
dd | 删除当前光标所在行 |
#dd | 删除从光标处开始的#行内容 |
d^ | 删除当前光标之前到行首的所有字符 |
d$ | 删除当前光标之后到行尾的所有字符 |
dw | 删除一个单词(word),以空格、冒号等符号 |
yy | 复制当前行整行的内容到剪贴板 |
#yy | 复制从光标处开始的#行内容 |
p | 将缓冲区中的内容粘贴到光标位置处之后 |
P | 粘贴到光标位置处之前 |
u | 撤销 |
命令模式里跳转
项目 | Value |
---|---|
nG | 跳到第n行 |
G | 跳到最后一行 |
查找字符串
命令 | 功能 |
---|---|
/word | 从上而下在文件中查找字符串“word” |
?word | 从下而上在文件中查找字符串“word” |
n | 定位下一个匹配的被查找字符串 |
N | 定位上一个匹配的被查找字符串 |
u | 撤销 |
ctrl+r | 恢复 |
2.4 替换模式
R replace 替换
直接移动光标到某个位置,直接输入内容,就会替换
撤销: 退格键
2.5 可视模式
主要用来选择复制区块文本
在命令模式下,使用v或V键可以进入可视模块
可视或者可视块模式可以复制或者删除一部分单词,选中一部分单词,然后进行操作。
命令 | 模式 | 操作 |
---|---|---|
小v | 可视模式 | 从当前位置到光标最后停止的位置之间的部分 |
大V | 可视行模式 | 从当前位置到光标最后停止位置 所在行 |
ctrl+v | 可视块模式 | 从当前位置到光标最后停止位置 选择块(矩形) |
按y复制 x删除
按p粘贴
另起一行,按o,再按esc,再p
ctrl+V 进入可视行模式,选中多行,ctrl+> 向右全部缩进
练习:
编写一个程序实现随机产生字符串写到一个文件里,一行里面必须有50个字符,产生100万行的一个文本文件
Linux写法:
[root@localhost lianxi]# cat bigfile.sh
#!/bin/bash
#随机产生字符
for i in {1..1000000}
do
mychar=$(mkpasswd -l 50)
echo $i $mychar>>sc_bigfile.txt
done
python写法:
[root@localhost lianxi]# cat bigfile.py
#!/usr/bin/python3
import string
import random
#产生10个小写字母
lowercase=random.sample(string.ascii_lowercase,k=10)
#将10个字母拼接起来
sc_lc="".join(lowercase)
with open("sc_bigfile2.txt","a+") as f: #打开文件,以追加的方式向里面输入内容
f.write(f"{sc_lc}\n")
3. 随机产生字符串
md5sum
根据一段文字或一个文件产生一个固定长度的字符串
[root@sc lianxi]# md5sum a.txt
1c9f470f675a5a21f7583e1a33f88575 a.txt
[root@sc lianxi]# echo 123|md5sum
ba1f2511fc30423bdbb183fe33f3dd0f -
[root@sc lianxi]# echo 123123456|md5sum
eafa8cafcb3f240cc2d23e0dbf638adf -
hash函数
Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。
这简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
mkpasswd
l–长度 d–数字 c–字母 s–符号
[root@localhost ~]# mkpasswd -l 50 指定密码长度
seczrgrpSegmqxt5f&cgfxhxupjtxddyiotW8smsdrmdnabhuu
[root@localhost lianxi]# mkpasswd -l 50 -d 10 -c 10 -s 10
7gx0s)sHx2.*mb9tCgp|bybju5ex)!j8;e2u?di93a2u%tv#qn
string库(python里的库)
>>> string.printable # 打印出所有能作为密码的字符
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
>>> string.ascii_lowercase # 小写
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase #大写
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.digits #数字
'0123456789'
>>> string.punctuation #特殊字符
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
import random
import string
>>> random.sample(string.ascii_lowercase,k=10) #随机产生10个小写字母数组
['z', 's', 'i', 'r', 'g', 'c', 'f', 'a', 'k', 'e']
>>> random.sample(string.ascii_uppercase,k=10) #随机产生10个字符数组
['W', 'M', 'G', 'S', 'L', 'H', 'I', 'U', 'Q', 'K']
>>> random.sample(string.digits,k=10) #随机产生10个数字
['0', '3', '4', '7', '8', '1', '9', '5', '2', '6']
>>> random.sample(string.punctuation,k=10) #随机产生10个特殊字符
['`', '%', '/', '<', '-', '(', '?', "'", '"', ']']
>>> aa = random.sample(string.punctuation,k=10)
>>> aa.
aa.append( aa.copy( aa.extend( aa.insert( aa.remove( aa.sort(
aa.clear( aa.count( aa.index( aa.pop( aa.reverse(
>>> "".join(aa) #join方法拼凑
"<>:'.^_+($"
>>>
4、tmux工具使用
Tmux使用初体验
#安装
yum install tmux -y
命令终端输入: tmux
tmux ls 显示已有tmux列表(C-b s)
ctrl + b 接 shift+% 切左右屏
ctrl + b 接 shift+" 切上下屏
ctrl + b 接 上下左右键 就是调整光标的位置
ctrl + b 接 空格键 进行调整
ctrl + b 接 d 退出了并且保存状态
ctrl + b 接 c 是新增一页
ctrl + b 接 p 是翻页,上一页 接n就是下一页
ctrl + d 退出
5、脚本执行的四种方式
- 在子进程里面运行
- bash onekey_install_mysql.sh
- ./ onekey_install_mysql.sh
- 在当前进程中运行
- . onekey_install_mysql.sh
- source onekey_install_mysql.sh
bash onekey_install_mysql.sh的时候, echo ‘PATH=/usr/local/mysql/bin:$PATH’ >>/root/.bashrc这条命令的结果在当前终端并不生效。要重新su 或者重开一个终端,变量才生效。
版权声明:本文标题:vim编辑器、tmux使用、脚本执行方式 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1724511955a769019.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论