SHELL训练营--day1

shell 介绍

  • shell是一个壳,是基于内核提供的一个用户接口,用来解释用户输入信息及执行和反馈用户相关命令。
  • shell 具有自己的逻辑和判断处理方法,支持特定语法
  • 用户的shell设定: /etc/passwd 用户登录shell设定。centos默认是bash.另外其它shell有zsh,ksh,tcsh等。

命令历史

  • 用户输入命令,默认会保存若干条。

    • 可通过shell中上下键进行查找或重复执行命令。
    • 可通过快捷键 ctrl+R 进行查找历史命令。
    • 也可通过+命令的前些字符或是 +命令所在记录的编号 进行执行命令。

      ``` shell
      #如 最近 执行的  ls -la /tmp 查看 /tmp 目录 文件。可通过下面方法执行
      !ls
      #假如上条 ls -la /tmp 命令在命令历史中 编号是 888 那么可通过下面命令执行
      !888
      ```
    • 最近的一条命令相关信息:
      #执行最近命令 
      !! 
      #查看上条命令执行结果
      echo $?
  • 用户默认的历史命令保存在家目录下 ~/ .bash_history 文件。
  • 默认历史命令可存 1000条,通过 环境变量 $HISTSIZE 控制存储条数。
  • 当前登录用户在没有退出前,默认输入的命令会保存在内存中,在退出时会写入该文件中。
  • 清空当前用户 内存中存储 的历史命令: history -c
  • 系统设置 history 命令条数文件:/etc/profile 可通过重声明来修改。如:export HISTSIZE=5000
  • 默认系统是只保留相关的命令,没有命令执行时间 。可通过修改 环境变量保存格式来保存相关信息:HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 。也可保存在 profile 文件中。
  • 用户历史命令保存禁止删除,可通过对保存文件.history添加隐藏追加权限. 如:chattr +a ~/.bash_history

命令补全和别名

  • 为帮助用户减少输入和提醒用户命令的全名和命令的参数,linux中提供命令补全,默认是TAB键。
  • 在centos6中只支持命令补全,centos7添加参数补全。相关的包是:yum install -y bash-completion。安装后,需重启服务器。
  • 另外,有些命令和参数比较多,又比较常用,为帮助用户减少重复输入,引入别名。将长命令重命令以简短不重复的单词。
  • 查看系统默认别名:alias
  • 设置命令别名:alias xxx="命令"。如常用 的ll命令:alias ll='ls -l --color=auto'
  • 取消别名设置:unalias xxx
  • 默认全局别名设置:/etc/.bashrc 和 目录/etc/profile.d/下脚本文件。个人设置别名存放于用户家目录下:~/.bashrc

通配符

  • 除命令补全外,linux对命令的对象也引入帮助机制--通配符。
  • 常见通配符如下:

    星号*:可匹配所有的字符,不限个数,如命令:ls 1*,可匹配1.txt,133.sh
    问号?:可匹配所有字符,只匹配一个。
    单个字符范围:[123],[1-3],[abc],[a-z]等。
    单个字符范围另种表示方法:{1,2,a,3,6}等。


输入输出重定向

  • 某些命令输入输出比较多时,或是输出信息需要保存时,linux引入了输入输出重定向符号。
  • 重定向包含两种类型:重定向和追加重定向。
  • 输入重定向:< 常用来表示输入文件内容。
  • 输入追加重定向:<<后需跟终止符 如"EOF" 。表示后续输入信息都是输入的内容,直到遇见终止 符后。
     wc -l << EOF #此处回车
    hello
        world
        good
    EOF
  • 输出重定向:&gt;。输出追加重定向:&gt;&gt;
  • 输出重定向表示:命令输出的信息 保存在后面跟随的文件中,如果原文件有内容,那么之前信息会删除掉。
  • 输出追加重定向:原文件内容不变,将当前命令的输出信息追加到该文件中。
  • 一般命令输出分为两类:正确输出和错误输出。文件描述符是1和2。可通过指定文件描述符输出追加重定向来指定命令输出 的保存位置。

    如:cat 1.txt > ~/2.txt
    cat 3.txt 1&2 >> ~/2.txt
    cat 4.txt &>> ~/2.txt
    cat 6.txt 1>>~/2.txt 2>1

猜你喜欢

转载自blog.51cto.com/sincethen/2331725