⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unix的环境变量2(转中华技术网).txt

📁 LINUX下的安装声卡等操作和技巧介绍
💻 TXT
字号:
作者:studyboy
email: studyboy@21cn.com
日期:2001-7-22 21:37:16
除了上面所提到针对特殊需要所做的设定之外,在做环境设 
定时常用到的指令还有: 

1. stty 
设定对输入(input)的定义与如何做输出,这个指令的 
叁数极为众多,我们可用 

stty -a 
看到所有的叁数及其设定,在这些叁数中,常用的有: 

istrip (-istrip) 
将所有的输入截取成7 bits的资料,然而中文的资 
料都是8 bits的,所以当需要使用中文时,请加上 
'-istrip'这个叁数,以避免输入的资料被破坏。 

cs7 cs8 
设定每一字元的资料都是7 bits或8 bits的资料, 
因此在需要使用中文时,通常会有如下的设定: 
stty -istrip cs8 
iuclc (-iuclc) 
将标准输入的大写字母视为小写(或取消)。 

olcuc (-olcuc) 
将小写的字母以大写型态输出(或取消)。 

echo (-echo) 
将所有的输入由标准输出处输出(或取消输出,即 
在萤幕上看不到自己的输入)。 

stty除了这些叁数外,还可以用来定义某一个键的特定 
功能,如: 
stty erase "^H" 
stty kill "^U" 

2. mesg y (mesg n) 
若在工作时不希望被talk等讯息所打扰,可下'mesg n' 
指令,以避免外来迅息中断正要进行的工作('mesg y'则是 
恢复与外界的沟通)。 

3. umask [nnn] 
设定新增档案或目录的属性(mode),新档案或新目录的 
mode为系统管理者以create所设定的属性减去nnn,如系统管 
理者所设定的档案权利状态是777,而使用者又自行设定了 
umask 022 
则这个使用者在他个人帐号下的每一个新产生的档案的权利 
状态都将会是755(777-022)。 

4. Function 与 Alias 
对於一连串或某一指令,我们可以用function的方式 
(在sh、ksh、bash中)或alias指令(在csh、tcsh、ksh、bash 
中),用一简短字串来代替这一个或一连串的指令,function 
的用法如: 

vi(){ 
mesg n 
/usr/ucb/vi $* 
mesg y 
} 

其中,'vi'是function的名称,{}之间是'vi'这个 
function所包含的指令内容,而要注意的是:function的名 
称不能与shell的内键指令(builtin)名称相同,否则这个 
function即无法成立。 

同样的功能,alias指令的用法如: 

alias vi 'mesg n; /usr/ucb/vi !*; mesg y' 

其中vi即是''中所包含字串的别名,别名与各shell的builtin 
名称可以一样(alias本身也是一个内键指令)。 

若我们在某一shell中同时建立一名称相同的function 
与alias(如在bash中),则alias的执行次序优先於function 
的执行。 

四、常用变数设定 

在UNIX环境中的变数可分为两类,一是环境变数(Enviroment 
Variable)、一是shell变数(Shell Variable),二者之间的不同 
处在於:环境变数不会因为shell间的更替而失去这个变数的作 
用,如PATH是一个环境变数,因此,即使您在设定好PATH之後再 
执行另一个shell(如原来是用sh、而後在sh环境中再执行csh), 
PATH这个环境变数仍能继续作用,而shell变数(如csh的cwd)则是 
只有在特定的shell下才有作用,一执行其他shell就失去作用。 

在sh及csh二系列各有其不同的设定变数的方式,为: 

1. Bourne Shell系列 
[VAR]=[STRING or NUMBER] 
export [VAR] 

如果当我们离开shell、进入另一个程式(如tin)之後, 
仍需要使用这个变数,则除了设定这个变数的值外,还需要 
以'export'指令加以宣告,如设定萤幕型态的变数TERM就需 
以'export'来宣告。 

2. C Shell系列 
set [var] = [STRING or NUMBER] 
setenv [var] [STRING or NUMBER] 

其中'set'是单纯设定变数值,'setenv'则除了设定变 
数值外,还包含了类似sh中'export'的功能。 

而无论是Bourne Shell或C Shell,它们都有一些基本的、 
共同的常用变数,如: 

1. PATH 

设定执行档的寻找路径,若现行目录也要包含在寻找的 
路径中,则需在设定路径时给予一'.',表示现行目录亦包含 
在寻找的路径中,如: 

PATH=.:/bin:/usr/local/bin:/usr/ucb 
set path=(. /bin /usr/local/bin /usr/ucb) 

2. EDITOR 

设定想要使用的编辑器,如 
EDITOR=/usr/ucb/vi 
setenv EDITOR /usr/ucb/vi 

3. HOME 

设定个人帐号home directory的所在位置,通常在login 
时即叁考/etc/passwd而给予一设定值,因此除非使用者有某 
些特殊需求,通常不会重新设定。 

4. SHELL 

同样是在login时即会叁考/etc/passwd的内容而自动设 
定,使用者即使重新设定这个变数的内容,对帐号的使用也 
不会有任何影响。 

5. 提示符号的设定 

在sh 中: PS1="[STRING]" 
PS2="[STRING]" 
在csh中: set prompt="[STRING]" 

当然以上所列的只是使用得较为广泛的变数,若您觉得这些 
不够用,可用man sh、man csh、man tcsh、man bash指令查阅各 
shell的说明,在其中您将可看到各个shell所包含的变数及各变数 
的用法。 

若不清楚某一变数的设定内容,可用'echo $[VAR]'来观察 
变数的内容,如: 

echo $PATH 


五、SHELL 环境的异动 

前面所提到start files中的设定将在使用者login时执行, 
但当我们要在线上直接改变所使用的shell(如直接执行'csh'或 
'exec csh',此时不会执行start files)或是要改变设定的内容, 
在编修了start files或script files之後,可利用下列指令将 
环境更新,而不必重新login: 

. [script file] (在sh 系列的shell中) 
source [script files] (在csh系列的shell中) 

直接执行一个script file与用'.'、'source'指令执行各有 
其不同的效果,我们可建立一内容为 

cd / (或cd [DIR]) 

的script file来观察它们之间的差异: 

因script file的执行环境是一内定或自定的subshell(可在 
script file的第一行用类似'#!/bin/csh'指令加以设定), 
所以它的直接执行并无法真正将shell环境的工作目录切换到 
/,而script file一结束,subshell即不存在、'cd /'指 
令的效果也告消失;而用'.'或'source'执行则是真正将 
shell的工作环境下的工作目录更换到/,不会因为script 
file的结束而使档案中指令的效果消失。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -