Linux系统变量

shell的功能:提供给用户操作系统的接口。
bash的优点:命令记忆功能、命令和文件补全功能、命令别名设置功能、作业控制、前台、后台控制、程序脚本。

一、type判断命令是外部命令(非bash所提供的命令)还是内置在bash的命令。

命令说明
type name不加参数,type会显示出name命令是外部命令还是bash内置命令。
type -t name加‘-t’参数,type会将name命令以file、alias、builtin字眼显示其意义。
type -p name如果后面接的命令为外部命令时,才会显示完整文件名。
type -a name会由PATH变量定义的路径中,将所有含name的命令都列出来,包含alias。查看命令执行顺序,先alias,再builtin,最后由$PATH找到绝对路径。

在这里插入图片描述

二、shell的变量设置

命令说明
echo $PATH显示变量PATH的内容。
echo ${PATH }显示变量PATH的内容。
变量的设置规则示例
变量与变量的内容以一个‘=’来连接。“qq=test”。
等号两边不能直接接空格符。错误示例:“qq= test”或“myname=test test”。
变量名称只能是英文字母和数字,但开头不能是数字。错误示例:“2qq=test”。
变量内容有特殊符号可使用单引号括起来,单引号内的特殊字符仅为一般字符(即纯文本)。示例:若“qq=‘this is a $LANG’”,则“echo $qq”显示“this is a $LANG”。
变量内容有特殊符号可使用双引号括起来,双引号内的特殊字符如$可以保有原本的特性。示例:若“qq=“this is a $LANG””,则“echo $qq”显示“this is a zh_CN.UTF-8”。
可用转义字符将特殊字符(如[Enter]、$、\、空格符、!等)变成一般字符。
在一串命令中,还需要通过其他命令提供信息,可使用反单引号“`命令`”(左上方数字1左边的按键)或“$(命令)”。示例:显示内核版本设置变量“version=`uname -r`”,则"echo $version"显示“2.6.32-642.el6.x86_64”;“version=$(uname -r)”,则“echo $version”显示2.6.“32-642.el6.x86_64”。
增加变量内容,可使用 " 变 量 名 称 " 或 变量名称"或 "{变量名称}。示例“qq="$qq"gg”或“qq=${qq}gg”。
若该变量需要在其他子进程中执行,则需要以export来使变量变成环境变量。示例:“export qq”,进入子进程使用“bash”命令,离开子进程使用“exit”命令。
通常大写字符为系统默认变量,自定义变量可使用小写字符,方便判断。
取消变量的方法为使用“unset 变量名称”。示例:“unset qq”。

三、查看环境变量

命令说明
env查看环境变量。
export查看环境变量。
set查看所有变量(含环境变量和自定义变量)。
export qq将自定义变量qq变成环境变量。
影响显示结果的语系变量说明
locale影响显示结果的语系变量,可在/etc/sysconfig/i18n文件中更改语系编码。
读取来自键盘的变量说明
read qq不加任何参数,直接加变量名称,则会出现一个空白行等待你的输入。
read -p “Please input your name ” -t 30 qq读取来自键盘输入的变量内容,‘-p’后面跟提示语,‘-t’后面接等待输入的时间,30秒之内没有任何输入则略过此命令。
声明变量的类型说明
declare和set一样,显示所有的变量名称和内容。
declare -a qq将变量qq定义为数组(array)类型。
declare -i qq将变量qq定义为整数数字(integer)类型。
declare -x qq和export一样,将变量qq变成环境变量。
declare -r qq将变量qq定义为readonly类型,该变量不可被更改内容,也不能重设。
declare -p qq列出变量qq的类型。
declare +x qq取消环境变量,让qq变成自定义变量。

四、变量内容的删除

变量内容的删除与替换说明
echo ${path#/*:}从变量“path”中删除符合替换文字“/*:”的“最短的”那一个。“#”从变量内容的最前面开始向右删除,且仅删除最短的那个。
echo ${path##/*:}从变量“path”中删除符合替换文字“/*:”的“最长的”那一个。“##”从变量内容的最前面开始向右删除,且仅删除最长的那个。
echo ${path%:*bin}从变量“path”中删除符合替换文字“:*bin”的“最长的”那一个。“%”从变量内容的最后面开始向左删除,且仅删除最短的那个。
echo ${path%%:*bin}从变量“path”中删除符合替换文字“:*bin”的“最长的”那一个。“%%”从变量内容的最前面开始向左删除,且仅删除最长的那个。
echo ${path/sbin/SBIN}若变量内容符合旧字符串“,则第一个旧字符串会被新字符串替换”。
echo ${path//sbin/SBIN}若变量内容符合旧字符串“,则第一个旧字符串会被新字符串替换”。
qq=${qq-test}判断qq变量是否不存在,若不存在则将内容设为“test”,若存在或为空字符串则使用已有的设置。
qq=${qq:-test}判断qq变量是否为空或不存在,若不存在或为空则将内容设为“test”,若存在则使用已有的设置。
别名命令说明
alias列出所有命令别名。
alias vi=‘vim’设置vim的别名为vi。
unalias vi取消vim的别名。
历史命令说明
history列出所有的命令,具体的命令数量与HISTSIZE设置有关。
history n列出最近的n条命令
history -a histfile将目前新增的history命令新增入histfile中,若‘-a’后面没加histfile,则默认写入~/.bash_history。
history -c将目前shell中的所有history内容全部消除。
history -r histfile将histfile的内容读到目前这个shell的history记忆中。
history -w histfile将目前shell中的history内容写入histfiles中。
!n执行history中第n条命令。
!cd由最近的命令向前搜索命令串开头为“path”的那个命令。
!!执行上一条命令。
!3执行第3条条命令。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值