命令模式

Linux高级命令进阶(week1_day2)--技术流ken

倾然丶 夕夏残阳落幕 提交于 2020-03-27 03:14:26
输出重定向 场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。 >:覆盖输出,会覆盖掉原先的文件内容 >>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加 2>:错误输出,会覆盖掉原先的文件内容 2>>:错误追加输出,会覆盖掉原始文件内容,会在原始内容末尾继续添加 &>:将标准输出与错误输出共同写入到文件中。覆盖原有内容 &>>:将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。 案例1:使用覆盖输出(覆盖原文内容) [root@ken ~]# vim test [root@ken ~]# cat test this is ken [root@ken ~]# echo "this is oscar" > test [root@ken ~]# cat test this is oscar 案例2:使用追加输出(原文中追加) [root@ken ~]# cat test this is oscar [root@ken ~]# echo "this is

StringRedisTemplate获取redis信息

徘徊边缘 提交于 2020-03-26 11:04:35
StringRedisTemplate获取redis信息 Properties info = redisTemplate.getRequiredConnectionFactory().getConnection().info("memory"); 可选参数: server :有关Redis服务器的常规信息 clients :客户端连接部分 memory :内存消耗相关信息 persistence :RDB和AOF相关信息 stats :一般统计 replication :主/副本复制信息 cpu :CPU消耗统计信息 commandstats :Redis命令统计 cluster :“ Redis群集”部分 keyspace :与数据库相关的统计 它还可以采用以下值: all :返回所有部分 default :仅返回默认的部分集 如果未提供任何参数,则采用该 default 选项。 返回值: redis> INFO # Server # Redis服务器版本 redis_version:999.999.999 redis_git_sha1:3c968ff0 redis_git_dirty:0 redis_build_id:51089de051945df4 redis_mode:standalone # Redis 服务器的宿主操作系统 os:Linux 4.8.0-1-amd64

Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令

北战南征 提交于 2020-03-26 09:33:19
Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令 Redis 的键命令 Redis 的键命令主要用于管理 Redis 的键,如删除键、查询键、修改键及设置某个键等。 1. EXISTS 命令:判断键是否存在 2. KEYS 命令:查找键 KEYS 命令用于按照指定的模式(pattern)查找所有的 key。参数 pattern 类似于正则表达式。 ● KEYS*:表示匹配查找数据库中的所有 key。 ● KEYS r?dis:表示匹配 radis、redis、rxdis 等。 ● KEYS r*dis:表示匹配 rdis、redis、reeedis 等。 ● KEYS r[ae]dis:表示匹配 radis 和 redis,但是不会匹配 ridis。 遇到特殊符号需要使用「\」隔开(转义)。 3. OBJECT 命令:查看键的对象 OBJECT 命令用于从内部查看给定 key 的 Redis 对象。该命令通常用在除错或者为了节省空间而对 key 使用特殊编码的情况下。如果要用 Redis 来实现与缓存相关的功能,则可以使用 OBJECT 命令来决定是否清除 key。 OBJECT 命令有如下子命令: ● OBJECT REFCOUNT key 用于返回给定 key 引用所存储的值的次数,多用于除错。 ● OBJECT ENCODING key

Linux sed进阶

帅比萌擦擦* 提交于 2020-03-26 09:18:15
一、多行命令 在使用sed编辑器的基本命令时,所有的sed编辑器命令都是对单行数据执行操作。sed编辑器也可以对多行数据进行处理,包含了3个可用来处理多行文本的特殊命令。 1》N:将数据流中的下一行加进来创建一个多行组来处理。 2》D:删除多行组中的一行。 3》P:打印钓竿组中的一行。 1.单选的next命令 小写n命令会告诉sed编辑器移动到数据流下一文本行,而不用重新回到命令的最开始再执行一遍。通常sed编辑器会在移动到数据流中的下一文本行前,在这行上执行所有定义好的命令。 $ cat data4 This is the header line This is data line This is the last line $ sed '/header/{n;d}' data4 This is the header line This is data line This is the last line 2.合并文本行 单行next命令会将数据流中的下一文本行移动到sed编辑器的工作空间(称为模式空间)。多行版本的next命令(用大写N)会将下一文本行加到已经在模式空间中的文本上。 这样的作用是将数据流中的两个文本行合并到同一个模式空间。文本行仍然用换行符分隔,但sed编辑器现在会将两行文本当成一行来处理。 $ cat data2 line1 line2 line3 line4

【sed】进阶

非 Y 不嫁゛ 提交于 2020-03-26 09:16:52
sed的基本用法已能满足大多数需求,但当需要时,知道这些高级特效的存在及如何使用将提供莫大的帮助! 1. 多行命令 sed编辑器提供三个用于处理多行文本的特殊命令: N:将数据流的下一行加入当前模式空间 D:删除多行组中的一行 P:打印多行组中的一行 【next命令】 单行next命令: 小写的n命令,将下一行文本移入模式空间(工作空间)并挤走已有文本,即跳过当前行进入下一行。 1 # cat data1.txt 2 this is the header line 3 4 this is the data line 5 6 this is the last line 经n命令处理后可跳过第一行: 1 # sed '/header/{n;d}' data1.txt 2 this is the header line 3 this is the data line 4 5 this is the last line 多行next命令: 大写的N命令,将下一行文本并入当前模式空间,即加到已有文本之后。两个文本行合并成一行,仍以换行符分隔。 1 # cat data2.txt 2 This is the header line. 3 This is the first data line. 4 This is the second data line. 5 This is the last

一次与sql注入 & webshell 的美丽“邂逅”

情到浓时终转凉″ 提交于 2020-03-26 00:12:05
引言  一波未平,一波又起。金融公司的业务实在是太引人耳目,何况我们公司的业处正处于风口之上(区块链金融),并且每天有大量现金交易,所以不知道有多少 躲在暗处一直在盯着你的系统,让你防不胜防,并且想方设法的找到突破点,以达到 的目的来获取非法利益。 俗话说:“道高一尺,魔高一丈”。系统和代码也可以这么理解,防的在好,总有漏洞。系统和代码也没有绝对的安全。该来的总会来...... sql注入与“她”相遇 某一天,天气晴朗,心情舒畅。“她”来了,打破了笔者的美好时光。下午2点多钟,笔者和朋友在苏州街的天使汇二楼极客咖啡参加某个云厂商的Kubernetes一场技术沙龙,正听得兴致勃勃的时候,笔者的公司群里有个php开发突然帖出一张图:  这个时候,群里翻腾了。没错,被SQL注入了,数据库的表被注入了字段,并且经检查后,发现这个库中的大部分表都被注入了这个字段。我的电脑没带在身边,真是着急,马上跟总监说明问题严重性。由于我电脑不在身边, 只能把数据库账号授权(读写权限)给那个php开发,让他检查所有的表,把被注入的字段删除掉。并查看数据和其它表有没有被修改。好在发现急时,数据和业务都没有被丢失和损坏。  这里我要说明一下,我们的业务都在阿里云,项目是以php为主,并且开通了waf防火墙,只是waf上的防护措施比较宽松。笔者在安全方面的经验也比较欠缺,好在开通了阿里云的WAF

Redis基础知识(二)

◇◆丶佛笑我妖孽 提交于 2020-03-25 23:01:57
Redis事务 redis中的事务是一组命令的集合,事务中的命令要么全部执行,要么都不执行,Redis 通过 MULTI 、DISCARD 、EXEC 和 WATCH 四个命令来实现事务功能,multi表示事物的开启,exec表示事物的执行,exec执行后返回事务执行的结果,discard表示放弃事务执行,清空事务队列中已有的所有命令并退出队列,watch用于监视给定的键,如果键被其他客户端修改,将不会执行事务。 127.0.0.1:6379> multi OK 127.0.0.1:6379> set key 1 QUEUED 127.0.0.1:6379> get key QUEUED 127.0.0.1:6379> exec 1) OK 2) "1" 127.0.0.1:6379> multi OK 127.0.0.1:6379> set key1 1 QUEUED 127.0.0.1:6379> discard OK 127.0.0.1:6379> get key1 (nil) 这里我在另一个客户端修改了被监视的key,导致在这个客户端事务没有执行 127.0.0.1:6379> set key 1 OK 127.0.0.1:6379> watch key OK 127.0.0.1:6379> multi OK 127.0.0.1:6379> incr key QUEUED

Linux开机自启动

不打扰是莪最后的温柔 提交于 2020-03-25 21:59:21
一、 rc.local rc.local脚本是一个Linux开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。该脚本位于/etc/路径下,需要root权限才能修改。 #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local 一般讲自己的开机执行脚本放在 /etc/init .d/下,然后可在此文件中添加: cd /etc/init.d/ sudo update-rc.d new_service.sh defaults 90 这里90表明一个优先级,越高表示执行的越晚。 二、要在登录或注销时执行脚本,分别需要使用 ~.bash_profile 和 ~.bash_logout 文件。多数情况下,后者需要手动创建。在每个文件的底部,添加调用脚本代码,如前面例中所示,就可以实现这个功能。 三、init进程 init进程是非内核进程中第一个被启动运行的,因此它的进程编号PID的值总是1 。init读它的配置文件

Linux常用操作命令(二)

纵饮孤独 提交于 2020-03-25 19:39:21
一、 文件目录操作命令 1.常用的文本文件操作命令 命令 功能 命令 功能 cat、tac 显示文本文件内容 diff 显示两个文本文件的差异 more、less 分页显示文本文件内容 expand 将文件中的制表符转换为空格 head、tail 显示文本内容的前若干行和后若干行(默认显示10行) unexpand 将文件中的空格转换为制表符 cut 纵向切割出文本指定的部分 dos2unix 将DOS格式的文本转换成Unix格式 paste 纵向合并多个文件 unix2dos 将Unix格式的文本转换成DOS格式 grep 按关键字抽取匹配的行 iconv 将文本从一种编码转换成另一种编码 wc 文本数据统计 tr 转换字符 sort 以行为单位对文本文件排序 sed 流编码器,通常用于非交互式的字符串替换 uniq 删除文本文件中连续重复的行 awk awk是一种用于处理文本的编程语言工具,通常用于处理有格式的文本 2.正则表达式 正则表达式: 是使用某种模式来匹配一类字符串的一个公式。 特殊字符 含义 类型 举例 说明 ^ 匹配首字符 BRE ^x 以字符x开始的字符串 $ 匹配尾字符 BRE x$ 义x字符结尾的字符串 . 匹配任意一个字符 BRE l..e live;love;life等等 ? 匹配任意一个可选字符 ERE xy? x;xy * 匹配0次或多次重复 BRE

神奇高效的Linux命令行

蓝咒 提交于 2020-03-25 17:47:48
一、为什么要学linux命令 Linux是由命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平,命令行方式的操作永远是不会变的。Linux命令有许多强大的功能:从简单的磁盘操作、文件存取,到进行复杂的多媒体图像和流媒体文件的制作,都离不开命令行。虽然Linux也有桌面系统,但是X-window也只是运行在命令行模式下的一个应用程序。 因此,可以说命令是学习Linux系统的基础,在很大程度上学习Linux就是学习命令,很多Linux高手其实都是玩儿命令很熟练的人。 也许对于刚刚从Windows系统进入Linux学习的初学者来说,立刻进入枯燥的命令学习实在太难,但是一旦学会就爱不释手。因为它的功能实在太强大了。 有很多初学者都会遇到这么一个问题,自己对系统的每个命令都很熟悉,但是在系统出现故障的时候,就无从下手了,甚至不知道在什么时候用什么命令去检查系统,这是很多Linux新手最无奈的事情了。说到底,就是学习的理论知识没有很好地与系统实际操作相结合。 很多Linux知识,例如每个命令的参数含义,在书本上说得很清楚,看起来也很容易理解,但是一旦组合起来使用,却并不那么容易,没有多次的动手练习,其中的技巧是无法完全掌握的。 人类大脑不像计算机的硬盘,除非硬盘坏掉或者硬盘被格式化,否则储存的资料将永远记忆在硬盘中,而且时刻可以调用。而在人类记忆的曲线中