linux文件编辑

11.文件编辑

echo,cat,vim,gedit,nano
​
1、echo
1.1、 追加  [在原有的文件后添加内容]
格式: echo '追加的内容' >> 追加的文件
案例:
[root@fw tmp]# cat -n a.txt 
     1  a123456
     2  23456a
     3  aaa3456av
     4  aa456aba
     5  651231
     6  6aba
[root@fw tmp]# echo 'gz2103' >> a.txt 
[root@fw tmp]# cat -n a.txt 
     1  a123456
     2  23456a
     3  aaa3456av
     4  aa456aba
     5  651231
     6  6aba
     7  gz2103
​
​
1.2、 覆盖  [清空原有内容,写入指定内容]
格式: echo '覆盖的内容' > 覆盖的文件
案例: 
[root@fw tmp]# cat -n a.txt 
     1  a123456
     2  23456a
     3  aaa3456av
     4  aa456aba
     5  651231
     6  6aba
     7  gz2103
[root@fw tmp]# echo 'gz2101' > a.txt
[root@fw tmp]# cat -n a.txt 
     1  gz2101
​
-------------------------------------------
echo 命令扩展
1、输出单行
echo 'abc'
2、 输出多行
echo -e 'abc\nabc\nabc'
​
# echo $[RANDOM%54] //输出随机数RANDOM除以54的余数,意思就是输出53以内的随机数
# echo $[RANDOM%54+1] //输出随机数RANDOM除以54的余数+1,意思就是输出54以内的随机数
# echo $[算术表达式]
# echo $((算术表达式))
-------------------------------------------
2、cat修改文件内容
2.1、覆盖
格式: cat > filename
输入文件内容1
输入文件内容2
输入文件内容3
...
输入文件内容n
^c
​
案例:
[root@fw tmp]# cat a.txt 
gz2101
[root@fw tmp]# cat > a.txt 
a1
a2
a3
a4
^C
[root@fw tmp]# cat a.txt 
a1
a2
a3
a4
​
------
2.2、追加
格式: cat >> filename
输入文件内容1
输入文件内容2
输入文件内容3
...
输入文件内容n
^c
案例:
[root@fw tmp]# cat a.txt 
a1
a2
a3
a4
[root@fw tmp]# cat >> a.txt 
b1
b2
b3
b4
^C
[root@fw tmp]# cat a.txt 
a1
a2
a3
a4
b1
b2
b3
b4
​
# cat >> c.txt <<EOF
hello world
ni hao
suibian
view search terminal
EOF
​
EOF只是一个标记字符 标记开始和结束的位置 可以随便写
​
------------------------------------------------
vim   是编辑器vi的升级版
格式: vim filename
​
四种变换形态[四种模式]
命令行模式、编辑模式、尾行模式、块模式
​
1、简单修改文件
vim filename
按键 i
然后通过上下左右键,移动光标并修改文件内容
编辑完成后,按键 esc
输入冒号:wq 回车
---------------------------------------------
​
命令行模式  
[vim文件直接进入命令行模式,其他模式使用esc进入命令行模式]
复制、粘贴、删除、剪切、光标快速移动
​
yy
p
dd
dd p
^ $ gg G ngg
​
cat -n /etc/passwd > /tmp/pass.txt
vim /tmp/pass.txt
​
光标快速移动
ngg   光标快速移动某行  例如:  15gg 光标快速移动到15行
gg    光标快速移动首行
G     光标快速移动尾行
^     光标快速移动行首
$     光标快速移动行尾
​
yy    复制
nyy   复制,复制光标所在行及其下n-1行  例如: 10gg  3yy 复制第10,11,12三行
p     粘贴  将复制或剪切的内容放到光标所在行的下一行
dd    删除  删除光标所在行
ndd   删除  删除光标所在行及其下n-1行
dd p  剪切  删除配置粘贴
​
u     撤销
^r    反撤销[恢复]
​
在命令行模式
​
光标的移动:
 行首:  home    ^
 行尾:  end     $
 跳转指定行:   numgg 例如 8gg跳转到第8行
 跳转最后一行:  G 
 跳转到第一行:  gg
​
复制: 光标跳转到指定行, yy
粘贴: 光标跳转到指定行  p   [会粘贴到光标所在行下]
多行复制: 光标跳转到指定行最上边一个, nyy
删除: 光标跳转到指定行, dd
多行删除: 光标跳转到指定行, ndd 
​
剪切: 其实是删除和粘贴的配合操作
​
D: 删除光标所在行,光标位置及其后的内容
x:  删除光标所在位置的字符
​
r:  单次替换,替换一个字符
R:  多次替换,esc退出到命令行模式
​
恢复到上一步:  u   [类似与world的撤销 ^z]
反撤销:        ^r  
​
删除光标所在行及其后的所有行   dG
删除光标所在行及其前的所有行   dgg
--------------------------------------
编辑模式
[在命令行输入aio/AIO进入编辑模式]
[按esc键,从编辑模式计入到命令行模式]
​
a 在光标所在位置后写入内容
i 在光标所在位置前写入内容
o 在光标所在行的下新建一行写入内容
A 在光标所在行的行尾
I 在光标所在行的行首
O 在光标所在行的上新建一行写入内容
​
-------------------------------------
尾行模式
[在命令行按: 进入尾行模式]
[按esc键,从尾行模式计入到命令行模式]
​
w      保存不退出         
q      退出
wq     保存退出
w!     保存[强制保存的意思]
wq!    强制保存退出
q!     强制退出不保存
r      写入
​
w filename 另存为
nw filename 将文件的第n行另存为文件filename
n1,n2w filename 将文件的第n1到n2行另存尾文件filename
r filename 读取文件filename写入到光标所在行下
nr filename 读取文件filename写入到第n行下
​
下列配置都是临时的, 如果退出后,则会加载默认配置(1.# vim ~/.vimrc  2.在尾行模式下输入)
set nu    显示行号 
set nonu  不显示行号
set list  显示特殊字符
set nolist 不显示特殊字符
​
​
"line number
set nu
​
"no case of upper & lower letter
set ic
​
" auto indentation
set si
set ci
​
" tab size
set ts=4
set sw=4
​
​
替换:
​
/string  查看全文中包含字符串的位置并高亮
n    下一个
N    上一个
​
-------------------------------------
块模式
​
v      类似于doc文档,用鼠标框选的功能,选择光标起始位置和结束位置包含的部分
^v     光标起始位置和结束位置块选的内容
V      光标起始位置和结束位置包含的行,全部包括[选择整行,和光标在行内的位置无关]
​
快模式选择内容后:
y  复制
d  删除
x  删除选择内容
p  粘贴
​
例子:
在文本11-18行,行首添加#注释
方法1:
11gg
^v
18gg
I                [此时已经进入编辑模式]
#
esc esc          [第一个退出编辑模式 第二个退出块模式]
​
方法二:
:11,18 s/^/# /
​
替换
:num1,num2  s/查找的内容/替换的内容/g          说明: num1,num2 对行num1到num2之间操作
                                                 s替换
                                                /查找的内容/替换的内容/
                                                g 全局替换,否则每行只替换一次
                                               num1:num2可以用%代替,%代表所有行
 
 ---------------------------------------------------
 vim 快捷键
 D         删除光标所在行光标至行尾的内容
 dG        删除光标所在行及后边所有行
 dgg       删除光标所在行及前边所有行
 
 -------------------------------------------------
 如果看到以下内容:
 E325: ATTENTION
Found a swap file by the name ".a.txt.swp"
          owned by: root   dated: Mon Jul 12 10:11:01 2021
         file name: /tmp/a.txt
          modified: no
         user name: root   host name: fw
        process ID: 11391 (still running)
While opening file "a.txt"
             dated: Mon Jul 12 10:10:25 2021
​
(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r a.txt"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".a.txt.swp"
    to avoid this message.
​
Swap file ".a.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:
​
说明该文件上次的编辑未来得及保存,就异常退出了。
vim将上次的修改未保存的部分,放到隐藏文件,
O打开源文件[保存过的]
E编辑源文件[保存过的]
R将未保存部分写入到文件,可以用:wq保存,来恢复上次的丢失
D删除隐藏文件,确保先保存了,在删除
Q退出
A查看信息
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值