linux shell 基础-2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell 基础-2相关的知识,希望对你有一定的参考价值。
管道符
管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard
error 信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入 standard input.
注意:
1、管道命令只处理前一个命令正确输出,不处理错误输出
2、管道命令右边命令,必须能够接收标准输入流命令才行。
fg
fg命令用于将后台作业(在后台运行的或者在后台挂起的作业)放到前台终端运行。与bg命令一样,若后台任务中只有一个,则使用该命令时,可以省略任务号。
在Linux系统中执行某些操作时候,有时需要将当前任务暂停调至后台,或有时须将后台暂停的任务重启开启并调至前台,这一序列的操作将会使用到 jobs、bg、和 fg 三个命令以及两个快捷键来完成。
bg
bg命令用于将作业放到后台运行,使前台可以执行其他任务。该命令的运行效果与在指令后面添加符号&的效果是相同的,都是将其放到系统后台执行。
注意:
实际上,使用bg命令与在指令后面添加符号"&"的效果是一样的。例如,使用&将find / -name password放到后台执行,输入如下命令:
find / -name password & #后台执行任务
sleep
sleep命令暂停指定的时间
变量
查看变量:
命令: env和echo、set
实例:
# 用env查看系统变量
env |grep "LANG"
LANG=en_US.UTF-8
# 当然,这里为了演示只是筛选出一个变量,其实env一般是用来查看所有变量,或者记不清楚变量名称时来查询的。
# echo命令打印变量内容
echo $HISTSIZE
1000
# 非全局自定义变量env查不到
a=SG
env|grep "SG"
# 将a变量声明成全局,再次用env查看
export a
env |grep "SG"
a=SG
set
set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值。
定义变量
变量命名方式: "="两边不能有空格
变量名称不能以数字起头
变量值如果有空格、特殊字符,需加单引号或双引号
变量分类
两种分类方式:
系统变量 PATH、HOME、HOSTNAME、SHELL、HISTSIZE、USER等
自定义变量 aa、bb等
或者
全局变量 所有程序都可调用
程序变量 只能在给变量赋值当下程序可以使用
实例:
# 利用bash命令进入一个子bash来验证全局变量和非全局变量
quanju=‘I am global‘
noqj=‘I am not global‘
# 把quanju变量声明到全局
export quanju
# 进入子bash,用pstree查看下处在哪个bash
bash
pstree|grep ‘bash‘
|-login---bash
|-sshd---sshd---bash---bash-+-grep
# 查看变量,只有全局变量quanju显示了内容,另外一个为空
echo $quanju ; echo $noqj
I am global
# PS:
# export a=aming,只能当前终端下全局
# 重新打开终端不管用,这些变量只保存在内存
取消变量
unset 变量名称(取消掉变量值)
# unset了quanju,重新查看,quanju已经不存在了
unset quanju
echo $quanju
环境变量配置文件
用户家目录下(针对该用户生效)
.bash_logout:logout的时候执行的命令
.bashrc:配置alias
.bash_profile:配置用户PATH
.bash_history:记录history内容
/etc/目录下(全局)
profile:配置PATH 用户环境变量,交互,登录才执行
bashrc:配置PS1,PATH,UMASK等 用户不用登录,执行shell就生效
重新加载配置文件命令
source 配置文件
. 配置文件
实例:
## 修改PS1变量范例
## \u代表user,\h代表hostname,\W代表路径最后一层
[[email protected] etc]# echo $PS1
[\[email protected]\h \W]\$
# 修改PS1变量最后一段为绝对路径,查看区别
# \w代表使用绝对路径
[[email protected] etc]# PS1=‘[\[email protected]\h \w]\$ ‘
[[email protected] /etc]#
# 用双引号的话必须转义掉$
[[email protected] /etc]# PS1="[\[email protected]\h \w]\\$ "
[[email protected] /etc]#
以上是关于linux shell 基础-2的主要内容,如果未能解决你的问题,请参考以下文章