5-4 8 管道符 作业控制 shell变量 环境变量配置
博客专区 > 阿想 的博客 > 博客详情
5-4 8 管道符 作业控制 shell变量 环境变量配置
阿想 发表于4个月前
5-4 8 管道符 作业控制 shell变量 环境变量配置
  • 发表于 4个月前
  • 阅读 10
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

8.6 管道符和作业控制

管道符: |
用法:xxx | yyy 将xxx的输出结果给yyy处理

[root@axiang-02 ~]# cat 1.txt 
xxx     Math English C++  Experiment  
Monkey  100   90     95   Good  
Cat     80    100    60   Perfect  
Dog     90    60     70   Great  
Tiger   95    85     90   Fantastic

[root@axiang-02 ~]# cat 1.txt |wc -l ; cat 1.txt |grep 95
5
Monkey  100   90     95   Good  
Tiger   95    85     90   Fantastic
  • 管道符“|”:表示把输出的内容传递给后面的命令

作业控制

  • ctrl z 将当前任务暂停并放到后台
  • jobs 查看后台的任务
  • bg [id]后台执行任务
  • fg [id]前台执行任务
  • xxx&丢到后台

8.7/8.8 shell变量

常见环境变量

PATH,HOME,PWD,LOGNAME,SSH_TTY

[root@axiang-02 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@axiang-02 ~]# cd /tmp
[root@axiang-02 tmp]# echo $HOME
/root
[root@axiang-02 tmp]# pwd
/tmp
[root@axiang-02 tmp]# echo $PWD
/tmp
[root@axiang-02 tmp]# which pwd
/usr/bin/pwd
[root@axiang-02 tmp]# logname
root
[root@axiang-02 tmp]# which logname
/usr/bin/logname

[root@lixiang01 ~]# echo $SSH_TTY 查看自己是那个终端
/dev/pts/3
[root@lixiang01 ~]# w 查看有几个终端
 10:17:53 up  1:06,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.83.1     09:59   16:25   0.21s  0.21s -bash
root     pts/1    192.168.83.1     10:04   12:59   0.11s  0.11s -bash
root     pts/3    192.168.83.1     09:55    1.00s  0.71s  0.07s w

env命令

查看环境变量

[root@axiang-02 tmp]# env | tail
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=10.1.1.1 55509 10.1.1.8 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/env
OLDPWD=/root

set命令

查看更多变量,包括自定义变量

[root@axiang-02 ~]# aaa=axiang
[root@axiang-02 ~]# set |grep aaa
aaa=axiang

自定义变量

[root@axiang-02 tmp]# a=xxx
[root@axiang-02 tmp]# c=a;echo $c     没$不传递值
a
[root@axiang-02 tmp]# c=$a;echo $c    有$传递值
xxx
[root@axiang-02 tmp]# c='$a';echo $c  单引号脱义$
$a
[root@axiang-02 tmp]# c="$a";echo $c  双引号不脱义$
xxx


  • 变量名规则:字母、数字下划线,首位不能为数字

export命令

全局声明变量,可以备继承

[root@lixiang01 ~]# export a=axianglinux
[root@lixiang01 ~]# bash
[root@lixiang01 ~]# bash
[root@lixiang01 ~]# pstree   用pstree查看,向下生效。是脚本间变量生效
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─anacron
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─firewalld───{firewalld}
        ├─irqbalance
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd─┬─bash───bash───bash───pstree
        │      │      └─bash
        │      └─sshd───bash
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}
[root@lixiang01 ~]# echo $a
axianglinux
[root@lixiang01 ~]# unset a  取消定义
[root@lixiang01 ~]# echo $a


  • 变量只能继承,不能上传或旁传

8.9 环境变量配置文件

系统级

  1. /etc/profile 用户环境变量,交互,登录才执行,会调用bashrc。其中主要包含PATH USER LOGNAME MAIL INPUTRC HOSTNAME HISTSIZE umask
  2. /etc/bashrc 用户不用登陆,执行shell就生效,主要有umask PS1

用户级

用户家目录下有自己的环境配置文件,是隐藏的

  1. ~/.bashrc,PS1='[\033[01;32m][\u@\h \w][\033[0m]$ ' 这里定义比较合适
  2. ~/.bash_profile //自定义别名可以写这里
  3. ~/.bash_history //用于记录命令历史
  4. ~/.bash_logout //定义退出的命令,可以将一些清理工作放到这个文件钟
  • profile主要为登陆用户初始化环境,会调用同级的bashrc
  • bashrc定义的环境,不登录也生效,这里定义比较保险

扩展

bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719

共有 人打赏支持
粉丝 0
博文 72
码字总数 69742
×
阿想
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: