什么是Shell?

在管理操作系统时,常会有一些重复且繁杂的工作,熟练运用Shell脚本可以满足我们大部分的自动化需求,从而把我们从这些低效的工作中解放出来。

Shell的含义是“壳”,它形象的说明的Shell的作用,我们通过这个“壳”与Linux内核进行交互,来完成在操作系统上的各种任务。Shell脚本是解释性程序语言,它将一系列准备执行的命令集组合成一个脚本,以便在需要时执行。创建Shell脚本背后的主要思想作为用户与操作系统间通信的桥梁。

现在主流的Linux发行版是以Bash作为默认的Shell,其他常见Shell还包括ash、ksh、csh、zsh等,它们各有特点,适用于不同的场景。

基础Shell命令

常用基础Shell命令如下:

  • echo: 此命令常用于将打印字符内容。

  • 引用变量($): 变量用于存储某个值,以便再次使用这个值的时候,使用'$'符号引用变量即可,而不需要重复整个值。

  • cat: 此命令常用于展示文件中的内容,是非常重要的命令。

  • grep: 此命令常用来查找指定字符串所在的行,匹配规则支持通配符、正则表达式。

  • 大于符号(>): 使用‘>’符号将控制台打印的内容保存到文件中(会覆盖原文件所有内容)。如果‘>>’符号会将控制台打印的内容添加到目标文件末尾。

  • ls: 这个命令可以列出目录下的文件,如果想获得详细的内容,如文件大小、修改时间、文件类型,可以输入ls -lll

  • 管道( | ): 使用‘|’管道命令可以把前一个命令的标准输出传递给下一个命令作为下一个命令的标准输入。例如,查看当前系统使用的IP

  • pwd: 这个命令可以获的当前所处的目录。

  • mkdir&cd :mkdir命令用于创建目录,cd命令用于进入指定目录。返回上级目录可以使用cd ..命令。

进阶Shell命令

常用进阶级Shell命令如下:

  • ifconfig: 这个命令用于配置内核驻留的网络接口。一般调试网络时会需要使用这个命令如果没有指定参数ifconfig命令显示活动的网络接口,如果带上-a参数,则显示所有网络接口的状态。

  • netstat: netstat 用于显示路由表、网络连接、伪装连接、接口统计、多播成员等网络相关信息。下图中netstat -tunpl | grep 80 | awk '{print $7}'命令用于查询占用80端口进程的PID。

  • nslookup: nslookup用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题。

  • curl: 此命令利用URL的语法进行数据或文件传输。支持多种传输协议,包括FILE、FTP、HTTP、HTTPS、SMATP、IMAP、SCP等三十多种传输协议。例如,使用命令curl -o [文件保存名称] http://www.baidu.com下载网页。

  • top: 此命令提供正在运行的系统的动态实时视图。主要提供CPU、内存、进程相关信息,通常用于监控系统性能、排查性能瓶颈。

给初学者的建议

Linux中可能有无数个用于编写shell脚本的命令,要掌握所有命令几乎是不可能的。重点应该是加强基本命令。通过日常练习,您肯定会记住所有这些命令以及更多。


如果你对Linux感兴趣,请关注我,更多Linux干货等着你!

 

Logo

更多推荐