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、自动补全 
 扩展:制表符  \t  四个空格键
3、目录补全
 tab
  1、提示  2、自动补全
4、命令展开—date命令
 { ,}
 Linux的目录需要遵循什么规则? --  FHS目录规则
 属性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
  %Y   CCYY
  
  练习:通过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
  压缩工具   1234lfjkfoajf3o2u34o2jlr lwjro32rlf1234e
   1234=ax
  【压缩 只能对文件进行操作,而不能对目录进行操作】
  gzip 
  bzip2
  xz
  zcat  //查看压缩文件且不解压
 tar的常见参数:
  tar 归档工具【可以对目录进行操作】
  -j  bzip2
  -J  xz
  -z  gzip
  -c  create
  -x  extract  //可以不用指定解压的工具
  -f  指定文件名
  -v  显示详细信息 verbose
  -t  不解压查看内容 和 zcat 一样
 tar cjvf 2018-08.http.log.bz2 2018-08-*.http.log
 tar xvf 2018-08.http.log.bz2 -C abc
 练习:编写脚本,每天02:20   备份/etc/目录中所有文件,名称为当天日期;且保存文件为压缩文件;
 crontab -e -- 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  :  定义环境变量(所有用户) -- EXPORT HISTCONTROL=XXX
 /etc/bashrc : 定义本地变量--alias(所有用户)
 ~/.bash_profile : 定义环境变量(指定用户)
 ~/.bashrc :  定义本地变量--alias(指定用户)
 sources /etc/profile  或者  . /etc/profile
8、文件通配符  -- globbing
 【文件通配符不是正则表达式】
 ?   任意单个字符
 *   任意长度的任意字符
 []   指定范围内的任意一个字符
 [^] 指定范围以外的任意一个字符 
    [0-9A-Za-z]
  [0-9] [a-z]  [A-Z]  [a-zA-Z]
 指定字符类:
  [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:],
         [:punct:], [:space:], [:upper:], and [:xdigit:]
  
  ^[[:space:]]*$   //有空格键的空行(正则表达式)
9、练习
 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
 

学习shell的第一天的更多相关文章

  1. 认真学习shell的第一天-数学运算

    shell中的数学运算有三种方式: (1)let,用let的时候,变量名称前不用添加$ (2)[],[]中变量可使用也可不使用$ (3)(())变量名之前必须添加$

  2. 学习 shell脚本之前的基础知识

    转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写sh ...

  3. 第十三章、学习 Shell Scripts

    什么是 Shell scripts shell script (程序化脚本) :shell script 是针对 shell 所写的『脚本!』 shell script 是利用 shell 的功能所写 ...

  4. 菜鸟教程之学习Shell script笔记(上)

    菜鸟教程之学习Shell script笔记 以下内容是,学习菜鸟shell教程整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-shell.ht ...

  5. 鸟哥的Linux私房菜——第十六章:学习Shell Scripts

    视频链接:http://www.bilibili.com/video/av10565321/ 1. 什么是 Shell Script       (shell写的脚本)1.1 干嘛学习 shell s ...

  6. 学习shell脚本之前的基础知识

    日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位 ...

  7. (转)跟着老男孩一步步学习Shell高级编程实战

    原文:http://oldboy.blog.51cto.com/2561410/1264627/  跟着老男孩一步步学习Shell高级编程实战 原创作品,允许转载,转载时请务必以超链接形式标明文章 原 ...

  8. 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)

    第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...

  9. Shell十三问更新总结版 -- 什么叫做 Shell?-- Shell十三问<第一问>

    Shell十三问更新总结版 简介 ChinaUnix 论坛 Shell 版名为網中人的前辈于 2004 年发布的精华贴,最近回炉这块内容,觉得很多东西讲的实在透彻,非常感谢前辈網中人,同时我个人也对这 ...

随机推荐

  1. vue 手机物理返回键关闭弹框

    1.打开弹窗调用 window.history.pishState() 函数 2.关闭弹框 3.mounted 生命周期 监听popstate 事件 4.beforeDestroy 生命周期 移除po ...

  2. C#静态变量 总结

    在C#程序中,没有全局变量的概念,这意味着所有的成员变量只有该类的实例才能操作这些数据,这起到了“信息隐藏”的作用.但有些时候,这样做却不是个明智的选择. 假设我们要定义一个图书类,要求该类能保存图书 ...

  3. hihocoder 1457 后缀自动机四·重复旋律7 ( 多串连接处理技巧 )

    题目链接 分析 : 这道题对于单个串的用 SAM 然后想想怎么维护就行了 但是多个串下.可以先将所有的串用一个不在字符集( 这道题的字符集是 '0' ~ '9' ) 链接起来.建立后缀自动机之后 在统 ...

  4. 十七、mysql数据库备份

    使用java代码在window环境下实现定时执行Mysql备份与还原 //备份 public void doBackup() { Date currentTime = new Date(); Syst ...

  5. JVM系列大纲

    本系列主要分析JVM主要功能要点,初步大纲如下,会根据写作情况进行细化,目的在于梳理JVM的知识体系,具体分析文章会陆续发布. [JVM]类加载机制(1) [JVM]Java内存区域(2) [JVM] ...

  6. TypeScript----函数与类

    TypeScript中的类 传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员来讲就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来 ...

  7. 04.重建二叉树 (Java)

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  8. Linux shell - `dirname $0` 定位到运行脚本的相对位置

    例1. 在/home/admin/test/下新建test.sh内容如下: cd `` echo `pwd` 然后返回到/home/admin/执行 sh test/test.sh 运行结果: /ho ...

  9. TCP 之 FIN_WAIT_2状态处理流程

    概述 在主动关闭方发送了FIN之后,进入FIN_WAIT_1状态,在此状态收到了ACK,则进入FIN_WAIT_2状态,而FIN_WAIT_2后续要做的工作是等待接收对端发过来的FIN包,并且发送AC ...

  10. HTML中meta=“viewport”的介绍

    viewport就是浏览器上用来显示网页的那部分区域 layout viewport:整个网页所占据的区域(包括可视也包括不可视的区域)  默认的 visual viewport:网页在浏览器上的可视 ...