shell 编程入门
1,,shell 特性
linux预设保存1000条输入过的命令,存于 .bash_history 。
(1,) !! 表示执行上一条命令
#pwd
/root
#!!
pwd
/root
(2) !n ,n表示数字,表示执行历史第n条指令,例如!1002
#history |grep 1002
1002 pwd
#!1002
pwd
/root
(3)!字符串,表示执行命令历史中最近一次以 pw 开头的命令
#!pw
pwd
/root
(4)alias 自定义命令的别名
#alias zh=‘pwd‘ (单引号) unalias 解除
(5) * 号,匹配零个或多个字符,?匹配一个字符。
(6) | 管道符,把前面的命令运行结果丢给后面的命令。
# 注释本行
\ 脱意符 ls \#1.txt 改变#号原有含义
$ 变量前缀,表示在使用这个变量,!$表示上条命令最后一个参数
;常用于两条命令中间,表示两条命令写一起
~ 代表用户家目录
& 把一个命令丢到后台,&& 把2个命令丢一起
[]中的内容表示是可选参数,可选一个或多个或不选;
{}中的内容表示只可选其中一个参数。
(7) 作业控制。
ctril+z 暂停命令。 ctrl+c 终止命令。
#fg 恢复命令
#bg 使命令在后台运行
(6) > , >> ,< ,2> , 2>>
2,shell 变量
#env 列出系统预设的全部环境变量 。 #set 显示的更全,还可以显示用户自定义的变量
HOME 当前用户主目录
HISTSIZE 历史记录数
LOGNAME 当前用户的登录名
HOSTNAME 主机名称
SHELL 当前用户shell类型
LANG 语言环境变量
MAIL 当前用户的邮件存放目录
PWD 当前目录
要使系统内所有用户都能使用自定义变量,需要在/etc/profile 文件最后行加入 export myname=Aming,然后运行 #source /etc/profile
#myname=Aming
#echo "export myname=Aming">> /etc/profile
#source /etc/profile
#bash
#echo $myname
Aming
#exit
exit
#su -user1
#echo $myname
Aming
........
#echo "export myname=Aming">>.bashrc
#source .bashrc
这样只有当前用户可以执行自定义命令
3,设置自定义变量的规则(a=b,a变量名,b变量内容)
变量名只能由英文、数字、下划线组成,不能以数字开头
当变量内容带有特殊字符时,需要加上单引号,如果变量内容本身带有单引号,则需要加上双引号。
#myname=‘Aming Li‘ #myname="aming‘s"
如果变量内容中需要用到其他命令运行结果则可以使用反引号。
#myname=`pwd`
#echo $myname
/root
变量内容可以累加,需要加双引号
#a=1
#c="$a" 12
#echo $c
112
#bash 进入一个子shell环境,在主shell中设定的变量,子shell无法查看,需要export指令。
#abc=123
#echo $abc
123
#export abc
#bash
#echo abc
123
如果export后面不加任何变量,则会声明所有的变量。
4,系统和用户的环境变量配置文件
/etc/profile :这个文件预设几个重要变量,如 PATH USER LOGNAME MAIL INPUTRC HOSTNAME umask 等
/etc/bashrc :这个文件主要预设umask 以及 PSI
这两个为系统级别的配置文件,以下为主目录下的隐藏文件
.bash_profile ,定义了个人化路径与环境变量的文件名称,每个用户都可以使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅执行一次。
.bashec 包含shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取
.bash_history 记录命令历史
.bash_logout 当退出shell时,会执行该文件
原文地址:http://12127893.blog.51cto.com/12117893/1864817