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

    科技2024-12-10  15

    文章目录

    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

    chgrp 修改文件的属组

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

    权限

    9位表示权限

    3组

    3位表示一组

    — --- —

    修改权限

    2.g组=u组

    文件权限可以读以下定义

    属主 u

    属组 g其他 o全部 a

    每个文件的权限

    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

    修改权限

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

    shabang —》 解释器

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

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

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

    lsattr 查看属性

    chattr +a 只能追加数据

    取消:

    chattr -i a #减去i

    vi/vim

    打开文件

    vim [option] … file…

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

    模式

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

    模式之间切换

    命令模式- 插入模式 i 光标所在处插入I 在当前光标所在的行的行首插入a 光标所在位置的后面插入A 在当前光标所在的行尾插入o 在当前光标所在的行的下一行(新开)插入O 在当前光标所在的行的上一行(新开一行)插入 插入模式- 命令模式 esc 命令模式 – 末行模式 : 末行模式 – 命令模式 esc escesc 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$y0y^ywyeybyy 一正行#yy 复制#行yG 复制到结尾ygg 复制到开头Y 复制整行 粘贴 p 如果是整行的话,则粘贴到当前光标所在行的下一行,否则粘贴到光标的后面P 如果是整行的话,则粘贴到当前光标所在行的上一行,否则粘贴到光标的前面 改变,删除以后并将模式切换成插入模式 c 可以跟光标的跳转做结合c$c0c^cwcecb#commandcc 删除正行并插入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匹配到的到结尾

    可以使用的命令

    dyw 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 水平分隔

    vim -O 垂直分隔

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

    单文件切割

    ctrl+w,s 水平切割

    ctrl+w,v 垂直切割

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

    ctrl+w,o 取消全部窗口

    vim工作特性

    配置文件

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

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

    创建一个新用户

    [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

    Processed: 0.024, SQL: 8