day04

day04

vim

命令模式

d+enter 删除光标所在行以及下一行

dd 删除光标所在行

4dd 从光标所在行开始一共删除4行

dG 删除光标所在行,以及到文档尾

dgg 删除光标所在行,以及到文件首

s 替换,替换光标所在字符(删除光标所在字符)

S 替换,替换光标所在行 -----插入模式

G 跳转到文档末行的行首

gg 跳转到文档首行的行首

5G 跳转到文件的第五行

^ 光标跳转到行首

$ 光标跳转到行尾

yy 复制光标所在行 4yy 4,8yy

p 粘贴在光标的下一行

cc 剪切光标所在行 -----进入插入模式

u 向左撤销

ctrl+r 向右撤销

命令模式–进入插入模式

s 删除光标所在字符进入插入模式

S 删除光标所在行并进入插入模式

a 插入到光标后

A 插入到光标的所在行的行尾

o 插入到光标所在行的下一行

O 插入到光标所在行的上一行

命令模式----进入到末行模式

:w 写入保存

:w FILENAME

:q 退出

:q! 强制退出

:wq!

:set nu 显示行号

:set nonu 取消行号

:%s /root/000/ 匹配所有行中第一次出现root关键字替换为000

:%s /root/000/g 匹配所有行中所有root关键字替换为000

:12,18 co 40 将12到18行的内容复制到40行

:r FILENAME 将指定文件内容读取到光标所在下一行

:!cat/etc/passwd 将cat/etc/passwd命令的结果显示在文档中

.*

:%s/.*#.*//g

正则符:.任意单个

​ *匹配前一个字符任意次

通配符:*任意长度的任意字符

​ ?匹配任意单个字符

文本内容处理命令

echo 打印命令

#echo helloworld     $引用变量
                     “”弱引用可以解释特殊含义字符
#echo $             ‘’强引用(不解释特殊含义符号)
                    ``命令替换符
                    $()命令替换符

Linux中文件的描述符:0 标准输入

​ 1 标准输出(正确输出)

​ 2 错误输出

​ > 输出重定符(将程序的内容输出重定到指定文件内—将内容写入文件,会覆盖文件原内容;

​ >> 追加重定符,不会覆盖

​ < 输入重定符;

​ << 终止结束符

#head  /etc/passwd  >file
#tail -2/etc/passwd >>file
#cmd 2>file 把cmd的错误结果输入到file文件
#cmd &> file &表示1和2  把cmd正确或者错输出写入到file文件==cmd 1>file1 2

文件的行进行处理,不会编辑源文件

cut 剪切;

-c 按照字符进行剪切
-d 分割字符
-f 分割字段
# cut -c 1-4 文件名

sort 文本内容排序;

默认按照文件行的字符进行比较(从小到大)
-r 降序 从大到小;
-n 按照数值大小比较 (从小到大)
-u 去重

wc 文本统计

默认统计文件的行还有单词数,字节数
-l 统计行数
-w 统计单词
-c 统计字节
-m 字符

uniq 去重

重复行需要相临才会去重
-c 标记重复次数   
-d 显示具体重复的信息 
-D 列出具体重复的信息

tr 字符替换命令

默认替
tr set1 set2  
#tr hl 0   把hl都替换为0字符
#tr 1 001 把l字符替换成0字符

-c  反选定,需要替换的保留  1  0  除1之外的字符替换为0字符
-t  等长替换   hl 0  h替换成0  
-d  删除单词  hl   删除hl单词
-s  多个连续字符重复字符替换为单个字符

grep 文本过滤

‘’  文件
-v 反选定
-o 只显示关键字
-i 过滤关键字忽略大小写
^$ 空行

| 管道符(无名管道) 前一个命令的输出结果按照字符流的形式通过管道符

|tee T型管道横向输出将钱一个文件的标准输出作为后面文件的标准输入 > |tee == > |tee -a==>>

​ 纵向输出将钱一个命令的标准输出直接在终端打印显示

shell三剑客 grep sed awk

作业题

1.课程笔记总结

2.将/etc/passwd 文件中3,4 字段分别截取出来分别写入文件UID和文件GIU但是这两个文件中的信息是以数值由大到小的形式显示;

[root@localhost ~]# cut -d: -f 3 /etc/passwd |sort -nr > UID
[root@localhost ~]# cut -d: -f 4 /etc/passwd |sort -nr > GIU
[root@localhost ~]# cat /GIU
997
996
995
。
。
。
。
193
172
171
12
113
107
1000
100
1
0
0
0
0
0

3.通过查看时间命令将分别将年月日时分写入A文件

[root@localhost ~]# echo 当前时间是.! `date` > a
[root@localhost ~]# cat /a 
nowtime .! Mon Nov 28 12:47:28 CST 2022

4.告诉用户当前系统有多少用户 (/etc/passwd文件有多少行一行是一个用户信息)。

# wc -l /etc/passwd
[root@localhost ~]# wc -l /etc/passwd
46 /etc/passwd

5.不显示/etc/login.defs 文件中以#开头的行以及空白行。

[root@localhost ~]# grep -v "^#" /etc/login.defs | grep -v '^$'
MAIL_DIR	/var/spool/mail
UMASK		022
HOME_MODE	0700
PASS_MAX_DAYS	99999
PASS_MIN_DAYS	0
PASS_MIN_LEN	5
PASS_WARN_AGE	7
UID_MIN                  1000
UID_MAX                 60000
SYS_UID_MIN               201
SYS_UID_MAX               999
GID_MIN                  1000
GID_MAX                 60000
SYS_GID_MIN               201
SYS_GID_MAX               999
CREATE_HOME	yes
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512

你可能感兴趣的:(bash,linux,服务器)