2018.4.20 五周第三次课

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018.4.20 五周第三次课相关的知识,希望对你有一定的参考价值。

管道符、作业控制

管道符

  • 它用于将前一个指令的输出作为后一个指令的输入,例如:

    [[email protected] do]# cat 1.txt |wc -l #查看前面的文件有几行
    2

作业控制

  • CTRL+z 命令是暂停一个任务,
  • fg (foreground的简写)命令恢复
  • bg (background的简写)使它到后台运行
  • CTRL+c 终止

例如:使用vi命令编辑1.txt文件,随便输入一些内容,按ESC键,使用CTRL+z组合暂停任务,如下:

[[email protected] do]# vi 1.txt

[1]+ 已停止 vi 1.txt

  • 此时vi 1.txt已经停止,可以使用fg命令恢复它,此时右进入刚才vi窗口。

    [[email protected] do]# fg

  • jobs可以看见被暂停或者在后台运行的任务

    [[email protected] do]# jobs #先看下当下有没有被暂停或者在后台运行的
    [[email protected] do]# vi 1.txt
    [1]+ 已停止 vi 1.txt
    [[email protected] do]# jobs
    ?[1]+ 已停止 vi 1.txt

  • 如果想把暂停的任务放到后台重新运行,就使用bg

在后台运行的任务,得fg调至到前台后才可以终止解除CTRL+c

shell变量

概念:环境变量PATH,它是shell预设的一种变量,通常预设的变量都是大写的。
变量就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据。
系统预设环境变量:
PATH、HOME、LOGNAME
  • 查看现在系统预设变量的值

    [[email protected] do]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

env 可以列出系统预设的全部系统变量

[[email protected] do]# env

set 不仅可以显示系统预设的变量,也可以显示用户自定义的变量

[[email protected] do]# set

自定义变量

规则:变量名规则可以是:字母 数字 下划线,首位不能为数字
变量值拥有特殊符号时需要用单引号括起来

[[email protected] /]# a=111 #自定义变量
[[email protected] /]# echo $a #查看变量0
111
[[email protected] /]# set |grep 111 #set 查看所有变量里的 111变量
_=111
a=111

特殊符号变量应用,假如带空格,单引号

[[email protected] /]# a=‘a b c‘
[[email protected] /]# echo $a
a b cbr/>再或者加上特殊符号!(@*&#(*@!&#什么的。
[[email protected] /]# echo $a
a $bc

表示式复杂的时候,用双引号引起来,变量的累加

假设a=1 b=2 c=a"$b"c
我想echo出来的结果是 a2c, 那么就用双引号给变量推出来。
[[email protected] /]# a=1
[[email protected] /]# b=2
[[email protected] /]# c=a"$b"c
[[email protected] /]# echo $c
a2c

全局变量 export a=zhang1,向下一层生效,上一层不生效

  • 如果一个终端被n个人登陆,怎么看自己在哪个终端呢

    [[email protected] /]# w
    00:38:01 up 4:57, 2 users, load average: 0.08, 0.03, 0.05
    USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
    root pts/0 192.168.139.1 00:37 4.00s 0.02s 0.02s -bash
    root pts/1 192.168.139.1 20:27 1.00s 0.40s 0.01s w
    [[email protected] /]# echo $SSH_TTY
    /dev/pts/1
    技术分享图片

  • bash是shell的一个子bash,可以通过pstree查看在哪

    技术分享图片

  • 现在是在第二个bash下,第一个bash所设定的环境变量在第二个bash下不生效,如何让第一个bash的自定义环境变量在第二个bash下生效,利用全局变量,具体操作如下:

    首先,先exit退出第二个bash,
    [[email protected] /]# exit
    exit
    然后设定一个变量,假设 a=zhang1,全局设定下a变量export a=zhang ,具体操作如下:
    [[email protected] /]# export a=zhang1 #先export设置全局环境变量
    [[email protected] /]# echo $a #查看变量
    zhang1
    [[email protected] /]# bash #新建个子shell
    [[email protected] /]# echo $a #查看变量
    zhang1

取消变量,unset 后面跟名字,如取消a=zhang1

[[email protected] /]# unset a
[[email protected] /]# echo $a
#没有内容

环境变量配置文件

/etc/profile 用户环境变量,交互、登陆才执行(不要修改)

概念:/etc/profile这个文件预设了几个重要的变量,例如PATH、USER、LOGNAME、等变量。

/etc/bashrc 用户不用登陆,执行shell就生效。(不要修改)

这个文件主要预设umask以及PS1;
这个PS1就是我们在输入命令时前面的那串字符;
例如Linux系统的就是[[email protected] ~]# 
我们可以看一下PS1的值,如下:
[[email protected] /]# echo $PS1
[\[email protected]\h \W]\$
其中,\u指用户,\h指主机名,\W指当前目录,\$指字符# (如果是普通用户则为¥)

~/.bashrc

概念:该文件包含专属于自己的shell的bash信息;
当登陆或每次新打开新的shell时,该文件会被读取;
例如,你可以将用户自定义的别名或者自定义变量写到这个文件中。

~/.bash_profile

概念:该文件定义了用户的个人化路径于环境变量的文件名称;
每个用户都可使用该文件输入专属自己的shell信息,当用户登陆时,该文件仅执行一次。

~/.bash_history

概念:该文件用户记录命令历史。

~/.bash_logout

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

更改用户自定义颜色:

[[email protected] /]# PS1=‘[\033[01;32m]\[email protected]\h[\033[00m]:[\033[01;36m]\w[\033[00m]\$ ‘


以上是关于2018.4.20 五周第三次课的主要内容,如果未能解决你的问题,请参考以下文章

五周第三次课(1月10日)

五周第三次课

五周第三次课

五周第三次课(3月7日)

Linux20180422五周第三次课(4月20日

Linux学习笔记第五周第三次课(3月7日)