.在root用户的主目录下创建两个目录分别为haha和hehe,复制hehe目录到haha目录并重命名为apple。
#mkdir /root/{haha,hehe}
#cp -rp /root/hehe /root/haha/apple
在/mnt下创建boot,sysroot,并且在boot下创建grub,在sysyroot下创建proc,sys。
#mkdir -pv /mnt/{boot/grub,sysroot/{proc,sys}}
wget 下载文件(前提条件确保主机能够上网)
wget 文件网址地址(文本)
wget -r 文件网址地址 (目录)
-b 后台下载模式
-P 下载到指定目录
-t 最大尝试次数
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载
wget –P(注意大写) /test 文件网址地址 -- 文件下载到/test目录
vim直接打开(查看文件)
命令模式
d+enter 删除光标所在行和光标的下一行
dd 删除光标所在行
dG 删除光标所在行及文档尾的所有行
d^ 删除光标到行首的所有字符(光标所在字符不会删除)
d$ 删除光标所在字符到行尾光标所在字符也会删除
dgg 删除光标所在行及文档首的所有行
4dd 从光标所在行开始删除四行内容
x 删除光标所在字符
yy 复制光标所在行
2yy 复制光标开始两行内容
p 把内容粘贴到光标所在的下一行
cc 剪切光标所在行
3cc 剪切光标开始三行内容
字符跳转
G 跳转到文档尾的行首
gg 跳转文档首的行首
4G 跳转到第四行
^ 跳转到行首
$ 跳转到行尾
撤销(保存之前)
u 向左撤销
ctrl+r 向右撤销
从命令模式到------插入模式
i 插入到光标前
I 插入到光标所在行的行首
o 插入到光标所在行的下一行
O 插入到光标所在行的上一行
a 插入到光标后
A 插入到光标所在行的行尾
s 删除光标所在字符并进入插入模式
S 删除光标所在行并进入插入模式
从命令模式到--末行模式
:w 保存缓存区的内容
:q 退出
:wq
:wq!
:q! 不保存缓存区的内容强制退出
:4 跳转到第四行
:set nu 设置行号
:set nonu 取消行号
/匹配关键字
:noh 取消关键字的高亮符
:r fileNAMe 指定文件的内容读取到当前文件光标所在行下
:%s/要替换的字符/替换后的字符/g
%表示匹配所有行 s替换 g将每一行中匹配的所有字符串进行替换
文件处理命令
echo 标准输出命令(打印命令)
$引用变量
[root@localhost ~]# echo 123
123
[root@localhost ~]# name=zhangsan
[root@localhost ~]# echo $name ---显示变量值
zhangsan
文件数据流操作符
文件数据流描述符0 标准输入 1 标准输出 2 错误输出
[root@localhost ~]# data 1> a.txt == data > a.txt
[root@localhost ~]# data 2> a.txt
[root@localhost ~]# cat a.txt
bash: data: command not found...
Failed to search for file: Cannot update read-only repo
[root@localhost ~]# data &> a.txt 把data命令正确以及错误结果都输入到a.txt
[root@localhost ~]# data 1> a.txt 2> b.txt
(分别把正确的放入a.txt 错误的放入b.txt)
输出重定向符 >
可以编辑文件内容
[root@localhost ~]# echo 123 > file 将123输出的结果写入到file文件
[root@localhost ~]# cat file
123
[root@localhost ~]# echo 234 > aaa.txt
[root@localhost ~]# echo 345 > aaa.txt
[root@localhost ~]# cat aaa.txt 将结果写入文件会覆盖之前的内容
345
追加输出重定向符>>
[root@localhost ~]# echo 456 >> aaa.txt (不会覆盖原内容) 加456追加到aaa.txt源文件内容的下一行
[root@localhost ~]# cat aaa.txt
345
456
输入重定向符 <
[root@localhost ~]# cat < aaa.txt
345
456
[root@localhost ~]# cat aaa.txt
345
456
指定终止结束符 <<
[root@localhost ~]# cat << aaa 指定cat查看命令终止结束字符是aaa
> 123
> 23
> 45
> aaa ---匹配到终止结束字符aaa,结束输入操作
123 显示了输入的内容
23
45
[root@localhost ~]# cat << EOF > /fff 交互式编辑文件内容, 指定cat查看命令标准输入匹配到EOF结束字符结束输入>将输出的结果写入到指定/fff文件中。
#cat > /ffff << EOF
> this is fff
> this is 1
> this is 3
> EOF
> [root@localhost ~]# cat /fff
> this is fff
> this is 1
> this is 3
创建文件的方式:touch vi vim file > 文件名 >> 文件名(3种)
编辑文件的方式:nano vi vim echo 123 >> file (3种)
cut 文本内容剪切命令
基于行进行处理
不会对源文件更改,会将处理的结果显示到终端
redhat:X:1000:1000:redhat:/home/redhat:/bin/bash
用户名:密码占位符:UID:GID:描述信息:家目录:shell
#cut -d : -f 1 passwd 将passwd文件的第1个字段截取显示在终端
-d指定分隔符
-f指定第几个字段
-c指定字符剪切 cut -c 3 文件名 把指定文件每一行的第三个字符剪切显示
|管道符 (将前面命令的标准输出作为后面命令的标准输入)
前面命令的结果在进行下一步
无名管道
[root@localhost ~]# date | cut -d " " -f 5
03:19:33
[root@localhost ~]# cd /
[root@localhost /]# date | cut -d " " -f 5 | cut -d: -f 3
命名管道: 创建管道文件
开启两个终端
终端1 输入
mkfifo /aaa
echo this is aaa > /aaa
终端2 输出
cat /aaa
|tee (管道)
横向输出是将结果写入到指定文件,纵向是将前面命令结果打印到终端
[root@localhost ~]# cat file |tee file.txt
123
[root@localhost ~]# cat file.txt
123
[root@localhost ~]# echo this is file > file
[root@localhost ~]# cat file |tee -a file.txt
this is file
[root@localhost ~]# cat file.txt
123
this is file
sort 文本排序(默认按照字符排序显示)
-u 去重
-n 启用数值排序
-r 倒序显示
-t 指定分隔符
-k 指定字段
[root@localhost ~]# sort -t : -k 3 -n passwd 将指定文件显示按照第三个字段的数值从小到大显示每行内内容
passwd文件剪切第三字段按照数值从小到大排序
[root@localhost ~]# cut -d : -f 3 passwd | sort -n |tee a.txt
uniq 去重(重复行必须相邻)
-c 显示每行重复次数
-d 仅显示重复的行
-D 显示所有的重复行
[root@localhost ~]# sort file | uniq -c| sort | tail -1
将file中重复频率最高的一行内容显示到终端
[root@localhost ~]# sort file | uniq == sort -u file
12 排序 去重
1233
213
23
32234
45
4543
545
笔试题:显示命令历史中执行频率最高的前三个命令
[root@localhost ~]# cat /root/.bash_history 历史文件
[root@localhost ~]# sort ./.bash_history | uniq -c| sort -r | head -3
#history
[root@localhost ~]# history | cut -d " " -f 5- | sort |uniq -c |sort | tail -3