zoukankan      html  css  js  c++  java
  • Shell基础 - Bash基础功能

    1. 历史命令 history
      选项: -c 清空历史命令 -w 立即保存历史命令
      Linux 下输入过的历史命令,都会保存在根目录下的:~/root/.bash_history 文件中
      默认保存 1000 条,可在 /etc/profile 文件中修改环境变量
      !ser : 执行最后一条以 ser 开头的命令
      !! : 再次执行上一条命令
    2. 定义别名
      # alias vi = “vim” // 重启系统消失
      # unalias vi
      永久生效
      # vi /root/.bashrc
    3. 输出重定向
      标准输出重定向:命令 > 文件 覆盖的方式 命令 >> 文件 追加的方式
      标准错误输出重定向:错误命令 2> 文件 覆盖方式 错误命令 2>> 文件 追加方式
      a、以覆盖的方式,把正确输出和错误输出都保存到同一个文件
      格式:命令 > 文件 2>&1 
      命令 &> 文件
      b、以追加的方式,把正确输出和错误输出追加到同一个文件
      格式:命令 >> 文件 2>&1
      命令 &>> 文件
      c、把正确的输出追加到文件 1,错误输出追加到文件 2
      格式:命令 >> 文件 1 2>> 文件 2
    4. 脚本执行连接符
      ; 代表顺序执行 eg: 命令 1; 命令 2
      && 上一条命令成功执行了再执行下一条 eg: 命令 1&& 命令 2
      || 上一条命令执行不成功才执行 eg: 命令 1|| 命令 2
      | 命令 1 的正确输出作为命令二操作的对象 eg: 命令 1| 命令 2
    5. grep 命令
      # grep [选项] "搜索内容" 文件
      选项:
      -i : 忽略大小写
      -n:输出行号
      -v:反向查找
      –color=auto 搜索出的关键字用颜色显示
    6. 自定义变量
      变量可以由字母、数字、下划线组成,但是不能以数字开头
      变量的类型默认都为字符串类型,如果需要进行数值运算,必须修改变量类型为数值型
      变量用等号连接,等号2边都不能有空格,若变量值有空格,需要使用单引号包括
      如果需要增加变量的值,变量需要用双引号包含:“$变量名”或者用${变量名}包含
      如果把命令的结果作为变量值赋予变量,需要使用反引号或$()包含命令
      变量设置:a=123
      变量调用:echo $name
      变量查看:set
      变量删除:unset name
    7. 预定义变量

      预定义变量 作用
      $? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行,如果变量值非0,证明上一个命令执行不正确。 (echo $?)
      $$ 当前进程的进程号(PID)
      $!

      后台运行的最后一个进程的进程号(PID)


      接收键盘输入
      # read [选项] [变量名]
      选项:
      -p "提示信息" 在等待read输入时,输出提示信息
      -t 秒数 read命令会一直等待用户输入,指定等待时间
      -n 字符数 read命令只会接受指定的字符数,就会执行
      -s 隐藏输入的数据,适用于密码输入
      代码例子:

      #! /bin/bash
       
      read -t 10 -p "please input your name: " name
      # 提示请输入姓名,等待10秒,将用户输入保存到变量名name中
      echo "Name is $name"
       
      read -s -t 10 -p "please enter your age: " age
      # 年龄是隐私,用"-s" 选项隐藏输入
      echo -e "
      "
      echo "Age is $age"
       
      read -n 1 -t 10 -p "please select you gender[M/F]: " gender
      # 使用"-n 1" 选项只接收一个输入字符就会执行(不用回车)
      echo -e "
      "
      echo "Sex is $gender"
      Code
    8. declare声明变量类型

      # declare [+/-] [选项] 变量名

      选项:

      -:给变量设定类型属性

      +:取消变量的类型属性

      -i:将变量声明为整数型

      -x:将变量声明为环境变量

      -p:显示指定变量的被声明的类型

      其他方法:数值运算使用:cc = $(($aa+$bb))      或      cc = $[$aa+$bb]

    9. 只显示目录,横排显示
      ls -l |grep ^d |awk '{printf "%s  ",$9}'|sort -n
      竖排显示
      ls -l |grep ^d |awk '{{printf "%s ",$9}}' |sort -n
    10. 求2个文件交集
      sort a b  | uniq -d (都存在)
    11. 求2个文件差集
      sort a b b | uniq -u (a存在 b不存在)
  • 相关阅读:
    [转发]深入理解git,从研究git目录开始
    iOS系统网络抓包方法
    charles抓包工具
    iOS多线程中performSelector: 和dispatch_time的不同
    IOS Core Animation Advanced Techniques的学习笔记(五)
    IOS Core Animation Advanced Techniques的学习笔记(四)
    IOS Core Animation Advanced Techniques的学习笔记(三)
    IOS Core Animation Advanced Techniques的学习笔记(二)
    IOS Core Animation Advanced Techniques的学习笔记(一)
    VirtualBox复制CentOS后提示Device eth0 does not seem to be present的解决方法
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/4570434.html
Copyright © 2011-2022 走看看