您的位置:首页 > 运维架构 > Shell

day 24 shell 变量

2017-11-17 08:09 288 查看
8.6 管道符和作业控制

1.管道符

| “cmd1 | cmd2” --#将前一个命令的输出结果内容传递给后一个命令
2.作业控制
Ctrl +z                      --#暂停一个任务,并将该任务丢到后台(该任务依然是停止状态)
bg                             --#将一个任务(命令)放到后台并运行,比如vmstat
-2,放到后台之后,依然会运行,并在屏幕打印; 对于一个已经用Ctrl+z暂停了的任务直接使用bg,会使之在后台继续运行
cmd &--#将一个任务(命令)放到后台并运行,对于新开的另一个终端无法用jobs查看到,但可查看到相关的进程(ps
aux命令)
fg                             --#将后台的命令调到前台并运行,若有多个后台的任务,须在fg后面加上任务的id(通过jobs命令得到),如果不加,默认会调用最近的一个任务.
#fg [id]
jobs                         --#列出已停止或后台在执行的任务,包括每个任务的id
注:
对于一个已经用Ctrl+z暂停了的任务(例如vmstat 1,后台不执行,屏幕也无打印):
直接使用命令bg,会使之在后台继续执行(从暂停到执行),屏幕会打印
直接使用命令fg,调到前台并执行
说明bg和fg都会让一个暂停的命令执行起来
任务在后台执行的时候,尽管某些命令(例如vmstat 1)屏幕会一直有打印,但依然可以执行其他命令(命令在后台运行的标志),而在前台执行的任务,就不能运行其他命令了,除非暂停后取消
8.7 shell变量

#env                                   --#列出系统环境变量
#set                                    --#列出系统全部变量,包括用户自定义变量
变量命名规则:字母、数字和下划线的组合,首位不能为数字
变量值有特殊符号时需要用单引号括起来
#export
var=value
--#使变量在当前终端(sshd)下成为一个全局变量,在子bash下echo该变量依然可得到变量值,如果在另一个终端下echo则得不到变量值,且全局变量向下(子层bash)生效,如果在子bash里export是一个变量成为全局变量,则该变量在父bash里不生效
#unset
var
--#取消变量赋值
8.8 环境变量配置文件

/etc/profile                      --#用户环境变量,交互,登陆后才执行
/etc/bashrc                     --#用户不用登录,执行shell就生效
~/.bash_profile
~/.bashrc
~/.bash_history             --#记录历史命令的文件
~/.bash_logout              --#定义用户退出后需要做的操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell变量