zoukankan      html  css  js  c++  java
  • 一:Shell基础


    1.shell概述
      shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至是编写一些程序;
      shell还是一个功能强大的编程语言,易编写,易调试,灵活性较强。

       shell是解释执行的脚本语言,在shell中可以直接调用Linux系统命令;
      用户输入命令,shell讲命令通过ascii码表翻译成二进制给内核,内核调用计算机硬件来处理;同时计算机硬件可以将信息传给内核,然后内核讲信息传递个shell,shell讲   字符显示出来,相当于逆过程;
      Windows有shell吗?其实Windows中不叫shell,图形化界面操作也可以叫做“shell”,只不过不这么叫而已;
    2.shell分类
      1.bourne shell基本淘汰,bourne家族主要包括sh,ksh,bash,psh;
      2.c shell,主要包括:csh,tcsh;
         Linux下所有支持的shell都可以在/etc/shells 里面查询;

    3.脚本执行方式

    1、echo输出命令和脚本执行格式:echo [选项] [输出内容]

    选项: -e:支持反斜线控制的字符转换
    echo "bols he cangls ni xihuan nayige"
    a - 输出警告音
     - 退格符
    - 换行符
    - 回车键
    - 制表符,也就是tab键
    v - 垂直制表符
    nnn - 按照八进制ASCII码输出字符
    xhh - 按照十六进制ASCII表输出字符
    echo -e "bols he cangls ni xihuan nayige"
    echo -e "hello"
    echo -e "h e l l o "
    echo -e "x68 x65 x6c x6c x6f"
    echo -e "e[1;31m嫁人就要嫁凤姐e[0m"
    #输出颜色 e[1;##m - 开启颜色显示; e[0m - 关闭颜色显示
    #30m=黑色,31m=红色,32m=绿色,33m=黄色
    #34m=蓝色,35m=洋红,36m=青色,37m=白色

    2、脚本执行:
    方法1:赋予执行权限,直接运行
       chmod 755 hello.sh
       ./hello.sh(或者绝对路径执行 /root/hello.sh)
    方法2:通过Bash调用执行脚本
        bash hello.sh
    3、
    #!/bin/Bash
      不是注释,它标称下面的内容是linux的标准脚本程序
      如果该脚本使用纯shell语句完成,不加#!/bin/Bash,运行没问题
      但脚本调用了其他语言,就会报错

    4.别名和快捷

        1、可以通过alias ls='ls --color=never'设置新的别名

         alias查看别名,前面为别名,后面为全名

    一般是重启,重登录之后,就失效!
    如果要长久有效,需要配置文件,配置好

    vim比vi功能更强大,可以通过设置 alias vi='vim'的别名来调用,但是重启重登录之后失效

    2、将别名写入配置文件:
    vi ~/.bashrc #写入配置文件 永久生效
    ~是指每个用户的目录,每个用户的目录不一样,配置文件不一样,生成的效果也不一样
    写完之后,source .bashrc

    unalias 别名 #删除别名

    3、命令生效的顺序

    第一顺位:执行命令用绝对路径或者相对路径执行的命令
    第二顺位:执行别名命令
    第三顺位:执行Bash内部命令
    第四顺位:按照$PATH环境变量定义的目录查找的顺序第一的命令

    4、快捷键
    Ctrl c 强制终止 
    Ctrl l 清屏 
    Ctrl u 删除到行首 
    Ctrl a 光标移动到行首 
    Ctrl e 移动到行尾 
    Ctrl z 把命令放到后台 (没有终止,仅仅是放入后台执行)
    Ctrl r 在历史记录中搜索

    5.历史命令

        history 历史命令

      history [选项] [历史命令保存文件]

    -c 清空历史命令
    -w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
    #默认保存1000条
    HISTSIZE=1000
    #vi /etc/profile 环境变量配置文件修改HISTSIZE

    基本调用
    上下箭头来重复调用
    !n 来执行第n条历史命令
    !! 重复执行上一条命令
    !字符串 重复执行后一个该串开头的命令

    Tab键
    进行命令(环境变量)和目录补全(操作路径)

    6.输出重定向

     

    命令 &> /dev/null 将命令执行信息放到黑洞了或可以理解为垃圾回收站

    7.管道符

     

    ";"连接命令 顺序执行
    "&&"连接命令 逻辑与执行 第一条执行 第二条执行 第一条错误 第二条不执行
    "||"连接命令 逻辑或执行 第一条执行 第二条不执行 第一条错误 第二条执行
    脚本中的应用:命令 && echo yes || echo no 命令正确yes 错误no
    注意&& echo yes || echo no 顺序不能颠倒,不然命令出错的时候会同时输出no yes

    "|" 管道符 命令1|命令2 命令1正确的结果 作为命令2的操作对象
    例如 ls -l > /etc/ | more “用于分页显示命令执行结果”
    netstat -an | grep ESTABLISHED | wc -l "用于查看当前连接本机的客户端 并 统计客户端数量"

    8.通配符

           

  • 相关阅读:
    004 RequestMappingHandlerMapping
    003 HandlerMapping
    002 环境配置
    001 springmvc概述
    011 使用AOP操作注解
    010 连接点信息
    009 通知类型
    一台服务器的IIS绑定多个域名
    程序包需要 NuGet 客户端版本“2.12”或更高版本,但当前的 NuGet 版本为“2.8.50313.46”
    通过ping 主机名,或者主机名对应的IP地址
  • 原文地址:https://www.cnblogs.com/cyzsoho/p/4716465.html
Copyright © 2011-2022 走看看