文件写入vim 和其他命令

vim /vi 文本编辑器

vim:有颜色标记等功能(相比vi)

vim 文件名(可以创建文件)

命令模式(输入法为英文)

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

dd 删除光标所在行

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

x 删除光标字符

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

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

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

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

G 跳转到文档末行的行首

gg 跳转到文档首行的行首

5G 跳转到文档的第五行

yy 复制光标所在行

4yy 匹配四行复制

4,8yy 复制四到八行

p 粘贴在光标的下一行

cc 剪切光标所在行

u 撤销上一次执行的操作

ctrl+r 将原来的撤销重做一遍

a 插入到光标后

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

i 插入到光标前

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

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

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

命令——末行模式aa

:W 写入保存

:w 文件名

:q 退出

:q! 强制退出

:wq! 强制保存退出

:set nu 显示行号

:set nonu 取消行号

:%s /root/000 ( 可以用其他字符) 匹配所有行中第一出现root关键字替换为000

:%s /root/000/g 匹配所有行出现的所有root替换为000

:12,18 co 40 将这七行信息复制到40行之后

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

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

/关键字 快速匹配关键字

:noh 取消关键关键字的高亮显示

echo 字符

打印 标准输入输出

$ 引用变量值

echo $? 上一条命令的返回‘结果’(0-255)2为成功,其它结果失败

#echo $SHELLS 打印变量值

eg:echo $homename

“ ”弱引用 可以解析特殊字符的含义 可以显示变量的值

‘ ’强引用 不解析特殊字符的含义 不可以显示变量的值

``命令替换 $()

 [root@localhost ~]# echo  $SHELL
/bin/bash
[root@localhost ~]# echo  "$SHELL"
/bin/bash
[root@localhost ~]# echo  '$SHELL'
$SHELL
[root@localhost ~]# echo 当前系统时间是`date`
当前系统时间是Sun Nov 27 15:12:58 CST 2022
[root@localhost ~]# echo 当前系统时间是$(date)
当前系统时间是Sun Nov 27 15:13:26 CST 2022

Linux中的程序对于文件描述符0 1 2

  • 0标准输入
  • 1标准输出
  • 2错误输出
重定向符
  • /> 输出重定向符 将程序的输出结果重定到指定文件 1> 2>
  • >> 追加输出重定向符(继续写入)
echo   1234   >  fff    将1234写入fff文件

echo   234  >>  fff    将234写入(继续)

——————将前一个命令的输出(正确或错误)结果写入一个文件————————

< 输入重定向符

<< 终止结束符

[root@localhost ~]# cat


12345
12345
12345^H^H^H
12345
^H^H^H^H
^C
[root@localhost ~]# cat <<.

> 123
> 234
> .
> 123
> 234
> [root@localhost ~]# 
[root@localhost ~]# cat <<.> file

> 123
> .
> [root@localhost ~]# 

写入文件的三种方式

vim

echo 1234 > fff

cat <<终止符> file

| 管道符

将前一个程序(命令)输出结果

将结果输入head ,将结果的前五行输入tail,将结果输出

[root@localhost ~]# cat /etc/passwd | head -5 |tail -1
lp​:x:4:7:lp:/var/spool/lpd:/sbin/nologin

|tee T型管道 |tee -a(保证原有文件不被覆盖)

横向输出 将程序的输出结果重定到指定文件

纵向输出 将程序的输出结果显示到终端

文本内容处理相关的命令

1.通过处理命令只是将处理结果显示在终端不会对源文件更改

2.按照指定文件的行进行处理

cut 文本剪切

-c 字符

-d 分割符类型

-f 指定字段

剪切/etc/passwd里的第三段-n
[root@localhost ~]# cut -d: -f 3 /etc/passwd
0
1
2

3

等等
1000
只显示系统时间
[root@localhost ~]# date
Sun Nov 27 16:00:33 CST 2022
[root@localhost ~]# date | cut -d " " -f 4
16:01:11
[root@localhost ~]# echo 当前系统的时间是`date | cut -d " " -f 4`
当前系统的时间是16:02:20
sort 文本排序

sort 文件名 按首字符比较

sort -n 文件名 按数值大小排序

sort -u 文件名 去除重复

sort -nu 文件名 按数值大小排序且去除重复

sort -t 分隔符

sort -k 字段

将文件bbb以空格为分隔符,第二列按数值大小排序

sort  -t   ” “  -k  2  -n  bbb
uniq 去重(重复行必须相邻)

-c 另加一列显示重复次数

-d 显示那一行的内容

-D 显示全部重复内容

sort -u 文件名   等同于sort 文件名 | uniq
wc 文件名 文本统计utf-8

(行数 单词数(每行自动算上换行符$) 字节数 文件名)

-l 行数

-w 单词数

-c 统计字节

-m 统计字符

eg:#wc -l etc/passwd
47 /etc/passwd
#cat /etc/passwd | wc -l
47
#wc -l /etc/passwd | cut -d " " -f 1
47
tr 字符 替换字符 字符替换命令

-t (按等级替换

-c 反选定

eg:1 a(把除了1以外都换成a

-d 删除指定字符

-s 将多个连续重复字符替换为单个字符

eg:把多个空格换成一个空格

​        #echo  “1 2   3    4” | tr  -s “ ” “ ”

​         1 2 3 4
eg:#echo 111222333  | tr  123 abcdf

​          aaabbbccc

​         #echo   111222333  |  tr  123  ab

​           aaabbbbbb

​         #echo  111222333  |  tr  -t 123 ab

​           aaabbb333
grep ‘关键字’ 文件名 文本关键字关键字过滤(输出带关键字的那一行)

-i 忽略大小写

-o 只显示关键字

-v 反过滤(显示没有关键字的行)

有时#表示注释,可去注释

eg:去除注释和空白行(行首行尾没有字符)

#grep  -v ’^#'  /etc/login.defs  | grep  -v  '^$'
编码模式

utf-8

字符一个字节,汉字三个,繁体字四个

一个字节8个01进制数

eg:#cut  -b 1-3 文件

    中

显示passwd文件里/sbin/nologin出现了多少次

# cut -d : -f 7 /etc/passwd | sort  | uniq -c | head -4 | tail -1 | cut -d / -f 1

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

[root@localhost ~]# cut -d : -f 3 /etc/passwd | sort -n  > UID
[root@localhost ~]# cat UID
0
1
2
3
...............
1000
65534

[root@localhost ~]# cut -d : -f 4 /etc/passwd | sort -n  > GID
[root@localhost ~]# cat GID
0
0
0
0
...............
65534

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

[root@localhost ~]# date | cut -d " " -f 2,3,4,6 > A
[root@localhost ~]# cat A
Nov 30 16:27:11 2022

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

[root@localhost ~]# echo 当前系统用户有$(cat /etc/passwd | wc -l)
当前系统用户有46

不显示/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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值