- 概述
- 6.4 less
- 6.5 tail
- 6.6 tr 对输入的字符进行替换、删除,不改变文本内容
- 7、文件目录管理命令
- 7.4 mv 文件重命名或者移动文件到指定目录下
- 7.5 rm 删除文件或目录
- 7.6 dd 刻录启动光盘、备份硬盘文件和格式化硬盘数据
- 7.7 file 查看文件的类型(是根据文件的内容来判断的,不是 根据文件的后缀来判断)
- 8、打包压缩与搜索命令
- 8,2 grep 文本中执行关键词搜索并显示匹配的结果
- 8.3 find 按照指定条件来查找文件
概述
1、强大好用的 Shell;
通过上下方向键来调取过往执行过的 Linux 命令;
1、命令或参数仅需输入前几位就可以用 Tab 键补全;
2、具有强大的批处理脚本;
3、具有实用的环境变量功能。
2、执行帮助文档命令;
main --help
grep --help 或者 grep -h
[root@localhost ~]# grep --help
用法: grep [选项]... PATTERN [FILE]...
在每个 FILE 或是标准输入中查找 PATTERN。
默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。
例如: grep -i 'hello world' menu.h main.c
正则表达式选择与解释:
-E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
-F, --fixed-strings PATTERN 是一组由断行符分隔的定长字符串。
-G, --basic-regexp PATTERN 是一个基本正则表达式(缩写为 BRE)
-P, --perl-regexp PATTERN 是一个 Perl 正则表达式
-e, --regexp=PATTERN 用 PATTERN 来进行匹配操作
-f, --file=FILE 从 FILE 中取得 PATTERN
-i, --ignore-case 忽略大小写
-w, --word-regexp 强制 PATTERN 仅完全匹配字词
-x, --line-regexp 强制 PATTERN 仅完全匹配一行
-z, --null-data 一个 0 字节的数据行,但不是空行
Miscellaneous:
-s, --no-messages suppress error messages
-v, --invert-match select non-matching lines
-V, --version display version information and exit
--help display this help text and exit
3、常用系统工作命令;
3.1、echo 命令把指定信息显示在屏幕上
[root@localhost ~]# echo a
a
3.2、将内容写入到文件中:echo “文件信息” > XXX文件
[root@localhost ~]# echo "将这些信息写到一个txt文件中" > a.txt
[root@localhost ~]# more a.txt
将这些信息写到一个txt文件中
4、系统状态检测命令;
4.1 ifconfig获取网卡配置与网络状态等信息
[root@VM-0-15-centos sysconfig]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.15 netmask 255.255.240.0 broadcast 172.17.15.255
inet6 fe80::5054:ff:fe4c:8e55 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:4c:8e:55 txqueuelen 1000 (Ethernet)
RX packets 17807 bytes 15517304 (14.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12659 bytes 1526715 (1.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 3607 bytes 502523 (490.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3607 bytes 502523 (490.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@VM-0-15-centos sysconfig]#
4.2 uname 用于查看系统内核与系统版本等信息,格式为“uname [-a]”
[root@VM-0-15-centos sysconfig]# uname -a
Linux VM-0-15-centos 3.10.0-1062.18.1.el7.x86_64 #1 SMP Tue Mar 17 23:49:17 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
4.3 uptime 查看系统负载
uptime 命令真的很棒,它可以显示当前系统时间、系统已运行时间、启用终端数量以
及平均负载值等信息。平均负载值指的是系统在最近 1 分钟、5 分钟、15 分钟内的压力情
况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过 1,在生产环境中不要
超过 5
[root@VM-0-15-centos sysconfig]# uptime
18:25:47 up 1:31, 1 user, load average: 0.00, 0.04, 0.14
4.4 free 显示当前系统中内存的使用量信息
1 | 内存总量 | total |
---|---|---|
2 | 已用量 | used |
3 | 可用量 | free |
4 | 进程共享的 内存量 | shared |
5 | 磁盘缓存的 内存量 | buffers |
[root@localhost etc]# free -h
total used free shared buff/cache available
Mem: 1.8G 181M 1.5G 9.5M 144M 1.5G
Swap: 2.0G 0B 2.0G
[root@localhost etc]#
4.5 who 显示登录的用户名
[root@localhost etc]# who
root pts/0 2022-04-09 16:45 (192.168.75.1)
4.6 last 查看所有系统的登录记录
[root@localhost etc]# last
root pts/0 192.168.75.1 Sat Apr 9 16:45 still logged in
reboot system boot 3.10.0-1160.el7. Sat Apr 9 16:14 - 20:58 (04:43)
root pts/0 192.168.75.1 Thu Apr 7 17:15 - crash (1+22:59)
reboot system boot 3.10.0-1160.el7. Thu Apr 7 17:15 - 20:58 (2+03:43)
4.7 history 显示历史执行过的命令
实际是保存在每个用户的.bash_history里面,不过该文件保存的是用户上次退出保留的命令,所以如果要同步把这次的缓存写进去用history -w,清空的话用history -c
[root01@VM-0-15-centos coremail]$ cat ~/.bash_history
5、工作目录切换命令
5.1 pwd显示用户当前所处的目录
5.2 cd切换路径
5.3 ls 显示目录中的文件信息
ls -al 等价于 ll -a
ls -l 等价于 ll
6、文本文件编辑命令
6.1 cat 显示文件
6.2 more 一页一页显示
1、空格键:查看下一屏;
2、回车键:往下滚动一行;
3、b 键:往前查看一屏;
4、q 键:退出。
5、more +N 从N行开始往下看
6、more -N 一页显示N行
6.3 head 默认显示前10行
1、head -n N 显示指定前N行
2、head -n -N 显示最后除了-N以外的全部内容
6.4 less
1、 上一行 j
2、 下一行 k
3、 上一屏 ctrl + f
4、 下一屏 ctrl + b
5、 退出 q
6、 斜杠搜索 n下一个,N上一个
7、 首行 g
8、 末行 G
6.5 tail
1、 动态的加载文件的内容 tail -f 或者tail -100f
2、 查看最后100行 tail -n 100 file.txt
6.6 tr 对输入的字符进行替换、删除,不改变文本内容
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world
echo "hello 123 world 456" | tr -d '0-9'
hello world
7、文件目录管理命令
7.1 touch 创建空文件或者修改文件时间
[root@localhost study]# touch abc.txt
[root@localhost study]# file abc.txt
abc.txt: empty
[root@localhost study]# touch -d "2025-12-2 12:01" abc.txt
[root@localhost study]# ll abc.txt
-rw-r--r--. 1 root root 0 12月 2 2025 abc.txt
7.2 mkdir 创建文件夹
1、参数-m 选项自定义目录权限。
2、参数 -p 递归建立目录。
[root@localhost study]# mkdir -m "777" a
[root@localhost study]# ll
drwxrwxrwx. 2 root root 6 4月 18 16:16 a
[root@localhost study]# mkdir -p a/b/c/d
7.3 cp 复制
1、参数-a 所有参数都有 的复制
2、参数/ 覆盖复制 /cp b.txt /study/
3、参数-r 递归复制(用于目录)
7.4 mv 文件重命名或者移动文件到指定目录下
[root@localhost study]# mv b.txt bbb.txt
[root@localhost study]# mv bbb.txt /root/
7.5 rm 删除文件或目录
[root@localhost study]# rm -rf bbb.txt #强制递归删除
7.6 dd 刻录启动光盘、备份硬盘文件和格式化硬盘数据
1、参数if 输入的文件名称
dd if=/dev/sda of=/dev/sdb # 将sda硬盘数据备份到sdb上
dd if=/dev/sda of=/mnt/sda.mbr bs=512 count=1 #备份硬盘引导分区表
dd if=dev/zero of=/dev/sda bs=1k count=3000 #格式化硬盘数据
7.7 file 查看文件的类型(是根据文件的内容来判断的,不是 根据文件的后缀来判断)
[root@localhost study]# file abc.txt #这是个空的文件
abc.txt: empty
[root@localhost study]# file bbb.txt #这个是文本文件
bbb.txt: ASCII text
[root@localhost study]# file b #没有这个文件或者文件夹
b: cannot open (No such file or directory)
[root@localhost study]# file a #这是一个文件夹
a: directory
8、打包压缩与搜索命令
8.1 tar 对文件进行打包压缩或解压
1、打包 tar -zcvf a.tar.gz a
2、解压 tar -zxvf a.tzr.gz
8,2 grep 文本中执行关键词搜索并显示匹配的结果
grep -E | 相当于是egrep |
---|---|
grep -A | 匹配你需要的内容接下的5行 |
grep -B | 匹配你需要的内容上面的5行 |
grep -C5 | 匹配你需要的内容上下5行 |
grep -c | 统计出现了多少行,类似wc-l |
[root@VM-0-15-centos re]# grep -c 1 test1.txt 9 |
|
grep -v | 取反、排除 |
ps -ef | grep sshd | grep -v grep | |
grep -n | 显示匹配的数据的行号 |
grep -i | 忽略大小写 |
grep -w | 精确匹配,就是匹配某个值要完全匹配 |
\b表示边界,和-w用法一致。 grep ‘\ba\b’ 写法就是这样 |
8.3 find 按照指定条件来查找文件
1、按照名字查找
[root@localhost /]# find . -name 'bbb.*'
./study/bbb.txt
./bbb.txt
2、按照目录查找
[root@localhost /]# find /study/ -name 'bbb.*'
/study/bbb.txt
3、按照权限查找
[root@localhost study]# ll
总用量 8
-rw-r--r--. 1 root root 0 4月 18 2022 11:11
drwxrwxrwx. 2 root root 6 4月 18 16:16 a
-rwxr-xr-x. 1 root root 0 12月 2 2025 abc.txt
-rw-r--r--. 1 root root 0 4月 18 2022 a.txt
-rw-r--r--. 1 root root 11 4月 18 16:30 bbb.txt
drwx------. 3 root root 15 4月 18 16:18 d
-rw-r--r--. 1 root root 22 4月 18 16:27 xt
[root@localhost study]# find . -perm 755 #查询结果
.
./abc.txt
4、按照类型查找
f 普通文件
d 目录文件
l 软链接文件
b 块设备文件(存放在/dev目录下)
c 字符设备文件
p 管道文件
s 套接字文件
[root@localhost study]# find . -type f
./11:11
./a.txt
./abc.txt
./xt
./bbb.txt
[root@localhost study]# find . -type f | wc -l
5
5、按照属主以及所属组查找
[root@localhost study]# find . -user root -type f
./11:11
./a.txt
./abc.txt
./xt
./bbb.txt
6、按照时间查找
[root@localhost study]# find . -mtime -2 -type f
./11:11
./abc.txt
./xt
./bbb.txt
./a.txt
[root@localhost study]# find . -mtime +2 -type f
./11:11
./abc.txt
./xt
./bbb.txt
./a.txt
7、按照大小查找
[root@localhost study]# du -sh *
0 11:11
0 a
0 abc.txt
16K a.txt
4.0K bbb.txt
0 d
4.0K xt
[root@localhost study]# find . -size -15 -type f #查找小于15K的文件
./11:11
./abc.txt
./xt
./bbb.txt
[root@localhost study]# du -sh *
0 11:11
0 a
0 abc.txt
16K a.txt
4.0K bbb.txt
0 d
4.0K xt
[root@localhost study]# find . -size +15 -type f #查找大于15K的文件
./a.txt
8、查找并删除或者备份(方法很多,不唯一)
rm -rf $(find / -type f) # 查找结果直接以变量 删除
rm -rf `find / -type f` # 同上做变量 删除
ps -ef | grep coremail | awk '{print "kill -9 " $2}' |sh #关闭某个程序的进程
#删除/var/log/下最近7天之前的的日志文件
[root@yinwucheng ~]# find /var/log/ -type f -mtime +7 -exec rm -f {} \;
find . -type f -exec cp -a {} /root/find/ \; #注: \; 之间没有空格
[root@localhost study]# find . -name b* -exec cp -a {} /root/find/ \;