5、自学——Linux的学习进度与任务【shell中bash的特性】

shell中bash的特性

shell中bash的特性

bash特性之一:命令行展开  

  把命令行的给定的一个特殊符号自动替换为别的字符串的机制

目录:

  命令:cd 【内置命令】  

      工作目录:当前所处的目录

      cd:change directory(切换目录)

      cd 目标路径(不能是一个文件必须是一个目录)

      所有从根起始的都是绝对路径:/文件名

      基名:路径最后一个文件的名字

       /x/y/z/m/n: 目标路径
       /x/y/z/m: 是目录名或者路径名

           两个命令:
          获取路径的基名:   # basename
          获取路径的目录名:# dirname

  注意: 文件名可以使用除/(路径分割符)以外的任意字符(空白符也是可以),但是不要使用特殊字符,且总长度不能超过255个
      严格区分大小写

  注意:~ 相当于 /home   

    如果要切换到根目录下的目录具体操作:# cd /USERNAME(可以是空文件或者目录)【只有管理员可以此操作】

  如果要切换到家目录具体操作:# cd  或者 # cd ~

  如果要切换到家目录下的目录具体操作:# cd ~USERNAME(可以是空文件或者目录)【只有管理员可以此操作】

  # cd -  :返回上一次所在的目录

  # cd .  :  切换到当前目录

    # cd .. :切换到父目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思)

  # cd ../.. :切换上两级目录;

    # cd !$ :把上个命令的参数作为cd参数使用

  

   {}:可承载一个以逗号分隔的路径列表,能够将其展开为指定的多个路径;

      例如:

           /tmp/{a,b,c}   /tmp/a /tmp/b /tmp/c

      /tmp/{a,b}/z   /tmp/a/z /tmp/b/z

  # pwd:显示当前目录    print working directory
  # mkdir:创建目录 make directory
        -p: 先创建父目录
        -v:显示详细信息

  # rmdir:删除空目录  remove directory

   

   

   

   

  命令:ls

  # ls : 查看文件(注意:在一个目录下的其他目录都是该目录的文件,一切皆文件

bash特性之二:shell的引用

      ‘‘:强引用,变量替换不会进行
     "":弱引用,能够执行变量替换
      ``:命令引用(替换),引用命令的执行结果,命令替换的另外一符号:$(命令)

  变量替换:${变量名}
        # echo : 回显变量值

        

  命令引用:

       

bash的特性之三:命令历史

      bash保存的过去曾经执行的命令的列表
     当前shell进程保存在缓冲区中
     缓冲区中的命令会在shell退出时保存至文件中,.bash_history
       使用上下箭头键可以翻看此前曾经执行过的命令

     history快捷方式:

        !#:     #为命令历史列表中的命令编号,可用执行第#条命令
        !!:      执行上一条命令(重复执行,执行过的命令)
        !-#:   执行命令历史列表中的倒数第#条命令
      !string:   执行命令历史列表中最近一次以string开头的命令
        !$:     引用上个命令的最后一个参数 先按ESC,再按.

      history常用选项:

                 -c :    清空列表

           -d# :   删除指定的历史命令

          -a  :    追加当前会话的命令历史到历史文件中

          -n  :    从历史文件中读取所有未被读取的行

           -r  :    读取历史文件并将内容追加到历史列表中

      命令历史相关环境变量:

              HISTSIZE:命令历史中可以保存的命令的个数

              HISTFILE:命令历史文件

              HISTFILESIZE:命令历史文件可以保存的命令的个数

              HISTCONTROL:控制命令历史生成

                    ignoredups:忽略记录重复的命令,连续相同命令才为重复
                    ignorespace:不记录以空白字符开头的命令
                    ignoreboth:同时具有以上值的特性

      补充:Linux文件系统的另外一特性:以点号开头的文件为隐藏文件:# ls -a:才能查看隐藏文件
      # cat 查看文本文件内容

     shell中的变量赋值:
            变量名=值
              注意:变量在赋值时不能使用$,而$只在变量替换时使用
                 变量名只能包含字母,数字和下划线,而且不能以数字开头
                 变量名区别大小写:

bash的特性之四:命令别名(alias)

      alias :显示当前shell中定义的所有别名

      

        命名别名

          # alias 别名=‘原始命令‘(没有空格可以不加引号)

        撤销别名

         # unalias 别名

bash的特性之五:globbing, 文件名通配

    通配符:
      *:匹配任意长度的任意字符
        abc abb abm xab ab
        ab*
        *ab
        *ab*

      ?: 匹配任意单个字符(全文件名精确匹配)

      []: 匹配指定字符范围内的任意单个字符
        a[xyz]b:
        [a-z]
        [A-Z]
        [0-9]
          [0-9a-zA-Z] 默认情况下是不区分大小写

            [[:upper:]] = [A-Z] 所有大写字母

            [[:lower:]]    所有小写字母
            [[:alpha:]]    所有字母表
            [[:digit:]]      所有数字
            [[:alnum:]]     所有字母表+数字
            [[:space:]]    所有空白符
            [[:punct:]]    所有标点符号
            [^]:        匹配指定字符范围外的任意单个字符
            [^0-9]=[^[:digit:]]

  

  练习

      复制/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位数字的文件或目录至/tmp下

        l*[0-9]*[[:lower:]]

      1、复制/etc目录下以p开头,中间跟了任意字符,并以d结束的文件至/tmp目录中:
      2、复制/etc/目录下以p开头,中间跟了4个任意字符,并以d结尾的文件至/tmp/a目录中:如果a不存在,先创建出来
      3、复制/etc/目录下以任意一位数字开头,并以非数字结尾的文件至/tmp/b目录下
      4、复制/etc/目录下以非字母开头,后面跟了一个字母及其他任何长度字符的文件至/tmp/c目录中

      1、cp -r /etc/p*d/tmp
      2、cp -r/etc/p????d /tmp/a
      3、cp -r/etc/[0-9]*[^0-9]/tmp/b目录下
      4、cp -r/etc/[^[:alpha:]][[:aipha:]]*/tmp/c

时间: 2025-01-02 14:04:16

5、自学——Linux的学习进度与任务【shell中bash的特性】的相关文章

1、自学——Linux的学习进度与任务【时间日期管理类的命令】

时间日期管理类的命令 时间日期管理类的命令:  # date :显示 # date MMDDhhmm[CC]YY.ss :设定 # date [+FORMAT] %Y:4位年份 %y:  2位年份 %M:  分 %m:月 %d:  日 %H:  时 %S:  秒 %T: 时间(以冒号隔开) %D:日期 %F: 日期(以横杆隔开) unix元年:1970-01-01 00:00:00 %s:timestamp:从unix元年开始到此刻所经历的秒数 # cal   :    显示日历 # cal #

2、自学——Linux的学习进度与任务【获取命令的使用帮助】

获取命令的使用帮助   1.命令的格式: command options argumets 命令  选项 参数 选项:调整命令的执行特性的 选项可以有多个:多个选项之间必须以空格分隔 短选项:-char(字符) 长选项:--word(单词) 短选项可以合并:长选项一般不可以合并 有些选项需要有参数: 命令参数:命令的作用对象 有些命令可以带多个参数:各参数键需要使用空格分隔: 2.出现乱码的对策: # export LANG(语言)= en (导出环境变量) 3.获取命令的使用帮助: 1]内置命

16、自学——Linux的学习进度与任务【vim编辑器及文件测试】

vim编辑器及文件测试 vim编辑器 在Linux中,使用文本文件来保存配置文件 1.几种基本的模式: 编辑模式:键盘操作通常被解析为编辑命令: 输入模式:输入模式 末行模式:vim的内置的命令行接口,执行vim内置命令 2.模式之间的切换: 编辑模式-->输入模式(从编辑模式进入到输入模式) i:当前光标所在处输入内容 I: 在当前光标所在行的行首 a:在当前光标所在处的后面 A:在当前光标所在行的行尾输入 o:在光标所在行的下方新增一行空白行输入 O:在光标所在行的上方新增一行空白行输入 输

11、自学——Linux的学习进度与任务【文件系统文件权限】

文件系统文件权限 文件系统文件权限: 三类用户:  属主:owner, u  属组:group, g  其它:other, o  所有:All,a 权限: r: readable,可读 w: writable, 可写 x:excutable, 可执行 权限管理: 文件:  r:可以使用内容查看类的命令来显示其相关内容  w:可以使用编辑器修改其内容 x:可以将其发起一个进程 目录: r:可以使用ls命令查看目录内容的文件信息   w:可以创建.删除文件   x:可以使用ls -l 命令查看目录内

10、自学——Linux的学习进度与任务【用户和用户组相关操作】

用户和用户组相关操作 用户和用户组定义: 用户:资源获取标识符(资源分配),是安全权限模型的可信要素之一 用户组:用户组是指多个用户的集合,方便对一类需要同样权限的用户授权   密码:用户认证  Linux是多用户.多任务的操作系统.  多用户指:多人同时使用系统资源:多任务:同时运行多个进程 用户和用户组的类别: 1.用户:名称解析库 /etc/passwd a.管理员 root 用户标识(UID)为0 b.普通用户及系统用户  普通用户的用户标识(既UID):   CentOS 5,6: 5

14、自学——Linux的学习进度与任务【正则表达式】

正则表达式 文本处理工具之grep.egrep和fgrep 1.基本正则表达式 grep:(global search regular expression(RE)and print out the line) 文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,并显示匹配的行 # grep [options] 'PATTERF(模式)' file,默认只支持基本正则表达式,要匹配额外功能的字符用-E --color=auto 指定颜色 -v:反向匹配,显示不能被模式匹配到的行 -o:仅

13、自学——Linux的学习进度与任务【位置参数、交互式脚本】

位置参数.交互式脚本 知识点1: bash的单步执行(显示整个执行过程): bash -x /path/to/script(脚本) 知识点2: 位置参数:  /tmp/test.sh(脚本自身) 3(脚本的第一个参数) $0:脚本自身 $1:脚本的第一个参数 $2: .... 特殊变量:  $#:显示所有位置参数的个数  $*,[email protected]:显示引用所有的位置参数 知识点3: 交互式脚本: read 变量:给定变量数值,可以为空 read -p :提示信息 给变量以默认值:

12、自学——Linux的学习进度与任务【bash的配置文件】

bash的配置文件 bash的配置文件: 持久保存用户配置 profile类:为交互式登录的用户提供配置 /etc/profile 全局 /etc/profile.d/*.sh 全局 ~/.bash_profile 个人配置,仅对当前用户有效 功能: 设定环境变量 用来实现运行命令或者脚本 如何读取配置文件: /etc/profile -->/etc/profile.d/*.sh -->~/.bash_profile-->~/.bashrc -->/etc/bashrc bashr

6、自学——Linux的学习进度与任务【FHS】

FHS:文件层次标准 FHS:文件层次标准    / :   代表根目录 /bin:   二进制文件,可执行程序,所有用户都能用. /sbin:  只有管理员执行的,二进制可执行程序. 启动就用得到,提供自身运行.    /usr/bin:      完成具体的工作  /usr/sbin:     完成具体的工作  /usr/local/bin:     用于安装第3方程序.    /usr/local/sbin:     用于安装第3方程序. /boot:   存储系统引导文件,有内核,ran