• RHCSA3


    三.linux操作

    1.命令模式

    1.1 光标跳转常用按键

    按键功能
    gg光标跳转到文档首行第一个字符
    G光标跳转到文档末行第一个字符
    行号+gg 或行号+G跳转到指定的行
    ^光标跳转到行首
    $光标跳转到行尾
    w光标按照单词向后跳转
    b光标按照单词向前跳转

    1.2 复制、粘贴、删除

    按键功能
    dd删除光标所在行
    ndd从光标开始处 删除n行
    d^删除光标前的所有字符
    d$删除光标后的所有字符
    yy复制光标所在行
    nyy复制从光标开始的n行
    p(小写)粘贴内容到光标所在行的下一行
    P(大写)粘贴内容到光标所在行的上一行
    u撤销类似于window的ctrl+z
    cc剪切当前行并进入插入模式

    2.插入模式

    按键功能
    i(小写)在光标前插入
    l(大写)在光标所在行行首第一个非空字符前插入
    a(小写)在光标后插入
    A(大写)在光标所在行末尾插入
    o(小写)在光标所在行下一行插入
    O(大写)在光标所在行上一行插入
    s(小写)删除光标所在字符并进入插入模式
    S(大写)删除光标当前行并进入插入模式
    cc剪切当前行并进入插入模式

    3.末行模式( 冒号 或者 / )

    3.1 查找关键字并替换

    按键功能
    /word从上而下在文中查找字符串“word”,按n可以匹配下一个到的字符串
    😒 /old/new将当前行中查找到的第一个字符“old"替换为"new"
    😒 /old/new/g将当前行中查找到的所有“old"替换为"new"
    :n1,n2 s/old/new/g在行号n1到n2范围内替换所有字符串“old“为"new"
    :% s/old/new/g将整个文件内的字符串"old"替换为“new”

    3.2 保存退出

    按键功能
    :q没有操作,才能退出
    :q!不保存内容,强制退出
    :w保存文件
    :w /dir/file另存为/dir/file
    :wq 或者ZZ保存文件并退出
    :wq!强制保存退出

    3.3 其他操作

    按键功能
    :r /dir/file在当前文件中读取其他文件内容
    :g/word/d查找有“word”的行 并删除
    :Set nu显示行号
    :set nonu关闭行号显示
    :n1,n2 d删除n1-n2行内容
    :n1,n2 co n复制n1-n2行到n行后面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iE5gVXBz-1659365356058)(%E5%91%BD%E4%BB%A4%E6%A1%88%E4%BE%8B/%E4%B8%89%E7%A7%8D%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%88%87%E6%8D%A2.png)]

    4.vim的拓展使用

    4.1 可视化模式

    按ctrl+v进入可视化模式,该模式可以通过光标选取文本,按y可以复制文本,按c可以剪切文本,按p可以粘贴文本,按P可以粘贴到光标签

    4.2 多文档编辑

    • 当打开一个文件的说话,输入:sp /dri/file 可分屏显示另一个文件

    • 光标在多个文件之前的切换按ctrl+w w

    4.3 vim的配置文件

    [root@master test]#vim /etc/vimrc
    [root@master test]#vim ~/.vimrc
    set hlsearch "高亮度反白
    set backspace=2 "可随时用退格键删除
    set autoindent "自动缩排
    set tabstop=4 "缩进
    set softtabstop=4 softtabstop是“逢4空格进1制表符”,前提是你tabstop=4
    set shiftwidth=4 自动缩进空格长度
    set mouse=a "使用鼠标
    set selection=exclusive
    set selectmode=mouse,key
    set ruler "可显示最后一行的状态
    set showmode "左下角那一行的状态
    set nu "可以在每一行的最前面显示行号啦!
    set bg=dark "显示不同的底色色调
    syntax on "进行语法检验,颜色显示
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    4.4 vim练习

    4.4.1 修改主机名

    [root@ 17:15:50 ~]vim /etc/hostname
    
    • 1

    4.4.2 设置登陆欢迎语

    [root@ 17:19:12 ~]vim /etc/motd
    
    • 1

    4.4.3 修改中断快捷键为ctrl+b

    [root@localhost ~]# vi ~/.bashrc
    stty intr "^b"
    #中断当前进程的快捷键就会变成ctrl+b
    
    
    • 1
    • 2
    • 3
    • 4

    5.练习

    5.1、创建文件命令练习:

    (1) 在/目录下创建一个临时目录test;

    (2)在临时目录test下创建五个文件,文件名分别为passwd,group,bashrc,profile, sshd_config;

    (3)在/test创建/etc/motd的软链接,文件名为motd.soft;创建/etc/motd的硬链接为motd.hard

    5.2、重定向练习:

    (1)将系统内核版本信息,发行版本信息,写入到/test/motd.soft文件中

    (2)将当前主机主机名,当前用户使用的shell信息追加到/test/motd.hard文件中

    (3)将根目录下的文件的文件名写入/test/file文件中

    (4)查看当前工作目录是否为/test目录,将当前工作目录的详细信息追加到/test/file文件中

    5.3、tee命令练习:

    (1)将当前时间添加至/test目录下的passwd,group,bashrc,profile,sshd_config文件中 (2)将当前用户的用户名追加至/test目录下的passwd,group,bashrc,profile,sshd_config文件 中

    5.4、vim命令练习:

    (1)将/etc/passwd文件内容读入/test/passwd,并修改文件里的root字符为admin

    (2)将/etc/group文件内容读入/test/group,只保留root开头的行内容

    (3)将/root/.bashrc文件内容读入/test/bashrc,删除#号开头的行内容

    (4)将/etc/ssh/sshd_config文件内容读入/test/sshd_config,在该文件的第17行后添加一行内容 Port 22

    (5)将/test/sshd_config文件中的第40-50行的yes改为no

    (6)将/test/sshd_config文件另存为/test/sshd.conf

    (7)将/test目录下的passwd,group,bashrc文件中的第一行内容复制至文档最后一行

    (8)将/test目录下的profile,sshd_config文件中前两行内容复制至文档倒数第二行

    6. 浏览普通文件内容 | 可用管道符

    命令常用选项说明
    cat-n 对输出内容中的所有行标注行号,-b对输出内容的非空行标注行号查看文本文件的内容
    head-num 指定需要显示文件num行的内容默认查看文档前十行内容
    tail-num 指定需要显示文件num行的内容 -f使tail不停地去读取和显示文件最新的内容,这样有实时监控的效果。tail命令更多的用于查看系统日志文件,按【Ctrl+C】终止显示可跟踪默认查看文档后10行的内容
    more-c 从顶部清屏然后显示文件内容分页查看文件内容,按Enter键乡下逐行滑动 ,按空格键乡下翻一屏,按B键向上翻一屏,文件末尾moer会自动退出
    less-c 从顶部清屏然后显示文件内容,-N 其作用是在每行前添加输出行号分页查看文件内容,按Enter键乡下逐行滑动 ,按空格键乡下翻一屏,按b键向上翻一屏,按q退出
    [root@master test]# cat /etc/ssh/sshd_config
    [root@master test]# head /etc/ssh/sshd_config
    [root@master test]# tail /etc/ssh/sshd_config
    [root@master test]# more /etc/ssh/sshd_config
    [root@master test]# less /etc/ssh/sshd_config
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    7. 过滤文件内容显示–grep|可配合管道用

    7.1 grep的参数格式

    功能:在指定的普通文件中查找并显示含有指定字符串的行,也可与管道符一起使用

    格式: grep 选项…… 关键字符串 文件名称……

    选项说明
    -c仅显示找到的行数
    -i忽略大小写
    -n显示行号
    -v反向选择———仅列出没有“关键词”的行
    -A-A 2 搜索时显示匹配到的那一行以及下2行
    -B-B 2 搜索时显示匹配到的那一行以及上2行
    -C-C 2 搜索时显示匹配到的那一行以及上下2行

    7.2 grep示例:不允许登录系统的 所有用户信息

    在Linux系统中,/etc/passwd文件是保存着所有的用户信息,而一旦用户的登录终端被设置 成/sbin/nologin,则不再允许登录系统,因此可以使用grep命令来查找出当前系统中不允许登录系统的 所有用户信息:

    [root@ 17:19:55 ~]grep /sbin/nologin /etc/passwd
    
    • 1

    7.3 grep使用特殊符号进行字符串的匹配

    匹配模式说明
    grep h 文件名查找文件里有字符h的行
    grep ^q 文件名匹配以q开始的行
    grep ^qf 文件名匹配以q或者f开头的行
    grep ^^qf 文件名不匹配以q或f开头的行
    grep ^0-9 文件名匹配以数字开头的行
    grep q$ 文件名匹配以q结束的行
    grep ^$过滤空白行
    grep -r h ./*如果要明确搜索当前目录中的子目录有h的行
    grep -d skip h ./*忽略当前目录下的子目录下的普通文件

    7.4 grep特殊匹配案例

    7.4.1 查找包含a字符

    [root@ 18:14:43 ~]grep a /etc/passwd
    
    • 1

    7.4.2 查找以q开头的数据

    [root@ 18:24:36 ~]grep ^q /etc/passwd
    qemu:x:107:107:qemu user:/:/sbin/nologin
    
    
    • 1
    • 2
    • 3

    7.4.3 匹配以q或者f开头的行

    [root@ 18:35:25 ~]grep ^[qf] /etc/passwd
    
    • 1

    7.4.4 不匹配以q或f开头的行

    [root@ 18:35:25 ~]grep ^[^qf] /etc/passwd
    
    • 1

    7.4.5 匹配以数字开头的行

    [root@ 18:38:27 ~]grep ^[0-9] /etc/passwd
    [root@ 18:38:03 ~]grep ^0-9 /etc/passwd
    
    • 1
    • 2

    7.4.6 匹配以q结束的行

    [root@ 18:39:13 ~]grep q$  /etc/passwd
    
    • 1

    7.4.7 过滤空白行

    [root@ 18:41:43 ~]grep ^$ /etc/passwd
    
    • 1

    8.切割显示 cut

    cut命令用于按列提取文本内容,语法为:cut [选项] 文件名称

    系统默认是按冒号来隔开

    [root@localhost ~]# head -n 20 /etc/passwd^C
    
    
    • 1
    • 2

    8.1 cut格式说明

    • -f 设置想查看的列数
    • -d 设置间隔符号

    8.2 cut案例 获取用户名

    [root@localhost ~]# cut -d: -f1 /etc/passwd
    
    • 1

    9.排序显示sort

    9.1 sort命令语法和选项

    sort命令用于对文本内容进行排序显示,语法为: sort [选项] 文件名

    选项作用
    -f忽略大小写
    -b忽略缩进与空格
    -n以数值型排序
    -r反向排序
    -u去除重复行
    -t指定间隔符
    -k设置字段范围

    9.2 案例:默认是按照字母排序

    [root@localhost ~]# sort file
    
    • 1

    9.3 -f 忽略大小写

    [root@localhost ~]# sort -f file
    
    • 1

    9.4 -b 忽略缩进与空格

    [root@localhost ~]# sort -b file
    
    • 1

    9.5-n 以数值型排序

    [root@localhost ~]# sort -n file
    
    • 1

    9.6 -r 反向排序

    [root@localhost ~]# sort -r file
    
    • 1

    9.7-u 参数进行去重复操作

    [root@localhost ~]# sort -u file
    
    • 1

    9.8 -t 指定间隔符

    [root@localhost ~]# sort -t: file
    
    
    • 1
    • 2

    9.9 指定排序序列 -t参数指定: -k指定第几列 -n是指数自

    [root@localhost ~]# sort -t: -k 3 -n file
    
    • 1

    10.去重显示uniq

    10.1 格式

    uniq命令用于去除文本中连续的重复行,语法为: uniq [选项] 文件名称

    选项全称说明
    -ccount在每行前加上表示相应行目出现次数的前缀编号
    -drepeated只输出重复的行
    -fskip-fields=N-f忽略的段数 -f 1忽略一段
    -iignore-case不缺分大小写
    -sskip-chars=N跟-f有点像,不过-s是忽略,后面n是多少就忽略多少
    -uunique去除重复的后,全部显示出来
    -wcheck-chars=N对每行第N个字符以后的内容不做对照

    10.2案例

    [root@localhost ~]# uniq file
    
    
    • 1
    • 2

    1,对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除非它们是相邻的行。如果您想先对输入排序,使用sort -u。

    [root@master ~]# uniq -c uniq.txt
    4 Welcome to kongd.com
    1 Red Hat certified
    1 Free Linux Lessons
    1 Professional guidance
    1 Linux Course
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    11.tr 替换文件中的字符显示

    tr 指令从标准输入读取数据,经过替换或者删除后,将结果输出到标准输出。

    11.1 语法

    语法: tr [OPTION]…SET1[SET2]

    选项说明
    -c反选设定符
    -d删除指定符
    -s缩减连续重复的字符成指定的单个字符

    11.2示例 将文件testfile中的小写字母全部转换成大写字母,

    [root@localhost ~]# cat tesfile | tr a-z A-Z
    
    
    • 1
    • 2

    12.练习

    12.1文件内容查看

    ( 1)查看/etc/passwd文件的第6行

    [root@ 18:51:03 ~]head -6 /etc/passwd |tail -1 
    sync:x:5:0:sync:/sbin:/bin/sync
    
    
    • 1
    • 2
    • 3

    ( 2)查看/etc/selinux/config 以 SELINUX开头的行

    [root@ 18:51:37 ~]grep ^SELINUX /etc/selinux/config
    SELINUX=enforcing
    SELINUXTYPE=targeted
    
    
    • 1
    • 2
    • 3
    • 4

    ( 3)查找/etc/ssh/sshd_config 以no结尾的行

    [root@ 18:59:14 ~]grep no$ /etc/ssh/sshd_config
    
    • 1

    (4)过滤/etc/ssh/sshd_config包含数字的行

    [root@localhost ~]# cat /etc/ssh/sshd_config | grep -v  [0-9]
    
    • 1

    12.2、文本处理

    查看/etc/passwd文件以":”为分隔符的第一列内容,并按字母逆序排序写入/username文件统计/etc/passwd文件一共有几行,只把行数显示。

    [root@localhost ~]# cut -d : -f 1 /etc/passwd  | sort -r |tee /username
    
    [root@localhost ~]# cut -d : -f 1 /etc/passwd  | sort -r > /username
    
    • 1
    • 2
    • 3

    12.3 统计系统执行频率最高的前十个命令

    [root@localhost ~]# echo 系统执行频率最高的前三个命令`history | tr -s " " " " | cut -d " " -f 3 | sort |uniq -c| sort -n | tail -10 | tr -s " " " " | cut -d " " -f 3`
    
    系统执行频率最高的前三个命令grap uniq ll [root@localhost head grep echo cat cut sort
    
    • 1
    • 2
    • 3

    aster ~]# uniq -c uniq.txt
    4 Welcome to kongd.com
    1 Red Hat certified
    1 Free Linux Lessons
    1 Professional guidance
    1 Linux Course

    
    
    
    
    
    ## 11.tr  替换文件中的字符显示
    
    tr 指令从标准输入读取数据,经过替换或者删除后,将结果输出到标准输出。
    
    ### 11.1 语法
    
    语法: tr [OPTION]…SET1[SET2]
    
    | 选项 | 说明                               |
    | ---- | ---------------------------------- |
    | -c   | 反选设定符                         |
    | -d   | 删除指定符                         |
    | -s   | 缩减连续重复的字符成指定的单个字符 |
    
    ### 11.2示例 将文件testfile中的小写字母全部转换成大写字母,
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    [root@localhost ~]# cat tesfile | tr a-z A-Z

    
    
    
    ## 12.练习
    
    ### 12.1文件内容查看
    
    ( 1)查看/etc/passwd文件的第6行
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    [root@ 18:51:03 ~]head -6 /etc/passwd |tail -1
    sync: x :5:0:sync:/sbin:/bin/sync

    
    ( 2)查看/etc/selinux/config 以 SELINUX开头的行
    
    
    • 1
    • 2
    • 3

    [root@ 18:51:37 ~]grep ^SELINUX /etc/selinux/config
    SELINUX=enforcing
    SELINUXTYPE=targeted

    
    ( 3)查找/etc/ssh/sshd_config 以no结尾的行
    
    
    • 1
    • 2
    • 3

    [root@ 18:59:14 ~]grep no$ /etc/ssh/sshd_config

    
    (4)过滤/etc/ssh/sshd_config包含数字的行
    
    
    • 1
    • 2
    • 3

    [root@localhost ~]# cat /etc/ssh/sshd_config | grep -v [0-9]

    ### 12.2、文本处理
    
    查看/etc/passwd文件以":”为分隔符的第一列内容,并按字母逆序排序写入/username文件统计/etc/passwd文件一共有几行,只把行数显示。
    
    
    • 1
    • 2
    • 3
    • 4

    [root@localhost ~]# cut -d : -f 1 /etc/passwd | sort -r |tee /username

    [root@localhost ~]# cut -d : -f 1 /etc/passwd | sort -r > /username

    ### 12.3 统计系统执行频率最高的前十个命令
    
    • 1

    [root@localhost ~]# echo 系统执行频率最高的前三个命令 ${history | tr -s " " " " | cut -d " " -f 3 | sort |uniq -c| sort -n | tail -10 | tr -s " " " " | cut -d " " -f 3}

    系统执行频率最高的前三个命令 grep uniq root@localhost head grep echo cat cut sort
    ``

  • 相关阅读:
    PreScan快速入门到精通第三十八讲基于车道线识别传感器的车道偏离算法Demo讲解
    C语言学习之路
    vue基础概念
    golang map 并发读写 sync.Map 实现原理
    maven(总)
    Tcp三次握手和四次挥手
    shouldComponentUpdate 是做什么的?
    Leetcode | 算法(二)
    如何恢复电脑上删除的文件?快速恢复被删除文件的技巧【5个实用方法】
    考研系列-数据结构第二章、线性表
  • 原文地址:https://blog.csdn.net/Da_Bao_zi/article/details/126111771