美文网首页Shell
Linux学习笔记3-Shell学习

Linux学习笔记3-Shell学习

作者: eesly_yuan | 来源:发表于2014-12-01 14:54 被阅读90次
    1、Shell概述
    • 1.1、Shell是一个命令解释器,解释用户输入的命令,让Linux内核理解并执行用户命令,同时将Linux内核执行的结果进行翻译显示通知给用户。


      操作系统体系结构.jpg
    • 1.2、Shell分类
    1、Bourne Shell,1979(sh,ksh,Bash,psh,zsh)
    2、C Shell,Unix中使用的Shell(csh,tcsh)
    3、查询当前使用的Shell版本,通过查询变量获得
    echo $SHELL
    4、查看支持的Shell版本
    cat /etc/shells
    5、Shell版本切换,直接输入:版本名+enter 进入,输入:exit 退回
    

    2、脚本执行方式
    • 2.1、echo输出命令
    echo [选项] [输出内容]
    选项:
    -e 识别输出内容中的转义字符\b \t \x \e。。。。
    
    • 2.2、hello word脚本,其中可以调用系统命令
      vim hello.sh
    #!/bin/bash
    #The first program
    echo -e "\e[1;34m hello word \e[0m"
    

    执行方式

    1、chmod 755 hello.sh (修改权限)+ ./hello.sh或者/home/hello.sh (执行)
    2、bash hello.sh (直接执行)
    

    3、Bash的基本功能
    • 3.1、命令的別名
    1、查看已有別名 alias
    2、定義別名
    临时生效:alias ls='ls --color=never'
    永久生效:在用戶家目錄內的.bashrc文件中添加別名定義語句
    3、刪除別名 unalias 別名
    
    • 3.2、命令生效順序
    1、執行絕對路徑和相對路徑執行命令
    2、執行別名
    3、執行bash的內部命令
    4、執行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
    
    • 3.3、快捷键
    ctrl+c 强制终止
    ctrl+l 清屏 clear
    ctrl+u 删除光标位置到行首
    ctrl+a 到行首
    ctrl+e 到行尾
    ctrl+z 将命令放到后台
    ctrl+r 在历史命令中搜索
    
    • 3.4、历史命令
    1、history [选项] [历史命令保存文件,在家目录下的.bash_history]
    选项:
    -c 清空历史命令
    -w 把缓冲中命令写入保存文件\
    2、默认保留1000条,可以通过/etc/profile中设置
    3、!n重复执行第n条命令
    4、!!重复执行上一条命令
    5、!字符 重复执行上一次以字符开头的命令
    6、上下键返回
    
    • 3.5、输出重定向
    1、标准输入输出
    |设备~|设备文件名~ |文件描述符|
    |键盘~|/dev/stdin |0|
    |显示器|/dev/stdout|1|
    |显示器|/dev/stderr|2|
    2、格式
    命令>文件 (以覆盖形式)
    命令>>文件 (以追加形式)
    3、保存报错信息
    命令 2>文件 (以覆盖形式)
    命令 2>>文件 (以追加形式)
    4、正确输出和错误输出同时保存
    命令>文件 2>&1
    命令>>文件 2>&1(***)
    命令 &>文件
    命令 &>>文件(*****)
    命令>>文件1 2>>文件2(****)
    
    • 3.6、输入重定向
    1、wc [选项] [文件名] //统计输入内容
    选项:
    -c 统计字节数
    -w 统计单词数
    -l  统计行
    2、wc < 文件名 ,统计文件内容
    3、wc<<flag,再次遇到flag时结束,统计两个中间的内容
    
    • 3.7、管道符
    1、多命令顺序执行
    cmd1;cmd2 顺序执行,无论是否出错
    cmd1&&cmd2
    cmd1||cmd2
    命令1 && 命令2 || 命令3——ls && echo yes || echo no
    2、管道符,多命令顺序执行
    命令1 | 命令2 //命令1的输出结果作为命令2的操作对象
    netstat -an | grep ESTABLISHED | wc -l
    
    • 3.8、通配符,主要用于匹配文件名或者目录,文件内容一般采用正则表达式
    ?匹配任意一个字符
    *匹配任意一个或多个字符
    []匹配中括号内的任意一个字符
    [-]匹配中括号内的任意一个字符,-代表范围[0-9]
    [^]匹配中括号内的任意一个字符,^代表逻辑非
    
    bash中其他的特殊符号.jpg
    3、reference

    相关文章

      网友评论

        本文标题:Linux学习笔记3-Shell学习

        本文链接:https://www.haomeiwen.com/subject/rkdgtttx.html