曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4999|回复: 4
打印 上一主题 下一主题

变量的设定

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2008-11-20 14:34:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
变量类型

本地变量(local) 和 环境变量(enviroment).

本地变量只能在 shell 中使用( Local variables are used only by the shell )

环境变量可以在全部的工作环境中使用( Enviroment variables are passed onto other commands )


相关指令

set  查看所有的本地变量和环境变量。(display all variables)

env  查看系统环境变量。( diplay enviroment varibles )

配置 shell:本地变量

一般情况下,变量用大写字母(upper-case)表示,如:

$FAV_COLOR=blue         /*=号两边不能有空格*/

若要传回变量的值,则必须在变量名前加 $ 符号,如:

echo $FAV_COLOR

结果显示:

bule

常用的本地变量:

HISTFILESIZE       /*此变量所带的值定义了自历史文件里最多可以记录了几笔指令(determines how many commands to be saved in the history file on logout)*/

COLUMNS           /*定义了终端视窗的宽度*/

LINES             /*定义了终端视窗的高度*/

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
沙发
 楼主| 发表于 2008-11-20 15:48:11 | 只看该作者

本地变量 PS1

PS1  用来设置提示符前面的提示,如在 [root@localhost ~]# 中的蓝色部分。

下面是设定的相关参数

\\d          today's date(今天的日期)

\\h          short hostname(主机名称)

\\t          current time(目前时间)

\\u          user name(用户名)

\\w          current working directory(当前工作目录)

\\!          The history number of current command(当前输入的指令在 history 里面的编号)

\\$          show $ if you are a non-privileged user and a # if you are a privileged user(管理员显示#,非管理员显示$)

\\l          The basename of the shell's terminal device name(目前是在哪个 tty 里面操作)

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
板凳
 楼主| 发表于 2008-11-20 16:51:14 | 只看该作者

别名

Aliases 别名

别名可以为命令创建一个快捷方式,如下:

alias lf='ls -al'

设定后,当在终端里输入 lf 时,实际上就是执行了命令 ls -al

命令

alias      /* 列出系统里面所有的别名,这里可以看到 ll 这个别名(系统自设),其实就是 ls -l */

alias ll   /* 显示:alias ll='ls -l' */

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
地板
 楼主| 发表于 2008-11-20 20:50:13 | 只看该作者

设置环境变量

shell 的环境变量仅仅存在于当前的 shell 环境中( shell variables exist only in current shell enviroment)

环境变量在每个shell环境里面都能用(Enviroment variables passed to subshells)

shell 变量可以通过 export 指令升级为环境变量,用法如下:

export variable name     

export A=1               /*把 A 设置成环境变量*/

如果想删除环境变量,则使用 unset 命令将一个变量删除之:

unset A                  /*将上面设置的环境变量 A 删除*/

注意:如果使用的是 root 来删除变量,那么所有的 shell 环境中都将会删除这个变量;而如果是在非 root 用户下做的删除,那么只是删除自身的变量,而对别人的不会构成影响。


使用 readonly 命令设置只读变量:

如果使用了readonly命令的话,变量就不可以被修改或清除了。如下示例:

export TEST="Test..."                   /*增加一个环境变量TEST*/

readonly TEST                              /*将环境变量TEST设为只读*/

unset TEST                                   /*会发现此变量不能被删除*/


执行 unset 后提示:  
-bash: unset: TEST: cannot unset: readonly variable


TEST="New"                                 /*会发现此也变量不能被修改*/


执行后提示:  
-bash: TEST: readonly variable



有两种设置环境变量 PATH 的方法。第一种适用于为单一用户设置 PATH,第二种是为全局设置 PATH。

1.在用户主目录下有一个 .bashrc 文件,可以在此文件中加入 PATH 的设置如下:

export PATH=”$PATH:/your path1/:/your path2/…..”

注意:每一个 path 之间要用 “:“ 分隔。

注销重启 X 就可以了。

2.在 /etc/profile中增加。

PATH="$PATH:/home/zhengb66/bin"

export PATH

如果要使得计时生效,使用 source 命令

source .bashrc

完成。
 

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
5#
 楼主| 发表于 2008-11-20 20:57:29 | 只看该作者

常见的环境变量

几个常见的环境变量:

HOME         用户的家目录(Path to user's home directory)

LANG         定义应用程序默认使用哪种语言,如 LANG=zh_CN.UTF-8

PWD          用户当前的工作所在目录

TERM         定义了终端类型,如 TERM=xterm 表示在图形界面下

PATH         定义了系统会在哪些默认的路径下查找对应的输入指令,比如我的:
PATH=/home/beyes/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/opt/cross/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin

如果执行 PATH=$PATH:. ( $PATH:.中,$PATH表示当前的已设路径,然后在末尾追加一冒号: 和一点号 . )后,就会变成如下:

PATH=/home/beyes/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/opt/cross/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:.

上面的最后多了个红点(为了清楚故放大),意思是,如果在之前的默认路径没找到相应的命令,那么系统还到所有隐藏的目录下去寻找,但这样做的结果是系统可能被入侵!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-19 13:00 , Processed in 0.084101 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表