本节学习的命令:history,alias,ualias,\CMD

本节学习的技能:

         bash的特性
      光标跳转
      查看命令历史
      命令历史的使用技巧
      给命令起别名
      命令替换
      文件名通配符

shell: 外壳

  GUI:Gnome, KDE, Xfce

  CLI: sh, csh, ksh, bash, tcsh, zsh

  进程:在每个进程看来,当前主机上只存在内核和当前进程

  进程是程序的副本,进程是程序执行实例

用户工作环境

bash:

#:管理员命令提示符

$:普通用户命令提示符

bash的特性:

  1、命令历史、命令补全

  2、管道、重定向

  3、命令别名

  4、命令行编辑

  5、命令行展开

  6、文件名通配

  7、变量

  8、编程

命令行编辑

光标跳转

Ctrl+a:跳到命令行首

Ctrl+e:跳到命令行尾

Ctrl+u: 删除光标至命令行首的内容

Ctrl+k: 删除光标至命令行尾的内容

  Ctrl+l: 清屏

命令历史

  history:查看命令历史

   -c:清空命令历史

    -d OFFSET [n]: 删除指定位置的命令

    -w:保存命令历史至历史文件中

环境变量

  PATH:命令搜索路径

  HISTSIZE: 命令历史缓冲区大小(可以用‘echo $HISTSIZE’查看)

命令历史的使用技巧

  !n:执行命令历史中的第n条命令;

  !-n:执行命令历史中的倒数第n条命令;

  !!: 执行上一条命令;

  !string:执行命令历史中最近一个以指定字符串开头的命令

  !$:引用前一个命令的最后一个参数,或使用“Esc + .” ;

文本相关的命令

  查看:cat, tac, more, less, head, tail

  统计:wc

  处理:tr, cut, join

  排序:sort

  Uniq

命令补全,路径补全

  命令补全:搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件,如果多于一个,两次tab,可以给出列表;否则将直接补全;

  路径补全:搜索我们给出的起始路径下的每个文件名,并试图补全;

命令起别名

  alias CMDALIAS='COMMAND [options] [arguments]'

  在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程;

  alias :显示当前所有起别名的命令

  ualias CMDALIAS :撤销命令别名

  type COMMAND:查看命令是不是绑定附加参数

  \CMD:使用有参数命令的原有属性

命令替换: $(COMMAND), 反引号:`COMMAND`

  把命令中某个子命令替换为其执行结果的过程

bash支持的引号

  ``: 命令替换

  "": 弱引用,可以实现变量替换

  '': 强引用,不完成变量替换

文件名通配, globbing

  *: 任意长度的任意字符

  ?:任意单个字符

  []:匹配指定范围内的任意单个字符

[abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]

     [:space:]:空白字符

     [:punct:]:标点符号

      [:lower:]:小写字母

      [:upper:]: 大写字母

      [:alpha:]: 大小写字母

      [:digit:]: 数字

      [:alnum:]: 数字和大小写字母

     获取这些列表的方法: man 7 glob(我没成功)

  [^]: 匹配指定范围之外的任意单个字符

  [[:alpha:]]*[[:space:]]*[[:alpha:]]:获取以字母开头,字母结尾,中间有空格的文件

  [[:alpha:]]*[[:space:]]*[^[:alpha:]]:获取以字母开头,非字母结尾,中间有空格的文件

练习:

1、创建a123, cd6, c78m, c1 my, m.z, k 67, 8yu, 789等文件;注意,以上文件是以逗号隔开的,其它符号都是文件名的组成部分;

2、显示所有以a或m开头的文件;

  ls [am]*

3、显示所有文件名中包含了数字的文件;

  ls *[0-9]*

  ls *[[:digit:]]*

4、显示所有以数字结尾且文件名中不包含空白的文件;

  ls *[^[:space:]]*[0-9]   ?????????

5、显示文件名中包含了非字母或数字的特殊符号的文件;

  ls *[^[:alnum:]]*

linux初级学习笔记五:bash特性详解!(视频序号:03_2,3)的更多相关文章

  1. Linux命令学习笔记- vmstat命令实战详解

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...

  2. IP2——IP地址和子网划分学习笔记之《子网掩码详解》

    2018-05-04 16:21:21   在学习掌握了前面的<进制计数><IP地址详解>这两部分知识后,要学习子网划分,首先就要必须知道子网掩码,只有掌握了子网掩码这部分内容 ...

  3. linux初级学习笔记八:linux权限管理及权限管理命令详解!(视频序号:04_2)

    本节学习的命令:chown,chgrp,chmod,openssl,umask 本节学习的技能: 文件权限详解及对其的操作 生成随机密码命令 用遮罩码对用户权限进行修改 站在用户登陆的角度来说SHEL ...

  4. linux初级学习笔记六:linux用户及权限详解!(视频序号:03_4)

    本节学习的命令:/etc/passwd,/etc/shadow,/etc/group文件详解 本节学习的技能: 安全上下文 文件与目录的权限管理 影子命令 用户,用户组类别详解 /etc/passwd ...

  5. 3-2 bash 特性详解

    根据马哥Linux初级 3-2,3-3,编写 1. 文字排序 不影响源文件,只是显示根据ASCII码字符升序 nano的用法, 其实这个是生成一个文本,然后就可以在里面编辑. Ctrl + o, 后回 ...

  6. [读书笔记]C#学习笔记三: C#类型详解..

    前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...

  7. C#学习笔记二: C#类型详解

    前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...

  8. CDN学习笔记二(技术详解)

    一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同 ...

  9. ubuntu学习笔记-tar 解压缩命令详解(转)

    tar 解压缩命令详解 -c: 建立压缩档案 -x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能 ...

随机推荐

  1. java私有构造函数

    1. 强调类的单例模式 public class Elvs { //公有的静态域,来说明该类只能有一个实例(实例化一次后,后面都是同一个实例) public static final Elvs INS ...

  2. ftrace笔记

    mount -t debugfs nodev /sys/kernel/debug 在mount后,可以在debug目录下看到tracing目录,该目录包含了ftrace的控制与输出文件. (1) en ...

  3. postman 快捷方式--启动图标

    下载,解压,安装,(此安装位置在/opt) 1.创建全局变量,也就是在任何地方都可以执行postman,不用去到安装目录,执行 : sudo ln -s /opt/postman/Postman /u ...

  4. jquery.fullPage.js全屏滚动插件

    注:本文内容复制于http://www.51xuediannao.com/js/jquery/jquery.fullPage.html 和 http://www.360doc.com/content/ ...

  5. 小窥React360——用React创建360全景VR体验

    前言    混迹VR届的发烧友兼开发者们一定不要错过这款FaceBook推出的跨端VR开发框架——React360,称为360全景体验框架更为准确,因为其前身是FaceBook和Oculus2017年 ...

  6. 【面试 struts2】【第三篇】struts2的问题

    1.struts2的工作流程 1>客户端浏览器发出HTTP请求. 2>根据web.xml配置,该请求被FilterDispatcher接收 3>根据struts.xml配置,找到需要 ...

  7. Fragment 生命周期怎么来的?

    前言 Fragment对于 Android 开发人员来说一点都不陌生,由于差点儿不论什么一款 app 都大量使用 Fragment,所以 Fragment 的生命周期相信对于大家来说应该都非常清晰.但 ...

  8. C++与Java语法上的不同

    最近学习算法和刷题基本都是用C++写的程序,在这个过程中,发现C++和Java在语法上有很多相同点,但也有很多不同点,而这些不同点对于已经掌握Java的程序员来说,理解C++代码可能会有些吃力甚至困难 ...

  9. ElasticSearch集群本机搭建

    ElasticSearch集群本机搭建 elasticsearch elasticsearch -Ehttp.port=8200 -Epath.data=node2 elasticsearch -Eh ...

  10. 用 centrifugo 搭建 消息推送服务器 docker + rancher 搭建

    关于消息推送服务器 目前有很多第三方的开放成熟的推送服务.鉴于项目需要 我们项目需要自己搭建 自己的推送服务. 我们的推送应用场景 聊天消息 项目内部消息提醒 移动设备接受消息 应用到的相关软件工具知 ...