管道符, 作业控制
管道符
它用于将前一个指令的输出作为后一个指令的输入, 例如:
- [root@localhost do]# cat 1.txt |wc -l #查看前面的文件有几行
- 2
作业控制
CTRL+z 命令是暂停一个任务,
fg (foreground 的简写) 命令恢复
bg (background 的简写) 使它到后台运行
CTRL+c 终止
例如: 使用 vi 命令编辑 1.txt 文件, 随便输入一些内容, 按 ESC 键, 使用 CTRL+z 组合暂停任务, 如下:
[root@localhost do]# vi 1.txt
[1]+ 已停止 vi 1.txt
此时 vi 1.txt 已经停止, 可以使用 fg 命令恢复它, 此时右进入刚才 vi 窗口.
[root@localhost do]# fg
jobs 可以看见被暂停或者在后台运行的任务
- [root@localhost do]# jobs #先看下当下有没有被暂停或者在后台运行的
- [root@localhost do]# vi 1.txt
[1]+ 已停止 vi 1.txt
[root@localhost do]# jobs
?[1]+ 已停止 vi 1.txt
如果想把暂停的任务放到后台重新运行, 就使用 bg
在后台运行的任务, 得 fg 调至到前台后才可以终止解除 CTRL+c
shell 变量
概念: 环境变量 PATH, 它是 shell 预设的一种变量, 通常预设的变量都是大写的.
变量就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据.
系统预设环境变量:
PATH,HOME,LOGNAME
查看现在系统预设变量的值
- [root@localhost do]# echo $PATH
- /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
env 可以列出系统预设的全部系统变量
[root@localhost do]# env
set 不仅可以显示系统预设的变量, 也可以显示用户自定义的变量
[root@localhost do]# set
自定义变量
规则: 变量名规则可以是: 字母 数字 下划线, 首位不能为数字
变量值拥有特殊符号时需要用单引号括起来
- [root@localhost /]# a=111 #自定义变量
- [root@localhost /]# echo $a #查看变量 0
- 111
- [root@localhost /]# set |grep 111 #set 查看所有变量里的 111 变量
- _=111
- a=111
特殊符号变量应用, 假如带空格, 单引号
- [root@localhost /]# a='a b c'
- [root@localhost /]# echo $a
a b cbr/> 再或者加上特殊符号!(@*&#(*@!&# 什么的.
- [root@localhost /]# echo $a
- a $bc mailto:br/%3E%E5%86%8D%E6%88%96%E8%80%85%E5%8A%A0%E4%B8%8A%E7%89%B9%E6%AE%8A%E7%AC%A6%E5%8F%B7%EF%BC%81%EF%BC%88@*&#%EF%BC%88*@%EF%BC%81&#%E4%BB%80%E4%B9%88%E7%9A%84%E3%80%82%3Cbr/
- mailto:br/%3E%E5%86%8D%E6%88%96%E8%80%85%E5%8A%A0%E4%B8%8A%E7%89%B9%E6%AE%8A%E7%AC%A6%E5%8F%B7%EF%BC%81%EF%BC%88@*&#%EF%BC%88*@%EF%BC%81&#%E4%BB%80%E4%B9%88%E7%9A%84%E3%80%82%3Cbr/
表示式复杂的时候, 用双引号引起来, 变量的累加
假设 a=1 b=2 c=a"$b"c
我想 echo 出来的结果是 a2c, 那么就用双引号给变量推出来.
- [root@localhost /]# a=1
- [root@localhost /]# b=2
- [root@localhost /]# c=a"$b"c
- [root@localhost /]# echo $c
a2c
全局变量 export a=zhang1, 向下一层生效, 上一层不生效
如果一个终端被 n 个人登陆, 怎么看自己在哪个终端呢
- [root@localhost /]# w
- 00:38:01 up 4:57, 2 users, load average: 0.08, 0.03, 0.05
- USER TTY FROM LOGIN@ 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
- [root@localhost /]# echo $SSH_TTY
- /dev/pts/1
bash 是 shell 的一个子 bash, 可以通过 pstree 查看在哪
现在是在第二个 bash 下, 第一个 bash 所设定的环境变量在第二个 bash 下不生效, 如何让第一个 bash 的自定义环境变量在第二个 bash 下生效, 利用全局变量, 具体操作如下:
首先, 先 exit 退出第二个 bash,
- [root@localhost /]# exit
- exit
然后设定一个变量, 假设 a=zhang1, 全局设定下 a 变量 export a=zhang , 具体操作如下:
- [root@localhost /]# export a=zhang1 #先 export 设置全局环境变量
- [root@localhost /]# echo $a #查看变量
- zhang1
- [root@localhost /]# bash #新建个子 shell
- [root@localhost /]# echo $a #查看变量
- zhang1
取消变量, unset 后面跟名字, 如取消 a=zhang1
- [root@localhost /]# unset a
- [root@localhost /]# echo $a
- # 没有内容
环境变量配置文件
/etc/profile 用户环境变量, 交互, 登陆才执行 (不要修改)
概念:/etc/profile 这个文件预设了几个重要的变量, 例如 PATH,USER,LOGNAME, 等变量.
/etc/bashrc 用户不用登陆, 执行 shell 就生效.(不要修改)
这个文件主要预设 umask 以及 PS1;
这个 PS1 就是我们在输入命令时前面的那串字符;
例如 Linux 系统的就是 [root@localhost ~]#
我们可以看一下 PS1 的值, 如下:
[root@localhost /]# echo $PS1
[\u@\h \W]\$
其中,\u 指用户,\h 指主机名,\W 指当前目录,\$ 指字符# (如果是普通用户则为)
~/.bashrc
概念: 该文件包含专属于自己的 shell 的 bash 信息;
当登陆或每次新打开新的 shell 时, 该文件会被读取;
例如, 你可以将用户自定义的别名或者自定义变量写到这个文件中.
~/.bash_profile
概念: 该文件定义了用户的个人化路径于环境变量的文件名称;
每个用户都可使用该文件输入专属自己的 shell 信息, 当用户登陆时, 该文件仅执行一次.
~/.bash_history
概念: 该文件用户记录命令历史.
~/.bash_logout
概念: 当退出 shell 时, 会执行该文件, 可以将一些清理的工作放到这个文件中.
更改用户自定义颜色:
- [root@localhost /]# PS1='[\033[01;32m]\u@\h[\033[00m]:[\033[01;36m]\w[\033[00m]\$'
- mailto:br/%3E%E5%86%8D%E6%88%96%E8%80%85%E5%8A%A0%E4%B8%8A%E7%89%B9%E6%AE%8A%E7%AC%A6%E5%8F%B7%EF%BC%81%EF%BC%88@*&#%EF%BC%88*@%EF%BC%81&#%E4%BB%80%E4%B9%88%E7%9A%84%E3%80%82%3Cbr/ 2018.4.20 五周第三次课
来源: http://www.bubuko.com/infodetail-2567416.html