zoukankan      html  css  js  c++  java
  • shell脚本86

    Shell入门1:

    1、用户空间用来跑应用程序

    2、shell程序用来做人机交互

    3、shell程序以单行命令来执行,缺乏逻辑关系。

    4、Python与shell的区别:使用shell来实现Linux的批量处理,而不是去开发应用程序

    5、ipython:是Python的交互式shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。

    6、程序是执行某个功能的一段代码。程序必须包含的两个要素:指令(即命令),数据(由变量提供),还需要一个逻辑关系(可有可无)

    7、date命令查看系统时间,hwclock(clock)命令查看硬件时间

    8、chroot命令:切换根文件系统。l临时根文件系统,加载磁盘驱动文件

    9、在开发语言中Tab键叫做制表符(\t,代表四个空格建)

    10、bash的特性:

    ①命令历史(history)

    作用:查看之前使用的命令

    关于命令历史的文件(每个用户家目录下的.bash_history,在关机的时候会自动写入一次,重启后还会有。将内存中的命令历史手动写入:history -r)

    关于命令历史的变量(环境变量)       查看环境变量:env、set(查看更详细的环境变量参数)

    记录历史数量(HISTSIZE=1000)

    (HISTCONTRUL=ignoredups(忽略重复的历史命令)

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

                                 ignoreboths(两者都生效)

    history的常长见操作:

    1、history(查看所有历史命令)

    2、!+编号(执行该条命令)

    !$(重要):上一条命令的最后一个参数(快捷键:ESC+.)

    常见选项:

    -a 追加历史行到历史文件中

    -d 删除

    -c 清空

    history # :显示最近#行的命令

    ②补全(Tab键作用:提示,自动补全命令,目录)

      inux目录需要遵循FHS(文件系统层次化标准)目录规则

    ③命令行展开

    展开命令:{}

    用一条命令创建以上的目录:

    mkdir -pv mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys

    date  基于date命令来创建目录

    date+%F(输出年月日)

    date+%H(输出时间的小时)

    date+%M(输出时间的分钟)

    date+%S(输出时间的秒)

    date+%T(输出时间)

    练习:通过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

    压缩工具(只能压缩文件,不能压缩目录):gzipbzip2xz(每一种压缩工具的压缩原理不同)

    Tar(归档工具,可以对目录进行操作)的常见参数:-j:相当于bzip2,

    -J:相当于xz;

    -z:相当于gzip

    Zcat用于查看压缩文件,且不解压

    -c :创建压缩文件;

    -x:相当于extract(可以不用指定解压工具)

    -f:指定文件名(即给压缩的文件取名);

    -v:显示详细信息;

    -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()

    Crontab --20 2 * * * /root/xxx.sh
    
    Vim xxx.sh
    
           #!/bin/bash
    
    Tar cJvf  /var/`date +%F`.xz  /etc/
    Chmod +x xxx.sh(给文件增加执行权限)

    如何同步系统时钟和硬件时钟

    cal命令:查看当前月份

    Echo $?(变量,就是用来存放命令执行状态的变量,0表示成功,1-255表示失败状态)

    常见错误状态 :127表示命令不对

                               2表示文件或目录不存在

                               13表示没有权限

    在程序执行中,我们可以使用exit来手动指定放回的状态码,return是函数中指定的返回码

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

    ④命令快捷键:

    快捷键

    功能

    Tab

    补全命令或路径(不能补全时代表命令或路径有错)

    Ctrl+d

    退出当前用户环境,相当于exitlogout

    Ctrl+l(小写的L

    清屏(clear

    Ctrl+c

    终止,强行结束当前命令

    Ctrl+Shift+cCtrl insert

    Ssh客户端里secureCRT里复制命令

    Ctrl+Shift+vShifl insert

    Ssh客户端里secureCRT粘贴复制的命令

    Ctrl+a

    使光标到命令的最开头

    Ctrl+e

    使光标到命令的结尾

    Ctrl+u

    剪切光标之前的命令

    Ctrl+k

    剪切光标之后的命令

    Ctrl+r

    进入一个交互式界面,根据输入的字符串搜索最近一次使用的命令

    Ctrl+s

    挂起系统

    Ctrl+q

    解除挂起

    Ctrl+w

    以空格为分隔符,去删除文件

    ⑤alias:别名

    Alias cdnet=’cd /etc/sysconfig/network-scripts’  //这种方法定义alias只能在当前shell生效

    /etc/profile(定义环境变量(所有用户))EXPORT(用来导入环境变量)

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

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

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

    区别:定义别名永久生效:将别名放在/etc/profile(全局生效)而~/.bashrc(当前用户生效)

    /etc/profile文件中手动加入环境变量后:要敲Sources /etc/profile  或者 . /etc/profile命令

    ⑥文件通配符:

    (文件通配符不是正则表达式)

    ?  任意单个字符

    *  任意长度的任意字符

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

    [^] 指定范围内以外的任意一个字节

    例:[^0-9A-Za-z]

    指定字符类:

    [:alnum:]:英文大小写字符以及数字。即A-Z a-z 0-9

    [:alpha:]:英文大小写字符,即A-Z a-z

    [:cntrl:]:键盘的控制按键

    [:digit:]:数字,即0-9

    [:graph:]:除去空格符(空格符和Tab键)外的其他所有符号  

    [:lower:]:代表小写字符,即a-z  

    [:print:]:任何可以被打印出来的字样  

    [:punct:]:标点符号  

    [;space;]:空白符(代表两个中括号)  

    [;upper;]:大写字符,即A-Z  

    [;xdigit;]16进制的数字类型,0-9 A-F a-f的数字与字符

    正则表达式:^  以....开头

    ^[[:space:]]*$ (有空格键的空行)

  • 相关阅读:
    Android AHandle AMessage
    android java 与C 通过 JNI双向通信
    android 系统给应用的jar
    UE4 unreliable 同步问题
    UE4 difference between servertravel and openlevel(多人游戏的关卡切换)
    UE4 Run On owing Client解析(RPC测试)
    UE4 TSubclassOf VS Native Pointer
    UE4 内容示例网络同步Learn
    UE4 多人FPS VR游戏制作笔记
    UE4 分层材质 Layerd Materials
  • 原文地址:https://www.cnblogs.com/cqyyyyy/p/11311097.html
Copyright © 2011-2022 走看看