Shell是一种具备特殊功能的程序,提供了用户与内核进行交互操作的一种接口

三种登录Shell的方法
X Window
SSH Secure Shell
Putty
编译型语言
编写-编译-链接-运行(edit-compile-link-run)
C\C++、Ada、Java、C#
脚本语言
解释器(interpreter)读入脚本程序代码,将其转换成内部的形式执行
解释器本身就是编译型程序
Shell脚本编程的优势
语法和结构通常比较简单
学习和使用通常比较简单
通常以容易修改程序的“解释”作为运行方式,而不需要“编译”
程序的开发产能优于运行效能
非交互式脚本
不需要读取用户的输入, 也不用向用户反馈某些信息
每次执行都是可预见的, 因为它不读取用户输入, 参数是固定的
可以在后台执行
交互式脚本
脚本可以读取用户的输入, 实时向用户反馈信息(输出某些信息)
这样的脚本更灵活, 每次执行时的参数可由用户动态设定
用户界面更友好,但不适用于自动化任务(如cron任务)
掌握一种文本编辑器的使用(Vim)
熟悉 Linux 文件系统的布局
学习 Shell 的各种功能
重定向、管道、命令替换、命令聚合
学习各种管理和监视命令的使用
用户管理、权限管理、进程管理、包管理……
系统监视、网络监视 ……
学习各种文本文件工具的使用
cat、grep、tr、sed、awk ……
正则表达式
Shell 脚本的格式


whologged.sh脚本:
!/bin/bash
cd #切换到用户家目录
. .bash_profile #配置用户的命令行环境
date #显示日期命令
who #显示当前的登录用户
第1行是“#!/bin/bash”,“#!”符号称为“Sha-bang”符号,是Shell脚本的起始符号,“#!”符号是指定一个文件类型的特殊标记,它告诉Linux系统这个文件的执行需要指定一个解释器,这个解释器可能是一个shell, 也可能是一个程序语言, 也可能是一个工具包中的命令程序. 这个解释程序从头开始解释并且执行脚本中的命令(从sha-bang行下边的一行开始)
命令(command)是Shell脚本的最基本元素,命令通常由命令名称、选项和参数三部分组成,三部分之间用空格键或Tab键分隔
命令名称在命令中是不可或缺的,而选项和参数则可以不出现。选项的开头符号是一个减号(-),后面跟一个或多个字母,选项是对命令的补充说明
分号(;)可以用来隔开同一行内的多条命令,Shell会依次执行用分号隔开的多条命令。
; :在前一个命令结束时,而忽略其返回值,继续执行下一个命令。
&& :在前一个命令结束时,若返回值为 true,继续执行下一个命令。
|| :在前一个命令结束时,若返回值为 false,继续执行下一个命令。
./test.sh -f config.conf -v --prefix=/home
各部分含义:
| 部分 | 类型 | 说明 |
|---|---|---|
./test.sh | 脚本本身 | 执行当前目录下的test.sh脚本 |
-f config.conf | 短选项 + 参数 | -f 指定配置文件,值为 config.conf |
-v | 短选项(无参) | -v 通常是 verbose(详细输出)模式 |
--prefix=/home | 长选项 + 参数 | --prefix 指定安装路径,值为 /home |
发表回复