文本编辑器 vi 无颜色标记
vim 有颜色标记 ,语法检测
vim/vi filename 文件不存在自动创建文件
vim
命令模式
d+回车键 删除光标所在行以及下一行
dd 删除光标所在行
4dd 从光标所在行开始一共删除4行
dG 删除光标所在行,以及到文档尾
dgg 删除光标所在行,以及到文件首
x 删除光标字符
s 替换,替换光标所在字符(删除光标所在字符)
S 替换,替换光标所在行 ---进入插入模式
/ 快速匹配关键字
:noh 取消关键字的高亮显示
G 跳转到文档末行的行首
gg 跳转到文档首行的行首
5G 跳转到文件的第五行
^ 光标跳转到行首
$ 光标跳转到行尾
yy 复制光标所在行 4yy 4,5yy
p 粘贴在光标下一行
cc 剪切光标所在行
u 向左撤销
ctrl+r 向右撤销
命令模式--进入插入模式
s 删除光标所在字符进入插入模式
S 删除光标所在行进入插入模式
a 插入到光标后
A 插入到光标所在行行尾
i 插入到光标前
I 插入到光标所在行的行首
o 插入到光标所在行的下一行
O 插入到光标所在行的上一行
esc 退出插入模式
命令模式--进入末行模式
:w 保存
:w filename
:q 退出
:q!强制退出(不保存退出)
:wq 保存退出
:set nu 显示行号
:set nonu 取消行号
:s /root/000/ 将光标行root字符替换成000
:%s /root/000/替换所有行中第一次出现的root字符成000
: %s /root/000/g 替换所有行中root字符成root
:12,18 co 40 把12到18行复制到40行
:r filemane 把指定文件内容读取到光标所在下一行
:.!cat/ect/passwd/ 将cat/etc/passwd命令的结果显示在文档中
#echo 打印
#x=2 x取值2
$ 引用变量
#echo $x 查看变量值
#echo $SHELL 查看shell
#hostname 查看主机名
#echo $hostname 查看主机名
#echo $? 上一条命令的返回结果(0-255)0:成功 非零(退出码):失败
‘ ’ 硬引用 不解析特殊字符的含义 不显示变量的值
" " 软引用 可以解析特殊字符的含义 可以显示变量的值
' ' 或者 $( ) 命令替换
linux中的程序对于文件描述符0 1 2
0 标准输
1 标准输出
2 错误输出
> 输出重定向符 将程序的输出结果重定向到指定文件(会覆盖原文件)
#echo 1234 > fff 输出1234结果到fff文件(如果没有fff文件,自动创建)
#echo cd/HH 2> fff 输入错误结果到fff文件
>> 追加输出重定符 将程序输出结果重定向到指定文件 (不会覆盖原文件)
< 输入重定向符
<< 终止结束符
# cat << . 设.为cat程序的结束符,输入.回车终止cat程序
| 管道符 将前一个程序(命令)的输出结果通过管道符按照字符流的形式传递到后面程序(命令)
|tee T型管道 横向输出 将程序的输出重定到指定文件(会覆盖原文件) |tee -a(不会覆盖原文件)
纵向输出 将程序的输出结果显示到终端
文件内容处理相关的命令
1 通过处理命令只是将处理结果显示在终端不会对原文件更该
2 按照指定文件的行进行处理
cut 文本剪切
-c 字符
#cut -c 3 文件 剪切文件中每行的第三个字符(不影响源文件)
-d 分割符类型
-f 指定字符
#sort 文本排序 按行的字符进行比较 (从小到大)
#sort -u 文本排序(去重)
#sort -n 数字排序 从小到大
#sort -r 降序
#sort -t 分隔符
#sort -t ‘ ’ -k 2 -n bbb 按照第二行大小排序bbb文件 ‘’隔开-k与-t无实际意义
#uniq 去重(重复行相邻才会处理)
#sort ccc | uniq 完全去重
#uniq-c 统计每一行重复次数
#uniq-d 显示重复行内容
#uniq-D 显示所有重复行内容
wc(word count)
#wc filename 显示(行数 单词数 字节数 文件名)
-l 只显示行数
-w 只显示单词数
-c 只显示字节
-m 只显示字符
一个汉字占用三个字节 繁体字占用四个字节
换行符占一个字节
tr 字符替换命令
#tr set1 set2
#tr ab 12 把ab字符替换12字符
-t 等长字符替换
-c 反选定 tr -c 1 a 把除了1字符的所有字符替换成a字符
-d 删除指定字符 tr -d 1 删除1字符
-s 将多个字符替换为单个字符 tr -s
grep 文本关键字过滤显示
#grep filename
-i 过滤时忽略大小写
-o 只显示关键字
-v 反过滤(只显示没有关键字的行)
grep -v ‘^#’ /etc/login.defs
#date 显示日期
ctrl+l清屏
作业
将/etc/passwd 文件中3,4 字段分别截取出来分别写入文件UID和文件GIU但是这两个文件中的信息是以数值由大到小的形式显示;
#cut -d : -f 3 /etc/passwd | sort -nr > UID
#cut -d : -f 4 /etc/passwd | sort -nr > GIU
通过查看时间命令将分别将年月日时分写入A文件
#date | cut -d “ ” -f 2,3,4,6 >A
告诉用户当前系统有多少用户 (/etc/passwd文件有多少行一行是一个用户信息)
#echo 当前系统共有’cat /etc/passwd | wc -l’个用户
不显示/etc/login.defs 文件中以#开头的行以及空白行。
cat /etc/login.defs |grep -v ‘^#’ | grep -v ‘^$’