保障4-0402任务打卡

8.1 shell介绍

  • shell是一个命令解释器,提供用户和机器之间的交互。(人机接口,把人话翻译成机器话。)
  • 支持特定语法,比如逻辑判断、循环。
  • 每个用户都可以有自己特定的shell。
  • CentOS7默认的shell是bash(Bourne Agin Shell)
  • shell还有其他种类例如zsh、ksh等等。

8.2命令历史

8.2.1 /用户家目录/用户/bash.history文件

这个文件记录了了用户所使用过的历史命令。

8.2.2 环境变量HISTSIZE

  • echo $HISTSIZE
  • 这个变量定义了系统可以存储命令的最大条目数。
  • /etc/profile 中定义了这个变量的内容。可以根据自己的需要更改。
  • 要想使这个配置生效,只有重开终端,或者使用source /etc/profile。

8.2.3 history命令

  • 显示历史命令
  • 选项-c 清空内存中的命令历史。(注意是内存)
  • 变更history输出内容的格式:HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
    8-1.png
  • 永久变更环境变量应该更改/etc/profile文件。

8.2.4 永久保存命令历史

chattr +a ~/.bash_history

  • 即使HISTSIZE设置了最大条目,这样也会使内存里的命令记录到.bash_history文件里。
  • 如果没有正常退出终端不会把内存里的命令记录到历史里。

8.2.5 重复执行命令历史中的命令

  • 两个叹号表示最后一次执行的命令
  • 叹号加数字,重复执行指定编号的命令。
  • 叹号加命令,重复执行最后一次使用这条命令的历史。

8.3 命令补全和别名

8.3.1 tab命令补全

  • 使用命令时可以只打这个命令的前几个字母,按tab键系统会自动补全整条命令。
  • 敲一下就可以使命令补全。
  • 如果发生命令前几个字母重复,按两下tab键可以自动列出可能的命令。

8.3 通配符

8.3.1 星号*

  • 可以代替任意个任意字符。

8.3.2 问号

  • 可以代替任意一个字符。

8.3.3 区间 []

  • 方括号的内容是一范围
  • 每次只取其中的一个值
  • 数字0-9,字母a-z,大写字母A-Z。

8.3.4 花括号{}

  • 用法和方括号类似。
  • 花括号的内容可以不关联。

8.4 输出重定向

8.4.1 屏幕输出内容定向至文件。

  • 一个大于号是覆盖重定向,会把内容全部改写为现有的。
  • 两个大于号是追加,会把内容追加到文件的末尾去。

8.4.2 记录错误信息

  • 2>会把命令执行产生的错误信息写到向边的文件里。
  • 2>>会把命令执行产生的错误信息追加到文件里。

8.4.3 输出内容和错误信息同时存在

  • 使用&>和&>>来代表把执行内容和错误信息都写进文件里。

8.4.4 输入重定向

  • wc -l < 1.txt
  • 把右边的文件内容交给左边的命令去操作。
  • 重定向操作左边必须是命令,右边必须是文件。

8.6 管道符和作业控制

8.6.1 管道符

  • grep 命令是用来过滤关键字的。
  • |坚线就是管道符。他的作用是把左边命令生成的内容交给右边的命令去处理。

8.6.2 暂停任务

  • ctrl+z 可以暂停当前的命令,光标回到提示符。
  • 被暂停的服务或命令,这时在后台。

8.6.3 列出已停止的命令

  • jobs可以把后台已停止的命令列出来。
  • []方括号的数字就表示这个命令的编号,这个编号可以被fg命令使用。

8.6.4 把后台命令调用至前台。

  • 直接使用fg会把最后一个使用过的后台命令调用至前台。
  • fg n #n为后台命令的编号,可以把指定编号的命令调用至前台。

8.6.5 把前台命令调用至后台。

  • bg n #把指定命令调用至后台。
  • n是用jobs所列出命令的编号。

8.7 变量

  • 常用系统变量PATH , HOME ,PWD ,LOGNAME
  • 系统变量通常是大写字母。

8.7.1 env命令

  • 可以获取系统变量
  • 使系统显示中文的变量内容: LANG=zh_CN.UTF-8

8.7.2 set命令

  • set不仅会显示系统变量,还会显示用户自定义的变量。

8.7.3 自定义变量

  • 用“变量名=变量值”这种方法为变量赋值。
  • 变量名可以是字母加下划线或数字。
  • 变量名首位不能为数字。
  • 变量值带空格时,需要用双引号把变量值引起来,表示这是一个整体。
  • 双引号内的符号可以运行,单引号内的符号是作为字符存在的。

8.7.4 全局变量声明 export

  • 查看自己终端所在的tty.
    echo $SSH_TTY
  • pstree 可以查看自己所在的终端位置
  • export $变量名
    可以把变量应用到全局去。新开的子shell也可以使用这个变量。
  • 即使使用了export,不在同一个终端下变量也不会被应用。
  • 所谓的全局是向下应用。而他的上级是不受影响的。

8.7.5 取消变量的赋值

  • unset 变量名

8.9 环境变量配置文件

8.9.1 系统层次环境变量

  • /etc/proflie 用户登录才会执行
  • /etc/bashrc 用户不需要登录,只要系统执行shell就会生效。

8.9.2 用户层次环境变量

  • /.bashrc和/bash_profile对应系统环境变量的两个文件。
  • 点和source的作用是一样的。

8.9.3系统变量PS1

  • 提示符左侧所显示的内容就是PS1变量的内容。
  • 默认显示是
    [\u@\h \W]$
    \u是用户\h是主机名\W大写的W是路径的最后一层级。
  • 如果最后一位是小写w就会变成绝对路径。
  • 最后一位提示符,普通用户是$,root用户就是#了。
  • echo显示颜色的方法在这里也可以使用。

直播笔记

bashrc和bash_profile

http://ask.apelearn.com/question/7719

  • .bash_proflie对应login sehlls ,需要用户登录。
  • .bashrc对应non-login sehlls.并不一定需要用户登录。
  • .bash_proflie和/etc/bash_profile的区别在于,后者是全局,而前者只对应用户。
  • profile肯定会调用bashrc,反之则不会。

echo 显示颜色

http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html

source 和exec的区别

http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html

  • source不会产生新的PID,会把子脚本里的变量带出来。
  • exec执行后不会返回父进程。
  • exec一般被用来记录日志。在它后边执行的脚本都被归档为它自己。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值