管道符和作业控制,shell变量,变量命名规则,变量的累加,全部变量,环境变量配置文件

管道符
| 管道符用于将前面的输出传递给后面使用

例:
[root@localhost ~]# ls
1.txt 2.txt 3.txt 456 anaconda-ks.cfg a.txt b.txt c.txt d.txt home initial-setup-ks.cfg
[root@localhost ~]# cat 1.txt |wc -l 查看1.txt 并将输出的结果传递给wc -l命令,统计1.txt内容的行数
1
[root@localhost ~]# cat 2.txt | wc -l
0
[root@localhost ~]# cat 3.txt | wc -l
69850
[root@localhost ~]#

作业控制

ctrl+z 暂停任务,暂停进程
jobs 查看后台任务,不可跨终端查看后台任务,需用ps aux 查看进程
bg [id] 把任务调到后台执行
fg [id] 把任务调到前台执行
command & 直接将命令丢到后台执行

例:
[root@localhost ~]# ping www.baidu.com 执行ping任务
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=128 time=17.2 ms
^Z ctrl+z暂停任务
[1] + 已停止 ping www.baidu.com
[root@localhost ~]# ping www.jd.com & 直接将任务放在后台执行
[ 2 ] 1972
[root@localhost ~]# PING www.jdcdn.com (42.236.8.129) 56(84) bytes of data.
fg 64 bytes from hn.kd.ny.adsl (42.236.8.129): icmp_seq=6 ttl=128 time=1.92 ms
64 bytes from hn.kd.ny.adsl (42.236.8.129): icmp_seq=7 ttl=128 time=5.39 ms
64 bytes from hn.kd.ny.adsl (42.236.8.129): icmp_seq=8 ttl=128 time=3.58 ms
2 64 bytes from hn.kd.ny.adsl (42.236.8.129): icmp_seq=15 ttl=128 time=3.15 ms
将任务2 调到前台来执行 命令是: fg 2 可以看见在后台执行的命令虽然一直在输出,但仍可执行命令
ping www.jd.com
64 bytes from hn.kd.ny.adsl (42.236.8.129): icmp_seq=16 ttl=128 time=5.13 ms
^Z ctrl+z暂停任务
[2]+ 已停止 ping www.jd.com
[root@localhost ~]# jobs 查看后台任务
[1 ] - 已停止 ping www.baidu.com
[2] + 已停止 ping www.jd.com
[root@localhost ~]# fg 1 将任务1调到前台执行
ping www.baidu.com
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=128 time=19.2 ms
^Z ctrl+z暂停任务
[1] + 已停止 ping www.baidu.com
[root@localhost ~]#
shell变量

env命令 查看系统环境变量,系统的环境变量是大写字母,如:PATH,HOME ,PWD,LOGNAME
set命令 查看系统环境变量和用户自定义的变量

例:

[root@localhost ~]# env
XDG_SESSION_ID=1
HOSTNAME=localhost.localdomain
SHELL=/bin/bash
TERM=xterm
HISTSIZE=5000
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;0
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
XDG_DATA_DIRS=/root/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/
LESSOPEN=||/usr/bin/lesspipe.sh %s
_=/bin/env
[root@localhost ~]# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_COMPLETION_COMPAT_DIR=/etc/bash_completion.d
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.2.46(2)-release'
COLUMNS=115
DIRSTACK=()
EUID=0
FINAL_LIST=
GLUSTER_BARRIER_OPTIONS=$'\n {enable},\n {disable}\n'
GLUSTER_COMMAND_TREE=$'\n{gluster [\n \n {volume [\n {add-brick\n {__VOLNAME}\n },\n {barrier\n {__VOLNAME\n [ \n {enable},\n {disable}\n ]\n }\n },\n {clear-locks\n {__VOLNAME}\n },\n {create},\n {delete\n {__VOLNAME}\n },\n {geo-replication\n [ \n {__VOLNAME [\n {__SLAVEURL [\n {create [\n {push-pem\n {force}\n },\n {force}\n ]\n },\n {start {force} },\n {status {detail} },\n {config},\n {pause {force} },\n {resume {force} },\n {stop {force} },\n {delete {force} }\n ]\n },\n



word=word 自定义变量
变量命名规则:字母,数字,下划线,首位不能为数字

例:

[root@localhost ~]# _1=4
[root@localhost ~]# echo $_1
4
[root@localhost ~]# a=1
[root@localhost ~]# echo $a
1
[root@localhost ~]# 3=b 变量以数字命名时会报错
bash: 3=b: 未找到命令...

[root@localhost ~]# b=c d
bash: d: 未找到命令 ... 报错
[root@localhost ~]# e=df
[root@localhost ~]# echo $e
df
[root@localhost ~]# e="d f"
[root@localhost ~]# echo $e
d f
[root@localhost ~]# b= ' c d ' 当变量值大于1位且分离时,须用单引号或双引号括起来
[root@localhost ~]# echo $b
c d
[root@localhost ~]# c= " a$b "
[root@localhost ~]# echo $c
ac d 报错
[root@localhost ~]# c= ' a$b ' 当变量值中有特殊符号时,应使用单引号括起来
[root@localhost ~]# echo $c
a$b
[root@localhost ~]# 当书写复杂变量时应该用双引号把特殊符号的变量单独括起来

变量的累加
例:
[root@localhost ~]# a=1
[root@localhost ~]# echo $a
1
[root@localhost ~]# b=2
[root@localhost ~]# echo $b
2
[root@localhost ~]# echo $a$b
12

unset 变量 取消变量
例:
[root@localhost ~]# unset a
[root@localhost ~]# unset _1
[root@localhost ~]# echo $a

普通变量 word=word,即本地变量非全局,仅在本终端下生效,在另一终端查不到
全局变量export 仅限当前sshd有效 (父系向下继承全局,不可向上全局)
export word=word

例:
[root@localhost ~]# export a=b 全局变量a=b
[root@localhost ~]# echo $a
b
[root@localhost ~]# bash 开启子shell
[root@localhost ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─abrt-watch-log
├─abrtd
├─agetty
├─auditd─┬─audispd─┬─sedispatch
│ │ └─{audispd}
│ └─{auditd}
├─avahi-daemon───avahi-daemon
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─dnsmasq───dnsmasq
├─firewalld───{firewalld}
├─gssproxy───5*[{gssproxy}]
├─irqbalance
├─ksmtuned───sleep
├─libvirtd───15*[{libvirtd}]
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─packagekitd───2*[{packagekitd}]
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───sshd─┬─bash───su───bash─┬ ─bash───pstree 目前所处shell
│ │ └─2*[ping]
│ └─bash───su───bash
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
[root@localhost ~]# echo $a 依然可以查看到a变量
b
[root@localhost ~]#

环境变量配置文件

系统级环境变量配置
./etc/profile 用户环境变量,交互,登录才执行
./etc/bashrc 用户不用登录,执行shell就生效

用户级环境变量配置
~/.bash_profile
~/.bash_history
~/.bash_logout 用来定义用户每次退出时需要执行的操作

PS1变量和PS2变量 (在/etc/bashrc下)

PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$'
更改 [root@localhost ~ ] 处的颜色

[root@localhost ~]# echo $PS1 查看PS1变量的参数
[\u@\h \ W ]\$ 若改为小写w,则使用绝对路径
[root@localhost ~]# PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$'
root@localhost:~#echo PS2
PS2
root@localhost:~# echo $PS2
>
[root@localhost ~]# PS2=# 将PS2的变量值设为#
[root@localhost ~]# echo $PS2
#
[root@localhost ~]#


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值