shell
文章平均质量分 58
Operose-honeybee
每天一篇小博客,记录过程。
展开
-
linux之文件分割split命令详解
linux之文件分割split命令详解进行文件分割时我们需要考虑几个问题:如何分割?是按行分割还是按文件大小分割?是每100行分成一个文件还是每100K分成一个文件?分割以后子文件名称是什么格式的?split命令格式:split + 参数 + 要分割的文件 + 分割后子文件前缀例如:split -a3 -l 100 -d /test/logs.txt /test/logs/log.参数:参数解释-a后缀长度,例如-a3表示后缀长度为3-l按照行数将文件分割成原创 2021-12-28 14:43:10 · 10524 阅读 · 0 评论 -
linux之循环控制for、while、until命令详解
linux之循环控制for、while、until命令详解循环控制的命令主要有for、while,until命令用的也相对较少。一、for命令for命令的写法主要有以下两种格式:格式1:for i in {1..5}do echo "this is $i"done格式2:for((i=1;i<10;i++ ))do echo "this is $i"done格式1是for 变量 in 序列,之前说过4中生成序列的方式在这里均可使用传送门:l原创 2021-12-09 15:46:21 · 7041 阅读 · 0 评论 -
linux之字符转换tr命令详解
linux之字符转换tr命令详解tr - translate or delete characterstr是用来转换或者删除某些字符,只能从标准输入中获取参数,不能从命令行获取参数,所以tr命令常与管道符结合使用。注意:tr命令是对单个字符的处理,可以将一个字符替换为另一个字符,不能对一个字符串替换为另一个字符串【1】tr基本的写法tr写法:cat b.txt | tr 'abc' 'ABC'将a替换为A,b替换为B,c替换为Ctr后跟两个字符集合:set1和set2,将set1中的字原创 2021-12-08 15:16:55 · 1495 阅读 · 0 评论 -
linux之条件判断if命令详解
linux之条件判断if命令详解if命令用于分支判断,有其固定的写法,与c语言等其他编程语言的条件判断逻辑一致,只是写法上稍微有点差别。if命令的写法:if 判断条件;then command1elif 判断条件;then command2else command3fi因为多个命令写在同一行需要用分号分开,其实也可以这样写:if 判断条件then command1elif 判断条件then command2else command3fi其中判断条件可以是[ ]、[原创 2021-12-08 10:36:49 · 13545 阅读 · 0 评论 -
linux之${ }、[ ]、$( )、$[ ]、$(( ))、[[ ]]、(( ))的作用
linux常用符号1、\${ }与\$2、[ ]与test3、$()和``4、\$[ ]和\$(( ))5、[[ ]]6、(( ))1、${ }与$$与${ }都是用来引用变量的,只不过${ }可以指定变量边界,也可用于对字符串变量进行截取等处理,具体用法可参考如下bloglinux之${}符号详解2、[ ]与test[ ]是test命令的另一种形式,用于判断某个表达式的返回值是0或者非0,常用于if命令的判断条件test $a == "linux" 等于 [ $a == "linux" ]原创 2021-12-07 17:39:27 · 12175 阅读 · 4 评论 -
linux之生成序列seq、{}等四种方式
linux之生成序列seq、{}等四种方式在使用循环for的时候in后面常常跟一个序列,例如for i in seq 3;do echo idonefor命令会遍历列表中的值,然后赋值给变量$i,这里介绍几种生成列表的方式【1】seq:sequence序列[root@linuxforliuhj test]# seq 9123456789[root@linuxforliuhj test]# seq 1 9123456789[root@linuxforli原创 2021-12-03 10:57:33 · 2800 阅读 · 0 评论 -
linux之awk命令格式化输出(printf)使用技巧
linux之awk命令格式化输出(printf)使用技巧在使用awk命令的过程中输出的每一列总是对不齐,看着很乱,如下:[root@linuxforliuhj ~]# awk -F ":" '/sbin:/{print $1,$4,$5,$7}' /etc/passwd daemon 2 daemon /sbin/nologinsync 0 sync /bin/syncshutdown 0 shutdown /sbin/shutdownhalt 0 halt /sbin/halt如果我原创 2021-12-01 15:07:54 · 8366 阅读 · 0 评论 -
linux三剑客之awk命令详解
linux三剑客之awk命令详解awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生成报表等等。awk工具主要用于格式化输出,可以用类似于处理表格的方式处理文本,也就是说可以将文本处理成表格的格式,包含行和列,然后可以执行打印某些行、打印某些列、删除某些行、删除某些列等操作。awk与grep、sed一样均支持从管道符接受标准输入和从命令行接受参数,awk同样也支持正则表达式。awk 处理的工作方式与数据库类似,支持对记录(行)和字段(列)处理,这也是 grep原创 2021-12-01 10:21:31 · 5830 阅读 · 1 评论 -
linux之${}符号详解
linux之${}符号详解${ }通常用于划定变量名的边界,例如[root@linuxforliuhj ~]# a=java[root@linuxforliuhj ~]# aa=linux[root@linuxforliuhj ~]# echo "$aa"linux[root@linuxforliuhj ~]# echo "${a}a"javaa[root@linuxforliuhj ~]# echo "$a"java[root@linuxforliuhj ~]# 当执行echo原创 2021-11-30 10:21:53 · 10266 阅读 · 0 评论 -
linux之定时任务crontab命令
linux之定时任务crontab命令使用命令crontab -e默认编辑当前用户的定时任务使用命令crontab -l查看当前用户的定时任务使用命令crontab -e -u user1编辑user1用户的定时任务使用命令crontab -l -u user1查看user1用户的定时任务定时任务的格式 * * * * * command例如:32 9 * * * sh /home/hadoop101/test.sh表示每个月的每一天的9点32分执行一次test.sh脚本Example of原创 2021-11-26 15:43:14 · 446 阅读 · 0 评论 -
linux三剑客之sed命令详解
linux三剑客之sed命令详解上篇文章讲的是文本过滤工具grep linux三剑客之grep命令详解,今天继续讲一下linux三剑客之文本编辑工具sed。sed 是一种新型的,非交互式的编辑器,它能执行与编辑器 vi 相同的编辑任务。sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令、指定文件名,然后在屏幕上查看输出。sed 编辑器没有破坏性,它不会修改源文件,而是将源文件拷贝一份放在操作空间中,然后对操作空间中的副本进行操作,可以使用重定向符号将结果输出到指定文件或者使用-i参数原创 2021-11-23 14:55:02 · 1139 阅读 · 3 评论 -
linux三剑客之grep命令详解
linux三剑客之grep命令详解grep是对文本进行过滤的工具,以行为单位,grep支持管道符,之前文章说过,从管道符接受的数据为标准输入,所以grep支持从标准输入或者命令行获取参数,例如cat a.txt | grep 'hello'与 grep 'hello' a.txt都是可以的。...原创 2021-11-16 17:41:47 · 1916 阅读 · 0 评论 -
linux之扩展正则表达式
linux之扩展正则表达式前面文章说过基础的正则表达式,这里讲一下扩展的正则表达式1.首先说一下包含转义的正则包含转义的正则解释\{m,n\}匹配前一个字符m到n次\{m\}匹配字符m 次\+匹配前一个字符1次或者多次,最少一次\?重复前一个字符0次或者1次\|同时过滤多个字符\(\)分组过滤被括起来的字符\>精确匹配结尾\<精确匹配开头准备测试文件[root@linuxforliuhj test]# c原创 2021-11-16 17:31:29 · 820 阅读 · 0 评论 -
linux之基础正则表达式
linux之基础正则表达式正则表达式是为处理大量文本或者字符串而定义的一套规则,一般只有三剑客(grep、sed、awk)支持,正则表达式分基本正则和扩展正则说白了就是用几个符号替换一部分文本,例如有两行:hello javahello linux这两行的共同点就是有hello,所以我们可以用 ^hello 或者 hello.* 来表示这两行,在这里 ^hello 或者 hello.* 就是正则表达式,正则表达式本身也是字符串,用一个字符串表示一堆字符串,这就是正则表达式的用处很多人会问原创 2021-11-09 17:15:20 · 295 阅读 · 0 评论 -
linux之find命令
linux之find命令find命令用于搜索文件或者目录,find命令的参数特别多,我们只列举常用的:参数解释-name以文件或者目录名称搜索-user以文件所属用户搜索-type限制文件类型,f为文件,d为文件夹-maxdepth最大搜索深度[root@linuxforliuhj test]# lltotal 0-rw-r--r--. 1 root root 0 Nov 3 00:10 Alis.txt-rw-r--r--原创 2021-11-03 16:35:09 · 1072 阅读 · 0 评论 -
linux之通配符详解
linux之通配符通配符常用于文件和目录,一般与find命令结合使用通配符解释*匹配任意长度字符?匹配任意一个字符[abcd]匹配abcd中的一个字符[a-z]匹配a-z中任意一个字符[!abcd]不匹配括号中的任意一个字符[^a-z]不匹配a-z中任意一个字符[root@linuxforliuhj test]# lltotal 0-rw-r--r--. 1 root root 0 Nov 3 00:09 alis.txt-rw原创 2021-11-03 15:23:53 · 2445 阅读 · 0 评论 -
linux之通配符[a-z]为什么会匹配出大写字母
linux之通配符[a-z]为什么会匹配出大写字母先看现象:[root@linuxforliuhj test]# lltotal 0-rw-r--r--. 1 root root 0 Nov 2 18:52 a-rw-r--r--. 1 root root 0 Nov 2 18:52 A-rw-r--r--. 1 root root 0 Nov 2 18:52 b-rw-r--r--. 1 root root 0 Nov 2 18:52 B-rw-r--r--. 1 root roo原创 2021-11-03 14:34:50 · 946 阅读 · 0 评论 -
linux之xargs命令
linux之xargs命令前面文章专门介绍管道符时候提到过,一般情况下,处理文本的命令和工具均支持管道符,像rm、kill等命令则不支持管道符。但是有时候我们想要管道符支持这些命令,例如执行 ls *.sh | rm -rf 找出所有.sh类型的文件并且删除 ps -ef | grep "hello.sh" | awk '{print $2}' | kill 杀死包含"hello.sh"进程实际上这些命令都是无法执行的,这时候就需要用到xargs命令与管道结合使用才能实现。xargs的作用是接收原创 2021-10-29 13:27:33 · 622 阅读 · 0 评论 -
linux之管道符详解
linux之管道符 ’ | ’ 操作详解管道符主要用于多重命令处理,前面命令的标准输出作为后面命令的标准输入。简单点说就是,就像工厂的流水线一样,进行完一道工序后,继续传送给下一道工序处理…举个栗子:对如下文件进行排序去重以后找出包含"better"的行[root@linuxforliuhj test]# cat hello.sh hello this is linuxbe betterbe betteri am lhjhello this is linuxi am lhji am原创 2021-10-28 17:25:30 · 20794 阅读 · 6 评论 -
linux之test命令详解
linux之test命令详解test作用检查某个条件是否成立,返回值为0(真)或者其他值(假),可通过echo $?查看返回值,也常用于循环和条件语句。test一般有三种用法:测试文件或者文件夹字符串比较数值比较1.测试文件或者文件夹参数说明-e当路径存在时返回真-f当路径存在且为文件时返回真-d当路径存在且为文件夹时返回真[root@linuxforliuhj test]# lltotal 20-rw-r--r--. 1 root root原创 2021-10-27 17:28:38 · 9398 阅读 · 0 评论 -
shell 将大文件平均分割成指定数量的小文件
shell 将大文件平均分割成指定数量的小文件1.假设有大文件hello.csv,先查看大文件行数file_rows=wc -l hello.csv|awk '{print 1}'选取wc命令打印结果的第一列,即行数。2.假设要平均分割成10个小文件file_num=103.生成总行数file_num_row=$((${file_rows} + 9))解释一下为什么要加9,因为行数可能是33333行,除以10的话每个文件就是3333行,就丢失了3行,所以加上(文件数-1)行可以保证行不原创 2021-04-14 16:00:35 · 3190 阅读 · 2 评论 -
Linux中expect的使用以及timeout参数的设置
Linux中expect的使用以及timeout参数的设置先上一段expect的shell代码(连接一个数据库执行命令),照骡子画马大家总该会吧:/usr/bin/expect <<!set timeout 600spawn /home/gis/bin-install/pgsql11.6/bin/psql -h 172.30.190.54 -p 5432 -d gis -U gis expect "*Password*"send "gis1001A!\n"expect "gis=#原创 2021-03-26 10:09:55 · 4180 阅读 · 0 评论