当前位置: 移动技术网 > 科技>操作系统>Linux > Shell脚本基础

Shell脚本基础

2019年08月06日  | 移动技术网科技  | 我要评论

命令历史:

       查看已经使用过的命令

       关于历史命令的文件

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

              在关机的时候,会自动写入一次(history -r ) 手动写入

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

              env //查看环境变量

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

              histsize=1000 //数量

              histcontrol=ignoredups 忽略重复的历史命令

                                    ignorespace 忽略空白开头的历史命令

                                    ignoreboth  两个都生效

       history的常见操作

              查看历史命令

              !# #便是数值,执行#行的命令

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

              !!  上一条命令

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

                     ls /etc

                     ls !$

                     =esc .

命令补全

       tab键

命令展开——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

                     %h hh

                     %d mm/dd/yy

                     %m mm

                     %s ss

                     练习:通过for语句创建一个月的日志文件 2019-08-06.log

                     touch `date %f`.log

                     for i in {1..30}:do

                            touch `date +%y-%m-$i`.log

                     done

压缩工具

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

       gzip

       bzip2

       xz9

              tar归档可以对目录进行操作

              -j bzip2

              -j xz

              -z gzip

              -c create

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

              -f 指定文件名

              -v 显示详细信息 verbose

              -t 不解压查看内容

              tar cjvf 2018-08-*.log.bz2 2018-08-*.log

              tar xvf 2018-08-*.log.bz2 -c abc

       练习:编写脚本,每天2: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 日历

命令的执行状态

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

              命令本身放回的内容

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

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

       0     表示成功状态

       1-255     表示失败状态

       [$? -eq0]&&exit0||exit1

命令快捷键:

       ctrl +i

       ctrl +c

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

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

       ctrl +a

       ctrl +e

       ctrl +w  //以空格为分隔符,去删除文件

       ctrl +r  //进入一个交互界面,搜索最近一次使用的命令

alias别名

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

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

              /etc/profile:定义环境变量(所有用户)

              /etc/bashrc:定义本地变量--alias

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

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

文件通配符--globbing

       [文件通配符不是正则表达式]

       ?  --任意单个字符

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

       []  --指定范围内的任意一个字符

       ^   --1:以什么开头

              2:【^】指定范围之外的任意一个字符

                     【^0-9a-za-z】

                     【0-9】【a-z】【a-z】【a-za-z】

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网