zoukankan      html  css  js  c++  java
  • Shell编程-基础

    1.Shell是什么

    • shell是命令行解释器,将用户语言根据ASCII码表转换成机器语言传给Linux内核。
    • Shell还是功能强大的脚本编程语言,易编写,易调试,灵活性强;在Shell中可以直接调用Linux系统命令。

    2.Shell分类

    • 1979年Unix使用的Bourne Shell,主文件名为sh,不支持历史命令;主要包括:sh、ksh、Bash、psh、zsh
    • C Shell 主要在BSD版的Unix系统中使用,与C语言类似;主要包括:csh、tcsh

    注意:

    • Unix中主要用的是Cshell,Linux中用的是Bash,也是标准shell
    • 通过echo $SHELL可以查看当前系统用的是哪种shell,结果:/bin/bash;
    • 其中/etc/shells中配置了可兼容的shell。

    3.Shell的脚本执行方式

    3.1 echo命令

    命令格式: echo [选项][输出内容]

    作用:将信息显示在显示屏上。

    选项:

    -e 支持反斜线控制的字符转换

    如:a 输出警告音

             向左删除键

           换行符

           回车键

           制表符,即Tab键

            v垂直制表符

           nnn 按照八进制ASCII码输出字符

           xhh 按照十六进制ASCII码输出字符。

    echo输出可以使用不同颜色,语法:echo -e “33[字背景颜色;文字颜色m字符串33[0m”

    3.2 shell脚本编写基础认识

    • 文件开头一定加#!/bin/bash,作用:如果调用非shell语言,也作为shell处理!
    • 可以直接调用linux命令,更适合做系统管理。

    3.3shell脚本执行

    方法一:赋予执行权限,直接运行,如:

               chmod 755 hello.sh

               ./hello.sh

    方法二:通过bash调用执行脚本

                bash hello.sh #通过bash直接解释脚本,可以不用赋执行权限。

    3.4 Bash基本功能

    3.4.1 命令别名及快捷键

    命令格式:alias 别名命令名='命令',如:alias vi=‘vim’

    若让别名永久生效,则可以写入.bashrc文件(环境变量配置文件),vi ~/.bashrc,后source .bashrc,立刻生效。

    删除别名:unalias 别名

    注意:定义了别名后,命令的执行顺序:使用绝对路径或相对路径的命令->别名命令->Bash内部命令->$PATH环境变量定义的目录找到的命令

    3.4.2常用快捷键

    ctrl+c 强制终止当前命令

    ctrl+l 清屏

    ctrl+a 光标移动到命令行首

    ctrl+e 光标移动到命令行尾

    ctrl+u从光标所在位置删除到行首

    ctrl+z把命令放到后台

    ctrl+r在历史命令中搜索

    3.4.3 历史命令

    1.history命令

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

    -c 清空历史命令

    -w 把缓存中的历史命令写入历史命令保存文件~/.bash_history(~用户家目录)

    如:直接使用history,不加参数可以查看到本次使用过的和之前的历史命令。使用history -w可以直接把当前的历史命令直接写入.bash_history中。

           使用cat .bash_history查看文件中保存的历史命令。

    注意:历史命令默认保存1000条,可以在环境变量配置文件/etc/profile中进行修改:HISSIZE=1000,修改成想要保存的值。

    2.历史命令的调用

    • 使用上、下箭头调用以前的历史命令
    • 使用“!n”重复执行第n条历史命令
    • 使用“!!”重复执行上一条命令
    • 使用“!字符串”重复执行最后一条以该字符串开头的命令

    注意:调用几调用的history中查出来的命令。

               常用的是第1条和最后1条。

    3.命令和文件补全

    原理:命令的补全,依赖的是$PATH中的路径去查找命令;

               文件补全,依赖的是目录。

    方法:使用tab键补全。

    作用:1.加快输入速度;

               2.检查输入是否存在错误。

    3.4.4 输出重定向

    1.标准输入输出

    注意:实际使用中“文件描述符”用的更多。

    2.输出重定向

    含义:默认输出是显示器,改变其输出对象,比如输出到文件中,称为输出重定向。

    • 常用的输出重定向语法:

    命令>文件 #把命令输出到指定的文件或设备中,注意是覆盖方式。

    命令>>文件 #把命令追加到指定的文件或设备中。

     注意:以上输出的都是正确内容,如果是错误的输出需要使用:

    错误命令 2>文件

    错误命令 2>>文件

    缺点:正确输出和错误输出要单独操作。

    • 正确输出和错误输出一起重定向

    命令格式:命令 &>文件,命令 > 文件 2>&1 #两个命令等同

               命令 &>>文件,命令 >> 文件 2>&1

              命令 >>文件1 2>>文件2 #正确的命令输出到文件1,错误的命令输出到文件2,这个命令用的比较多。

    3.输入重定向(实际使用少)

    • 命令:wc

    作用:统计键盘输入的字符

    命令格式:wc [选项][文件名]

    -c 统计字节数

    -w 统计单词数

    -l 统计行数

    • 输入重定向

    默认wc命令统计的是键盘输入的字符,可以通过输入重定向可以统计文件中的字符。

    如:wc <abc.log,或者wc abc.log

    3.4.5 管道符

    • 多命令顺序执行

    通过三个运算符进行连接,“;&& ||”,

    ; #如:date;ls;pwd多个命令顺序执行,命令间没有任何逻辑关系。注意:中间的命令执行错误,不影响其他命令的执行!

    && #命令1&&命令2,命令1正确才执行命令2

    || #命令1||命令2,命令1执行错误才执行命令2

    实际应用:如:ls && echo yes || echo no  #命令正确执行输出yes,命令错误输出no

    •  管道符

    命令格式:命令1 | 命令2

    #命令1的输出作为命令2的输入

    如:ls -l /home | more,netstat -an | grep ESTABLISHED,netstat -an | grep ESTABLISHED | wc -l (双管道符)

    3.4.6 通配符

    其他特殊符号:

    注意:

    • ‘’,""区别,如:aa=111,echo ‘$aa’-->$aa;echo "$aa"-->111
    • ``,里面是系统命令,比如:a=`ls`,echo "$s"-->显示ls查询出来的内容,等同于a=$(ls)
  • 相关阅读:
    python 的基础 学习 第六天 基础数据类型的操作方法 字典
    python 的基础 学习 第五天 基础数据类型的操作方法
    python 的基础 学习 第四天 基础数据类型
    ASP.NET MVC 入门8、ModelState与数据验证
    ASP.NET MVC 入门7、Hellper与数据的提交与绑定
    ASP.NET MVC 入门6、TempData
    ASP.NET MVC 入门5、View与ViewData
    ASP.NET MVC 入门4、Controller与Action
    ASP.NET MVC 入门3、Routing
    ASP.NET MVC 入门2、项目的目录结构与核心的DLL
  • 原文地址:https://www.cnblogs.com/dLarger/p/12660852.html
Copyright © 2011-2022 走看看