2018.1.11 5周4次课

五周第四次课(1月11日)

8.6 管道符和作业控制

8.7/8.8 shell变量

8.9 环境变量配置文件

8.6 管道符和作业控制

1. 管道符

前面已经提过管道符|,它用于将前一个指令的输出作为后一个指令的输人。

2. 作业控制

当运行进程时,常用的命令如下:

暂停:按ctrl+Z组合键

fg n:(foreground的简写)恢复第n个进程运行

bg n:(backgroup的简写)把第n个进程放到后台运行

终止:按ctrl+C组合键

jobs:把暂停或在后台的任务列出来。

命令 &:直接把一条命令放到后台执行

实例1:

编辑1.txt文件

暂停任务

编辑aa.txt文件,并暂停

列出暂停的任务

把aa.txt放到后台去运行

实例2

运行vmstat 1

暂停任务【ctrl+Z】

命令【bg】放到后台运行

可以看到在后台运行时,我们可以运行命令对centos7进行操作

命令【fg】恢复到前台,无法运行其他命令

终止任务【ctrl+C】

实例3

直接把一条命令放到后台执行

如何关掉在后台运行的任务呢?如果你没有退出刚才的shell,那么应该先使用命令fg n把任务调到前台,然后按ctrl+c组合键结束任务

另一种情况则是,关闭当前的shell,再次打开另一个shell时,使用jobs命令并不会显示在后台运行或者被暂停的任务。要想关闭这些任务,则需要先知道它们的pid

用命令【ps aux】查找进程,会显示pid号

用命令【kill pid】结束进程。如果遇到结束不了的进程时,可以在kill后面加一个选项,即kill -9 [pid]

8.7/8.8 shell变量

在前面章节中介绍过环境变量PATH,它是shell预设的一个变量。通常,shell预设的变量都是大写的。变量就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据。就拿PATH来讲,这个PATH就代替了所有常用命令的绝对路径的设定。有了PATH这个变量,我们运行某个命令时,就不再需要输人全局路径,直接输人命令名即可。

你可以使用echo命令显示变量的值

  1. 使用env命令,可列出系统内置预设的环境变量

登录不同的用户,这些环境变量的值也不同。当前显示的是root账户的环境变量。下面简单介绍一下常见的环境变量

  • HOSTNAME:表示主机的名称。
  • SHELL:表示当前用户的shell类型。
  • HISTSIZE:表示历史记录数。
  • MAIL:表示当前用户的邮件存放目录。
  • PATH:该变量决定了shell将到哪些目录中寻找命令或程序。
  • PWD:表示当前目录。
  • LANG:这是与语言相关的环境变量,多语言环境可以修改此环境变量。
  • HOME : 表示当前用户的家目录。
  • LOGNAME : 表示当前用户的登录名.

env命令显示的变量是环境变量, 系统预设的变量其实还有很多, 你可以使用命令set把系统预设的全部变量都显示出来

  1. set命令和env命令类似,除了可以查看系统内置的环境变量,还能查看用户自定义的变量。env不会显示用户自定义变量

虽然你可以自定义变量,但是该变量只能在当前shell中生效

在Linux下设置自定义变量,有哪些规则呢?

  • 设定变量的格式为a=b,其中a为变量名,b为变量的内容,等号两边不能有空格。
  • 变量名只能由字母、数字以及下划线组成,而且不能以数字开头。
  • 当变量内容带有特殊字符(如空格)时,需要加上单引号。

  • 变量的累加,变量内容可以累加其他变量的内容,但需要加双引号

  • 变量内容中本身带有单引号,这时就需要加双引号

# myname=" Aming's "

# echo $myname

Aming's

  • 如果变量内容中需要用到其他命令,运行结果则可以使用反引号

# myname=`pwd`

# echo $myname

/root

通过上面几个例子,也许你能看出使用单引号和双引号的区别。使用双引号时,不会取消双引号中特殊字符本身的作用(这里是$),而使用单引号时,里面的特殊字符将全部失去其本身的作用。

  1. 全局变量export

1)查看你在哪个终端下:

1终端

定义一个变量

2终端

不显示1终端定义的变量

2)命令【bash】进入一个子shell

进入1终端的子shell

安装pstree命令:yum install psmisc

用pstree命令查看你现在的位置

在子shell里也不会显示父shell创建的自定义变量

退出子shell,回到父shell就显示了

说明创建的自定义变量是本地变量,只在当前终端下生效

创建全局变量用命令【export】

在2终端里还是不显示,这是因为在不同的sshd里

1终端在红框里的sshd里,2终端在黄框里的sshd里

全局变量命令【export】是向下生效,在子shell定义的变量,只有在子shell下的子shell生效。不会向上在父shell里生效

  1. 取消变量命令【unset 变量】

8.9 环境变量配置文件

1. 配置文件分2个层次

系统层次

  • /etc/profile 用户环境变量,交互,登录才执行
  • /etc/bashrc 用户不用登录,执行shell就生效

用户层次

  • ~/.bashrc
  • ~/.bash_profile
  • ~/.bash_history
  • ~/.bash_logout

编辑”.bash_profile”文件

会自动调用用户家目录下的 .bashrc

# . ~/.bashrc=#source /.bashrc

点【 . 】等同于【source】命令,加载配置文件里的配置

编辑“.bashrc”文件

会自动调用系统/etc目录下的bashrc文件

2. 如果想让设置的环境变量一直生效,该怎么做呢?这分以下两种情况。

  • 允许系统内所有用户登录后都能使用该变量。具体的操作方法是:

在/etc/profile文件的最后一行加人export myname=aming,然后运行source /etc/profile就可以生效了。此时再运行bash命令或者切换到其他账户(如su - test)就可以看到效果

# echo "export myname=Aming”> > /etc/profile

# source!$

source /etc/profile

# bash

# echo $myname

Aming

# exit

exit

# su - test

$ echo $myname

Aming

  • 仅允许当前用户使用该变量。具体的操作方法是:

在用户主目录下的 .bashrc文件的最后一行加人export myname=Aming,然后运行source .bashrc就可以生效了。这时再登录test账户,myname变量则不会生效了。这里source命令的作用是将目前设定的配置刷新,即不用注销再登录也能生效

上面讲了很多系统变量,那么在linux系统中,这些变量存在哪里呢?

  • /etc/profile:这个文件预设了几个重要的变量, 例如PATH、USER、MAIL、INPUTRC、HOSTNAME、HISTSIZE、umask等
  • /etc/bashrc: 这个文件主要预设umak以及PS1。这个PS1就是我们在输人命令时前面的那串字符。

除了以上两个系统级别的配置文件外,每个用户的主目录下还有以下几个隐藏文件。

  • .bash_profile: 该文件定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用该文件输人专属于自己的shell信息,当用户登录时,该文件仅仅执行一次
  • .bashrc: 该文件包含专属于自己的shell的bash信息,当登录或每次打开新的shell时,该文件会被读取。例如,你可以将用户自定义的别名或者自定义变量写到这个文件中
  • .bash_history:该文件用于记录命令历史
  • .bash_logout:当退出shell时,会执行该文件。你可以将一些清理的工作放到这个文件中。

3. 变量PS1

PS1就是我们在输人命令时前面的那串字符

编辑/etc/bashrc文件

其中, \u指用户,\ h指主机名,\W指当前目录(如果改为小写w,就会显示绝对路径),\$指字符#(root用户是#,如果是普通用户,则显示为$)。

可以更改方括号[ ]

带颜色:PS1='\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '

变量PS2:进入一个小终端

原文地址:http://blog.51cto.com/415326/2059881

时间: 2024-07-29 10:48:52

2018.1.11 5周4次课的相关文章

2018.3.1 10周2次课

十周第二次课(3月1日) 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机 11.14/11.15 Apache和PHP结合 配置httpd支持php httpd主配置文件/usr/local/apache2.4/conf/httpd.conf vim /usr/local/apache2.4/conf/httpd.conf   //修改以下4个地方 ServerName 搜索ServerName,把#ServerName www.example

2018.1.9 5周2次课

五周第二次课(1月9日) 7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 7.6 yum更换国内源 1.恢复之前备份的文件 2. 进入"/etc/yum.repos.d"目录 3.删除"CentOS-Base.repo"文件 4.下载"163.repo"文件 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -O http://mirrors

2018.1.16 6周2次课

六周第二次课(1月16日) 9.4/9.5 sed 9.4/9.5 sed 其实grep工具的功能还不够强大,它实现的只是查找功能,而不能把查找的内容替换.以前用vim操作文档的时候,可以查找也可以替换, 但只限于在文本内部操作,而不能输出到屏幕上.sed工具以及后面要介绍的awk工具就能把替换的文本输出到屏幕上,而且还有其他更丰富的功能.sed和awk都是流式编辑器,是针对文档的行来操作的. sed  '/x/'p filename:匹配x字符 sed  -n  '/x/'p  filenam

2018.4.23 17周4次课

十七周4次课(4月23日) 20.20 告警系统主脚本 20.21 告警系统配置文件 20.22 告警系统监控项目 20.20 告警系统主脚本 创建告警系统的目录: [[email protected] /usr/local/sbin]# mkdir mon [[email protected] /usr/local/sbin]# ls mon  nginx_log_rotate.sh [[email protected] /usr/local/sbin]# cd mon [[email pro

2018.4.11 三周第三次课

LVM讲解(扩容缩容) 概念:LVM是logical volume manager的缩写(逻辑分区),方便对于对圈组.逻辑卷的大小进行调整,更进一步调整文件系统的大小. 优点:在使用很多硬盘的大系统中,使用LVM主要是方便管理.增加了系统的扩展性. 准备磁盘分区,先把硬盘umount第一步: 添加硬盘进行分区:[[email protected] ~]# fdisk /dev/sdb 第二步:创建三个新分区,分别是1G, n 第三步:-t 改变分区类型为8e(LVM),只有这样才可以做物理卷 命

2018.1.12 5周5次课

五周第五次课(1月12日) 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 8.10 shell特殊符号cut命令 1. 特殊符号 * 任意个任意字符 *代表零个或多个任意字符 ? 任意一个字符 ?只代表一个任意的字符 # 注释字符 表示注释说明,即#后面的内容都会被忽略 \ 脱义字符 这个字符会将后面的特殊符号 (如*) 还原为普通字符 | 管道符 这个字符前面曾多次出现过,它的作用是将前面

2018.02.26 9周4次课

九周第四次课(2月26日) 11.1 LAMP架构介绍 11.2 MySQL.MariaDB介绍 11.3/11.4/11.5 MySQL安装 11.1 LAMP架构介绍 MySQL.MariaDB介绍 MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀) MySQL官网https://www.mysql.com  最新版本5.7GA/8.0DMR MySQL5.6变化比较大,5.7性

2018.2.27 9周5次课

九周第五次课(2月27日) 11.6 MariaDB安装 11.7/11.8/11.9 Apache安装 11.6 MariaDB安装 cd /usr/local/src 下载二进制安装包:wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz 解压安装包:tar -zxvf mariad

2018.2.28 10周1次课

十周第一次课(2月28日) 11.10/11.11/11.12 安装PHP5 11.13 安装PHP7 11.10/11.11/11.12 安装PHP5 关于PHP版本,目前大多企业都会使用5.4及更高版本,甚至越来越多的企业使用PHP7版本.7和5两个版本还是有很大差异的,据说7版本有很大的性能提升,但7版本还是太新了,很多企业的网站不一定能兼容.新事物取代旧事物是必然趋势,所以在后续的学习和工作中,建议你要与时俱进,敢于尝试.在本实验中,使用的PHP版本为5.6,PHP的官方下载地址为 :