cat 将文件内容输出到终端,查看文件内容(正序)
-n 查看文件内容显示标号
tac 将文件内容输出到终端,查看文件内容(逆序显示)
more 一般对于大文件查看通过终端窗口可以分页显示,最后所有内容输出到终端查看显示
less 打开阅读,分页显示,退出需要通过q
?关键字 或者 /关键字
n 向上匹配关键字
N 向下匹配关键字
head 查看文件的前十行信息
-n 指定显示的行数
-n 3
tail 查看文件的后十行信息
-n 3
-f follow 追加显示文件内容 ctrl+c
tail -f /var/log/messages
终端最后一行
显示新文件或者文件名几行几个字符或者没有任何信息 (执行便捷命令)
--insert--- (编辑文件内容)
:末行模式
命令模式:
dd 删除光标所在行
d+enter 删除光标所在行和光标的下一行
dG 删除光标所在行以及文档尾的所有行
dgg 删除光标所在行以及文档首的所有行
d^ 删除光标到行首的内容,不包含光标字符
d$ 删除光标到行尾,包含的光标所在字符
x 删除光标所在字符
G 跳转到文档尾
gg 跳转到文档首
4G 跳转到第四行
^ 行首
$ 行尾
yy 复制
4yy 复制从光标开始一共四行内容
cc 剪切
4cc 剪切从光标开始一共四行内容
p 粘贴(粘贴在光标所在的下一行)
u 向左撤销(返回上一次的编辑状态)
ctrl+r 重做(向右撤销,返回到近期编辑的状态)
插入模式:
a 在光标后插入内容
A 光标所在行的行尾
i 在光标前插入内容
I 光标所在行的行首
o 进入插入模式,在光标的下一行添加内容
O 进入插入模式,在光标的上一行添加内容
s 删除光标所在字符,进入插入模式
S 删除光标所在行,进入插入模式
末行模式:
:q 退出
:q! 强制退出
:w 保存
:wq 保存退出 == ZZ 命令模式
:wq! 强制保存退出
:10 跳转到第十行
:r FILENMAE 将指定文件的内容读取到光标所在下一行
:%s %匹配符,表示匹配所有行 s 替换命令 /要替换的字符/替换后的字符/ 替换的是每一行第一次匹配到的关键字 g 替换匹配到的所有关键字 %s /0/1/g
:set nu 显示行号
:set nonu 取消行号
/关键字 快速匹配关键字所在行的内容
:noh 取消高亮标记
vim -o /etc/passwd /etc/shadow 多个文件水平分割显示内容
-O /etc/passwd /etc/shadow 左右分屏显示文件内容
ctrl+w+w
vim + /etc/passwd 打开该文件进入文档尾
echo 打印命令
#echo this is test (标准输入输出命令) this is test
$引用变量
#name=zhangsan #echo $name zhangsan ${} #echo ${name} zhangsan
$?显示上一条命令的退出码 0成功 1-255错误状态
[root@localhost ~]# echo ${name} zhangsan [root@localhost ~]# echo $? 0 [root@localhost ~]# haha bash: haha: command not found... Failed to search for file: Cannot update read-only repo [root@localhost ~]# echo $? 127
| 管道符(将前面命令的标准输出作为后面命令的标准输入)---无名管道
显示一个文件的第十行 #head /etc/passwd | tail -1 eg:显示/etc/passwd文件20-25行的内容
**p 标识的管道文件(命名管道)
开启两个终端 1终端: #mkfifo /p1 #echo 123 > /p1 2终端: #cat /p1 123
三种引号区别
' 单引号' 强引用,不识别引号中特殊字符的特殊含义 echo '$PS1'
" 双引号" 弱引用,识别特殊含义的字符, echo “$PS1” ---如果是变量单引和双引有区别
`反引号` 命令替换符 == $()
[root@localhost /]# echo "根目录下所有的文件\`ls`"
echo helloworld > FILE 将helloworld输出结果通过输出重定向符写入指定文件,当文件不存在会创建该文件
“>>” 追加重定向符
echo this is test >> FILENAME
< 输入重定向符
cat < /etc/passwd head < /etc/passwd
[root@localhost /]# cat << EOF 查看内容,匹配终止结束符结束输入 > this is test --标准输入 > EOF --匹配到终止结束符,结束标准输入 this is test --将前面标准输入的内容标准输出 --------------------------- [root@localhost /]# cat << EOF > file2 > this is 1 > this is 2 > this is 3 > EOF [root@localhost /]# cat file2 this is 1 this is 2 this is 3
文件描述符:0 文件标准输入符1标准(正确)输出描述符 2错误输出描述符
cat 0< /etc/passwd cat fff 1> file == cat fff > file cat fff 2> file cat fff &> file == cat fff 1> file 2> file == cat fff 1> file 2>&1 cat fff 1> file 2> /dev/null
命令格式: grep [-options...] 关键字 文件名...
#grep root /etc/passwd 将/etc/passwd 文件中有root关键字的行打印显示
-v 反过滤,把没有关键字的行打印显示
-o 只显示匹配到的关键字
-c 显示匹配关键字的行数
-i 忽略大小写
-n 过滤显示行号
-w 按照单词过滤
-A 2 显示关键字以及下两行信息
-B 2 显示关键字以及上两行信息
-C 3 显示关键字以及上下三行信息
过滤指定文件/etc/passwd将文件中有nologin关键字的行写入login文件,并按照原文件的顺序写入。 [root@localhost /]# grep nologin /etc/passwd > login 只显示一个配合文件的关键信息 [root@localhost /]# grep -v ^# /etc/login.defs | grep -v ^$ 判断/usr/bin是否存在passwd可执行文件 [root@localhost /]# ll /usr/bin | grep -w passwd -rwsr-xr-x. 1 root root 34512 Aug 12 2018 passwd
^ 以什么开头 ^q ^#
$ 以什么结尾 a$
^$ 空白行
[] 定义取值范围,该范围内的任意单个字符 [1-9] grep ^[0-9] FILENAME 开头是0-9任意一个数字的行显示
[^] ^取反 ^[^0-9] ^[!0-9]
-d 指定文件内容的分割符
-f 指定截取的字段
#cut -d : -f 1 /etc/passwd [root@localhost /]# date |cut -d " " -f 6 2022
-c 指定字符截取 cut -c 1-3 /etc/passwd
-l 只统计行数
-w 只统计单词数
-c 统计字节数
-m 统计字符数
当前系统共有多少用户
[root@localhost /]# echo 当前系统共有用户`wc -l /etc/passwd | cut -d " " -f 1`个 > file 当前系统共有用户44个
-n 按照数值大小升序显示
-r逆序显示
-t 指定分隔符
-k 指定字段
-u unique 去重 ==sort a.txt | uniq
[root@localhost /]# sort -t : -k 3 -n /etc/passwd 将/etc/passwd 文件内容通过:分割将第三个字段进行排序升序显示每一行内容
-c 显示每一行重复的次数
-d 只显示重复出现的行
-D 显示重复出现的所有行
echo abcde | tr -t a 1 -c 反选定 echo abcde | tr -c abc 0 把处理abc之外的字符替换为0字符 abc00 -s 将连续重复的字符替换为单个字符 echo aaaaabcd | tr -s a 1 将连续的多个a字符替换为一个1字符 -d 删除选定字符 echo abcdef | tr -d abc