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
    image

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,用来读取输入,并赋值给变量


    image

    把123赋值给x

  • ehco,输出变量

  • printf,输出变量

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


    image
  • file,将输出追加重定向到另一个文件
    [图片上传中...(image-529af8-1590217226563-7)]

  • <file,输入重定向


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


Linux三剑客

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

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

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

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

  • ^开头


    image
  • $结尾

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

  • [^a] 不匹配a

  • *表示0个或多个

  • .表示任意字符

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

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

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

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

image

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

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

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

image
  • s代表搜索
  • /可以是其他符号,一般用/
  • g代表全局搜索修改
  • -e可以使用多个表达式
    echo $PWD |sed -e's/1/a/g' -e's/h/999/'
    [图片上传中...(image-1c07c0-1590217226563-10)]

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

    image

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

    image

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

    image

3.while

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

    image

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

    image

4.退出控制

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

函数

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

image

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,783评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,396评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,834评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,036评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,035评论 5 362
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,242评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,727评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,376评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,508评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,415评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,463评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,140评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,734评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,809评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,028评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,521评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,119评论 2 341