Linux 测开 Bash 笔记

Uni · 2020年02月09日 · 最后由 恒温 回复于 2020年02月10日 · 1430 次阅读

shell

Linux 基础命令

文件类命令

1.磁盘与目录

  • df
  • ls
  • midir
  • cd
  • pwd
  • $PWD

2.文件编辑

  • vi、vim vi 1.txt i:insert a:append ESC:退回命令模式 : w:write q:quit ! 强制
  • sed

3.文件权限
三种身份
当前用户
当前组
非同组
三种权限
r,读
w,写
x,执行
参考:https://www.cnblogs.com/vivian-test/p/5071488.html

  • ll,查看文件权限
  • chmod,修改归属者 chmod o+w 1.txt
  • chown,修改用户
  • chgrp,修改组

4.文件搜索

  • find

5.文件内容

  • cat
  • more
  • less
  • grep

6.特殊文件

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

7.移除文件

  • rm rm 1.txt

进程类命令

  • ps,进程快照 ps aux ps -ef
  • top,持续交互式 ### 网络类命令
  • netstat netstat -tlnp,当前对外开放的端口 netsta -tnp,当前连接
  • curl ### 管道 1.输入与输出
  • read,用来读取输入,并赋值给变量 Alt text 把 123 赋值给 x
  • ehco,输出变量
  • printf,输出变量
  • >file,将输出重定向到另一个文件,每次都覆盖 Alt text
  • >>file,将输出追加重定向到另一个文件 Alt text
  • <file,输入重定向 Alt text
  • 管道,前一个命令的输出传给后一个命令的输入 管道会开启一个新的进程,与 read 组合使用时要注意。

Linux 三剑客

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

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

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

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

  • 开头
    Alt text

  • $ 结尾

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

  • [a] 不匹配 a

  • * 表示 0 个或多个

  • .表示任意字符

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

  • ? 非贪婪匹配
  • + 表示一个或多个
  • () 分组
  • {} 范围限定
  • | 匹配多个表达式中的一个 ### awk,根据定位到的数据行处理其中的分段 语法:awk 'pattern{action} 掌握字段数据处理 Alt text
  • -F 参数,指定字段分隔符,没有指定默认以空格为分隔符
  • $0,代表当前的记录,为避免 $ 符号与引用变量的 $ 混淆,需要使用{}括起来
  • $1,代表第一个字段
  • $N,代表第 N 个字段
  • $NF,代表最后一个字段 echo $PWD |awk -F '/' '{print $2}' Alt text 以/为分隔符,打印第二个字段 ### sed,根据定位到的数据行修改其中的数据 *掌握修改 * Alt text
  • s 代表搜索
  • /可以是其他符号,一般用/
  • g 代表全局搜索修改
  • -e 可以使用多个表达式 echo $PWD |sed -e's/1/a/g' -e's/h/999/' Alt text

##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 Alt text
  • 用于递归以空格隔开的字符串序列 ss="aa bb cc dd";for x in $ss;do echo $x ;done Alt text
  • 用于递归某个命令的返回值 for x inls;do echo $x ;done Alt text

3.while

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

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

4.退出控制

  • return 函数返回
  • exit 脚本进程退出
  • break 退出当前循环
  • continue 跳过当前的循环,进⼊下⼀次循环 ### 函数 1.注释 2.传参
  • $0 表⽰执⾏的程序,是相对于执⾏⽬录的路径
  • \$1 ,\$2 ,$3 分别表⽰第⼏个参数。默认 shell 只⽀持 9 个参 数,使⽤ shift 可以传递更多的参数。
  • \$@,\$* 表⽰所有的参数,不含 $0
  • \${#*}和\${#@}表⽰位置参数的个数
  • 通过\${:1:3},\${:$#} 来表⽰多个参数。 3.定义函数 Alt text Alt text

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

共收到 1 条回复 时间 点赞

图挂了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册