• shell入门笔记


    shell
    1、bash 的基本特性:
    CTRL + l
    上建
    history
    2、io重定向与管道符
    3、 编程基础
    编程原理
    程序就是执行某个功能的一段代码而已
    shall执行:全路径 ,命令, ./
    变量是一段命名的内存空间
    程序 = 指令 +数据(变量)+逻辑关系
    4、grep 和正则表达式!!!!!
    linux三剑客
    pattern模式
    5、语句的逻辑关系
    if
    for 放入for循环的列表
    while 循环条件为true
    until 循环条件为false(不要进入死循环)

    case · 编写Linux的程序启动脚本

    break
    continue(跳出当前循环)
    exit

    read input()
    echo· print()

    变量

    Linux三剑客

    sed 流设备(文本编辑)

    两种模式的切换
    awk(报告生成器)
    独立的编程语言
    函数
    一段固定功能的代码块
    数组
    列表、元组、字典

    字符串
    字符串的处理
    先排序在去重(重复:必须连续且相同的数据)
    ---------------------------------------------------------------
    一、 bash的基本特性
    1、命令历史
    作用:查看之前使用的命令
    历史记录history
    关于命令历史的文件
    每个用户家目录下面的.bash_history
    在关机时,会自动写入一次(history -r 将内存中的命令历史写入文件)
    关于命令历史的变量(环境变量)
    env //查看环境变量
    set //查看更详细的环境变量参数
    HISTSIZE = 1000 数量
    HISTCONTROL = ignoreboth 两者都生效
    history的常见操作
    查看命令历史
    !# #表示数值,执行#行的命令
    !!上一条命令
    !string 匹配最近一次的字符串
    !$ 上一条命令的最后的内容
    (esc + .)
    常见选项:
    -a
    -d
    -c
    history #(数值) 显示最近#行的命令
    2、命令补全
    tab
    提示和自动补全的作用
    制表符 四个空格
    3、目录补全
    4、命令展开
    系统时钟:date
    硬件时钟:clock、hwclock(如何同步系统时钟与硬件时钟)
    cal 日历
    -j 显示当日是当年中的第几天

    Linux的目录需要遵循FHS目录规则
    基于date命令创建目录
    date +%F 显示年月日
    -%H 小时
    -%M 分钟
    -%S 秒
    -%T 显示时间
    tar 压缩工具
    【压缩只能对文件进行操作,而不能压缩目录】
    gzip
    bzip2
    xz
    zcat \ 查看压缩文件且不解压
    tar的常见参数:
    tar归档工具【可以对目录进行操作】
    -j bzip2
    -J xz
    -z gip
    -c create
    -x extract \可以不用指定解压工具
    -f 指定文件名
    -v 显示详细信息 verbose
    -t 不解压查看内容
    tar cjvf 2018-08.http.log.bz2 2018-08-*.http.log
    tar xvf 2018-08.http.log.bz2 -C abc


    5 、命令的执行
    在Linux中, 每一条命令执行后都会有两个结果:
    命令本身放回的内容
    命令执行的结果状态
    $? 变量,就是用来存放命令执行状态的变量;
    0 表示成功状态
    1-255 表示失败状态

    6、 命令快捷键
    CTRL + l 清屏
    CTRL + c 退出
    CTRL + u 删除光标前字符
    CTRL + k 删除光标后字符
    CTRL + a 光标跳到行首
    CTRL + e 光标跳到行尾
    CTRL + w 以空格为分隔符,删除文件
    CTRL + r 进入一个交互式页面,搜索最近一次使用的命令(要输入string)

    7、alias别名
    系统启动时读取一些特殊文件的顺序

    /etc/profile 定义环境变量(所有用户) --EXPORT HISTCONTROL=XXX
    /etc/bashrc 定义本地变量----alias(所有用户)
    ~/.bash_profile 定义环境变量(指定用户)
    ~/.bashrc 定义本地变量---alias(指定用户)
    source /etc/profile 或者 ./etc/profile
    8、文件通配符
    【文件通配符不是正则表达式】
    ? 任意单个字符
    * 任意长度, 任意字符
    [ ] 指定范围内的任意一个字符
    ^
    【^】指定范围以外的任意一个字符
    【^0-9A-Za-z】
    指定字符类:
    [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:],
    [:upper:], and [:xdigit:].
    -------------------------------------------------------------------------------------------------------------
    重定向和管道符:
    1、重定向
    在程序中,数据是如何输入的 ?又如何输出?
    数据输入:键盘--标准输入,但并不是唯一方式
    数据输出:显示器--标准输出并不是唯一方式
    fd文件标识符 0-9 ---相当于给文件分类;
    被定义的 0 1 2
    0-----标准输入
    1-----标准输出
    2-----标准错误
    常见重定向符号:
    1、标准输出
    > 覆盖重定向、非常危险(容易没数据)
    set - C 关闭覆盖重定向
    >> 追加重定向 不覆盖
    >| 强制重定向
    2、标准输入
    < a < b tr 替换文件内容
    tr set1 【set2】< file.txt
    << 将多行数据同时输入
    cat >>a.txt<<EOF
    >1
    >2
    >3
    >EOF
    3、错误输出
    2>
    2>>
    &> &>>
    2 管道 - tee
    前一个命令的执行结果交给后一个命令来执行
    tee 一路输入,两路输出
    tee/tmp/tee/out
    如果没有文件,会创建,默认如果文件存在有内容,会覆盖

    find [范围] -name ab* -type f -perm 600 -mtime +7|xargs rm -rf


    3、 文本处理工具 -wc,cut,sort,uniq
    wc
    word count 统计文本文件中的字符个数
    用法:wc filename
    行数、字符个数、文件大小、文件名
    -l -w -c
    cut
    用来做文件分割
    默认使用'空格'做分割符
    -d 指定分割符(delimiter)
    -f 指定提取哪一列
    -f1、
    -f1,3、
    -f1-3
    --output-delimiter=’‘将输出的分隔符替换为想替换的
    【cut的局限性:1、-d 指定分隔符不能同时指定多个 2、不能做出高级的格式化输出】
    sort
    排序命令(按ascⅡ排序)
    默认查看第一个字符(包括数字、字母、空格、特殊符号)
    -r 逆序
    -n 指定以数值大小进行排序
    -f 忽略字符的大小写
    -u uniq排序去除重复,重复的不显示
    -t delimiter指定分隔符
    -k 已制定字段的第几段进行排序
    uniq
    连续且相同的命令,才被视为重复
    建议先排序在去重
    -c 显示每一行重复了多少,统计出来
    -d 仅仅显示重复的行

  • 相关阅读:
    Mac 远程连接 Windows
    更优雅的方式: JavaScript 中顺序执行异步函数
    Node.js 上传文件
    win10 系统右键菜单不显示文字(只有小图标)修复方法
    JavaScript 排序算法(JavaScript sorting algorithms)
    JavaScript addEventListener 第三个参数
    前端小白之每天学习记录----angula2--(1)
    H5如何与Native通信Hybrid交互--(1)
    vuex学习--(1)
    前端小白之每天学习记录----php(9)简单的api
  • 原文地址:https://www.cnblogs.com/MrGhost/p/11348253.html
Copyright © 2020-2023  润新知