现在的位置: 首页 > 综合 > 正文

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

2018年05月13日 ⁄ 综合 ⁄ 共 2274字 ⁄ 字号 评论关闭
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

抱歉!评论已关闭.