linux变量及shell基础知识
命令扩展~表示用户家目录 {}命令行路径扩展 ``反引号相当于$() 可以在其中添加命令eg:mkdir {a,b}_{c,d} 相当于创建目录a_c,a_d,b_c,b_d四个目录 echo “It is $(date ‘+%T’)”输出结果为 It is 03:12:13
在shell编程中变量有以下特点:
1. 不区分变量类型
2. 变量不需要提前声明,直接使用(不过建议声明一下)
变量命名特点:
1. 以字母或”_”开头
2. 最好不要有特殊字符
3. 建议以大写字母为变量名
变量的类别:
1. 本地变量
2. 环境变量
3. 特殊变量(bash内置变量)
4. 位置变量
本地变量的声明:set VARNAME=value 取消 unset VARNAME.赋值和撤销变量前不需要加$,但在引用时输出时必须加$ eg: echo $VARNAME。本地变量只对当前shell起作用。
环境变量只对当前shell和其子shell起作用。将本地变量改为环境变量方法是: export VARNAME 取消办法unset VARNAME
用export和printenv显示预定义的环境变量,常见的系统变量有PATH(二进制文件位置)、HISTSIZE(history的大小)、HISTFILE(存储history的文件)、USER、HOME、PWD等。
可用which command查看文件的路径 hash查看执行过的命令(必须是外部命令)和位置其结果中hit表示使用的次数。关于PS1的用法可以使用man bash查看。
为命令取别名使用alias eg:ls=’ls –l’
shell编程基础知识
编程的语言可分为编译型语言和脚本语言。编译型语言经过一次编译,执行过程为:源代码à编译à链接à运行。其特点为:执行效率高,但维护成本高。c 、c++、java、c#都属于编译型语言。脚本语言是一种动态语言,执行方法为解释执行。比较容易修改。shell、perl、php、asp都属于脚本语言。
shell脚本必须以#!<shell脚本路径>开头,其他以#开头的都为注释。执行脚本的办法为 ./脚本名称 用bash –n test.sh来测试脚本。
环境变量的配置文件可分为全局配置文件、个人配置文件,其结果为两文件之和,如有冲突则以个人为主。
全局配置文件有 /etc/profile /etc/profile.d/* /etc/bashrc
个人配置文件有 ~/.bashrc ~/.bash_profile ~/.bash_logout
其中profile类文件:设定环境变量,执行一些命令
bashrc类文件:设定本地变量,定义命令别名
系统中的shell可分为登录shell和非登录shell。启动登录shell是读取配置文件的顺序为:/etc/profileà(/etc/profile.d/*)à~/bash_profileà~/.bashrcà/etc/bashrc。而启动非登录shell读取的顺序为 ~/.bashrcà/etc/bashrcà/etc/profile.d/* 。当我们修改过配置文件后可用source FILE或 . FILE重新读取配置文件。eg: 1 alias 存在于bashrc中 2 增加PATH的内容 export PATH=$PATH:/uer/local/program/bin 意为增加PATH的路径/usr/local/program/bin 切记声明称环境变量时必须用export来声明一下