zoukankan      html  css  js  c++  java
  • 一.shell基础知识

    参考网站:http://billie66.github.io/TLCL/book/chap08.html

    1.字符“*”--展开

    [me@linuxbox ~]$ echo *
    Desktop Documents ls-output.txt Music Pictures Public Templates Videos

    注:这个”*“字符意味着匹配文件名中的任意字符,就是 shell 在 echo 命 令被执行前把”*“展开成了另外的东西(在这里,就是在当前工作目录下的文件名字)。 当回车键被按下时,shell 在命令被执行前在命令行上自动展开任何符合条件的字符, 所以 echo 命令的实际参数并不是”*“,而是它展开后的结果。

     2.通配符所依赖的工作机制叫做路径名展开,给定一个家目录,它看起来像这样:

    [me@linuxbox ~]$ ls
    Desktop   ls-output.txt   Pictures   Templates
    ....

    我们能够执行以下的展开:

    [me@linuxbox ~]$ echo D*
    Desktop  Documents
    [me@linuxbox ~]$ echo *s
    Documents Pictures Templates Videos

    查看家目录之外的目录:

    [me@linuxbox ~]$ echo /usr/*/share
    /usr/kerberos/share  /usr/local/share

    3.算术表达式

    [me@linuxbox ~]$ echo $((2 + 2))
    4
    [me@linuxbox ~]$ echo $(((5**2) * 3))
    75

    这是一个使用除法和取余操作符的例子。注意整数除法的结果:

    [me@linuxbox ~]$ echo Five divided by two equals $((5/2))
    Five divided by two equals 2
    [me@linuxbox ~]$ echo with $((5%2)) left over.
    with 1 left over.

    4.花括号展示

    [me@linuxbox ~]$ echo Front-{A,B,C}-Back
    Front-A-Back Front-B-Back Front-C-Back
    [me@linuxbox ~]$ echo Number_{1..5}
    Number_1  Number_2  Number_3  Number_4  Number_5

    一系列以倒序排列的字母:

    [me@linuxbox ~]$ echo {Z..A}
    Z Y X W V U T S R Q P O N M L K J I H G F E D C B A

    那么这对什么有好处呢?最常见的应用是,创建一系列的文件或目录列表。例如, 如果我们是摄影师,有大量的相片。我们想把这些相片按年月先后组织起来。首先, 我们要创建一系列以数值”年-月”形式命名的目录。通过这种方式,可以使目录名按照 年代顺序排列。我们可以手动键入整个目录列表,但是工作量太大了,并且易于出错。 反之,我们可以这样做:

    [me@linuxbox ~]$ mkdir Pics
    [me@linuxbox ~]$ cd Pics
    [me@linuxbox Pics]$ mkdir {2007..2009}-0{1..9} {2007..2009}-{10..12}
    [me@linuxbox Pics]$ ls
    2007-01 2007-07 2008-01 2008-07 2009-01 2009-07
    2007-02 2007-08 2008-02 2008-08 2009-02 2009-08
    2007-03 2007-09 2008-03 2008-09 2009-03 2009-09
    2007-04 2007-10 2008-04 2008-10 2009-04 2009-10
    2007-05 2007-11 2008-05 2008-11 2009-05 2009-11
    2007-06 2007-12 2008-06 2008-12 2009-06 2009-12

     5.双引号

    [me@linuxbox ~]$ ls -l two words.txt
    ls: cannot access two: No such file or directory
    ls: cannot access words.txt: No such file or directory
    [me@linuxbox ~]$ ls -l "two words.txt"
    -rw-rw-r-- 1 me   me   18 2008-02-20 13:03 two words.txt

    7.转义字符

    [me@linuxbox ~]$ echo "The balance for user $USER is: $5.00"
    The balance for user me is: $5.00

    为了允许反斜杠字符出现,输入”“来转义。注意在单引号中,反斜杠失去它的特殊含义,它 被看作普通字符。

  • 相关阅读:
    Devrama Slider
    全栈开发必备的10款 Sublime Text 插件
    经典网页设计:使用颜色滤镜效果的20个网站
    Nibbler – 免费的网站测试和指标评分工具
    使用 HTML5 Canvas 绘制出惊艳的水滴效果
    Qt4 和 Qt5 模块的分类
    设计Qt风格的C++API
    Qt属性系统
    Qt实现艺术字效果
    Qt中容器类应该如何存储对象(最好使用对象指针类型,如:QList<TestObj*>,而不要使用 QList<TestObj> 这样的定义,建议采用 智能指针QSharedPointer)
  • 原文地址:https://www.cnblogs.com/chenshaoping/p/8693352.html
Copyright © 2011-2022 走看看