zoukankan      html  css  js  c++  java
  • day01 shell基本介绍

    1、命令历史 :

        作用:查之前使用的命令

        

        关于命令历史的文件

          每个用户家目录下面的 .bash_history

          在关机的时候,会自动写入一次 (history -a  将内存中的命令历史写入文件)

        关于命令历史的变量(环境变量)

          env  //查看环境变量

          set  //常看更详细的环境变量参数

          HISTSIZE=1000        数量

          HISTCONTROL=ignoredups

            Ignoredups  忽略重复的历史命令  --  连续且相同,才叫重复

            Ignorespace  忽略空白开头的历史命令,“键入空格开头则不会被记录”

            Ignoreboth  两者都生效

          HISTFILE=/root/.bash_history

          HISTFILESIZE=1000

     

        history 的常见操作

          查看命令历史

          !#  #表示数值,执行#行的命令

          !string  匹配最近一次的字符串

          !!  上一条命令

          *!$*  上一条命令的最后的一个参数

            ls /etc

            ls !$

            ESC+. 

          常见的选项:

          -a

          -d

          -c

          history #   显示最近 # 行的命令

     

        2、命令补全:

              tab :

            1、提示 2、自动补全

            扩展:制表符  四个空格键

     

        3、目录补全:

          tab:

            1、提示 2、自动补全

     

         4、命令展开---date命令:

            {,}

            Linux的目录需要遵循什么规则

            属性1 属性2

            A        1

            B         2

            Mkdir  - pv /var/{a,b}-{1,2}

     

            Date 基于date命令来创建目录

             

                %F   CCYY-mm-dd 年-月-日

                 %T hh:MM:ss 时-分-秒

                %D:mm/dd/YY

                %H hh 小时

                %M MM 分钟

                %S SS 秒

            

            练习: 通过for语句循环创建一个月的日志文件;.Log   2019-08-6.http .log

            Touch 'date +%F'.http.log

              For I in {1,,30};do Touch 'date +%Y-%m-$i'.http.log;done

              [tar

                压缩工具 :只能对文件进行操作,不能对目录进行压缩

                Gzip

                Bzip2

                Xz

                tar的常见参数:

                  Tar 归档工具

                  -j bzip2

                  -J xz

                  -z gzip

                  -c create 创建

                  -x extract 解压  //可以不用指定解压工具

                  -f 指定文件名

                  -v 显示详细信息  verbose

               ]

                练习 : 编写脚本,每天02.20 备份/etc/目录中的所有文件,名称为当天的日期;且保存文件

            为压缩文件;

                Crontab -- 20 2 ***/root/xxx.Sh

                Vim xxx.sh

                  #!/bin/bash

                  #

                  Tar cjvf /var/'date + %F'.xz /etc/

                Chmod + x xxx.sh

                补充:

                    Clock  / hwclock 常看硬件时钟(如果同步系统时钟与硬件时钟)

                    Cal 日历

        5、命令的执行状态

        在Linux中,每一条命令执行后都会有两个结果:

          命令本身放回的内容

          其次,命令执行的结果状态

        $? 变量,就是用来存放命令执行状态的变量;

          0 表示成功状态(和python相反)

          1--255 表示失败状态

          [$? -eq 0]&& exit 0 || exit 1

     

        6、命令的快捷键

          Ctrl +l

          Ctrl +c

          Ctrl +u  //删除光标前的字符

          Ctrl +k  //删除光标后的字符

          Ctrl +a 光标首

          Ctrl +e 光标尾

          Ctrl + w //以空格为分割符,去删除文件

          Ctrl + r //进入一个交互界面,搜索最近一次使用的命令(要输入string)

     

          7、alias别名

            系统启动时读取一些特殊文件的顺序;

            Alias

            Alias cdnet=“cd /etc/sysconfig/network-scriptes”//这种方式定义alias只能在当前shell生效

            /etc/profile : 定义环境变量(所有用户)--EXORT HISTcONTROL=XXX

            /etc/bashrc:定义本地变量--alias(所有用户)

            ~/.bash_prfile:定义环境变量(指定用户)

            ~/.bashrc:定义本地变量--alias(指定用户)

            Sources /etc/porfile 或者 ./etc/profile

        8、文件通配符 -- gobbing

          【文件通配符不是正则表达式】

           五种常见的t通配符:?*[]^指定字符类

          ? //任意一个字符

            *  // 任意长度的任意字符

          [] //指定范围内的任意字符

          ^

            2、[^]指定范围以外的任意一字符

              [0-9a-zA-Z]

           指定字符类

             

    练习

    1、显示/var目录下所有以1开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录;

      ls /var/1*[0-9]*[a-z]

    2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录

      ls /etc/[0-9]*[^0-9]

    3、显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录

      ls /etc/[^[:alpha:]][[:alpha:]]*

    4、复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/test目录中;

      cp -a /etc/m*[^0-9]  /tmp/test

    5、复制/etc目录下,所有以.d结尾的文件或目录至/tmp/test.com目录中

      cp -a /etc/*.d$ /tmp/test.com

    6、复制/etc目录下,所有.conf结尾,且以m n r p开头的文件或目录至/tmp/test.com目录中

      cp -a /etc/[mnrp]*.conf /tmp/test.com

  • 相关阅读:
    Android studio快捷键总结
    汇编寄存器(内存访问)基础知识之四----栈
    汇编寄存器(内存访问)基础知识之三---mov指令
    android studio学习之一
    ASCII值对照表
    chrome 优秀的插件推荐
    android基础知识之一
    汇编基础知识之二debug的使用
    计算机专业课系列之三:进程和线程
    计算机专业课系列之二:程序的机器表示(汇编)
  • 原文地址:https://www.cnblogs.com/only-m/p/11311324.html
Copyright © 2011-2022 走看看