二十四、管道符和作业控制、shell变量、环境变量配置文件
一、管道符和作业控制
管道符:| 表示把前面文件输出的内容传递给后面的命令。
|grep:过滤,指定关键词的命令。|grep ’aaa‘。
作业控制
Ctrl+z:暂停一个任务。等于把当前任务放在了后台,使用fg命令再调回任务里。fg:前台,foreground。bg:后台,将任务调到后台去运行。示例:
vim /etc/passwd
[1]+ 已停止 vim /etc/passwd
可以停止多个任务,被暂停的任务会有编号。
想调回哪个就fg 1或者fg 2。fg+编号即可。不加编号就会执行最后一个任务。
jobs命令:把停止的任务列出来。
sleep命令:暂停指定的时间。时间长度,后面可接 s、m、h 或 d,其中 s 为秒,m 为 分钟,h 为小时,d 为日数。
sleep 1000
^Z
[1]+ 已停止 sleep 1000
sleep 1250
^Z
[2]+ 已停止 sleep 1250
jobs
[1]- 已停止 sleep 1000
[2]+ 已停止 sleep 1250
bg 2
[2]+ sleep 1250 &
jobs
[1]+ 已停止 sleep 1000
[2]- 运行中 sleep 1250 &
&:后面加此符号,直接将命令丢到后台。
sleep 1000 &
[1] 1253
jobs
[1]+ 运行中 sleep 1000 &
在当前终端后台运行的命令,在另外一个终端是看不到的,但是可以看到进程。
二、shell变量
变量:PATH,HOME,PWD,LOGNAME
env命令:列出系统预设的全部系统变量,系统的变量一般都是大写的英文字母。示例:
env 列出来的里面就有这些系统变量。
XDG_SESSION_ID=1
HOSTNAME=yaowei-01
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=5000
SSH_CLIENT=192.168.93.1 64290 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/0
USER=root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-8 EN为英文,CH为中文,UTF-8是字符编码。
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=192.168.93.1 64290 192.168.93.130 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIMEDIR=/run/user/0
=/usr/bin/env
set命令:输出环境变量。不仅可以查看系统预设的环境变量,还可以查看到用户自定义的环境变量。
变量名规则:字母、数字下划线、首位不能为数字。
变量值有特殊符号时需要用单引号括起来。
例如a=‘a b c‘ 带空格的字符,就需要用单引号括起来。否则就不会生效。双引号也可以,但是有些特殊符号就会被系统当做是一个标记,就不会生效,比如$符号。
变量的累加
a=1
b=2
echo $a$b
12
a=‘a$bc‘
echo $a$b
a$bc2
c="a$bc"
echo $c
a 此处$bc就没有识别出来
c="a$b"c 所以要将a$b分开括起来,此处就不能用单引号,它会认为$是一个符号。
echo $c
a2c 前面设置了b=2
多个变量相互叠加的时候可以用双引号把每个括起来。# c=a"$b"c
全局变量 export b=2
export 变量名=变量值,该命令就是声明一下这个变量。
前面设置的变量实际上是属于本地,仅仅在终端下生效,使用export一次就能变成全局变量。在这个shell下就能一直生效,在别的终端就不生效了。
取消一个变量:unset后跟变量的名字
三、环境变量配置文件
两个维度:系统层次,用户层次。
系统层次:就是/etc下的文件。
/etc/profile:用户环境变量,交互,登录才执行。
/etc/bashrc:用户不用登录,执行shell就生效。
用户层次:用户家目录下的文件。~/.bashrc
~/.bash_logout:用来定义用户退出时所需要做的操作。
原文地址:http://blog.51cto.com/13576245/2084401