Shell学习笔记

Bash shell 的功能
  • 命令记忆功能 history :1000条指令
  • 命令补全功能 tab :
    • 接在一串指令的第一个字的后面,则为命令补全
    • 接在一串指令的第二个字以后时,则为“文件补齐“
  • 命令别名设置功能 alias :给指令取更短的名字
  • 工作控制,情景背景控制
  • 程序化脚本:编写shell 脚本
shell变量
  • 变量:就是让某一个特定字串代表不固定的内容就是了

  • 作用:

    • 影响 bash 环境操作
    • 脚本程序设计 (shell script) 的好帮手
  • 变量的取用与设置:

    • 取变量的值:echo $path
    • 设置变量:=
    • 取消变量设置规则,unset
  • 查看环境变量

    • env :观察环境变量
    • set:观察所有变量
命令别名的设置
  • alias:设置命令别名
  • unalias:取消
指令运行的顺序
  • 基本上,指令运行的顺序可以这样看:
  • 以相对/绝对路径执行指令,例如“ /bin/ls ”或“ ./ls ”;
  1. 由 alias 找到该指令来执行;
  2. 由 bash 内置的 (builtin) 指令来执行;
  3. 通过 $PATH 这个变量的顺序搜寻到的第一个指令来执行。
bash的默认组合建!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KD7iFbf0-1583983338540)(C:\Users\15209\Pictures\博客\bash.jpg)]

万用字符 (wildcard)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MVu5Mzrp-1583983338543)(C:\Users\15209\Pictures\博客\zifu.jpg)]

bash 环境中的特殊符号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4kqIPxCr-1583983338544)(C:\Users\15209\Pictures\博客\teshuzifu.jpg)]

数据重定向>> |> |<< |< | 2>> |2>
  • 输出重定向
    • 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
    • 标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
    • 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
  • 区别:
    • 也就是若以 > 输出到一个已存在的文件中,那个文件就会被覆盖掉啰!
    • 利用两个大于的符号(>>) 就会在文件后面追加
      • 1> :以覆盖的方法将“正确的数据”输出到指定的文件或设备上;
        1>>:以累加的方法将“正确的数据”输出到指定的文件或设备上;
        2> :以覆盖的方法将“错误的数据”输出到指定的文件或设备上;
        2>>:以累加的方法将“错误的数据”输出到指定的文件或设备上;
    • 一些执行命令的可能已知错误讯息时,想以“ 2> /dev/null ”将他丢掉时;
命令执行的判断依据: ; , &&, ||
  • 连续执行多条指令:在指令与指令中间利用分号 (;) 来隔开,这样一来,分号前的指令执行完后就会立刻接着执行后面的指令了
  • cmd1&&cmd2:若 cmd1 执行完毕且正确执行($?=0),则开始执行 cmd2
  • cmd1||cmd2:若 cmd1 执行完毕且正确执行( ? = 0 ) , 则 c m d 2 不 执 行 。 2. 若 c m d 1 执 行 完 毕 且 为 错 误 ( ?=0),则 cmd2 不执行。 2. 若 cmd1 执 行完毕且为错误 ( ?=0cmd22.cmd1?≠0),则开始执行 cmd2。
管线命令(pipe |)
  • 管线命令使用的是“ | ”这个界定符号! 另外,管线命令与“连续下达命令”是不一样的。
  • 管线命令仅会处理 standard output,对于 standard error output 会予以忽略
  • 管线命令必须要能够接受来自前一个指令的数据成为 standard input 继续处理才行。
撷取命令: cut, grep
  • cut
    • 这个指令可以将一段讯息的某一段给他“切”出来~ 处理的讯息是以“行”为单位的。
    • 选项与参数:
      -d :后面接分隔字符。与 -f 一起使用;
      -f :依据 -d 的分隔字符将一段讯息分区成为数段,用 -f 取出第几段的意思;
      -c :以字符 (characters) 的单位取出固定字符区间;
    • cut 主要的用途在于将“同一行里面的数据进行分解!”最常使用在分析一些数据或文字数据的
      时候
  • grep指令
    • grep 则是分析一行讯息, 若当中有我们所需要的信息,就将该行拿出来
    • 选项与参数:
      -a :将 binary 文件以 text 文件的方式搜寻数据
      -c :计算找到 ‘搜寻字串’ 的次数
      -i :忽略大小写的不同,所以大小写视为相同
      -n :顺便输出行号
      -v :反向选择,亦即显示出没有 ‘搜寻字串’ 内容的那一行!
    • grep 可以解析一行文字,取得关键字
  • 排序命令: sort, wc, uniq
  • sort 是很有趣的指令,他可以帮我们进行排序
  • 选项与参数:
    -f :忽略大小写的差异,例如 A 与 a 视为编码相同;
    -b :忽略最前面的空白字符部分;
    -M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
    -n :使用“纯数字”进行排序(默认是以文字体态来排序的);
    -r :反向排序;
    -u :就是 uniq ,相同的数据中,仅出现一行代表;
    -t :分隔符号,默认是用 [tab] 键来分隔;
    -k :以那个区间 (field) 来进行排序的意思
  • unique:要将重复的数据仅列出一个显示
    • 选项与参数:
      -i :忽略大小写字符的不同;
      -c :进行计数
  • wc: 统计这个文件里面有多少字?多少行?多少字符?
  • 选项与参数:
    -l :仅列出行;
    -w :仅列出多少字(英文单字);
    -m :多少字符;
双向重导向: tee
  • 将这个数据流的处理过程中将某段讯息存下来,并且打印到控制台
  • 选项与参数:
    -a :以累加 (append) 的方式,将数据加入 file 当中!
字符转换命令: tr, col, join, paste, expand
  • tr:可以用来删除一段讯息当中的文字,或者是进行文字讯息的替换
  • 选项与参数:
    -d :删除讯息当中的 SET1 这个字串;
    -s :取代掉重复的字符!
  • join:
  • 主要是在处理“两个文件当中,有 “相同数据” 的那一行,才将他加在一起”的
  • 选项与参数:
    -t :join 默认以空白字符分隔数据,并且比对“第一个字段”的数据,
    如果两个文件相同,则将两笔数据联成一行,且第一个字段放在第一个!
    -i :忽略大小写的差异;
    -1 :这个是数字的 1 ,代表“第一个文件要用那个字段来分析”的意思;
    -2 :代表“第二个文件要用那个字段来分析”的意思。
  • paste:
  • 个 paste 就要比 join 简单多了!相对于 join 必须要比对两个文件的数据相关性, paste 就
    直接“将两行贴在一起,且中间以 [tab] 键隔开”而已.
  • 选项与参数:
    -d :后面可以接分隔字符。默认是以 [tab] 来分隔的!
    析”的意思。
  • paste:
  • 个 paste 就要比 join 简单多了!相对于 join 必须要比对两个文件的数据相关性, paste 就
    直接“将两行贴在一起,且中间以 [tab] 键隔开”而已.
  • 选项与参数:
    -d :后面可以接分隔字符。默认是以 [tab] 来分隔的!
    • :如果 file 部分写成 - ,表示来自 standard input 的数据的意思。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值