zoukankan      html  css  js  c++  java
  • bash的常见特性及文本查看命令

    (一)bash的基础特性

    • 命令补全
      • shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当作命令;
      • 命令查找机制:shell首先会在内部命令中匹配查找,如果没有找到,则会在PATH环境变量设置的目录中,自左向右逐个搜索目录下的文件名
      • 补全:如果给定的打头字符串可以唯一的标识某命令程序文件,则按“tab”键直接补全;否则需要按两下“tab”键,给出列表
    • 路径补全
      • 在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件。
      • 如果能唯一标识,则按“tab”键直接补全;否则需要按两下“tab”键,给出列表
    • 命令行展开
      • ~:展开为用户的家目录,或指定的用户的家目录
      • {}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径。例如:/tmp/{a,b}相当于/tmp/a,/tmp/b
    • 命令的执行状态结果
      • bash通过状态返回值来输出此结果
        • 成功:0
        • 失败:1-255
      • 命令执行完成之后,其状态返回值会保存于bash的特殊变量“$?”中。可以用“echo $?”查看。
      • 命令的返回值和命令的执行状态返回值不是一回事儿
    • 引用
      • 强引用:单引号'',其内部的任何字串都直接显示,不做任何替换
      • 弱引用:双引号"",其内部的变量引用会做变量替换
      • 命令引用:反引号``或者$()。例如mkdir $(date +%H-%M-%S)
    • 快捷键
      • ctrl+a:跳转至命令行首部
      • ctrl+e:跳转至命令行尾部
      • ctrl+u:删除行首至光标所在处之间的所有字符
      • ctrl+k:删除光标所在处至行尾之间的所有字符
      • ctrl+l:清屏,相当于clear

    (二)目录管理类的命令

    • mkdir:创建目录/make directories
      • 命令的操作对象为路径的基名,基名之前的路径名必须要存在
      • -p:会创建缺失的父目录
      • -v:显示创建的详细过程,比如创建了哪些父目录/verbose
      • -m MODE:创建目录时直接给定权限,否则则为默认权限
    • rmdir:删除空目录/remove empty directories
      • 目录不空会报错
      • -p:迭代删除空目录
      • -v:显示删除过程

    问题1:如何创建四个路径:/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b?

    答案:mkdir -pv /tmp/x/{y1/{a,b},y2}

    问题2:如何创建四个路径:a_c, a_d, b_c, b_d?

    答案:mkdir -v {a,b}_{c,d}

    • tree:显示目录的树状结构,例如tree /tmp/x
      • -L #:指定要显示的树的深度

    (三)文本查看类命令:cat,tac,head,tail,more,less

    • 分屏查看命令:more和less,
      • more
        • more FILE
        • 翻屏至文件尾部后自动退出
      • less
        • less FILE
        • man命令内部调用的就是less命令
      • 空格往后翻,b往前翻,等等
    • head命令
      • 查看文件的前n行,默认十行
      • 例如:head -n 20 /etc/rc.d/init.d/functions,或者可以把-n 20直接写成-20
    • tail命令
      • 与head用法一样,查看文件的后n行
      • -f:命令执行完不退出,跟随显示新增的行,可以用来显示日志新增的行
    • stat命令
      • 显示文件或文件系统的状态
      • stat FILE
      • 文件包含两类信息
        • 元数据:metadata。stat命令看到的是元数据,cat等命令看到的是数据。
        • 数据:data
      • 时间戳
        • 最近访问/Access Time:打开读取的时间
        • 最近更改/Modify Time:改变数据,此时元数据一定改变
        • 最近改动/Change Time:改变元数据
    • touch命令
      • 改变文件的时间戳
      • touch FILE:三个时间戳都会变
      • 如果文件不存在,会创建一个空文件
      • -c:不创建空文件
      • -a:仅修改access time
      • -m:仅修改modify time
      • -t time:将时间戳改为指定的时间,[[CC]YY]MMDDhhmm[.ss],例如:touch -m -t 0212010303.03 /tmp/functions。注:此时元数据变为当前时间,而不是改的那个时间。
  • 相关阅读:
    困扰我的c++语法
    C++ primer第三章作业
    渔夫捕鱼问题
    JAVA输入输出
    Python学习5——抽象,涉及抽象和结构、函数的自定义、参数、作用域、递归
    牛顿迭代法计算平方根
    Python学习4——条件、循环及其他语句总结
    Python补充1——Python的简单推导
    Python补充2——Python单行注释、整段注释使用方法
    Python补充3——Python中的 split() 函数
  • 原文地址:https://www.cnblogs.com/jacky1982/p/7617407.html
Copyright © 2011-2022 走看看