8.6 管道符和作业控制

8.6.1管道符 管道符"|",其作用是把前面的命令运行的结果交给后面的命令,例如cat 1.txt | grep 'test' 8.6.2作业控制

  • Ctrl + z :暂停一个任务
  • Ctrl + c :终止一个任务
  • bg[id]:把任务放到后台运行,不加id则是操作最近的那个任务(id系统给予任务的编号)
  • fg[id]:把任务调到前台运行,不加id则是操作最近的那个任务(id系统给予任务的编号)
  • jobs:查看后台任务
  • 如果在命令后面加&会直接将任务放到后台运行,例如输入sleep 1000 &,该任务会直接在后台运行.

8.7/8.8 shell变量

  • 变量,简单说就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据.通常,shell预设的变量都是大写的,例如PATH,HOME,PWD,LOGNAME.

  • 设置自定义变量的规则:

  1. 设定变量的格式为 “a=b”,其中a为变量名,b为变量的内容,等号两边不能有空格.
  2. 变量名只能由英、数字以及下划线组成,而且不能以数字开头.
  3. 当变量内容带有特殊字符(如空格)时,需要加上单引号;但若变量内容中本身带有单引号,则需要用双引号.
  4. 变量内容可以累加其他变量的内容,需要加双引号,例如a=b, echo** $a"HOSTNAME"**
  • 全局变量的作用是让这个变量在该shell的子shell也能生效,但反过来子shell声明的全局变量在父shell不生效.即是说全局变量仅仅是在子shell中生效.
  • 要取消某个变量,使用 unset 变量 则能取消.

常用命令:

  • env命令:列出系统预设的全部变量
  • set命令:列出系统预设的变量,以及用户自定义的变量
  • w命令:显示已经登陆系统的用户列表,并显示用户正在执行的指令
  • bash命令:进入子shell
  • echo $SSH_TTY #查看当前用户的TTY号

8.9 环境变量配置文件[疑难]

  • 8.9.1系统环境变量配置文件
  • /etc/profile 该文件预设了几个重要的变量,像PATH, USER, LOGNAME, MAIL, INPUTRC, HOSTNAME, HISTSIZE, umask等等.
  • /etc/bashrc 该文件主要预设umask以及PS1.这个PS1就是我们在敲命令时,前面那串字符了,例如[root@localhost ~]#.
  • 8.9.2个人环境变量配置文件
  • ~/.bashrc 该文件包含专用于你的shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。例如你可以将用户自定义的alias或者自定义变量写到这个文件中.
  • ~/.bash_profile 定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次.
  • ~/.bash_history 记录历史命令用.
  • ~/.bash_logout 当退出shell时,会执行该文件.可以把一些清理的工作放到这个文件中.