随笔分类 -  Shell笔记

摘要:sed 是一种在线编辑器,它一次处理一行内容。 处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出 阅读全文
posted @ 2019-09-03 21:56 李凡金牛 阅读(591) 评论(0) 推荐(0)
摘要:grep命令在文本中搜索指定的内容。 grep命令的常用选项 -c 只输出匹配行的计数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n 显示匹配行及行号。 -s 不显示不存在或无匹配文本的错误信息。 -v 显示不包含匹 阅读全文
posted @ 2019-08-27 20:29 李凡金牛 阅读(3036) 评论(0) 推荐(0)
摘要:正则表达式是一种基础的模式匹配技术。大多数文本处理工具都支持正则表达式。借助适合的正则表达式,我们可以对文本文件执行过滤、剥离(strip)、替换、搜索等操作。 位置标记 1、查找abc开头的行 [root@linux test_shell]# grep "^abc" << end> abc123> 阅读全文
posted @ 2019-08-27 17:01 李凡金牛 阅读(247) 评论(0) 推荐(0)
摘要:需求:向 file.txt 添加内容 "hello world" 方法1:文本编辑器 方法2:输出重定向 备注:按 Ctrl + D 结束编辑。 方法3:输入输出重定向 方法4:sed流编辑器 总结: 添加内容较少时,推荐使用 方法2 添加内容较多时,推荐使用 方法3 在指定位置 添加/插入/修改 阅读全文
posted @ 2019-08-27 11:30 李凡金牛 阅读(11504) 评论(0) 推荐(1)
摘要:cp命令的作用:文件复制 cp命令的常用选项 -a:此参数的效果和同时指定"-dpR"参数相同; -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录; -f:强行复制文件或目录,不论目标文件或目录是否已存在; -i:覆盖既有文件之前先询问用户; -l: 阅读全文
posted @ 2019-08-27 11:05 李凡金牛 阅读(508) 评论(0) 推荐(0)
摘要:参考资料:博客园骏马金龙https://www.cnblogs.com/f-ck-need-u/p/7521357.html cut命令将行按指定的分隔符分割成多列。它的弱点在于不好处理多个分隔符重复的情况,因此经常结合tr的压缩功能。 注意:cut分隔符必须是单个字符 cut命令的常用选项 -b: 阅读全文
posted @ 2019-08-23 17:07 李凡金牛 阅读(2140) 评论(0) 推荐(0)
摘要:(1) 使用ls -d:$ ls -d */ (2) 使用grep结合ls -F:$ ls -F | grep "/$" (3) 使用grep结合ls -l:$ ls -l | grep "^d" (4) 使用find:$ find . -type d -maxdepth 1 -print 工作原理 阅读全文
posted @ 2019-08-23 16:35 李凡金牛 阅读(288) 评论(0) 推荐(0)
摘要:tr可以对来自标准输入的内容进行字符替换、字符删除以及重复字符压缩。 tr只能通过stdin(标准输入)接收输入(无法通过命令行参数接收)。其调用格式如下: tr [options] set1 set2 来自stdin的输入字符会按照位置从set1映射到set2(set1中的第一个字符映射到set2 阅读全文
posted @ 2019-08-22 14:26 李凡金牛 阅读(372) 评论(0) 推荐(0)
摘要:xargs的作用 xargs命令从stdin处读取一系列参数,然后使用这些参数来执行指定命令。它能将单行或多行输入文本转换成其他格式,例如单行变多行或是多行变单行。 xargs的工作原理 xargs命令接受来自stdin的输入,将数据解析成单个元素,然后调用指定命令并将这些元素作为该命令的参数。xa 阅读全文
posted @ 2019-08-21 15:53 李凡金牛 阅读(278) 评论(0) 推荐(0)
摘要:当shell看到< <的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。这个分界符可以是你所定义的任何字符串。 用法1:注释整段脚本代码 #! /bin/bash echo "上午好" # : << EOF ~ EOF 之间的代 阅读全文
posted @ 2019-08-21 14:45 李凡金牛 阅读(3919) 评论(0) 推荐(0)
摘要:IFS的默认值为空白字符(换行符、制表符或者空格)。 字段分隔符IFS的简单案例 输出结果如下: 当IFS被设置为逗号时,shell将逗号视为一个定界符,因此变量$x在每次迭代中读取由逗号分隔的子串作为变量值。 如果没有把IFS设置成逗号,那么上面的脚本会将全部数据作为单个字符串打印出来。 阅读全文
posted @ 2019-08-21 13:54 李凡金牛 阅读(839) 评论(0) 推荐(0)
摘要:find命令的工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,执行相应的操作。 find命令的格式 1、 find命令的一般形式为:find pathname -options [-print -exec -ok ...] 2、 find命令的参数;-athname: find命令所查找 阅读全文
posted @ 2019-08-21 11:17 李凡金牛 阅读(232) 评论(0) 推荐(0)
摘要:cat命令可以用来查看文件内容 查看单个文件:cat file 查看多个文件:cat file file2 管道操作符可以将数据作为cat命令的标准输入 执行:echo "hello" | cat 输出:hello cat也可以将文件内容与终端输入拼接在一起 执行:echo "hello" | ca 阅读全文
posted @ 2019-08-20 20:18 李凡金牛 阅读(1787) 评论(0) 推荐(0)
摘要:1. linux shell 函数 将一组命令集或语句形成一个可用的块, 这些语句块称为函数。 2. shell 函数的组成函数名:函数名字,注意一个脚本中函数名要唯一,否则会引起调用函数紊乱。函数体: 函数内部命令的集合,实现一个业务的功能。 3. shell 函数定义的格式 1、function 阅读全文
posted @ 2019-08-20 17:17 李凡金牛 阅读(239) 评论(0) 推荐(0)
摘要:alias命令可以创建别名,简化长串的命令。 需求:练习shell时,经常要跳转到 /opt/test20190814/ 目录下测试shell脚本。经常输入长串命令,比较麻烦,需要简化命令。解决方法:创建别名,简化操作。 1、创建别名 alias cdt='cd /opt/test20190814/ 阅读全文
posted @ 2019-08-20 16:49 李凡金牛 阅读(671) 评论(0) 推荐(0)
摘要:wc是一个非常方便的文本处理命令,可以统计文件的行数、单词数、字符数。 file的内容 wc命令的简单案例 1、统计行数 执行:wc -l file 输出:4 file 2、统计单词数 执行:wc -w file 输出:12 file 3、统计字符数 执行:wc -c file 显示:48 file 阅读全文
posted @ 2019-08-20 14:32 李凡金牛 阅读(2787) 评论(0) 推荐(0)
摘要:declare命令(别名typeset)属shell内建命令,用于申明shell变量并设置变量属性,或查看已定义的shell变量和函数。若不加上任何参数,则会显示全部的shell变量与函数(与执行set指令的效果相同)。 declare [+/-][选项] 变量名选项: -: 赋予变量的类型属性 + 阅读全文
posted @ 2019-08-20 14:17 李凡金牛 阅读(355) 评论(0) 推荐(0)
摘要:获取当前shell脚本的绝对路径 具体含义如下: dirname $0:取得当前执行的脚本文件的父目录 cd `dirname $0`:进入这个目录(切换当前工作目录) pwd:显示当前工作目录(cd执行后的) 遇到的问题:sudo后 环境变量被重置为默认 解决办法:在/etc/sudoers中修改 阅读全文
posted @ 2019-08-20 13:53 李凡金牛 阅读(162) 评论(0) 推荐(0)
摘要:if else 判断是否成年 判断2个数字的关系(大于、等于、小于) 简化if else if和else语句能够嵌套使用。if的条件判断部分可能会变得很长,但可以用逻辑运算符将它变得简洁一些: [ condition ] && action; # 如果condition为真,则执行action [ 阅读全文
posted @ 2019-08-20 10:48 李凡金牛 阅读(156) 评论(0) 推荐(0)