FreeBSD csh/tcsh导出Shell变量
时间:2020-01-09 10:38:32 来源:igfitidea点击:
如何在FreeBSD操作系统下导出tcsh/csh shell变量?
tcsh是Berkeley UNIX C shell csh的增强但完全兼容的版本。
它是一种命令语言解释器,可用作交互式登录shell程序和shell程序脚本命令处理器。
它包括命令行编辑器和许多其他功能。
本教程显示如何在Linux或类似Unix的操作系统上使用命令行选项导出csh或tcsh变量。
FreeBSD显示当前环境变量
执行以下命令以在tcsh或csh下打印环境变量的当前名称和值:
setenv
输出示例:
SHELL=/usr/local/bin/bash TERM=xterm SSH_CLIENT=10.10.29.66 37484 22 SSH_TTY=/dev/ttyp2 USER=root PAGER=more FTP_PASSIVE_MODE=YES PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin MAIL=/var/mail/root BLOCKSIZE=K PWD=/root SHLVL=2 HOME=/root LOGNAME=root SSH_CONNECTION=10.10.29.66 37484 10.24.116.2 22 _=/bin/csh HOSTTYPE=FreeBSD VENDOR=unknown OSTYPE=FreeBSD MACHTYPE=unknown GROUP=wheel HOST=vps.theitroad.com REMOTEHOST=10.10.29.66 EDITOR=vim
导出shell变量
要导出并设置新的环境变量,请执行:
setenv name value setenv EDITOR /usr/bin/vim
您需要将所有环境变量添加到~/.cshrc文件csh资源脚本中,并在每个Shell执行开始时读取。
这是我的示例.cshrc文件:
alias h history 25 alias j jobs -l alias la ls -a alias lf ls -FA alias ll ls -lA # A righteous umask umask 22 set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin) setenv EDITOR vim setenv PAGER less setenv BLOCKSIZE M if ($?prompt) then # An interactive shell -- set some stuff up set prompt = "`/bin/hostname -s`# " set filec set history = 100 set savehist = 100 set mail = (/var/mail/$USER) if ( $?tcsh ) then bindkey "^W" backward-delete-word bindkey -k up history-search-backward bindkey -k down history-search-forward endif endif
常用的tcsh环境变量列表
当进程开始时,通过execve()调用可以使用称为环境的字符串数组。
按照惯例,这些字符串的格式为name = value。
各种命令使用以下名称
BLOCKSIZE
:几个命令使用的块单位的大小,最著名的是df,du和ls。 BLOCKSIZE可以通过指定数字以字节为单位指定,通过指定数字后跟K或k以千字节为单位指定,通过指定数字后跟M或m等以兆字节为单位指定。COLUMNS
:用户在终端的列位置上首选的宽度。诸如ls之类的实用程序以及使用它来将输出格式化为列的实用程序。- EDITOR:默认的编辑器名称。
- EXINIT:ex和vi读取的命令的启动列表。
- HOME:用户登录目录,通过从密码文件/etc/passwd登录设置。
LANG
:该变量将所有使用setlocale的程序配置为使用指定的语言环境,除非设置了LC_ *变量。- MAIL:用户邮箱的位置,而不是/var/mail中的默认邮箱,由mail,sh和许多其他邮件客户端使用。
- PAGER:默认的分页程序。 mail,man,ftp等使用此变量指定的程序来显示比当前显示更长的信息。
PATH
:查找可执行文件时,目录顺序,以冒号分隔,由csh,sh,system,execvp等搜索。最初通过登录将PATH设置为/usr/bin:/bin。- PRINTER:lpr,lpq和lprm使用的默认打印机的名称。
- PWD:当前目录路径名。
- SHELL:用户登录shell的完整路径名。
TERM
:要为其准备输出的终端的种类。此信息由可能利用特殊终端功能的命令(例如nroff或plot)使用。- TMPDIR:用于存储临时文件的目录。大多数应用程序使用/tmp或var/tmp。设置此变量将使他们使用另一个目录。
- TZ:显示日期时使用的时区。
- USER:用户的登录名。
tcsh导出变量
语法如下,以42为值定义一个新的tcsh或csh变量,命名为life:
setenv life 42
要打印$life的值,请使用printf命令/echo命令:
echo "$life" printf "%d\n" $life
现在开始一个新的tcsh会话(儿童tcsh会话):
tcsh
找出孩子是否继承了名为$life的环境变量:
env | grep life echo "$life"
csh导出变量命令列表
env
或env | grep var_name
设置环境并执行命令,或打印环境变量setenv name value
将环境变量名称设置为value并导出echo" $var_name"
或printf"%FORMAT" $var_name
显示环境变量名称的值