作业控制和变量和环境变量配置文件

管道符

把前面内容给到后面

  • cat test.txt | wc -l
  • find / -name .conf -exec ls {} \;

作业控制 (后台前台)

  • ctrl+ z #暂停当前任务,并把其放置后天
  • bg [id] #把后台暂停任务置于后台运行,此时如果有输出,会一直输出,直到程序结束或手动结束
  • fg [id] #把后台任务放置前台执行
  • jobs #查看后台任务,包括暂停任务和后台运行任务
  • kill %id #杀掉后台任务

变量

  • PATH HOME PWD LOGNAME #系统变量
  • env #查看系统变量
  • set #查看系统变量和用户自定义变量
  • a=1 #用户自定义变量
  • unset a #删除变量
  • 变量的累加 #a=”c” b=”d”;echo ab-> cd
  • 全局变量 export a=1 #可以在其子进程中生效,但是不会在其父进程中生效,用法在同一个bash中运行2个脚本可以共同使用1个变量
[test@xujb01 test]$ export test="hello world"
[test@xujb01 test]$ echo $test
hello world
[test@xujb01 test]$ bash
[test@xujb01 test]$ echo $test
hello world
[test@xujb01 test]$ bash
[test@xujb01 test]$ echo $test
hello world

pstree:
 ├─sshd─┬─sshd───sshd───bash───su───bash───vim
        │      ├─sshd───sshd───bash
        │      └─sshd───sshd───bash───bash───bash───pstree

全局变量在父进程中无效

[test@xujb01 test]$ export son="hello"
[test@xujb01 test]$ exit
exit
[test@xujb01 test]$ echo $son

pstree #查看进程树

  • 变量命名规则:

    由字母数字下划线组合,首位不能是数字
    变量值有特殊符号时,需要用单引号括起来,单引号把字符符号原样输出,不做处理,如果用双引号需要用转义符’\’原样输出
    一些特殊符号
    a=‘1b’ 和 a=b”结果不一样,和a=”a$b”结果一样

环境变量配置文件

  • /etc/profile #(系统)用户环境变量 交互 登入才执行,加载
  • /etc/bashrc #(系统)执行shell就生效,执行脚本等会执行此文件
  • ~/.bashrc #当前用户相关环境变量文件 (家目录)
  • ~/.bash_profile #自动调用->.bashrc ->/etc/bashrc,和其内容有关
  • ~./.bash_history #当前用户命令历史记录文件
  • ~./.bash_logout #用户退出执行的文件
  • PS1 #一个变量影响命令前提示:” [test@xujb01 ~] echo PS1
[\u@\h \W]\
* PS2 #续行提示符
```BASH
[test@xujb01 ~]$ echo $PS2
>

[test@xujb01 ~]$ for i in  `seq 1 10`
>
* 设置 命令提示符颜色变量: PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
暂时生效:export PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
永久生效:echo PS1='"\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "'>> /etc/bashrc

.bashrc 和 .bash_profile区别

  • .bash_profile 根据里面内容决定了会执行.bashrc,所以.bashrc执行的其也会执行
  • .bashrc只影响远程用户(ssh)和不会影响到在本地主机上登入的用户,而.bash_profile两者都会影响
    在.bashrc 添加 echo "hello bob"
    在.bash_profile中添加 echo "it's test prifile"
    在xshell中以远程登入用户时有提示,hello bob,而在本地(虚拟机上)登入有"hello bob""it's test prifile"提示,
    但是无论在xshell登入后还是本地登入后执行bash,重新调用一个shell,都只有"hello bob"提示
    

posted on 2017-11-17 07:44  游荡的鱼  阅读(326)  评论(0编辑  收藏  举报

导航