linux Shell入门:掌握Linux,OS X,Unix的Shell环境

2019-09-23 09:27:24于丽

下面是bash shell里一些常见变量的列表:

Fig.04: Common bash environment variables

图4:常见bash环境变量

注意:下面这些环境变量没事不要乱改。很可能会造成不稳定的shell会话:

SHELL

UID

RANDOM

PWD

PPID

SSHAUTHSOCK

USER

HOME

LINENO

显示环境变量的值

使用下面任意一条命令显示环境变量HOME的值:

## 使用printenv ##
printenv HOME
 
## 或者用echo ##
echo "$HOME"
 
# 考虑到可移植性,也可以用printf ##
printf "%sn" "$HOME"

示例输出:

/home/vivek

增加或设定一个新环境变量

下面是bash,zsh,sh和ksh的语法:

## 语法 ##
VAR=value
FOO=bar
 
## 设定vim为默认文本编辑器 ##
EDITOR=vim
export $EDITOR
 
## 考虑安全性,设定默认shell连接超时时间 ##
TMOUT=300
export TMOUT
 
## 你可以直接使用export命令设定命令的搜素路径 ##
export PATH=$PATH:$HOME/bin:/usr/local/bin:/path/to/mycoolapps

然后,使用printenv或者echo或printf命令查看环境变量PATH,EDITOR,和TMOUT的值:

printenv PATH
echo "$EDITOR"
printf "%sn" $TMOUT

怎么修改一个现有的环境变量?

下面是语法:

export VAR=value
## 或者 ##
VAR=value
export $VAR
 
## 把默认文本编辑器从vim改为emacs ##
echo "$EDITOR" ## <--- 屏幕输出vim
EDITOR=emacs  ## <--- 修改
export $EDITOR ## <--- 让修改在其他会话生效
echo "$EDITOR" ## <--- 屏幕输出emacs 

tcsh shell下增加和修改变量的语法是下面这样的:

## 语法
setenv var value
printenv var
 
## 设置变量foo的值为bar ##
setenv foo bar
echo "$foo"
printenv foo
 
## 设置变量PATH ##
setenv PATH $PATH:$HOME/bin
echo "$PATH"
 
## 设置变量PAGER ##
setenv PAGER most
printf "%sn" $PAGER

找出bash shell的配置文件

用下面的命令列出bash shell的文件:

ls -l ~/.bash* ~/.profile /etc/bash* /etc/profile

示例输出:

Fig.05: List all bash environment configuration files

图5:列出bash的所有配置文件

要查看所有的bash配置文件,输入:

less ~/.bash* ~/.profile /etc/bash* /etc/profile

可以使用文字编辑器比如vim或emacs来一个一个编辑bash配置文件:

vim ~/.bashrc

编辑/etc/目录下的文件,输入:

## 首先是备份,以防万一
sudo cp -v /etc/bashrc /etc/bashrc.bak.22_jan_15
 
########################################################################
## 然后,随心所欲随便改吧,好好玩玩shell环境或者提高一下效率:)         ##
########################################################################
sudo vim /etc/bashrc