08_Linux基础-vim-tmux-字符编码
一. vim
文本编辑器-vim(编辑文本)
Windows:记事本、word、sublime、pycharm
能编辑音乐、视频、图片?答:不能,只能编辑文本Linux:
vi(==字符界面==),vim(==字符界面==),gedit(==图形化==)
unix 都会安装vi
vim 是vi的加强版(在vi基础上添加其他功能)
vim编辑器作用
vim编辑器作用:
1、编写脚本、程序
2、修改配置文件
3、做一些文本处理
vim模式
vim有三种最常用最基本的模式:命令模式、编辑模式(插入模式)、末行模式、可视模式,替换模式
vim有三种最常用最基本的模式:
命令模式
编辑模式
末行模式
还有另外两种不常用模式:
视图模式
替换模式
vim命令模式
命令模式:vim a / ESC
==无法编辑==,只允许删除、复制、粘贴、撤销等快捷操作,打开文件时==默认==进行此模式
yy 复制
p 粘贴
dd 删除
u 撤销
命令模式 相当于一个中间介
每个模式退出 都会回到命令模式,命令模式可以进入所有模式
vim编辑模式
编辑模式 ESC i
— 插入 —
插入模式,进行==文本编辑==
操作键 功能
==:q== 如果未对文件做改动则==退出==
==:q!== ==放弃保存==并==退出==
==:wq 保存==当前文件并==退出==
==:wq! 强制保存==当前文件并==退出==
==:x 保存==当前文件并==退出==
==:x! 强制保存==当前文件并==退出==
==ZZ 保存==当前文件并==退出==
vim视图模式
视图模式 ESC v、V、ctrl+v
— 可视 行 —
选择特定的块文本,进行复制,修改等
小v:选择行指定的部分
大V:选择整个行
Ctrl + v :选择块 插入按I 退出模式进人命令模式(Esc),这个时候就全部加上
vim替换模式
替换模式 ESC R
— 替换 —
步骤:
v 小v 可视模式 visual —》选择一部分
y 按y复制
o 按o另起一行,进入插入模式
P 再按esc,再p,按p粘贴课堂练习2
123 TEST 456 789
xxx TEST yyy zzz
操作类型 操作键 功能
光标方向移动 k,j,h,l 上、下、左、右
==============================================================
翻页 Page Down或Ctrl+F 向下翻动一整页内容
Page Up或Ctrl+B 向==上==翻动一整页内容
==============================================================
行内快速跳转 Home键或”^”、数字”0″ 跳转至行首 (注:”^”尖符号)
End键或“$”键 跳转到==行尾==
==============================================================
行间快速跳转
1G或者gg 跳转到文件的首行
G 跳转到文件的末尾行
G 跳转到文件中的第#行
(末行模式):40 跳转到40行
w 每个单词的首字母跳转
e 每个单词的尾字母跳转
vim设置
vim设置
(末行模式):set number 设置行数
(末行模式):set nonumber 取消设置
删除 (*注:一般^行首,$行尾)
x或d或Del 删除光标处的单个字符
dd 删除当前光标所在行
dd 删除从光标处开始的#行内容
d^ 删除当前光标之前到行首的所有字符
d$ 删除当前光标处到行尾的所有字符
dw 删除一个单词(word),以空格、冒号等 符号
粘贴
小p 将缓冲区中的内容粘贴到光标位置处之后
大P 粘贴到光标位置处之前
文件内容查找
文件内容查找
操作键 功能
/word 从上而下在文件中查找字符串”word”
?word 从下而上在文件中查找字符串”word”
小n 定位下一个匹配的被查找字符串
大N 定位上一个匹配的被查找字符串
(注:/word 和 ?word 不同点:方向相反)
取消高亮、设置行数、取消行数设置
取消高亮 :noh
设置行数:set nu
取消:set nonu
二. vim-tmux及字符编码问题
文件内容替换
文件内容替换(末行模式)
命令 功能
😒 /old/new 将当前行中查找到的第一个字符”old”串替换为”new”
😒 /old/new/g 将当前行中查找到的所有字符串”old”替换为”new”
:#,# s/old/new/g 在行号”#,#”范围内替换所有的字符串”old”为”new”
:% s/old/new/g 在整个文件范围内替换所有的字符串”old”为”new” global
😒 /old/new/gc 在替换命令末尾加入c命令,将对每个替换动作提示用 户进行确认 Confirm
:%s/feng//g 将所有的feng删除
(注:😒/…/… 当前行 第一个str
:s/…/…/g当前行 所有str
:#,#s/…/…/g 行号#,# 所有str
:%s/…/…/g 整个文档 所有str
:s/…/…/gc 整个文档 所有str 确认提示
:%s/…//g 整个文档 所有str 删除)
(注:s —— 替换
:s —— 当前行替换
\#,# —— 行号#到#
% —— 整个文档
g —— 所有字符串
c —— 确认提示
:%s/…//g —— 整个文档 所有str 删除)
缓存:swp文件
编写文件时 1.txt
先把1.txt文件拷贝一份,拷贝成.1.txt.swp文件,真正编辑的是这个文件
保存时,会将.1.txt.swp覆盖1.txt
vim 2.txt
:r 1.txt
(注:读入1.txt文件的内容。在当前光标下一行插入1.txt文件内容)
===========================================================================================
撤销和另存为 :w
命令 功能
:w /tmp/hello.txt 把当前文件另存为/tmp目录下的hello.txt
===========================================================================================
例:
vim 1.txt
:w /root/cp/test.txt
(注:将文件1.txt另存为在/root/cp/目录下,改名为test.txt)vim的配置(3种)
第二种
全局配置文件:
vim /etc/vimrc
cp /etc/vimrc{,.bak} (注:效果等同于 # cp /etc/vimrc /etc/vimrc.bak)
(* 注↑:备份操作。修改全局配置文件前先备份。出错就回滚)
set number (注:设置行数)
set showcmd (注:显示当前键入命令)
set encoding=utf-8 (注:设置编码)
set tabstop=4 (注:设置tab键的空格数)
左右分屏:先按ctrl + b,然后再按shift+%号
上下分屏:先按ctrl + b, 然后再按shift+”
上下左右移动光标: ctrl + b,再按上下左右方向键
删除一个分割: 光标移动到那个分割屏幕,然后按ctrl +d
新增一个新的窗口(新增一页):ctrl+b,然后按c
返回上一页: ctrl+b 然后按p
返回下一页: ctrl+b 然后按n
查看当前保存的会话状态
[root@mysql-binary ~]# tmux ls
0: 2 windows (created Thu Oct 15 16:31:27 2020) [139×22]
1: 2 windows (created Thu Oct 15 16:45:40 2020) [139×22]
设置tmux,跟vim的末行模式很像:
按ctrl+b ,然后按:(这时窗口底部就会有黄色的杠)
设置同步: ctrl+b 然后按: 然后输入set synchronize-panes on
取消同步==set synchronize-panes off==
tmux终端关闭,执行的程序会继续执行 (* tmux的好处)
tmux 终端关闭,不是tmux会话关闭。tmux 终端关闭,那之前执行的程序都会继续执行。
不使用tmux,默认情况下,终端关闭,执行的程序也会关闭。 测试如下
================================================================
测试:
编写脚本:
cat sleep.sh
echo “begin………..”
sleep 100
echo “end………….”
=======================
运行脚本
sh sleep.sh
begin………..
=======================
运行脚本:(放到后台运行)
sh sleep.sh &
=======================
查看进程有没有运行
ps -ef |grep sleep
root 13133 13112 0 17:12 pts/6 00:00:00 sh sleep.sh
root 13134 13133 0 17:12 pts/6 00:00:00 sleep 100
root 13190 13140 0 17:12 pts/16 00:00:00 grep –color=auto sleep
=======================
关闭终端之后再重新开启连接,查看进程有没有运行。
结果:没有运行
……
=======================
在tmux下 运行脚本
……
tmux关闭后 会话还在,程序还会一直运行
ps -ef |grep sleep
root 13278 13003 0 17:17 pts/13 00:00:00 sh sleep.sh
root 13279 13278 0 17:17 pts/13 00:00:00 sleep 100
root 13284 13140 0 17:17 pts/16 00:00:00 grep –color=auto sleep
=======================
编码
编码
编码:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
文件编码一般2种方式:ascii 和 unicode
UTF-8 是 Unicode 的实现方式之一
转编码:
iconv -f utf-8 -t gbk code_test.txt >code_test1.txt
ASCII 码 最多能表示256个字,不够用
unicode 万国码,每个字给你一个序号
UTF-8 是 Unicode 的实现方式之一,规定怎么存储在计算机。
(UTF-8对ascii码/英文码友好)
以什么编码方式存储,就要以什么编码方式解码
utf-8、utf-16
国内编码 gbk、gb2131
===============================================
系统语言设置环境:
locale
LANG=zh_CN.UTF-8
LC_CTYPE=”zh_CN.UTF-8″
LC_NUMERIC=”zh_CN.UTF-8″
LC_TIME=”zh_CN.UTF-8″
LC_COLLATE=”zh_CN.UTF-8″
LC_MONETARY=”zh_CN.UTF-8″
LC_MESSAGES=”zh_CN.UTF-8″
LC_PAPER=”zh_CN.UTF-8″
LC_NAME=”zh_CN.UTF-8″
LC_ADDRESS=”zh_CN.UTF-8″
LC_TELEPHONE=”zh_CN.UTF-8″
LC_MEASUREMENT=”zh_CN.UTF-8″
LC_IDENTIFICATION=”zh_CN.UTF-8″
LC_ALL=
===============================================
file code_test.txt 注:查看文件编码类型
locale 系统语言设置环境
file code_test1.txt 看文件编码方式
系统、文件、shell 三者统一 ,不会乱码
===============================================
上课代码操作:
mkdir vim_test
cd vim_test/
ls
rz -E (注:将windows code_test.txt文件上传linux)
rz waiting to receive.
ls
code_test.txt
vim code_test.txt
file code_test.txt (注:查看文件编码类型)
code_test.txt: UTF-8 Unicode text
iconv -f utf-8 -t gbk code_test.txt >code_test1.txt (注:转国标码)
file code_test1.txt
code_test1.txt: ISO-8859 text (注:国标码)
vim code_test1.txt (注:显示乱码)
为什么出现乱码?答:以utf-8的方式打开gbk编码
以什么编码方式存储,就要以什么编码方式解码
总结(xmind)
vim文本编辑器
vi,vim
vim常见模式
命令模式
文件打开默认就是命令模式
ESC键到达
编辑模式
a,i,o,s(支持大写)
末行模式
:
可视模式
v
选中文本指定部分
V
选择文本指定行
ctrl+v
选择文本指定块
替换模式
R
基本使用
命令模式
删除
x 、d
dd
5dd
复制
yy
3yy
粘贴
p
撤销
u
查找
/
光标移动
上下左右方向键(k,j,h,l)
文件首
gg
文件尾
G
移动到特定行
5G
:5
行首
home键
0
^
行尾
end键
$
上翻页
page up, ctrl+b
下翻页
pagedowm, ctrl+f
编辑模式
i
I
o
O
a
A
s
S
可视模式
复制y
插入 I
末行模式
退出和保存
q
q!
wq
wq!
x
ZZ命令模式退出
替换
:s/old/new
:s/old/new/g
:%s/old/new
:%s/old/new/g
:3,5s/old/new/g
:%s/old/new/gc
设置
文件操作
:e 编辑新文件
:r 导入文件内容
:w 另存文件路径
vim 1.txt 2.txt
:n 编辑下一个
:N 编辑上一个
vim常见快捷方式使用
vim file1 file2 file3
vim +10 file
vim +/aa file
vim的配置
临时配置
末行模式
:set nu
全局配置
/etc/vimrc
用户配置
~/.vimrc
tmux
tmux:
安装:yum install tmux
tmux:
一:敲tmux 进入会话
窗口底部有绿杠表示进入了tmux
左右分屏:先按ctrl + b ,然后再按shift+% 号
上下分屏:先按ctrl + b, 然后再按 shift+"
上下左右移动光标: ctrl + b 再按上下左右方向键
删除一个分割: 光标移动到那个分割屏幕,然后按ctrl +d
新增一个新的窗口(新增一页): ctrl+b 然后按c
返回上一页: ctrl+b 然后按p
返回下一页: ctrl+b 然后按n
保存当前的tmux状态,并退出tmux:
使用: ctrl+b 然后按d
查看当前保存的会话状态
[root@mysql-binary ~]# tmux ls
0: 2 windows (created Thu Oct 15 16:31:27 2020) [139x22]
1: 2 windows (created Thu Oct 15 16:45:40 2020) [139x22]
进入第一个会话状态:
tmux a -t 0
设置tmux,跟vim的末行模式很像:
按ctrl+b ,然后按: (这时窗口底部就会有黄色的杠)
设置同步: ctrl+b 然后按: 然后输入set synchronize-panes on
取消同步set synchronize-panes off
tmux 终端关闭,不是tmux会话关闭。那之前执行的程序都会继续执行。
不使用tmux,默认情况下,终端关闭,执行的程序也会关闭。
文件编码
iconv -f utf-8 -t gbk file.txt > file2.txt
查看系统语言环境
locale
ascii
unicode
utf-8
utf-16
gbk
gb2132
Original: https://www.cnblogs.com/mycpen/p/16650952.html
Author: mycpen
Title: 08_Linux基础-vim-tmux-字符编码
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578018/
转载文章受原作者版权保护。转载请注明原作者出处!