概述
管道符
| 管道符用于将前面的输出传递给后面使用
例:
[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-brickn {__VOLNAME}n },n {barriern {__VOLNAMEn [ n {enable},n {disable}n ]n }n },n {clear-locksn {__VOLNAME}n },n {create},n {deleten {__VOLNAME}n },n {geo-replicationn [ n {__VOLNAME [n {__SLAVEURL [n {create [n {push-pemn {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='[ 33[01;32m]u@h[ 33[00m]:[ 33[01;36m]w[ 33[00m]$'
更改
[root@localhost
~
]
处的颜色
[root@localhost ~]#
echo $PS1
查看PS1变量的参数
[u@h
W
]$
若改为小写w,则使用绝对路径
[root@localhost ~]# PS1='[ 33[01;32m]u@h[ 33[00m]:[ 33[01;36m]w[ 33[00m]$'
root@localhost:~#echo PS2
PS2
root@localhost:~#
echo $PS2
>
[root@localhost ~]#
PS2=#
将PS2的变量值设为#
[root@localhost ~]# echo $PS2
#
[root@localhost ~]#
最后
以上就是甜美魔镜为你收集整理的管道符和作业控制,shell变量,变量命名规则,变量的累加,全部变量,环境变量配置文件的全部内容,希望文章能够帮你解决管道符和作业控制,shell变量,变量命名规则,变量的累加,全部变量,环境变量配置文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复