day04

vim 文本编辑器 vi

命令模式:

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

dd               删除光标所在行

Ndd            3dd 删除光标行开始一共3行 3,5删除3-5行内容

x                 删除光标所在字符

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

dgg             删除光标所在行到文档首

s                 字符替换,替换光标所在字符

yy               复制光标所在行 4yy

p                 粘贴在光标下一行

cc               剪切光标所在行

G                跳转到文档尾的行首

gg               跳转到文档首的行首

^                 跳转到行首

$                 跳转到行尾

u                 向左撤销

ctrl-r            向右撤销

命令模式进入插入模式的方法:

a                 插入光标后

A                 插入光标行尾

i                  插入光标前

I                  插入到行首

o                 插入到下一行

O                插入到上一行

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

S                删除光标行进入插入模式

末行模式 :

:wq           保存并退出

:q              退出操作

:q!          强制退出

:wq!        强制保存并退出

:15             切换到输入行

:set nu       显示行号

/root              匹配root关键字

:noh            取消

:1,5 co 10    

:% s/root/000/          关键字符替换,替换的是每一行中第一次匹配到的root关键字

:% s/root/000/g        关键字符替换,替换的是每一行中所有匹配到的root关键字

:r FILENAME         把指定文件内容读取当前文件光标的下一行

(1)应用Vi命令在/tmp文件夹下创建文件,文件名newfile。在newfile首行输入日期时间 :.COMMAND

(2)将/boot/grub2/grub.cfg文档的内容读入到newfile文档中(在日期的下一行即第2行)

(3)查找文档中包含#号字符的行 ,将整行删除

.*

正则符:.       任意单个字符数据内容

              *       匹配前一个字符任意次

通配符:*       任意长度的任意字符(文件名)

              ?     匹配任意单个字符

(4)开启VI的行号提示功能

:set nu

(5)将光标移动到第5行,并在第5行后产生一新的空白行第6行

:5

命令模式下   o

(6)修改内容。将所有的timeout=5,更改为time=30

:s/timeout=5/time=30/g

(7)将整个文档中的所有root字符更改为admin字符

:s/root/admin/g

(8)复制第1行的日期时间内容到文档末

:1 co 213

(9)将文档保存,将文档再次另存为/oot/newfile2,退出V编辑翠

:w /root/newfile2

:q

文本内容处理目录

echo 打印命令(标准输出命令)

#echo   helloworld
[root@B ~]# echo $HOSTNAME   $引用变量
B
[root@B ~]# echo "$HOSTNAME"  ""弱引用(可以解释特殊含义的字符)
B
[root@B ~]# echo  '$HOSTNAME'  ‘’强引用(不可以解释特殊含义的字符)

$()  命令替换符

linex中文件的描述符:   0标准输入   1标准输出(正确输出)   2错误输出

>>           输出重定向符(将程序内容输出重定到指定文件--将内容写入文件,会覆盖源文件内容)

>>           输出追加重定向符

<             输入重定向符

<<           终止结束符

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

 |   管道符(无名管道)     前一个命令的输出结果按照字符流的形式通过管道符连接后的一个命令进                                    行 处理

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

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

[root@localhost /]# head -2 /etc/passwd |tee file.txt
root:x:0:0:root:/root:/bin/bash
bin:x:l:l:bin:/bin:/sbin/nologin
[root@localhost /]# head -2 /etc/passwd |tee -a file.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost /]# cat file.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
bin:x:l:1:bin:/bin:/sbin/nologin

文件的行进行处理;将处理的结果显示在终端

cut 剪切

-c  自符
-d  分割字符
-f  分割字段

sort 排序

默认按照文件行的字符进行比较(从小到大)
-r  降序 从大到小、
-n  按照数值比较(从小到大)
-u  unique去重
#sort -nu aaa  将文件中的行按照数值从小到大显示,并且重复行只显示一次

wc 文本统计 word count

wc  FILENAME  统计指定的行、单词书、字节数
-l  统计行数
-w  统计单词
-m  统计字符数
-c  统计字节
# wc -l bbb
1  bbb
#echo "bbb文件一共有`"

uniq 去重,重复行必须相邻

# sort aaa | uniq
-c  显示重复次数
-d  显示文件重复出现的内容
-D  所有重复行

tr 字符替换命令

# echo  helloworld | tr  l 0   把l替换成0字符
he00owor0d
#echo helloworld  |  tr  h1 0  把h以及l字符替换成0字符
#echo helloworld  |  tr  l  01 把l字符替换成0字符
#echo helloworld  |  tr -t hl  0   等长字符替换;把h字符替换成0字符
#echo helloworld  |  tr -c l 0 反选定;除了l字符

grep 文本过滤显示命令

格式: grep  '关键字'  FILENAME
 grep 'root' /etc/passwd      过滤关键字,有root关键字行打印到终端
 grep -o 'root' /etc/passwd   过滤关键字,只把root关键字打印到终端  
 grep -i 'ROOT' /etc/passwd   过滤关键字乎略大小写
 grep -v 'root' /etc/passwd   过滤关键字,把没有关键字的行显示
 #cat /etc/login.defs
 grep -v  '^#' /etc/login.defs   ^#以#号开头
 grep -v  '^#' /etc/login.defs  | grep -v '^$'   ^$ 空白行

作业

1.课程笔记总结

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

[root@B ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
geoclue:x:997:994:User for geoclue:/var/lib/geoclue:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pipewire:x:996:992:PipeWire System Daemon:/var/run/pipewire:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
clevis:x:995:989:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
unbound:x:994:988:Unbound DNS resolver:/etc/unbound:/sbin/nologin
gluster:x:993:987:GlusterFS daemons:/run/gluster:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
chrony:x:992:986::/var/lib/chrony:/sbin/nologin
setroubleshoot:x:991:984::/var/lib/setroubleshoot:/sbin/nologin
saslauth:x:990:76:Saslauthd user:/run/saslauthd:/sbin/nologin
libstoragemgmt:x:989:983:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
dnsmasq:x:981:981:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
sssd:x:980:980:User for sssd:/:/sbin/nologin
cockpit-ws:x:979:979:User for cockpit web service:/nonexisting:/sbin/nologin
cockpit-wsinstance:x:978:978:User for cockpit-ws instances:/nonexisting:/sbin/nologin
flatpak:x:977:977:User for flatpak system helper:/:/sbin/nologin
colord:x:976:976:User for colord:/var/lib/colord:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:975:975::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
hlx:x:1000:1000:hlx:/home/hlx:/bin/bash
[root@B ~]# cut -d : -f 3 /etc/passwd | sort -nr > UID
[root@B ~]# cut -d : -f 4 /etc/passwd | sort -nr > GIU
[root@B ~]# cat UID
65534
1000
999
998
997
996
995
994
993
992
991
990
989
981
980
979
978
977
976
975
193
172
171
113
107
81
75
74
72
70
59
42
32
29
14
12
11
8
7
6
5
4
3
2
1
0
[root@B ~]# cat GIU
65534
1000
997
996
994
992
989
988
987
986
984
983
981
980
979
978
977
976
975
193
172
171
113
107
100
81
76
75
74
72
70
59
50
42
32
29
12
7
4
2
1
0
0
0
0
0

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

[root@B ~]# date
Mon Nov 28 13:29:54 CST 2022
[root@B ~]# date | cut -d " " -f 2-4,6 > A
[root@B ~]# cat A
Nov 28 13:31:43 2022

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

[root@B ~]# cat /etc/passwd

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

[root@B ~]# vim /etc/login.defs
   s/^#.*$//g 
   g/^$/d 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值