码迷,mamicode.com
首页 > 其他好文 > 详细

m20预习笔记整理--bash特性

时间:2016-07-24 21:07:47      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:bash

命令引用
    $(command)
    `command`    `` 反引号  ~符号键
    [root@localhost ~]# mkdir `date +%H-%M-%S`
    [root@localhost ~]# mkdir $(date +%H-%M-%S)


命令行展开
    ~自动展开为用户的家目录,或指定用户的家目录(管理员可以)
    {}可以承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
        [root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}
        [root@localhost ~]# tree /tmp/x
        /tmp/x
        ├── y1
        │   ├── a
        │   └── b
        └── y2


        [root@localhost ~]# mkdir /tmp/{a,b}-{c,d}
        分别生成四个目录a-c,a-d,b-c,b-d


查看命令的执行结果,成功/失败
        成功为0
        失败1-255
        echo $?


bash的基本特性引用
    强引用:··内部字串直接显示不做任何替换
    弱引用:“”内部的变量会进行变量替换


globbiing:文件名通配,(整体文件名匹配)而非部分匹配
    匹配模式:元字符
        *:匹配任意长度的任意字符
        ?:匹配任意单个字符
        []:匹配指定范围内的任意单个字符
        [a-z],[A-Z],[0-9],[a-z0-9]
        [[:upper:]]    大写字母
        [[:lower:]]        小写字母
        [[:alpha:]]     所有字母
        [[:digit:]]        所有数字
        [[:alnum:]]    所有字母和数字
        [[:space:]]     所有空白字符
        [[:punct:]]         所有的标点符号
        [^]:匹配指定范围外的任意单个字符
        [^[:upper:]]
        [^[:digit:]]
练习
[root@localhost test]# ls /dev/t*[[:digit:]]
[root@localhost test]# ls /dev/t*[^[:digit:]]


bash快捷键
    ctrl+a光标回到行首
    ctrl+e光标回到行首
    ctrl+u删除光标至行首的内容
    ctrl+k删除光标至行尾的内容
    ctrl+l清屏(同clear命令)


命令补全
路径补全


路径缓存(hash):
    每次输入命令后都会缓存该命令的完整路径,以后不再重新在shell $PATH的路径列表中查找
    hash -r 删除所有缓存
       -d 删除指定命令的路径


--------------------------------------------------------------------------------
 IO重定向及管道


    程序也有IO  来源很多


    标准输入:键盘
    标准输出:显示器
    错误标准输出:显示器


输出重定向:
    >
        特性:覆盖输出
        [root@localhost test]# ls /tmp > /tmp/test/devdir
        输出至的文件可以不存在自动创建
    >>
        特性:追加输出
        [root@localhost test]# ls /dev >> /tmp/test/devdir
        输出至的文件可以不存在自动创建
错误输出重定向
    2>
        特性:覆盖输出
        [root@localhost test]# cd /tmp/bin 2> /tmp/test/erro
        /tmp/bin该目录不存在
    2>>
        [root@localhost test]# ls /tmp/bin 2>> /tmp/test/erro
        追加输出错误
        特性:追加输出
合并正常输出和错误输出
合并正常输出
    &>  覆盖
    [root@localhost test]# ls /tm/p &> /tmp/test/stand_err
    &>>  追加
    [root@localhost test]# ls /tm/p &>> /tmp/test/stand_err
    合并错误输出
        COMMAND > /PATH/TO/SOMEFILE 2>&1
        COMMAND >> /PATH/TO/SOMEFILE 2>&1


慎用:使用set -c 设置(+c关闭设置)shell取消覆盖输出重定向至已存在的文件
    >|强行覆盖输出
    set仅对当前shell有效


特殊设备  /etc/dev/null


输入重定向:
    <
        tr命令: tr [OPTION].....SET1 [SET2]
        把输入的数据当中的字符,凡事在SET1中出现的字符对位替换为SET2字符
        用法1
        tr SET1 SET2 < /PATH/TO/SOMEFILE
        用法2
        tr -d SET1 /PATH/TO/SOMEFILE
        注意tr只输出显示修改结果,不修改原文件。可以将修改结果输出重定向至其他位置
    <<
        here doucument 创建文档
        cat << EOF      EOF为结束符
        输入什么输出什么。
        cat > /PATH/TO/SOMEFILE << EOF
        输入的内容保存到/PATH/TO/SOMEFILE


管道
    连接程序,实现将前一个命令的标准输出(正确的,错误输出不会输出到后一个程序)直接定想到后一个程序当输入
        COMMAND1|COMMAND2|COMMAND3
        [root@localhost test]# cat test.txt 2> /dev/null | tr yangyouwei YANGYOUWEI
        
        错误输出到null,正确的输出到tr转换字符



--------------------------------------------------------------------------------
bash特性:变量


程序:指令+数据
指令:由程序文件提供
数据:IO设备,文件,管道,变量
程序:算法+数据结构


变量名+指向内存空间中某一段空间的起始地址-----变量(命名的内存空间)
    变量赋值:name=vlaue


    变量是命名的内存空间,赋值写入数据
    规定了变量的类型--决定了变量存储格式,表示范围,参与的运算
    字符型:shell默认都为字符型
    数值型:shell不支持浮点型


bash是弱类型变量编程语言


bash把所有的变量视作字符型,不支持浮点数据除非借助工具
bash中的变量无需事先声明,相当于把声明和赋值同时实现


变量替换:取得一个变量名所指向内存空间中的数据,把变量名出现的位置替换为所指向的内存空间中的数据


变量引用
    ${value-name},$value-name
    变量名的命名规范:变量名只能包含数字和字母,下划线,不能以数字开头
    见名知意,命名机制遵循某种法则,不能使用程序保留字列如if,else,then,while


bash变量类型:
    1本地变量      仅对当前shell有效
    2环境变量        作用域为当前shell进程及其子进程
    3局部变量        作用域为某代码片段(函数上下文)
    4位置参数变量    向执行脚本的shell进程传递的参数
    5特殊变量        shell内置的有特殊功用的变量


本地变量


    变量赋值 name=value   (变量操作)


命令历史:
    每次关机或用户登出系统保存到家目录下.bash_history
    history   内嵌命令
    设置history命令的功能,通过设置环境变量实现
    $HSITSIZE    shell进程可保留的命令历史条数
    $HSITFILE        保持持久的历史文件
    history  -c    删除所有条目从而情况历史列表(内存中的表)
    -d      偏移量,从指定位置删除历史列表
    -a      把当前shell的历史列表保存到文件中
    -w      将当前历史写入到历史文件中
    n      显示最近第n条
    调用
    !#再一次执行历史列表中的第#条命令
    !STRING再一次执行命令历史列表中以string开头的命令
    调用上一条命令的最后一个参数  ESC ,.=!$



Alias别名
 alias 显示当前shell的命令别名
 unalias command 取消别名
 alias newname=‘command [option]‘   COMMAND中间无空格可不加引号
 \COMMAND使用命令的原始命令运行。不以别名运行
 别名优先级高于原始命令,优先运行
 Cenos7支持命令 选项补全(长格式)



----------------------------------------------------------------------------------------------------------
 ``命令引用
 [root@localhost ~]# echo `echo $USER`
 Root


 ""弱引用
 [root@localhost ~]# echo "echo $USER"
 echo root


 ‘‘强引用
 [root@localhost ~]# echo ‘ehco $USER‘
 ehco $USER
----------------------------------------------------------------------------------------------------------


m20预习笔记整理--bash特性

标签:bash

原文地址:http://yangyouwei.blog.51cto.com/114816/1829346

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!