LINUX shell setenv or export

登录一个系统 setenv 还是 export 呢?把可能用的命令都试一遍这样能快速解决问题。。。用时间长了感觉有点乱 整理一下,能不能记住还得另说 哈哈哈

1. 查看linux 当前 shell 类型

下面两个命令一样,为什么呢?因为当你进入linux 系统,你就使用了第一个命令-shell!

/> echo $0
/usr/bin/tcsh

>echo $SHELL

/usr/bin/tcsh

/>ps
PID TTY TIME CMD
10965 pts/2 00:00:00 tcsh
11055 pts/2 00:00:00 tcsh
12319 pts/2 00:00:00 tcsh
14212 pts/2 00:00:00 ps

2. shell 所有类型

>cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
/bin/rksh

3. it is csh not bsh so use setenv not export

setenv ENVNAME vall

if bsh use exprot ENVNAME=val

4. plus:

  •  ./*.sh  =  sh ./*.sh = bash ./*.sh ==>重新启动一个子shell,在子shell中执行此脚本。
  • source ./*.sh =  . ./*.sh               ==>在当前shell进程中执行此脚本,而不是重新启动一个shell 
  • 没有被export导出的变量(即非环境变量)是不能被子shell继承的

相关推荐