zoukankan      html  css  js  c++  java
  • Shell

    @(软件测试技术栈)

    Linux基础命令

    文件类命令

    1.磁盘与目录

    • df
    • ls
    • midir
    • cd
      cd /d,进入d盘,不是cd d:,CMD是d:
      cd ~,跳转直自己的home目录
    • pwd
    • $PWD

    2.文件编辑

    • vi、vim
      vi 1.txt
      i:insert
      a:append
      ESC:退回命令模式

      w:write
      q:quit
      ! 强制
    • sed

    3.文件权限
    drwxrwxr-x 2 25172814 25172814 4096 Dec 8 10:38 12
    -rw-rw-r-- 1 25172814 25172814 2018 Dec 21 15:04 4.text
    第1位:表示文件夹类型,d表示目录 ,-表示文件
    第2-4位,所有者权限标识
    第5-7位,组用户权限标识
    第8-10位,其他用户权限标识
    三种身份
    当前用户u
    当前组用户g
    非同组用户o
    三种权限
    r,读
    w,写
    x,执行
    参考:https://www.cnblogs.com/vivian-test/p/5071488.html

    • ll,查看文件权限
    • chmod,更改文件模式(权限)
      chmod o+w 1.txt,o表示非同组用户,+表示增加权限,w表示写权限,1.txt是文件名
      chmod a-x 1.txt,a表示全部用户,-表示去掉权限
    • chown,更改文件所有者和所属群组
    • chgrp,更改文件所属群组

    4.文件搜索

    • find

    5.文件内容

    • cat
    • more
    • less
    • grep

    6.特殊文件

    • ln,软链,相当于windows的快捷方式
      ln -s 1.txt 3.txt,设置软链后编辑3.txt就等于编辑1.txt

    7.文件

    • rm 删除文件和目录
      rm 1.txt
    • cp 复制文件或目录
      cp 1.txt 2.txt,复制1.txt,名称为2.txt,如果2.txt存在直接覆盖
      cp 目录1/11.txt 目录2/22.txt,从目录1复制文件到目录2
    • mv 移除和重命名
      mv 4.txt 5.txt,4.txt从命名为5.txt
      目录1/11.txt 目录2/33.txt,可以写上路径,从目录1移动到目录2

    进程类命令

    • ps,进程快照
      ps aux
      ps -ef
    • top,持续交互式

    网络类命令

    • netstat
      netstat -tlnp,当前对外开放的端口
      netsta -tnp,当前连接
    • curl

    管道

    1.输入与输出

    • read,用来读取输入,并赋值给变量

      把123赋值给x

    • ehco,输出变量

    • printf,输出变量

    • >file,将输出重定向到另一个文件,每次都覆盖

    • >>file,将输出追加重定向到另一个文件

    • <file,输入重定向

    • 管道,前一个命令的输出传给后一个命令的输入
      管道会开启一个新的进程,与read组合使用时要注意。


    Linux三剑客

    gerp,基于正则表达式查找满足条件的行

    grep pattern file
    pattern:正则表达式
    file:没给文件时,会找标准输出
    1.grep的参数

    • -i,忽略大小写
    • -v,不显示匹配的行
    • -o,每个匹配内容用独立的行显示
    • -E,使用拓展正则表达式
    • -r,递归搜索文件夹

    2.基本正则表达式
    使用正则表达式,最好用单引号括住表达式

    • ^开头

    • $结尾

    • [a-z]、[0-9]区间,其中任意一个

    • [^a] 不匹配a

    • *表示0个或多个

    • .表示任意字符

    3.拓展正则表达式
    使用拓展正则表达式,需要加上-E参数

    • ? 非贪婪匹配
    • +表示一个或多个
    • () 分组
    • {} 范围限定
    • | 匹配多个表达式中的一个

    awk,根据定位到的数据行处理其中的分段

    语法:awk 'pattern{action}
    掌握字段数据处理

    • -F参数,指定字段分隔符,没有指定默认以空格为分隔符
    • (0,代表当前的记录,为避免)符号与引用变量的$混淆,需要使用{}括起来
    • $1,代表第一个字段
    • $N,代表第N个字段
    • $NF,代表最后一个字段
      echo $PWD |awk -F '/' '{print $2}'

    以/为分隔符,打印第二个字段

    sed,根据定位到的数据行修改其中的数据

    • s代表搜索
    • /可以是其他符号,一般用/
    • g代表全局搜索修改
    • -e可以使用多个表达式
      echo $PWD |sed -e's/1/a/g' -e's/h/999/'

    Bash语言

    变量

    1.变量定义

    • = 左右不要有空格
    • 如果内容有空格,需要使⽤单引号或者双引号
    • 双引号⽀持转义 $开头的变量会被⾃动替换

    2.变量引用
    $

    逻辑控制

    1.if
    ❖ if [ condition ] ; then …;fi
    ❖ if [ condition ] ; then …;else …;fi
    ❖ if [ condition ] ; then …;elif …;fi
    ❖ 简单的逻辑可以使⽤ && || 去替代
    ❖ [ -f file ] && echo file exist || echo file not exist
    ❖ 条件可以⽤命令返回值代替

    2.for

    • ⽤于递归数组
      arry=(1 2 3 4);for i in ${arry[@]};do echo $i;done

    • 用于递归以空格隔开的字符串序列
      ss="aa bb cc dd";for x in $ss;do echo $x ;done

    • 用于递归某个命令的返回值
      for x in ls;do echo $x ;done

    3.while

    • 设置循环条件
      i=0;while ((i<3));do echo $i;((i=i+1));done

    • ⼀⾏⾏的读取⽂件内容
      while read line; do echo $line ; done < 3.txt

    4.退出控制

    • return 函数返回
    • exit 脚本进程退出
    • break 退出当前循环
    • continue 跳过当前的循环,进⼊下⼀次循环

    函数

    1.注释
    2.传参
    ❖ $0 表⽰执⾏的程序,是相对于执⾏⽬录的路径
    ❖ $1 ,$2 ,$3 分别表⽰第⼏个参数。默认shell只⽀持9个参 数,使⽤shift可以传递更多的参数。
    (@,)* 表⽰所有的参数,不含$0
    ({#*}和){#@}表⽰位置参数的个数
    ❖ 通过${*:1:3}, ({*:)#} 来表⽰多个参数。
    3.定义函数

    4.执行函数
    5.调试函数 -x

  • 相关阅读:
    ubuntu安装pgAdmin 4
    python 读取文件
    byobu copy
    vim快捷键汇总
    python 停止线程
    python执行外部命令并获取输出
    gevent mysql
    python类型转换
    量化交易
    Java集合:HashMap底层实现和原理(源码解析)
  • 原文地址:https://www.cnblogs.com/Uni-Hoang/p/12941020.html
Copyright © 2011-2022 走看看