• Linux-文档编辑命令


    • echo

    语法格式:

    echo [参数] 字符串/变量

    常用参数:

    -n不输出结尾的换行符
    -e “\a”发出警告音
    -e “\b”删除前面的一个字符
    -e “\c”结尾不加换行符
    -e “\f”换行,光标扔停留在原来的坐标位置
    -e “\n”换行,光标移至行首
    -e “\r”光标移至行首,但不换行
    -E禁止反斜杠转移,与-e参数功能相反

    参考实例:

    输出指定字符串到终端设备界面(默认为电脑屏幕):

    1. [root@local ~]# echo HelloWorld
    2. HelloWorld

    输出某个变量值内容:

    1. [root@local ~]# echo $PATH
    2. /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/root/bin

    搭配转义符一起使用,输出纯字符串内容:

    1. [root@local ~]# echo \$PATH
    2. $PATH

    搭配输出重定向符一起使用,将字符串内容直接写入文件中:

    [root@local ~]# echo "Hello World" > Document

    搭配反引号执行命令,并将执行结果输出:

    1. [root@local ~]# echo `uptime`
    2. 16:16:12 up 52 min, 1 user, load average: 0.00, 0.00, 0.00

    输出带有换行符的内容:

    1. [root@local ~]# echo -e "First\nSecond\nThird"
    2. First
    3. Second
    4. Third

    指定删除字符串中某些字符,随后将内容输出:

    1. [root@local ~]# echo -e "123\b456"
    2. 12456

    • grep

    语法格式:

     grep [参数] 文件

    常用参数:

    -i忽略大小写
    -c只输出匹配行的数量
    -l只列出符合匹配的文件名,不列出具体的匹配行
    -n列出所有的匹配行,显示行号
    -h查询多文件时不显示文件名
    -s不显示不存在、没有匹配文本的错误信息
    -v显示不包含匹配文本的所有行
    -w匹配整词
    -x匹配整行
    -r递归搜索
    -q禁止输出任何结果,已退出状态表示搜索是否成功
    -b打印匹配行距文件头部的偏移量,以字节为单位
    -o与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位
    -F匹配固定字符串的内容
    -E支持扩展的正则表达式

    参考实例:

    搜索某个文件中,包含某个关键词的内容:

    1. [root@local ~]# grep root /etc/passwd
    2. root:x:0:0:root:/root:/bin/bash
    3. operator:x:11:0:operator:/root:/sbin/nologin

    搜索某个文件中,以某个关键词开头的内容:

    1. [root@local ~]# grep ^root /etc/passwd
    2. root:x:0:0:root:/root:/bin/bash

    搜索多个文件中,包含某个关键词的内容:

    1. [root@local ~]# grep linuxprobe /etc/passwd /etc/shadow
    2. /etc/passwd:linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash
    3. /etc/shadow:linuxprobe:$6$9Av/41hCM17T2PrT$hoggWJ3J/j6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7:::

    搜索多个文件中,包含某个关键词的内容,不显示文件名称:

    1. [root@local ~]# grep -h linuxprobe /etc/passwd /etc/shadow
    2. linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash
    3. linuxprobe:$6$9Av/41hCM17T2PrT$hoggWJ3J/j6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7:::

    输出在某个文件中,包含某个关键词行的数量:

    1. [root@local ~]# grep -c root /etc/passwd /etc/shadow
    2. /etc/passwd:2
    3. /etc/shadow:1

    搜索某个文件中,包含某个关键词位置的行号及内容:

    1. [root@local ~]# grep -n network anaconda-ks.cfg
    2. 17:network --bootproto=static --device=ens160 --ip=192.168.10.10 --netmask=255.255.255.0 --onboot=off --ipv6=auto --activate
    3. 18:network --hostname=linuxcool.com

    搜索某个文件中,不包含某个关键词的内容:

    1. [root@local ~]# grep -v nologin /etc/passwd
    2. root:x:0:0:root:/root:/bin/bash
    3. sync:x:5:0:sync:/sbin:/bin/sync
    4. shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    5. halt:x:7:0:halt:/sbin:/sbin/halt
    6. linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash

    搜索当前工作目录中,包含某个关键词内容的文件,未找到则提示:

    1. [root@local ~]# grep -l root *
    2. anaconda-ks.cfg
    3. grep: Desktop: Is a directory
    4. grep: Documents: Is a directory
    5. grep: Downloads: Is a directory
    6. initial-setup-ks.cfg
    7. grep: Music: Is a directory
    8. grep: Pictures: Is a directory
    9. grep: Public: Is a directory
    10. grep: Templates: Is a directory
    11. grep: Videos: Is a directory

    搜索当前工作目录中,包含某个关键词内容的文件,未找到不提示:

    1. [root@local ~]# grep -sl root *
    2. anaconda-ks.cfg
    3. initial-setup-ks.cfg

    递归搜索,不仅搜索指定目录,还搜索其内子目录内是否有关键词文件:

    1. [root@local ~]# grep -srl root /etc
    2. /etc/fstab
    3. /etc/X11/xinit/Xclients
    4. /etc/X11/xinit/xinitrc
    5. /etc/libreport/events.d/collect_dnf.conf
    6. /etc/libreport/events.d/bugzilla_anaconda_event.conf
    7. /etc/libreport/forbidden_words.conf
    8. ...

    搜索某个文件中,精准匹配到某个关键词的内容(搜索词应与整行内容完全一样才会显示,有别于一般搜索):

    1. [root@local ~]# grep -x cd anaconda-ks.cfg
    2. [root@local ~]# grep -x cdrom anaconda-ks.cfg
    3. cdrom

    判断某个文件中,是否包含某个关键词,通过返回状态值输出结果(0为包含,1为不包含),方便在Shell脚本中判断和调用:

    1. [root@local ~]# grep -q linuxprobe anaconda-ks.cfg
    2. [root@local ~]# echo $?
    3. 0
    4. [root@local ~]# grep -q linuxcool anaconda-ks.cfg
    5. [root@local ~]# echo $?
    6. 1

    搜索某个文件中,空行的数量:

    1. [root@local ~]# grep -c ^$ anaconda-ks.cfg
    2. 6
    • vi命令-文本编辑器

    语法格式:

    vi [参数] 文件

    常用参数:

    -s静默模式
    -- -cmd<命令>加载任何vimrc文件之前执行指定命令
    -R只读模式
    -vVi模式
    -eEx模式
    -y简易模式
    -c<命令>加载第一个文件之后执行指定命令
    -s<脚本输入文件>从指定脚本输入文件阅读普通模式命令
    -w<脚本输出文件>追加所有类型的命令写入脚本输出文件
    -W<脚本输出文件>写入所有类型的命令到指定脚本输出文件
    +<行数>从指定行开始
    -- -noplugin不要加载插件脚本
    -p<数量>打开指定数量的标签页(带文件名)
    -r<文件名>恢复崩溃的会话
    -L等同于-r
    -r列出交换文件并退出
    -u<vimrc>熟用指定vimrc,而不是.vimrc
    -T<终端>设置使用指定终端
    -o<数量>打开指定数量的窗口
    -n不使用交换文件,只用内存
    -Z受限模式
    -m不允许修改(写入)
    -b二进制模式
    -M在文本中不允许修改

    参考实例:

    创建某个文件,并进行编写操作:

    [root@local ~]# vi anaconda-ks.cfg

    打开某个已存在的文件,从第6行开始编写:

    [root@local ~]# vi +6 anaconda-ks.cfg

    打开某个已存在的文件,以只读模式进入:

    [root@local ~]# vi +R anaconda-ks.cfg

  • 相关阅读:
    Matlab用深度学习循环神经网络RNN长短期记忆LSTM进行波形时间序列数据预测
    内网场景 Dubbo 微服务接入观测云
    tensorflow内存泄漏或模型只加载不运行
    vBox+K8s坑记录
    2023.10.10 浪费生命
    北斗导航 | 基于奇偶矢量法的RAIM之SSE探索(附奇偶矢量法源代码)
    数据库升级问题总计(一)
    从 Java 小白到收获 BAT 一线大厂offer ,分享出我这 2年的经验
    提取歌曲伴奏?用对软件一键帮你搞定~
    08——驾校科目一考试——布局按钮
  • 原文地址:https://blog.csdn.net/Trollz/article/details/125536952