- 8.6 管道符和作业控制
管道符(|)表示把前面命令输出的结果传递给后面的命令处理
cat 1.txt |wc -l 查看1.txt文件 并查看行数,数量
cat 1.txt |grep ‘aaa’ 查看1.txt文件, 并过滤出带有aaa 的文件内容
ctrl z 暂停一个任务
jobs查看后台的任务
bg【任务id】 把任务调到后台 持续输出的命令在后台运行的标志,你还可以打命令,
fg【任务id】把任务调到前台 单打fg 会先从下
命令后面加&直接丢到后台运行
sleep 1000 暂停 休眠一千秒
- 8.7 shell变量(上) (下)
PATH,HOME.PWD.LOGNAME 变量
PATH 系统内置的变量
env 命令 通过该命令可以查看系统常用的环境变量名字(都是大写的英文字母)
set命令同样会查看变量,不同的是可以查看系统的变量也包括用户自定义的变量
自定义变量 a=111 这就是用户自定义的变量 在env里面 是不显示自定义变量的
变量名规则:字母,数字下划线,首位不能为数字
变量值有特殊符号时需要用单引号括起来,用双引号也行,不过不建议,如果里面有个$ 或者其他特殊符号是没法脱义
列子 a b c 里面带空格
变量的累加 同时显示两个变量,或者在值里面使用变量,可以用双引号括起来就可以了
或者在值里面使用变量,可以用双引号括起来就可以了,就会认为变量名的值
全局变量export b=2 只在子shell生效,打开bash 就是打开一个子shell
w可以查看当前几个用户登录系统
怎么查看自己当前的用户是哪个,通过echo $SSH_TTY 查看 当前是哪个
在pts/1 上定义一个变量
你在另一个终端 pts/2 使用该命令 是没有在pts/1上设置的变量
在pts/1上进入一个子shell 也是没有之前自定义的变量的 shell 其实就等于一个进程,在打开一个shell 等于进入另一个终端
通过远程登录 sshd 登录 通过sshd获得了一个bash,然后在这个终端下运行了一个bash(子shell)
这种变量称为 非全局变量
是在进入子shell 都会生效。
通过exprot命令 使之可以在子shell下 可以生效,指针对一个shell。只会在当前shell往下,不会往上生效
unset 变量名 取消变量。
8.9 环境变量配置文件
分两个维度,
1系统层次, etc下面的文件
2用户层次, 用户家目录下的.bash,每个用户都会有
系统层次平时不要去编辑,可以去编辑用户家目录下的(只针对该用户生效,如果需要全局生效,加载到etc下的配置文件)
/etc/profile 用户环境变量,交互,登录才执行(登录后才加载到)
/etc/bashrc 用户不用登录,执行shell就生效 (系统执行一个shell的时候)
~/.bashrc
~/.bash_profile 会自动调用.bashrc bashrc又会自动调用etc/.bashrc
~/.bash_history 命令历史
~/.bash_logout 用来定义用户退出的时候需要做的一些操作。(比如退出的时候要删除命令历史,在logout里面写就可以)
开头的点跟source命令是同一个作用意思, 加载的意思
~/.bash_profile 会自动调用.bashrc bashrc又会自动调用etc/.bashrc
profile与bashrc 两种区别在于profile在用户登录的时候,它就会自动加载profile(加载了profile,就会自动调用bashrc)bashrc是执行shell脚本的时候就会自动调用bashrc的配置
ps1 是在etc/bashrc定义的
登录系统后 命令左边的一串字符串
u 用户 h 主机名 W目录的最后一个目录
改成小写w 变成绝对路径
改括号
普通用户是$ root用户是# 显示。
ps1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[033[01;36m\]w\[033[00m\]\$ 使用可以显示颜色
ps2 用在另外一种环境里面的 进入MySQL