面试经常涉及到的Shell指令
-
find
Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法
find path -option [ -print ] [ -exec -ok command ] {} \;
-
grep
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
语法
grep [options]
用法示例:
grep ‘main’ catalina.out
该命令查找catalina.out文件中带有main的行。 -
管道操作符 |
“|”是管道命令操作符,简称管道符。利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 standard error 信息没有直接处理能力。
用法示例:
ls -l | more
该命令列出当前目录中的文档,并把输出送给more命令作为输入,more命令分页显示文件列表。 -
awk
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
语法
awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
用法示例:
ls -lh | awk ‘{print $1}’
打印出ls -lh展示的第一列数据。 -
sed
Linux sed命令是利用script来处理文本文件。sed可依照script的指令,来处理、编辑文本文件。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
语法
sed [-hnV][-e<script>][-f<script文件>][文本文件]'
用法示例:
sed -i ‘s/.$/!/g’ regular_express.txt
利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 !
运维常用系统状态命令
- uptime
查看机器的启动时间、登陆用户、平均负载等情况,通常用于在线上应急或者技术攻关中确定操作系统的重启时间。
语法
uptime
[当前时间] [系统以运行时间] [当前在线用户] [系统平均负载] - ps
ps用于显示系统内的所有进程。
语法
ps -elf
结合grep命令,可以通过服务名搜索相应的服务名的进程
ps -ef|grep tomcat - top
top命令用于查看活动进程的CPU和内存信息,能够实时显示系统中各个进程的资源占用情况,可以按照CPU、内存的使用情况和执行时间对进程进行排序。 - pidstat
用于监控全部或指定的进程占用系统资源的情况,包括CPU、内存、磁盘I/O、线程切换、线程数等数据,一些其他常用的类似命令(vmstat、mpstat、iostat)。
常用方式 pidstat -urd -p 进程号
- free
该命令用于显示系统内存的使用情况,包括总体内存、以使用内存;还可以显示系统内核使用的缓冲区(buffer和cache)。
free -m (以单位M显示内存使用情况) - df
该命令用于查看文件系统的硬盘挂载点和空间使用情况。
df -h
查看网络信息和网络监控命令
- ifconfig
查看服务器挂载网卡情况。 - ping
ping命令用于检测网络故障的常用命令,测试两条服务器网络是否连通。 - telent
telent是TCP/IP协议族的一员,是网络远程登陆服务的标准协议,帮助用户在本地计算机上连接远程主机。一般用户测试远程主机端口是否可以访问。
telnet ip port - nc
nc -vzw 2 10.0.1.161 1-100(扫描目的主机1-100TCP端口情况) - nmap
扫描某一主机打开的端口及端口提供的服务信息,通常用于查看本机有哪些端口对外提供 服务,或者确定服务器有哪些端口对外开放。 - netstat
显示网络连接、端口信息等。
netstat -nap|grep pid (根据进程号查找进程开启的端口)
netstat -nap|grep 端口号(根据端口查找相应的进程)