1.交互式shell和非交互式shell
shell 1.是一个命令解释器 2.支持一些类型的编程语言,用来编写由shell解释的程序,这些程序称为shell脚本。
交互式程序指的是与人进行沟通的程序,如字处理程序。非交互式程序是独立于人运行的程序,如编译器。
shell既可以从当用户界面,又可作为脚本解释器。
使用CIL要打开一个终端窗口或者使用一个虚拟终端。这是交互式
创建一组命令即shell脚本,并保存在一个文件中,运行脚本时,shell从文件中读取命令并处理所有命令。这是非交互式的。
2.环境、进程、变量
一个运行的shell是一个进程,从shell启动的程序也是一个进程。
变量是一个储存数据的实体。Unix shell有两种不同的类型的变量。分别称为“shell变量”和“环境变量”。shell中的变量 几乎总是储存字符串变量。
如果你在shell启动了vi文本编辑器,也就是一个进程启动了另一个进程。子进程创建时,系统为子进程复制了父进程的环境,这意味着父进程与子进程都可以访问所有环境变量。
3.环境变量和shell变量
可以认为环境变量是全局变量。shell变量不从父进程传到子进程,可以称shell变量为局部变量。
通常句局部变量以两种方式运行。一种是存放对shell有意义的信息。第二种是shell变量在shell脚本中以普通程序中局部变量的使用方式使用:作为临时存储容器。
4.显示环境变量:env printenv
除非编写程序,否则你无需创建环境变量和shell变量。大多时候使用的是默认变量。
可以用env 或者 printenv显示默认变量。环境变量可能有许多,建议用less命令一屏显示
env | less
5.显示shell变量
set
6.显示和使用变量的值:echo print
上面的命令显示所有变量的值。大多时候只希望显示一个变量的值
例如显示TERM的值
echo ${TERM}
echo $TERM
$变量名称 指的是该变量的值。注意echo TERM 只显示字符串TERM
7.Bourne shell家族使用变量:export unset
8.C-shell家族使用变量: setenv unsetenv set unset
9.shell选项
shell选项就像开关一样,打开选项就说设置了这个选项,关闭这个选项,就说复位了这个选项
设置这个选项可以用如下命令
set -o 选项
复位这个选项
set +o opinion
10..显示shell选项
Bourne shell用shell选项控制shell的操作。要显示shell选项的当前值可用
set -o 或 set +o
11.机器可读 人类可读
机器可读说的是适合作为程序输入 人类可读说的是适合人类阅读
如set -o 以一种易于阅读的方式显示输出 人类可读
set +o 显示的输出适合用作shell脚本的数据
使用shell:命令和定制
bourne shell将sell提示设置成为一个$字符加上看一个空格
export PS 1="$"
所有Bourne shell都将提示的值存储于一个叫PS1的变量里,使用export可以改变环境变量的值
12.使用变量的值
如果将用户标识插到提示中可用
export PS1="${USER}$
14.命令替换
‘ ’
16..历史列表
17.自动补全
23.命令行编辑 bindkey
set -o vi
24.别名
别名用来简化输入的命令
25.临时挂起别名
如果你发现使用ls 时总是使用 -l 选项 你可简化
alias ls="ls -i"