Linux Shell脚本系列之一

  • 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,126评论 9 467
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,130评论 2 34
  • 第一节 Shell概述 1.Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送...
    littlexjing阅读 1,895评论 0 1
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,085评论 0 0
  • 概述 首先,咱们来了解一下,什么是Shell。操作系统内核给我们提供了各种接口,同时也提供了各种用户层的库,理论上...
    keysaim阅读 1,346评论 0 0