博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux Shell脚本系列之一
阅读量:6216 次
发布时间:2019-06-21

本文共 1870 字,大约阅读时间需要 6 分钟。

  • Shell概述
    shell的作用
    • 接收输入的命令,是一个命令行解释器,把接收到的命令转为二进制传给内核,由内核调用硬件处理
    • 解释执行的脚本语言,可以直接调用Linux系统命令,可以编写一些程序,方便运维人员使用
  • Shell的分类
    • Bourne Shell (sh,ksh,Bash,psh,zsh) Bash是Linux标准Shell
    • C Shell (csh,tcsh) 语法与C语言类似
    • 查看当前系统使用的Shell可以使用命令行:echo $SHELL

  • echo 输出命令
    echo [选项] [内容]
    -e:支持反斜线控制的字符转换
    设置输出字体的颜色 31m=红色,32m=绿色,34m=蓝色,0m=重置
    echo -e "\e[1;31m 我是红色的字体 \e[0m"
    设置背景颜色 41m=红色,42m=绿色,43m=黄色,0m=重置
    echo -e "\e[1;42m 我的背景颜色是绿色 \e[0m"
  • 写一个脚本
    vi hello.sh:用vim编辑器写一个hello.sh文件
    #!/bin/bash : 位于首行,声明我这个文件是Linux的标准脚本,即声明使用Bash的命令解释器(不可省略)
    #这是第一个shell脚本:#代表注释
    echo -e "\e[1;31m 我是红色的字体 \e[0m"
    :wq退出vim编辑器并保存
    chmod 755 hello.sh:修改文件权限
    ./hello.sh:执行当前目录下的hello.sh脚本

  • 命令的别名
    alias:查看系统中所有的命令别名
    alias cp='cp -i':此时执行cp时相当于cp -i(临时生效,注销后则失效,永久生效需修改环境变量配置文件)
    unalias:删除别名
  • 命令生效顺序 (先后依次排序如下)
    • 绝对路径或相对路径执行的命令
    • 执行别名
    • 执行Bash内部命令
    • 执行$PATH环境变量下定义的目录里的命令

  • 常用快捷键
    • ctrl+c:强制终止当前命令
    • ctrl+z:把当前执行命令放入后台
    • ctrl+a:光标移动到当前命令行的行首
    • ctrl+e:光标移动到当前命令行的行尾
    • ctrl+u:从当前光标位置删除命令行到行首
    • ctrl+r:在历史命令中搜索
    • ctrl+l:清屏相当于clear

  • history [选项] [历史命令保存文件]
    -c:清空历史命令
    -w:把缓存中的历史命令写入到历史命令保存文件中 默认为~/.bash_history
  • 历史命令的调用
    • 按上下箭头
    • !!:执行上一条命令
    • !字符串:执行匹配最后一条以该字符串开头的命令
  • 使用Tab键 进行命令和文件目录的补全,若当前匹配的有多个则再摁多一次,则会列出所有匹配的文件或目录

  • 输出重定向:把原来应该输出到显示器的内容,输出到其他地方,一般输入到文件
    • 文件描述符
      0:标准输入
      1:标准输出
      2:标准错误输出
    • 标准输出重定向 只能保存正确命令的执行的结果
      命令 > 文件:覆盖的方式输出到文件
      命令 >> 文件:追加的方式输出到文件
    • 标准错误输出重定向 只能保存错误命令的执行的结果
      错误命令 2> 文件:覆盖的方式输出到文件
      错误命令 2>> 文件:追加的方式输出到文件
      注意2>之间没有空格,否则会报错
    • 正确输出和错误输出同时保存
      命令 > 文件 2>&1
      命令 >> 文件 2>&1
      命令 &> 文件
      命令 &>> 文件
      命令 >> 文件1 2>> 文件2
    • &>/dev/null:系统黑洞可以当成垃圾站,就是执行命令不想看到结果
  • 输入重定向:wc [选项] [文件名]

    选项
    -c:统计字节数
    -w:统计单词数
    -l:统计行数

    • 例子:
      执行wc命令
      输入:
      asdf asdfg
      再按ctrl+d结束
      举个栗子1
    • wc < 文件wc 文件:则是统计文件
    • wc << 字符串:当输入相同字符串时结束输入,进行统计
      举个栗子2
  • 管道符

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

    举个栗子3

  • 通配符

    ?:匹配一个任意字符
    *:匹配任何内容,0个或多个任意字符
    []:匹配中括号中的任意一个字符,[ab] 则匹配到的是a或b
    [ - ]:-代表的是一个范围,[0-9]表示的就是匹配一个数字
    [ ^ ]:匹配除了[]范围中的一个字符,[^a-z]表示匹配一个不是小写字母的字符

    举个栗子4

  • 其他特殊符号
    ''在单引号中,会认为是字符串
    ""在双引号中,'$'被认为是调用变量,'`'被认为是引用命令,'\'被认为是转义符
    $()应用系统命令
    举个栗子5

转载地址:http://gdvja.baihongyu.com/

你可能感兴趣的文章
python 引用,拷贝,对象回收,弱引用
查看>>
Android是如何规避GPL传染性的
查看>>
HBuilder的故事
查看>>
java设计模式中的单例模式
查看>>
Apache Segmentaion Fault故障处理案例分析
查看>>
设计模式系列之策略模式
查看>>
企业Linux运维SHELL编写规范
查看>>
JS下载文件的方法(浏览器兼容)
查看>>
Java中如何获取spring中配置的properties属性文件内容
查看>>
不要在foreach循环里进行元素的remove/add操作
查看>>
《Spring Security3》第二章第三部分翻译(上)
查看>>
JPA注解
查看>>
java对象创建过程与初始化顺序
查看>>
iOS大文件下载时,对服务器返回的数据处理的笔记
查看>>
Opengl VS2008开发环境
查看>>
[转载]Word直接发布新浪博客(以Word 2013为例)
查看>>
iOS开发 关于SEL的简单总结
查看>>
Play-Scala开发技巧 - 带索引遍历Form(arrayProperty)
查看>>
android实现session保持
查看>>
“Android 已经crash,但是却没有退出”解决办法
查看>>