Linux学习笔记(三)文本相关,文件权限,vim

文章目录

    • cat 显示文本
    • tac 倒序显示
    • less 分屏显示文本
    • more 分页显示文件
    • head 显示文件的前面的内容
    • tail 显示文件的后面的内容
    • cut 切割
    • paste 合并
    • wc 用来对文本进行统计
    • sort 排序
    • uniq合并相同的行
    • diff 对比文件
          • 可用来跟之前的代码对比
    • chown 用来修改所有者和组
    • chgrp 修改文件的属组
    • 权限
    • 修改权限
    • 设定特殊权限(被黑客攻击时可查看)
    • vi/vim
      • 打开文件
      • 模式
      • 模式之间切换
      • 关闭文件
      • 扩展命令行模式
      • 命令模式跳转
      • 命令模式编辑
      • 命令扩展模式
      • 查找并替换
      • 可视化
      • 打开多个文件
      • 使用多个窗口
      • 单文件切割
      • vim工作特性
    • 创建一个新用户
    • vim思维导图

cat 显示文本

-E 显示结尾的$符
-n 对显示的每一行进行编号
-b 对非空行进行编号
-s 对连续的空行进行压缩

tac 倒序显示

less 分屏显示文本

向下翻一屏 空格

向下翻一行 回车

q 退出

/ 文本 搜索文本

n 向下查找 N向上查找

less 是man命令的默认分页器

more 分页显示文件

默认情况下显示读取的百分比

读取完成自动退出

q 退出

-d 显示翻屏和退出的提示

head 显示文件的前面的内容

默认显示前10行

-# 显示前#行

-n # 显示前#行

-c # 显示前#个字符

tail 显示文件的后面的内容

默认显示后10行

-# 显示后#行

-n # 显示后#行

-c # 显示后#个字符,换行符也是一个字符

cut 切割

cut OPTION... [FILE]...
-c 按照字符切割
tail passwd |cut -c2-5
-d 指定切割符,默认是tab
-f # 显示第#个字段
#,#,# 显示离散的多个
#-# 表示连续的
1-5,7 可以结合使用
tail passwd |cut -d: -f1-5,7
tail passwd |cut -d: -f1-5
tail passwd |cut -d: -f1,3,5

paste 合并

默认是相同行合并到一起,默认是tab键

-d 执行间隔符

-s 将所有的行按照列来显示

paste a.txt b.txt

paste -d: a.txt b.txt

paste -s a.txt b.txt

wc 用来对文本进行统计

[root@localhost test]#wc b.txt 
 4  5 20 b.txt
行数  单词数 字节数 文件名
-l 只显示行数
-w 只显示单词数
-c 只显示字节数
-m 只显示字符数
-L 显示文件中最长行的长度

sort 排序

Usage: sort [OPTION]... [FILE]...
  or:  sort [OPTION]... --files0-from=F
默认是按照字母排序
-r 倒序
-R 随机排序
-n 按照数字排序
-f 忽略大小写
-t 指定分隔符
-k # 指定按照第#个字段进行排序
sort -t: -k3 passwd
sort -nt: -k3 passwd 

uniq合并相同的行

  • 相邻
  • 完全一样
-c 显示相同的行出现的次数
-d 只显示重复的行
-u 显示从没有重复过的行
cut -d" " -f4 d|sort |uniq -c  # 查看用户访问量之类的

pv page

uv user

diff 对比文件

可用来跟之前的代码对比
[root@localhost test]#cp d f
[root@localhost test]#echo "123" >> f
[root@localhost test]#diff d f
11a12
> 123
[root@localhost test]#echo "1234" >> d
[root@localhost test]#diff d f
12c12
< 1234
---
> 123

chown 用来修改所有者和组

Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...
  or:  chown [OPTION]... --reference=RFILE FILE...
chown wu c  修改属主
chown wu:wu c 修改属主和属组
chown root.root c
chown :wu c 直接属组
chown -R wu test 递归修改
chown --reference=c d

Linux学习笔记(三)文本相关,文件权限,vim_第1张图片

chgrp 修改文件的属组

Usage: chgrp [OPTION]... GROUP FILE...
  or:  chgrp [OPTION]... --reference=RFILE FILE...

Linux学习笔记(三)文本相关,文件权限,vim_第2张图片

权限

9位表示权限

3组

3位表示一组

— --- —

修改权限

Linux学习笔记(三)文本相关,文件权限,vim_第3张图片

2.g组=u组

Linux学习笔记(三)文本相关,文件权限,vim_第4张图片

  • 文件权限可以读以下定义

  • 属主 u

    • 属组 g
    • 其他 o
    • 全部 a
    • Linux学习笔记(三)文本相关,文件权限,vim_第5张图片
  • 每个文件的权限

    • r 读

    • w 写

    • x 执行

  • 对于文件来说

    • r 可以使用文本查看工具来查看里面的内容
    • w 可以修改文本的内容
    • x 执行可以直接./filename(./1.py)
  • 对于目录来说

    • r 可以使用ls等文件查看的命令查看
    • w 可以创建文件,也可以删除
    • x 可以cd进入
  • 数字表示

    –x

    001 1

    -w-

    010 2

    r–

    100 4

    rw-

    110 6

    rwx

    111 7

    r-x

    101 5

    -wx

    011 3

    Linux学习笔记(三)文本相关,文件权限,vim_第6张图片

修改权限

  • 可以直接修改某一类用户的权限
chmod u+x c 增加
chmod u-x c 删除
chmod u=r c 直接赋值
chmod +x c #全部一起加

shabang —》 解释器

  • 可以直接使用数字表示
  • 可以基于某个文件来修改

设定特殊权限(被黑客攻击时可查看)

chattr +i 不能删除、不能修改、不能变更

lsattr 查看属性

chattr +a 只能追加数据

Linux学习笔记(三)文本相关,文件权限,vim_第7张图片
取消:

chattr -i a #减去i

vi/vim

Linux学习笔记(三)文本相关,文件权限,vim_第8张图片

打开文件

vim [option] … file…

+# 直接定位到第#行
+/pattern 打开文件后,直接定位到第一个匹配到patter的地方
-b 以二进制方式打开文件
-d file1 file2 对比打开多个文件
-m file 只读方式打开文件
-e 直接以末行模式打开

模式

  • 命令模式:可以光标,可以粘贴、复制文本,默认
  • 插入模式或者编辑模式:可以修改文本
  • 末行模式(扩展命令模式):保存、退出等等
  • esc 退出当前的模式

模式之间切换

  • 命令模式- 插入模式
    • i 光标所在处插入
    • I 在当前光标所在的行的行首插入
    • a 光标所在位置的后面插入
    • A 在当前光标所在的行尾插入
    • o 在当前光标所在的行的下一行(新开)插入
    • O 在当前光标所在的行的上一行(新开一行)插入
  • 插入模式- 命令模式
    • esc
  • 命令模式 – 末行模式
  • 末行模式 – 命令模式
    • esc esc
    • esc enter

关闭文件

  • 末行模式
    • :w 保存
    • :q 退出
    • :wq 保存并退出
    • :q! 强制退出
    • :wq!强制保存退出
    • :x 保存并退出
  • 命令模式
    • ZZ 保存退出
    • ZQ 不保存退出

扩展命令行模式

  • 按":" 来进入
  • w 写入
  • q 退出
  • wq 保存并退出
  • q! 强制退出
  • x 保存并退出
  • r file 读入文件
  • w file 另存为
  • !command 直接执行命令
  • r!command 直接把命令的结果写到文件中

命令模式跳转

  • 字符之间跳转
    • l 向右
    • h 向左
    • j 向下
    • k 向上
  • 单词间跳转
    • w 下一次的单词的词首
    • e 当前词的词尾或者下一个单词的词尾
    • b 当前词的词首或者上一词的词首
    • # command 直接跳转#个单词
  • 页面间跳转
  • H 页首
  • L 页尾
  • M 页中
  • zt 将光标所在行移动到屏幕的顶端
  • zb 将光标所在行移动到屏幕的底部
  • zz 将光标所在行移动到屏幕的中间
  • 行首行尾之间跳转
    • ^ 跳转到当前光标所在行的第一个非空字符
    • 0(数字) 跳转到行首
    • $ 跳转到行尾
  • 行间移动
    • #G 跳转到第#行
    • 在命令扩展模式下,直接:# 跳转到对应的行
    • G 直接到最后一行
    • gg 跳转到第一行
    • 1G 跳转到第一行
  • 段落之间跳转(空行)
    • { 上一段
    • } 下一段
  • 翻屏
    • ctrl+f 向文件尾部翻一屏
    • ctrl+b 向文件首部翻一屏
    • ctrl+d 向文件尾部翻半屏
    • ctrl+u 向文件首部翻半屏

命令模式编辑

  • 字符编辑
    • x 删除光标所在处的字符
    • #x 删除#个字符
    • xp 将光标所在处的字符和后面的字符互换位置
    • ~ 将光标所在的位置大小写互换
    • J 删除当前行的换行符
  • 替换
    • r 替换当前光标所在处的字符
    • R 进入替换模式
  • 删除
    • d 删除,需要跟字符跳转结合
    • d$ 删除到行尾,删除当前位置
    • d0 删除到行首,当前位置不删除
    • d^ 删除到非空字符
    • dw 删除一个单词
    • de 向后删除一个单词
    • db 向前删除一个单词
    • dd 删除正行
    • # dd 删除#行
    • dG 删除到结尾
    • dgg 删除到开头
    • D 相当于d$
  • 复制
    • y,也可以跟字符跳转结合
    • y$
    • y0
    • y^
    • yw
    • ye
    • yb
    • yy 一正行
    • #yy 复制#行
    • yG 复制到结尾
    • ygg 复制到开头
    • Y 复制整行
  • 粘贴
    • p 如果是整行的话,则粘贴到当前光标所在行的下一行,否则粘贴到光标的后面
    • P 如果是整行的话,则粘贴到当前光标所在行的上一行,否则粘贴到光标的前面
  • 改变,删除以后并将模式切换成插入模式
    • c 可以跟光标的跳转做结合
    • c$
    • c0
    • c^
    • cw
    • ce
    • cb
    • #command
    • cc 删除正行并插入
    • C 相当于c$
  • #[i|I|a|A|o|O]string esc 将string粘贴#次
  • 搜索
    • /pattern 从当前光标往下搜索
    • ?pattern 从当前光标往上搜索
    • n 同命令相同的方向
    • N 同命令相反的方向
  • 撤销
    • u 撤销最近的修改
    • # u 撤销最近的#次修改
    • ctrl +r 撤销之前的撤销动作
    • . 重复最后一次操作
    • #. 最后一次操作重复执行#次

命令扩展模式

地址定界

:start,end

# 具体到第#行

#,# 第#行到第#行

#,+n 从第#开始,到第#+n行结束 1,+2 ==>1,3

. 表示当前光标所在的行

$ 表示最后一行

$-1 表示倒数第二行

% 表示全文

/pat1/,/pat2/ 从第一个pat1匹配到的地方,到pat2第一次匹配到的地方

#,/pat/ 从第#行开始,到第一次被pat匹配到的地方

/pat/,$ 从第一次被pat匹配到的到结尾

可以使用的命令

  • d
  • y
  • w file 重新另存为文件
  • r file 将文件的内容写到匹配到的下一行

查找并替换

  • 要使用地址定界来进行查找

  • s 在扩展命令模式下使用为替换

  • 格式: s/要查找的内容/要替换的内容/装饰器

  • 要查找的内容可以使用正则

  • 替换的内容不能为正则

    • 可以为分组:%s/(nfs.*)/#\1/
    • \1表示第一个分组内的内容
    • \2
    • \3
    • & 可以代表前面匹配到的内容
  • 装饰器

    • i 忽略大小写
    • g 表示全部替换
    • gc 每一次替换之前都要询问是否替换
  • 分隔符还可以使用

    • @

可视化

  • v 面向字符
  • V 面向行的
  • ctrl +v 面向块
  • 可以结合所有的跳转键进行结合
  • 对突出显示部分可以使用删除、复制、变更、过滤、替换、另存为等等

打开多个文件

vim file1 file2 file3

:next 下一个

:prev 上一个

:first 第一个

:last 最后一个

:qall 退出全部

:wall 保存全部

:wqall 保存并退出全部

:xall 保存并退出全部

使用多个窗口

vim -o file1 file2 file3 水平分隔

Linux学习笔记(三)文本相关,文件权限,vim_第9张图片

vim -O 垂直分隔

Linux学习笔记(三)文本相关,文件权限,vim_第10张图片

切换ctrl+w 加上上下左右箭头

单文件切割

ctrl+w,s 水平切割

ctrl+w,v 垂直切割

ctrl+w,q 取消相邻的窗口

ctrl+w,o 取消全部窗口

vim工作特性

配置文件

  • 全局有效:/etc/vimrc
  • 对当前用户有效: ~/.vimrc
  • 行号:set nu 取消 set nonu

Linux学习笔记(三)文本相关,文件权限,vim_第11张图片

  • 忽略大小写(搜索) set ic 取消set noic
  • 自动缩进(同上一行) set ai 取消set noai
  • 设置高亮显示(搜索到的内容) set hls 取消set nohls
  • 语法高亮 syntax on 取消 syntax off
  • 文件格式
    • windows格式 set fileformat=dos
    • unix set fileformat=unix
  • 添加标识线: set cul 取消标识线 set nocul
  • 获取帮助: set all
  • 获取帮助信息:
    • :help
    • :help topic
    • vimtutor

创建一个新用户

[root@localhost test2020]#useradd zd
[root@localhost test2020]#passwd zd
Changing password for user zd.
New password: 
Retype new password: 
Sorry, passwords do not match.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

vim思维导图

https://blog.csdn.net/WuLex/article/details/103662412

你可能感兴趣的:(Linux,vim,linux)