Linux环境变量设置set setenv alias的异同

1.说明
% s. p* G' t( }' m: N. v# h( q 使用set和setenv命令可以设置shell选项或者列出shell变量,其中setenv 是csh的命令,在bash中用export命令,alias作用相当windows下的快捷方式。% s" h4 [( ]/ Z6 u

( l& A. O+ G+ q4 _- J: m" v 2.语法格式
/ k. y7 N4 |& ?0 i9 n/ H
3 K& y6 I+ l' G1 j set 变量名 = 内容
9 a- O# c4 ^0 g! ?7 a set 变量名 =(内容1 内容2 )
/ z, C4 {% Q. f- z7 M  q  E6 ? set 变量名 ="内容1 内容2"' m7 f5 n9 H4 ]# x3 e- ~
! Z) G* U$ @) l1 K5 v, X/ R
setenv 变量名 内容- E) J8 p' v( P$ c) d
setenv 变量名 "内容1 内容2"
( m' Z- w8 x6 m0 x7 q4 p setenv 变量名 '内容1 内容2'6 _3 Q- y. z/ R

/ p# f9 r: i3 g0 _6 R alias 简化名称 原文件名
1 ]. D& E# @' @) {# u0 L' b7 ], x alias 简化名称 "原文件名 参数"! ?# S. s" h& d  B1 `( d( X

1 N; B' g6 ^* R) x. @ 3. 调用
$ x; b% X0 I! S6 r9 ] 5 B0 h2 t% T. [. u) G0 a
set 和setenv 在调用时均需要加"$"符号,表示调用变量所指代的量。
: @& I4 e5 ]' M. F' G% } alias 直接实用
5 o% p& B5 M3 b, M" i , f4 h; _- V/ i4 j* i4 W
4.使用事项8 _# k& R7 u7 _3 X5 z: L! Y( n
/ s+ Y3 N: ]% L# q
set的实用范围最广,在环境变量定义的实际使用中,可以涵盖senenv的使用范围,并且也可以覆盖alias,但不如 alias在其使用范围内来得更简化。
# c. k$ y7 b) [( O0 p4 Y$ M
' ]+ h! X0 u* M2 u+ z# l0 z; C 5. 使用实例和验证方法+ x9 x/ z/ J) P& P
(1)6 n$ I6 `& B& C+ j
set path =(/usr/bin /usr/local/bin /sbin /bin usr/X11R6/bin $path)
+ r# R# n# m4 b3 F  @2 _ 相当于! }" I' [3 P" l
setenv path "/usr/bin /usr/local/bin /sbin /bin usr/X11R6/bin $path"
. n! U: i) b- /" a" K 但是应用 setenv命令却定义path变量时,在某些linux系统 中不能有效的完成path定义。
0 x; n1 E3 h! f. g1 ]  P
' d- s, @6 s8 N+ h1 |8 M9 | 验证:如,建立 set path=/sbin 进而执行fdisk(fisk在/sbin路径下),结果可执行。
5 T1 e5 x- d+ t 建立 setenv path /sbin 进而执行fdisk(fisk在/sbin路径下),结果不一定可执行。
2 ~* B7 E; Z% q$ z $ j3 L& M0 v1 B
(2)/ ~! p* o( /7 {( t7 G) h
setenv userhome1 /home/user/1dir7 J, H5 H7 ?$ C$ V! A; e6 L3 M* s1 F
相当于
6 i) _) I. h! J8 ~* _$ E set userhome1 = /home/user/1dir
8 r# s" D- E5 H5 E/ I* o! E 用set命令同样可以定义此类"名词性"变量,完全符合结果
% c9 n1 q. _4 h4 n) /# o/ X " j2 N2 V2 b( T) S: B
验证:如,建立set h=/home, 进而执行 cd $h, 用pwd查看结果。0 Z& /1 l' w& W+ G4 ]
建立setenv h home, 进而执行 cd $h, 用pwd查看结果。/ s9 t# f6 J  w1 ?8 Q6 v0 {

- D7 L1 u! b) v- [) F (3)
: I2 @8 |4 V5 {0 H  M7 o( N& M" }+ V4 / alias用来"动词性"语句的快捷方式,如,alias set60 "setenv DISPLAY 192.168.0.60:0" 5 W6 x( h! Y  Y) V
alias c clear, 执行c验证结果,可行。9 ~  |1 Z0 O. R" O: F
set d =pwd 执行$d验证结果,可行。1 V/ X" w/ T  o0 U
setenv d pwd 执行$d验证结果,可行。: N' X5 G5 R/ u2 _' I1 k
! ~% F) R. h: o
6.延伸
/ n0 K# v2 e1 x+ /2 F" T
, A5 J7 w3 M* D- z9 Z 以上均为cshrc环境变量,在linux下默认bsh,二者之间的在实际使用中的基本点如下:
, }. A/ v! Q( X5 R6 h/ a
$ i2 a4 m6 c# K, [ $ d" c# E2 r8 j9 u7 Z5 O9 F2 I
(1). bsh和csh的不同3 q* n' U' l3 W: ]! L
# s$ A  x% {$ e9 c: h" i0 p
假如习惯了linux的bash,那么继续用。
0 n3 h* z: p# h# O
$ ~% M1 f& U! r$ M8 w. ?! j4 // W 如果厌倦了bash或者没用过任何shell,推荐用tcsh. ( j5 K! V; {$ p8 j

8 M6 I, q, y" w4 n bsd的tcsh非常出色,尤其极其智能的命令历史回滚和Tab命令补全有机结合起来。
+ i6 e5 c$ w1 k' Q 2 y  [4 I5 F/ m. Y# |# f
(2).如何变bsh为csh
# t) Q2 D% K: D, l8 r 8 F7 h) a1 v2 i- N& w
修改/etc/passwd 文件中对应于用户的那一行的最后一项, 将'/bin/bash' 改为 '/bin/csh'
: e* G$ t/ @. |3 I
9 d0 v  x( Y% y& v% s+ / 新建用户时,在linux中,会将所需的配置文件从/etc/skel拷贝到用户主目录中,/etc/skel保存着所有用户都共享的缺省文件,如.bashrc,.bash_profile

你可能感兴趣的:(Linux/Unix)