IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> vim编辑器、tmux使用 -> 正文阅读

[系统运维]vim编辑器、tmux使用

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删除

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使用初体验
在这里插入图片描述
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 12:25:39  更:2021-12-07 12:26:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:42:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码