[CentOS 7系列]变量

“变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。”举个例子,当用户上传一个值,这个值传递给程序。这个值在程序运行中被多次调用赋值。在系统做升级时,维护和调试升级就要在每次调用赋值的地方修改。这时,如果将用户上传的值定义为一个变量。系统需要赋值时,就去调用这个变量。在以后的维护升级时,只需要更改变量的值即可。

1、系统变量

Shell变量可分为两类:局部变量和环境变量。局部变量只在创建它们的shell中可用。而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用shell变量。变量名必须以字母或下划线字符开头。其余的字符可以是字母、数字(0~9)或下划线字符。任何其他的字符都标志着变量名的终止。名字是大小写敏感的。给变量赋值时,等号周围不能有任何空白符。为了给变量赋空值,可以在等号后跟一个换行符。用set命令可以查看所有的变量,unset abc命令可以清除变量abc,abc相当于没有定义过。readonly abc可以把abc变为只读变量,定义之后不能对abc进行任何更改。对shell变量的引用方式很多,用这些方式可以方便的获取shell变量的值,变量值的长度,变量的一个字串,变量被部分替换后的值等等。

[[email protected] ~]# echo $SSH_TTY       ##查看自己在哪个TTY下面
/dev/pts/1
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] ~]# echo $HOME
/root
[[email protected] ~]# echo $PWD
/root
[[email protected] ~]# echo $LOGNAME
root
[[email protected] ~]# env                 ##系统常用变量
XDG_SESSION_ID=13
HOSTNAME=server01
......
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-8
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
......
[[email protected] ~]# set                 ##包括系统变量和用户自定义变量
BASH=/bin/bash
......
HISTCONTROL=ignoredups
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/root
HOSTNAME=server01
HOSTTYPE=x86_64
......
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PIPESTATUS=([0]="0")
PPID=30083
PS1=‘[\[email protected]\h \W]\$ ‘
PS2=‘> ‘
......
[[email protected] ~]#
[[email protected] ~]# abc=51cto.com            ##设置自定义的变量     
[[email protected] ~]# set | grep abc           ##查询自定义变量中的abc
abc=51cto.com
[[email protected] ~]# unset abc                ##取消自定义的变量
[[email protected] ~]# set | grep abc
[[email protected] ~]#
[[email protected] ~]# a=‘$a$b‘                 ##变量值有特殊符号时需要用单引号括起来
[[email protected] ~]# echo $a
$a$b
[[email protected] ~]# a=‘a$b‘
[[email protected] ~]# echo $a
a$b
[[email protected] ~]# c=1;d=2
[[email protected] ~]# echo $c$d
12
[[email protected] ~]# export abc=123.com       ##制作一个全局的环境变量
[[email protected] ~]# bash
[[email protected] ~]# echo $abc
123.com

2、环境变量

1)系统环境变量

/etc/profile 用户环境变量,交互,登录才执行

/etc/bashrc 用户不用登录,执行shell就生效

2)用户环境变量

~/.bashrc         ##自定义一些别名alias

~/.bash_profile   ##自定义一些变量

~/.bash_history   ##自定义历史相关配置

~/.bash_logout    ##自定义退出后所执行的动作

若要配置环境变量之类,最保险是写在 .bashrc 文件中。因为不管是登陆还是不登陆,该文件总会被调用。

定义PS1能够改变命令提示符的格式:

[[email protected] ~]# echo $PS1            ##PS1输出左边的一个格式
[\[email protected]\h \W]\$
[[email protected] ~]# PS1=‘[\[email protected]\h \w]\$’  ##更改格式为绝对路径
[[email protected] ~]#cd /etc/sysconfig/network-scripts/
[[email protected] /etc/sysconfig/network-scripts]#

使用#PS1=‘\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$‘命令可以带颜色的显示。这种方式只是暂存在内存中,想要永久修改,还是需要进入/etc/bashrc修改。

时间: 2024-10-17 00:20:32

[CentOS 7系列]变量的相关文章

CentOS添加环境变量

CentOS添加环境变量 在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行"php -v"命令查看当前php版本信息时时,则会提示命令不存在的错误,下面我们详细介绍一下在linux下将php和mysql加入到环境变量中的方法(假设php和mysql分别安装在/usr/local/webserver/php/和/usr/local/webserver/mysql/中). 方法一:直接运

CentOS添加环境变量的三种方式

CentOS添加环境变量的三种方式,以添加php环境变量为例,假定php的安装目录为 /usr/local/php5 一.仅对当前会话临时生效 [[email protected] ~]# export PATH=$PATH:/usr/local/php5/bin 二.仅对当前用户永久生效 编辑 ~/.bash_profile文件,在PATH=$PATH:$HOME/bin行后添加 :/usr/local/php5/bin [[email protected] ~]# vi ~/.bash_pr

CentOS 7 系列(四)系统服务配置 服务(Service)

System.service: 服务单元,你可以理解为系统服务和原来的init.d下面的服务一样,只是比它更加丰富.每一个服务都是以.service进行标识的,如下图: systemctl list-unit-files --type=service 我们看看一个服务包含哪些内容: systemctl cat sshd.service 通过这个图是不是可以看出一些联系呢?和之前说的单元概念中包括的[Unit]段和[Install]段,这里还多了一个[Service]段,这个段就是用来定义服务的.

[CentOS 7系列]命令历史与别名

当用户登录linux操作系统时,就进入了当前用户的shell.shell是一个命令解释器,它提供了用户与机器之间的交互.它支持特定语法,比如逻辑判断.循环等.每个用户都可以有自己特定的shell.CentOS 7默认shell为bash.除了bash之外,还有zsh.ksh等shell类型. 在shell中,用户输入命令控制操作系统.在所有可执行命令中,history和alias比较特殊.history命令是用来查看过往输入的命令历史.而alias命令是用来定义命令的别名的.这两者都是为了用户使

CentOS之环境变量整理

CentOS上使用的mysql总是需要在安装目录下执行命令,否则提示command not fount.mysql安装目录为/usr/local/mysql,现整理一下CentOS下的环境变量. 方法一.直接运行命令exprot PATH=$PATH:/usr/local/mysql/bin 使用这种方法只是对当前会话有效,也就是登出或注销系统后,就会失效. 方法二.执行vi ~/.bash_profile修改文件中path一行, 修改为 PATH=$PATH:/$HOME/bin:/usr/l

[CentOS 7系列]磁盘格式化与挂载

在windows操作系统中,硬盘有fat32和ntfs等多种格式.在linux中同样如此.CentOS 6之前,主要是ext4.ext3和ext2等格式.在CentOS 7这个版本开始,默认的磁盘格式变成了xfs格式. [[email protected] ~]# cat /etc/filesystems xfs ext4 ext3 ext2 nodev proc nodev devpts iso9660 vfat hfs hfsplus * [[email protected] ~]# mou

centos配置环境变量

配置环境变量 进入环境变量配置目录,这里需要切换到root用户:cd /etc/profile.d 创建配置文件:touch hive-1.1.0.sh 打开配置文件:vi hive-1.1.0.sh 配置环境变量: #set hive environment HIVE_HOME=/home/hadoop/hive-1.1.0 PATH=$HIVE_HOME/bin:$PATH CLASSPATH=$CLASSPATH:$HIVE_HOME/lib export HIVE_HOME export

[CentOS 7系列]特殊符号

在linux使用的过程中,我们除了命令之外,还会用到一些特殊的符号.这些特殊符号在linux中各有特殊的含义. 下面罗列了常用的特殊符号: 符  号 含  义 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 $ 变量前缀,正则里面表示行尾 !$ 表示上个命令的参数 ; 多条命令写在一行,用分号分隔 ~ 用户家目录,正则表达式表示匹配符 & 放在命令后面,把命令丢到后台 > 输出重定向 >> 输出追加重定向 2> 错误输出重定向 2>>

[CentOS 7系列]忘记密码的“救星”——单用户模式和救援模式

init是Linux系统操作中不可缺少的程序之一. 是一个由内核启动的用户级进程. 内核启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式来启动其他用户级的进程或服务.所以,init始终是第一个进程(其PID始终为1).内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init.如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败. 运行级就是操作系