zoukankan      html  css  js  c++  java
  • Bash基本功能

    Bash的基本功能

    1. 历史命令

      [root@localhost ~]#history [选项] [历史命令保存文件]
      

      选项:-c 清空历史命令

      -w: 把缓存中的历史命令写入历史命令保存文件~/.bash_history

      历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改

      历史命令的调用:

      • 使用上、下箭头调用以前的历史命令
      • 使用“!n”重复执行第n条历史命令
      • 使用“!!”重复执行上一条命令
      • 使用“!字串”重复执行最后一条以该字串开头的命令
    2. 命令补全:在Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Tab”键就会自动进行补全

    3. 命令别名

      [root@localhost ~]#alias 别名='原命令'
      

      #设定命令别名

      [root@localhost ~]#alias
      

      #查询命令别名

      [root@localhost ~]#unalias 别名
      

      #删除别名

    4. 使用命令行定义别名只会临时生效,重启系统之后则会失效,使用#vi /root/.bashrc写入文件可以让root用户的别名永久生效

    5. 命令执行顺序:

      (1) 第一顺位执行用绝对路径或相对路径执行的命令。(./hello.sh

      (2) 第二顺位执行别名。

      (3) 第三顺位执行Bash的内部命令。(例:cd

      (4) 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。(例:ls

    6. Bash常用快捷键

      快捷键 作用
      ctrl+a 把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。
      ctrl+e 把光标移动到命令行结尾。
      ctrl+c 强制终止当前的命令。
      ctrl+l 清屏,相当于clear命令。
      ctrl+u 删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便
      ctrl+k 删除或剪切光标之后的内容。
      ctrl+y 粘贴ctrl+U或ctrl+K剪切的内容。
      ctrl+r 在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。
      ctrl+d 退出当前终端。
      ctrl+z 暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。
      ctrl+s 暂停屏幕输出。
      ctrl+q 恢复屏幕输出。
    7. 标准输入输出

      设备 设备文件名 文件描述符 类型
      键盘 /dev/stdin 0 标准输入
      显示器 /dev/sdtout 1 标准输出
      显示器 /dev/sdterr 2 标准错误输出
    8. 输出重定向

      类型 符号 作用
      标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。
      标准输出重定向 命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或设备当中。
      标准错误输出重定向 错误命令 2>文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中。
      标准错误输出重定向 错误命令 2>>文件 以追加的方式,把命令的错误输出输出到指定的文件或设备当中。
      正确输出和错误输出同时保存 命令 > 文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
      正确输出和错误输出同时保存 命令 >> 文件 2>&1 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
      正确输出和错误输出同时保存 命令 &>文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
      正确输出和错误输出同时保存 命令 &>>文件 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
      正确输出和错误输出同时保存 命令>>文件1 2>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中。
    9. 输入重定向

      • 命令<文件 #把文件作为命令的输入

      • 命令<< 标识符
        …
        标识符
        

        #把标识符之间内容作为命令的输入

    10. 多命令顺序执行

      多命令执行符 格式 作用
      ; 命令1 ;命令2 多个命令顺序执行,命令之间没有任何逻辑联系
      && 命令1 && 命令2 逻辑与
      当命令1正确执行,则命令2才会执行
      当命令1执行不正确,则命令2不会执行
      || 命令1||命令2 逻辑或
      当命令1 执行不正确,则命令2才会执行
      当命令1正确执行,则命令2不会执行
    11. 管道符

      [root@localhost ~]#命令1|命令2
      

      #命令1的正确输出作为命令2的操作对象

      例:

      [root@localhost ~]#ll -a /etc/ | more
      
      [root@localhost ~]#netstat -an | grep "ESTABLISHED"
      
    12. grep命令

      [root@localhost ~]#grep [选项] "搜索内容" 文件名
      

      #在文件当中搜索符号条件的字符串。

      选项:-i 忽略大小写
      -n 输出行号
      -v 反向查找
      --color=auto 搜索出的关键字用颜色显示

    13. 通配符

      通配符 作用
      匹配一个任意字符
      * 匹配0个或任意多个任意字符,也就是可以匹配任何内容
      [] 匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c。
      [-] 匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母。
      [^] 逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。

      例:

      [root@localhost ~]#cd /tmp/
      [root@localhost tmp]#rm -rf *
      [root@localhost tmp]#touch abc
      [root@localhost tmp]#touch abcd
      [root@localhost tmp]#touch 012
      [root@localhost tmp]#touch 0abc
      [root@localhost tmp]#ls ?abc
      [root@localhost tmp]#ls [0-9]*
      [root@localhost tmp]#ls [^0-9]*
      
    14. Bash中其他特殊符号

      符号 作用
      ' ' 单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。
      " " 双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。
      `` 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和(()作用一样,不过推荐使用)(),因为反引号非常容易看错。
      $() 和反引号作用一样,用来引用系统命令。
      # 在Shell脚本中,#开头的行代表注释。
      用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
      转义符,跟在之后的特殊符号将失去特殊含义,变为普通字符。如$将输出“$”符号,而不当做是变量引用。

      例:

      #反引号与$()
      [root@localhost ~]#echo `ls`
      [root@localhost ~]#echo $(date)
      #单引号与双引号
      [root@localhost ~]#name=sc
      [root@localhost ~]#echo '$name'
      [root@localhost ~]#echo "$name"
      [root@localhost ~]#echo ‘$(date)'
      [root@localhost ~]#echo “$(date)"
      
  • 相关阅读:
    Exception in thread "main" java.lang.IllegalArgumentException:解决方法
    Warning: $HADOOP_HOME is deprecated.解决方法
    Android :TextView使用SpannableString设置复合文本
    一、harbor部署之centos7的基本配置
    木马基础知识要点
    【原创】红客闯关游戏部分题解
    【原创】利用Office宏实现powershell payload远控
    【原创】字典攻击教务处(BurpSuite使用)
    【原创】逆向练习(CrackMe)
    显式游标和隐式游标二者的区别
  • 原文地址:https://www.cnblogs.com/yangyu-IoT/p/12898257.html
Copyright © 2011-2022 走看看