在linux系统下,sh是bash的符号链接。
shell有三种运行方式:
登录shell,
非登录的交互式shell --如通过shell命令,
非登录的非交互式shell --如通过执行shell脚本.
1. 登录shell
登录shell带上--login选项,
首先执行
/etc/profile #通过设置这个文件,超级用户可以为所有bash用户的默认特征
2. 非登录的交互式shell
不执行任何初始化文件的命令,
直接使用从登录shell继承来的设置。
3. 非登录的非交互式shell
不执行任何初始化文件的命令,
直接使用从登录shell继承来的设置。
当执行一个程序时,
运行该程序的进程将为这个程序打开三个文件描述符:
0 : 标准输入,
1 : 标准输出,
2 : 标准错误输出。
重定向符号:
> 是 1> 的简写: 重定向标准输出;
< 是 0< 的简写: 重定向标准输入;
2> : 重定向标准错误输出;
2>&1 : 声明文件描述符2为文件描述符1的副本,
意即,将标准错误重定向到标准输出.
1>&2 : 意即, 将标准输出重定向到标准错误输出.
表8-2 重定向操作符
shell脚本:
$chmod # 使文件可执行
#! /bin/bash # 指定bash shell
# # 开始一行注释
; 或换行符 # 命令分隔符
\ # 继续上一行的命令
| # 管道
& # 后台执行
() # 命令分组
VAR=value # 将值赋给变量VAR
readonly VAR # 使变量VAR的值不可变更
declare或typeset VAR # 对变量VAR赋与属性
declare或set # 列出所有shell变量
typeset -i CNT # 将CNT指派为整数属性
表8-3
if [test [=value]] #条件结构
commands
else
commands
endif
[function] function-name() #声明一个shell函数
{
commands
}
关键字变量:
HOMME # 用户主目录
~ # HOME的简写形式
PATH # shell查找程序的路径
表8-5
操作目录栈
$dirs # 显示栈
$pushd [dirpath] # 将目录dirpath压入栈中
$pushd # 交换栈顶最上面的两个目录,
并将当前的栈顶目录作为新的工作目录
$popd # 弹出栈顶目录,并设为新的工作目录
8.5 历史命令机制
表8-7
$fc -l # 查看历史命令列表
$fc -l [first [last]] # 指定范围查看
$fc [-e editor] [first [last]] #编辑和重新执行前面的命令
表8-8
alias [name[=value]] # 别名
阅读(1421) | 评论(0) | 转发(1) |