文档章节

管道符作业控制、环境变量shell及环境变量配置文件

h
 hhpuppy
发布于 10/15 07:14
字数 1611
阅读 4
收藏 0

10月12日任务

8.6 管道符和作业控制

8.7/8.8 shell变量

8.9 环境变量配置文

8.6 管道符作业控制
"|"作用是将前面命令的输出作为后面命令的输入

[root@worker1 ~]# cat 4.txt | wc -l
28
[root@worker1 ~]# cat 4.txt | grep 'root'
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ctrl z 暂停一个任务

[root@worker1 ~]# vim 4.txt
 
[1]+  Stopped                 vim 4.txt
[root@worker1 ~]# vim 1.txt
 
[2]+  Stopped                 vim 1.txt
jobs查看后台的任务

[root@worker1 ~]# jobs
[1]-  Stopped                 vim 4.txt
[2]+  Stopped                 vim 1.txt
bg[id]把任务调到后台

[root@worker1 ~]# bg 1
[1]- vim 4.txt &
fg[id]把任务调到前台

[root@worker1 ~]# jobs
[1]+  Stopped                 vim 4.txt
[2]-  Stopped                 vim 1.txt
[root@worker1 ~]# fg 1
vim 4.txt
[root@worker1 ~]# jobs
[2]+  Stopped                 vim 1.txt
命令后面加&直接丢到后台
 

 

8.7/8.8 shell变量
PATH,HOME,PWD,LOGNAME

[root@worker1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@worker1 ~]# echo $HOME
/root
[root@worker1 ~]# echo $PWD
/root
[root@worker1 ~]# echo $LOGNAME
root
env命令 系统的变量

[root@worker1 ~]# env | head
XDG_SESSION_ID=4
HOSTNAME=worker1
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.139.1 4152 22
SSH_TTY=/dev/pts/1
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;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/root
set命令多了很多变量,并且包括用户自定义的变量

[root@worker1 ~]# set | head
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.2.46(1)-release'
变量名规则:字母、数字下划线,首位不能为数字

[root@worker1 ~]# value=100
[root@worker1 ~]# set | grep 100
HISTFILESIZE=1000
HISTSIZE=1000
SSH_CONNECTION='192.168.139.1 4152 192.168.139.100 22'
value=100
变量值有特殊符号时需要用单引号括起来

[root@worker1 ~]# a=1
[root@worker1 ~]# b=2
[root@worker1 ~]# echo "a$b"
a2
[root@worker1 ~]# echo 'a$b'
a$b
变量的累加

[root@worker1 ~]# a=1
[root@worker1 ~]# b=2
[root@worker1 ~]# echo "$[$a+$b]"
[root@worker1 ~]# w
02:23:26 up  2:16,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.139.1    00:07    1:17m  0.35s  0.35s -bash
root     pts/1    192.168.139.1    01:40    6.00s  0.23s  0.01s w
[root@worker1 ~]# echo $SSH_TTY
/dev/pts/1
bash 进入子shell

安装pstree,查看shell树

[root@worker1 ~]# yum install -y psmisc
[root@worker1 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon
        ├─firewalld───{firewalld}
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─wpa_supplicant
[root@worker1 ~]# bash
[root@worker1 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon
        ├─firewalld───{firewalld}
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─wpa_supplicant
[root@worker1 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon
        ├─firewalld───{firewalld}
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─wpa_supplicant
全局变量export

[root@worker1 ~]# export scan=linux
[root@worker1 ~]# echo $scan
linux
再进入一层子shell

[root@worker1 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon
        ├─firewalld───{firewalld}
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───bash───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─wpa_supplicant
[root@worker1 ~]# bash
[root@worker1 ~]# echo $scan
linux
返回到父shell

[root@worker1 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon
        ├─firewalld───{firewalld}
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─wpa_supplicant
[root@worker1 ~]# echo $scan
 
没有scan变量值,父shell不能获取子shell变量;在上一级或者另外一个bash是不生效的
取消全局变量

[root@worker1 ~]# unset scan
 

 

8.9  环境变量配置文件
在Linux系统中,用户一登录shell就自动加载一些变量,如下两个主要配置文件
/etc/profile:这个文件预设了几个重要的变量,例如PATH、USER、LOGNAME、MAIL、INPUTRC、HOSTNAME、HISTSIZE、umask等

/etc/bashrc:这个文件主要预设umask以及PS1。这个PS1就是我们在输入命令时前面的那串字符

例如,Linux系统的PS1就是[root@localhost ~]#,我们不妨看一下PS1的值,如下所示:
# echo $PS1
[\u@\h \W]\$
其中,\u指用户,\h指主机名,\W指当前目录,\$ 指字符#(如果是普通用户,则显示为$)。
 

除了以上两个系统级别的配置文件外,每个用户的主目录下还有以下几个隐藏文件
~/.bash_profile:该文件定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用

该文件输入专属于自己的shell信息,当用户登录时,该文件仅仅执行一次。

~/.bashrc:该文件包含专属于自己的shell的bash信息,当登录或每次打开新的shell时,该文件

会被读取。例如,你可以将用户自定义的别名或者自定义变量写到这个文件中。

~/.bash_history:该文件用于记录命令历史。

~/.bash_logout:当退出shell时,会执行该文件。你可以将一些清理的工作放到这个文件中。

source或者. 表示刷新配置文件
 

© 著作权归作者所有

共有 人打赏支持
h
粉丝 0
博文 59
码字总数 48916
作品 0
合肥
私信 提问
管道符作业控制、环境变量shell及环境变量配置文件

10月12日任务 8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 8.6 管道符、作业控制 cat 1.txt |wc -l ; cat 1.txt |grep 'aaa' ctrl +z 暂停一个任务 -后台暂停 jobs 查看后...

zgxlinux
10/12
0
0
21.管道符,shell变量,环境变量配置文件

五周第四次课(1月11日) 8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 扩展 bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719 简易审计系统: http://w...

Xavi2017
01/14
0
0
shell基础--2

管道符和作业控制 管道符 把前一个命令的结果传递给后一个命令 ls wc -l (wc -l 统计个数) 作业控制 Ctrl 加 z 暂停一个任务 bg 把命令丢到后天并运行 fg把后台任务调到前台运行 jobs 查看后...

在也不会是我
01/11
2
0
第5周第4课:管道符、shell变量、变量配置文件

8.6 管道符和作业控制 管道符“|” 管道符的作用在于将符号前面的结果丢给符号后面的命令。管道符后面并不是所有的命令都可以,一般针对文档操作的命令比较常用,例如cat、less、head、tai...

grassroots
01/11
0
0
shell基础(中)

一 管道符和作业控制 管道符| 将前一个命令的输出作为后一个命令的输入。 如:# cat /etc/passwd | wc -l 23行 作业控制 1 运行进程时,可以按Ctrl+z 组合键暂停。 实例如下: 2 jobs查看后台...

流逝将军
01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

三星Galaxy S10可能会配备TOF 3D摄像头

12月3日消息,据Phone Arena报道,三星Galaxy S10可能会配备TOF 3D摄像头。 Phone Arena报道称三星Galaxy S10一共有五颗摄像头(前置双摄+后置三摄),而5G版本的Galaxy S10后置四颗摄像头,...

问题终结者
30分钟前
9
0
fabric增删改查Mac

备份1.3版本,重新下载1.1版本到fabric文件夹 /opt/gopath/src/github.com/hyperledger/fabric -> /opt/gopath/src/github.com/hyperledger/fabric1.3 新建/opt/gopath/src/github.com/hype......

八戒八戒八戒
59分钟前
9
0
盘点愚人节各大网站彩蛋,谁最爱恶搞?

如今的愚人节俨然已是各品牌宣传了一个重要节日,同时,也成为了各大互联网科技企业凑热闹,比拼创意和策划的节日。跟小编一起看看有哪些有趣的策划吧! Google地图变成吃豆人游戏 每年愚人节...

临江仙卜算子
今天
6
0
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,读者至少要知道 CAS、ReentrantLock、UNSAFE 操作这几个基本的知识,文中不会对这些知识进行介绍。Java8 用到了红黑树...

java菜分享
今天
6
0
玩手机与做实验

看过这样一个故事:说的是在二十世纪二十年代初的一个深夜,担任英国剑桥大学卡文迪许实验室主任的卢瑟福来实验室检查,发现一位学生还在做实验。卢瑟福就问他:“你上午做什么了?”学生回答...

Bob2100
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部