Linux基础之shell变量
Posted jks212454
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础之shell变量相关的知识,希望对你有一定的参考价值。
Linux基础之shell变量
一、shell变量及其他相关介绍
1.编译型语言和解释型语言
编译型语言:编译型语言写在程序执行之前,需要一个专门的编译过程,把程序编译程机器语言。例如Windows的exe格式软件包。
解释型语言:解释型语言不需要编译,在运行程序的时候需要翻译,例如Linux shell中,/bin/bash等。
2.变量:在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。Shell变量的名称以一个字母或者下划线符号开始,后面可以接任意长度的字母、数字或者下划线。
3.变量赋值:变量赋值的方式为变量名称=值,其中“=“两边不能空格。
二、shell变量类型
1.本地变量:由用户自定义的变量名和变量值。又称为局域变量,仅在当前shell中有效,不会继承到子shell。
2.全局变量:全局变量在全局范围内可见,在声明全局变量时,不需要加任何修饰词,仅在当前shell和子shell中有效。
三、shell变量用法
1.本地变量用法
①定义本地变量
[root@control ~]# with_sapce="this is a test variable"
[root@control ~]# echo $with_sapce
this is a test variable
②查看定义的变量
[root@control ~]# set |grep with
with_sapce='this is a test variable'
③取消定义本地变量
[root@control ~]#
[root@control ~]# unset with_sapce
[root@control ~]# echo $with_sapce
[root@control ~]#
2.全局变量用法
①定义全局变量
[root@control ~]# export ATEST=12345
[root@control ~]# echo $ATEST
12345
②查看全局变量
[root@control ~]# env |grep ATEST
ATEST=12345
③取消全局变量
[root@control ~]# unset ATEST
[root@control ~]# echo #ATEST
[root@control ~]#
3.系统的一些全局变量
[root@control ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/nginx/sbin
[root@control ~]# echo $HISTSIZE
20000
[root@control ~]# echo $PS1
[\\u@\\h \\W]\\$
[root@control ~]# echo $HOME
/root
[root@control ~]# echo $UID
0
四、定义命令别名
1.定义方法
[root@control ~]# alias test='ls -laF'
[root@control ~]# test /data
total 1152044
drwxr-xrwx. 9 root root 4096 May 5 12:16 ./
dr-xr-xr-x. 31 root root 4096 May 6 15:20 ../
-rw-r--r--. 1 root root 1073741824 Feb 22 21:46 1G.txt
-rw-r--r--. 1 root root 1048576 Feb 22 21:45 1M.txt
drwx------. 2 root root 99 Apr 19 13:33 audit/
-rw-r--r--. 1 root root 715 Jan 30 23:42 block.txt
drwxr-xr-x. 2 root root 6 Jan 24 15:58 dir1/
drwxr-xr-x. 2 root root 6 Jan 24 15:58 dir2/
-rwSrwxr--+ 1 root root 0 Jan 24 15:59 file1*
-rw-r--r--. 1 root root 0 Jan 24 15:59 file2
-rw-r--r--. 1 root root 0 Jan 24 15:59 file3
-rw-r--r--. 1 root root 0 Apr 30 13:58 file{o..20}
-rw-r--r--. 1 root root 160 Jan 4 15:41 hello.txt
drwxr-xr-x. 2 root root 21 May 5 12:17 log/
-rw-r--r--. 1 root root 3095 Apr 26 18:50 passwd
-rw-r--r--. 1 root root 3128 Apr 26 18:48 passwd.bak
-rw-r--r--. 1 root root 122 Jan 27 17:34 person.txt
drwxr-xr-x. 2 root root 6 Jan 24 16:39 redhat/
drwxr-xr-x. 2 root root 4096 Jan 24 22:29 scripts/
-rw-r--r--. 1 root root 104857801 Apr 29 01:56 test.txt
drwxr-xr-x. 2 root root 4096 May 1 19:36 tmp/
-rw-r--r--. 1 root root 403 Apr 29 18:31 weblog.txt
2.查看定义的别名
[root@control ~]# alias test
alias test='ls -laF'
3.取消定义的命令别名
[root@control ~]# unalias test
[root@control ~]# alias test
-bash: alias: test: not found
3.永久生效别名
[root@control ~]# echo "alias test='ls -laF'" >> ~/.bashrc
[root@control ~]# alias test
-bash: alias: test: not found
[root@control ~]# source ~/.bashrc
[root@control ~]# alias test
alias test='ls -laF'
五、系统变量文件定义说明
/etc/profile :全局环境变量
~/.bash_profile:用户环境变量
/etc/bashrc:全局环境变量
~/.bashrc:用户环境变量
以上是关于Linux基础之shell变量的主要内容,如果未能解决你的问题,请参考以下文章