Linux的变量I/O重定向管道全局搜索正则表达式
linux中的变量
变量的分类:
本地变量:只对当前用户的shell有用
声明方法:变量名(大写)= “xxxxx”或 ’ xxxxx’
环境变量:对当前用户写的shell和子shell都有效
声明方法:export变量名(大写)= “xxxxx”或 ’ xxxxx’
查看环境变量:
[root@www.bkjia.com tmp]# export
DISPLAY:定义是哪个主机,第几个屏幕显示
HISTSIZE:定义history中存取历史记录的条数
HOME:当前用户的家目录
PATH:执行外部命令(非当前shell自带的命令)就在PATH显示的路径中查找
USER:当前用户名
SHELL:当前使用的shell
其他查看环境变量的方法:printevn和evn
变量的引用:
eg:
[root@www.bkjia.com ~]#DIR=’/tmp/script’定义变量
[root@www.bkjia.com ~]#cd $DIR通过$对变量进行引用
[root@www.bkjia.com ~]#mkdir $DIR
[root@www.bkjia.com ~]#unset DIR释放变量
查看变量内容:
将字符输出到显示器使用echo命令
[root@www.bkjia.com ~]# echo字符信息
要查看变量中的字符,需要使用$变量
[root@www.bkjia.com ~]# echo $变量即将变量内字符输出
特殊变量:$?
$?中的值是上一条命令执行的结果(成功:0,失败1~255)
[root@www.bkjia.com ~]#cd
[root@www.bkjia.com ~]# echo $?
0
[root@www.bkjia.com ~]# cdd
-bash: cdd: command not found
[root@www.bkjia.com ~]# echo $?
127
位置变量:$1,$2,$3…
作用:将从输入内容导入脚本
eg:
脚本:
#!/bin/bash
echo $1
echo $2
echo $3
执行脚本:
[root@www.bkjia.com ~]#脚本名 字符1字符2字符3
执行结果:
字符1字符2字符3
算术运算:
linux中默认所有变量都是字符,所以要执行算术运算需加[ ]或$(( ))。
eg:
脚本内容:
#!/bin/bash
echo $[$1+$2]
执行脚本:
[root@www.bkjia.com ~]#/sum.h 4 5
9
alias别名的查看与创建:
[root@www.bkjia.com ~]#alias直接输入alias显示当前环境中的别名
[root@www.bkjia.com ~]# alias cdnet="cd /etc/sysconfig/networking"给命令创建别名
[root@www.bkjia.com ~]# cdnet输入别名后实现与输入命令相同的作用
[root@www.bkjia.com networking]#
[root@www.bkjia.com ~]#unset cdnet撤销别名
无论是直接定义的本地变量还是用export声明的环境变量,在重新登录或reboot之后都会消失。若想对其进行长久保存,需要在相关的配置文件中进行修改。
相关的配置文档目录:
全局相关:
/etc/profile
/etc/profile.d/*
/etc/bashrc
局部相关(即每个用户有可以设定自己的一套配置)
~/.bash_profile
~/.bashrc
profile类文件:设置环境变量;
设置某些登陆时就要运行的命令。
bashrc类文件:设置别名;
设置本地变量,和只对当前shell有效的命令。
shell按照过程和应用次序可以分为:非交互式登陆式的shell和交互式登陆式的shell
非交互式登陆式的shell,启动系统时自动执行。
启动顺序为:~/.bashrc→/etc/bashrc→/etc/profile.d/*
交互式登陆式的shell,修要登录用户进入系统输入命令。
启动顺序为:/etc/profile→/etc/profile.d/*→~/.bash_profile→/etc/bashrc
eg:
通过修改配置文件实现用户登录进系统时候,屏幕显示字符串“Hello,you are root(当前用户的用户名)。”
由于是对于每个用户alluser都有相同的配置,所以应该是全局变量/etc/profile,通过编辑器在文本的最后一行加入“ echo "hello,you are $USER."”即可。
1
2
3
下一页