zoukankan      html  css  js  c++  java
  • 5_bash

    bash及其特性:
    shell:外壳。用户直接接入计算机的时候所使用的外壳程序
    linux允许一个用户账户登录多次,而这多次登录的每一个打开的shell都是独立的互不相干的shell,它们是三个进程,每一个进程只认为当前系统所运行的程序支持它自己,也就是意味着每一个进程是不知道别的进程存在的。
    进程:在每个进程看来,当前主机上只存在内核和当前进程
    进程是程序的副本,进程是程序执行的实例

    用户工作环境:
    bash:工作环境可以是不一样的
    shell,子shell,shell里可以打开shell,exit可以退出当前shell,最后一层shell退出时退出系统
    shell还可以交互打开,bash下可以打开csh,csh里也可以打开ksh。

    bash:
      1.命令历史、命令补全
      2.管道、重定向
      3.命令别名
      4.命令行编辑
      5.命令行展开
      6.文件名通配
      7.支持使用变量
      8.支持编程

    ----特性----

    命令行编辑:
    光标跳转:
      ctrl+a:跳到命令行首
      ctrl+e:跳到命令行尾
      ctrl+u:删除光标至命令行首的内容
      ctrl+k:删除光标至命令行尾的内容
      ctrl+左右箭头可以跳跃一个单词
      ctrl+l:清屏

    命令历史:
      bash会自动记录过去曾经执行过的命令,它会把命令保存在内存的一块缓冲区内,使用上下箭头就可以翻出来
      history:查看命令历史 //重要
        -c:清空整个命令历史
        -d OFFSET [n]:删除指定位置的命令。-d 跟参数 删除参数那一行。-d 跟参数 跟10 删除参数那一行起10个命令
        -w:保存命令历史至历史文件中 //家目录下的 .bash_history

    环境变量:
    PATH:命令搜索路径
    HISTSIZE:命令历史缓冲区大小
      [root@localhost ~]# echo $HISTSIZE
      1000

    命令历史的使用技巧:
      !n:执行命令历史中的第n条命令
      !-n:执行命令历史中的倒数第n条命令
      !!:执行上一条命令
      !string:执行命令历史中最近一个指定字符串的命令
      !$:引用前一个命令的最后一个参数
      Esc,.:引用前一个命令的最后一个参数
      Alt+.:引用前一个命令的最后一个参数

    命令补全:
    tab:命令补全-在命令搜索路径下查找
      路径补全-在给的打头路径下查找
    tab tab显示与已输入字符的所有相关

    命令别名:
    alias CMDALISA='COMMAND [options] [arguments]'
      [root@localhost ~]# cls //windows下cls是清屏,linux下clear是清屏
      bash: cls: 未找到命令...
      [root@localhost ~]# alias cls=clear
      再次输入cls就是清屏 //这些定义跟变量的定义一样,它是shell的特性,因此,如果shell关闭了,再启动,这个命令别名就没有了,所以我们定义的别名,只在当前shell的生命进程周期有效
    alias
      不带任何参数和选项的alias命令,可以显示当前系统上定义的所有的别名
    unalias
      unalias CMDALIAS
      撤销命令别名
      [root@localhost ~]# unalias cls
      [root@localhost ~]# cls
      bash: cls: 未找到命令...

    命令替换:
      把命令中某个子命令替换为其执行结果的过程
      $(COMMAND) //第一种
      `COMMAND` //第二种,这里是反引号,反引号是波浪线下那一个对应的键

    bash支持的引号:
      ``:命令替换
      "":弱引用,可以实现变量替换
      '':强引用,不完成变量替换

    文件名通配,globbing
      *:匹配任意长度的任意字符
      ?:匹配任意单个字符
      []:匹配指定范围内的任意单个字符 //特别注意的是[a-zA-Z],大小写字母都取应这样表达
      [^]:匹配指定范围外的任意 单个字符
    补充:
      [:space:]:空白字符
      [[:space:]]:所有的空白字符。里面是取值范围
      [:punct:]:标点符号
      [:lower:]:小写字母
      [:upper:]:大写字母
      [:alpha:]:大小写字母
      [:digit:]:数字
      [:alnum:]:数字和大小写字母
      # man 7 glob:忘记的话,查看说明
      [[:alpha:]]*[[:space:]]*[[:alpha:]]:找 字母开头+空白字符+字母结尾 的通配名
      [[:alpha:]]*[[:space:]]*[^[:alpha:]]:找 字母开头+空白字符+非字母结尾 的通配名
        [yanhan@localhost ~]$ ls
        公共 模板 视频 图片 文档 下载 音乐 桌面
        [yanhan@localhost ~]$ touch abc xyz abc123 xyz123 123abc 123xyz 'a b' 'a 3'
        [yanhan@localhost ~]$ ls
        123abc a 3 abc xyz 公共 视频 文档 音乐
        123xyz a b abc123 xyz123 模板 图片 下载 桌面
        [yanhan@localhost ~]$ ls [[:alpha:]]*[[:space:]]*[[:alpha:]]
        a b
        [yanhan@localhost ~]$ ls [[:alpha:]]*[[:space:]]*[^[:alpha:]]
        a 3

  • 相关阅读:
    OpenGL ES着色器语言之静态使用(static use)和预处理
    OpenGL ES着色器语言之着色概览(官方文档)
    OpenGL ES2.0入门详解
    OpenGL ES之glUniform函数
    C++矩阵处理库--Eigen初步使用
    启用PAE后虚拟地址到物理地址的转换
    八款值得尝试的精美的 Linux 发行版(2017 版)
    多了解一下Chrome开发者控制台
    [Win32]一个调试器的实现(五)调试符号
    解析pdb文件得到未导出变量地址(转)
  • 原文地址:https://www.cnblogs.com/xian-luo/p/9905265.html
Copyright © 2011-2022 走看看