Shell
Last updated: 2018/11/02 Published at: 2018/11/02
搬运自我的 Linux0.11 仓库
GNU/Linux Shell
标准输入/输出/错误
标准输入
stdin
标准输出
stdout
标准错误
stderr
重定向
>
用于标准 I/O 的文件描述符
描述符 | 说明 |
---|---|
0 | 标准输入stdin |
1 | 标准输出stdout |
2 | 标准错误 stderr |
举例应用
1prog > out
2#标准输出重定向
3prog >> out
4#将输出信息添加到文件后
5prog 2> err
6#标准错误重定向
7prog 1> out 2>&1
8#将stdout,stderr重定向到同一文件
9prog 1> &2
10#将stdout重定向到sterr
11prog 1> out 2>err
12#将stdout和stderr分别重定向
13prog 2> &1 1>out
14#将stdout,stderr重定向到同一文件
环境变量
环境变量是包含信息的命名对象,这些信息由 shell 和其他应用程序使用,由很多标准环境变量,也可以为应用程序创建自己的环境变量 (或改变已经存在的环境变量)。
Linux 环境变量分类
- 按照生命周期来分,Linux 环境变量可以分为两类:
- 永久的:需要用户修改相关的配置文件,变量永久生效。
- 临时的:用户利用 export 命令,在当前终端下声明环境变量,关闭 Shell 终端失效。
- 按照作用域来分,Linux 环境变量可以分为:
- 系统环境变量:系统环境变量对该系统中所有用户都有效。
- 用户环境变量:顾名思义,这种类型的环境变量只对特定的用户有效。
Linux 设置环境变量的方法
- 在
/etc/profile
文件中添加变量对所有用户生效 (永久的) 用 vim 在文件/etc/profile
文件中增加变量,该变量将会对 Linux 下所有用户有效,并且是“永久的”。 例如:编辑/etc/profile 文件,添加 CLASSPATH 变量
1 vim /etc/profile
2 export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行 source /etc/profile
不然只能在下次重进此用户时生效。
- 在用户目录下的。bash_profile 文件中增加变量对单一用户生效 (永久的)
用
vim ~/.bash_profile
文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
1vim ~/.bash.profile
2export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行$ source ~/.bash_profile 不然只能在下次重进此用户时生效。
- 直接运行 export 命令定义变量只对当前 shell (BASH) 有效 (临时的)
在 shell 的命令行下直接使用
export 变量名=变量值
定义变量,该变量只在当前的 shell (BASH) 或其子 shell (BASH) 下是有效的,shell 关闭了,变量也就失效了,再打开新 shell 时就没有这个变量,需要使用的话还需要重新定义。
相关命令
1export
2#设置一个新的环境变量 export HELLO="hello" (可以无引号)
3echo
4#显示某个环境变量
5env
6#显示所有环境变量
7set
8#显示本地定义的shell变量
9unset
10#清除环境变量 unset HELLO
11readonly
12#设置只读环境变量 readonly HELLO
Shell 命令
各个 shell 命令使用方法参见 man 手册,谷歌,网上相关教程。