首页 > 其他分享 >关于Sed命令随笔

关于Sed命令随笔

时间:2024-03-09 13:22:24浏览次数:24  
标签:systemctl enable sed 命令 vsftpd anon Sed 随笔

1.Sed 工作流程

  • 首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的
    行,完成后把该行发送到屏幕上。
  • sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
  • Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

2. Sed使用方法

sed常见的语法格式有两种,一种叫命令行模式, 另一种叫脚本模式。

2.1 命令行格式

格式

sed [option] 'sed的命令|地址定位' filename
说明: 引用shell script 中的变量应使用双引号,而非通常使用的单引号
option:
-e 进行多项编辑,即对输入行应用多条sed命令时使用
-n 取消默认的输出
-f 指定sed脚本的文件名
-r 使用扩展正则表达式
-i inplace,原地编辑(修改源文件)

常用命令和选项

p 打印行
d 删除行
i\ 在当前行之前插入文本。多行时除最后一行外,每行末尾需用”\“续行 
a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行
c\ 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用”\“续行整行替换 
r 从文件中读取输入行
w 将所选行写入文件
s 用一个字符串替换另一个
g 在行内进行全局替换
& 保持查找串以便在替换中引用
= 打印行号

2.2 脚本格式

用法

#sed -f scirpts.sed file	使用脚本处理文件
#建议使用	./sed.sh file
#!/bin/sed -f

注意事项

脚本文件是一个sed的命令行清单。commands 
在每行的末尾不能有任何空格、制表符(tab)或其它文本。 
如果在一行中有多个命令,应该用分号分隔。 
不需要且不可用引号保护命令 
#号开头的行为注释 

Sed 实验

实验内容

根据IP自动更改主机名并自动安装vsftpd服务并完成相应配置
1.不支持本地用户登录
2.匿名用户可以上传新建删除
3.匿名用户限速500KBps
#!/bin/bash
#获取IP地址
ip=`ip a | grep -Eo 'inet .* brd' | grep -Eo '[0-9]{1,3}.*\.[0-9]{1,3}'`
ip_end=`echo $ip | sed -E 's/^.*\.//g'`
name="server${ip_end}.itcast.cc"
hostnamectl set-hostname $name
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/=enforcing/=permissive/g' /etc/selinux/config
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
sed -i 's/local_enable=YES/local_enable=NO/g' /etc/vsftpd/vsftpd.conf
sed -i 's/#anon_upload_enable=YES/anon_upload_enable=YES/g' /etc/vsftpd/vsftpd.conf
sed -i 's/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g' /etc/vsftpd/vsftpd.conf
sed -i '$a anon_max_rate=500000' /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd

标签:systemctl,enable,sed,命令,vsftpd,anon,Sed,随笔
From: https://www.cnblogs.com/ajajroom/p/18062577

相关文章

  • 04_Ubuntu常用命令第一部分
    Ubuntu常用命令第一部分1.ls命令:功能:查看文件信息Ubuntu里面以“.”开头的文件为隐藏文件-a显示所有文件-l显示文件的所有信息第一列参数代表的含义:代表文件类型d:表示目录文件-:表示普通文件P:管理文件l:链接文件b:块设备文件C:字符设备文件S:套接字文件......
  • 常用的Windows快捷键和Dos命令
    掌握一些基础的快捷键和Dos命令可以极大提升玩机效率,下面是一些最基础常用的快捷键和命令,欢迎留言补充。Windows快捷键复制Ctrl+c粘贴Ctrl+v全选Ctrl+a剪切Ctrl+x撤销Ctrl+z保存Ctrl+s关闭窗口Alt+F4永久删除Shift+Delete运行Windows+r我的电脑Windows+e任......
  • Go语言实现设计模式之命令模式
    摘要:命令模式是一种常用的设计模式,它将请求封装成对象,从而使请求的发送者和接收者解耦。本文将详细介绍命令模式的概念和原理,并使用Go语言实现一个示例,以帮助读者更好地理解该设计模式的应用。引言:在软件开发中,命令模式是一种常见的设计模式,它可以帮助我们将请求的发送者和接收......
  • netcat 命令介绍及使用示例
    netcat命令介绍及使用示例nc(netcat)是一个强大的网络工具,它可以用于读取和写入数据流,支持TCP和UDP协议。它常被用于网络调试和网络服务的创建。一、安装方法centos中,执行yuminstallncprocps-ng-y二、功能介绍1.IP端口监控使用nc进行端口扫描可以检查指定主机的......
  • 常用命令
    ssh创建ssh密钥对ssh-keygen-ted25519-f~/.ssh/id_ed25519-Npassswd-Ccommentorssh-keygen-trsa-b2048-f~/.ssh/id_rsa-Npassswd-Ccomment-t:可选[dsa|ecdsa|ecdsa-sk|ed25519|ed25519-sk|rsa]-b:密钥位数-f:密钥存储路径-N:密钥的密码......
  • NewStarCTF 2023 公开赛道 做题随笔(WEEK1|MISC部分)
    第一题下载打开得到TXT文件好的看样子应该是base32,复制到base在线转换看看得到这玩意 base58转换得到 出了flag  第二题 下载得到一张二维码用隐写软件试试得到一张这个以为是摩斯密码,试试得到有个这玩意,嘶,好像不是试试LSB 得到flag 第三题......
  • Compressed Tree
    首先官方题解写的挺好的,可以看为什么需要在DP状态中定义\(i\)及其父亲的这条边也在呢?你可以试试不定义,那么你会发现是推不走的,因为比如我们现在正在推\(i\),那么他的一个儿子\(u\)的DP值都知道了,但是由于有了\((u,i)\)这一条边,我们就把\(u\)的度数改变了,这个时候\(u\)的DP值就不在......
  • 在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
    在Docker中,当一个容器退出(stoppedorexited)后,它将不再处于运行状态,因此,通过dockerps命令默认情况下将无法看到已退出的容器。然而,这并不意味着容器内的数据会丢失。容器退出时,其存储层中的数据通常是保留的,除非你明确地删除了容器。这意味着即便容器停止运行,只要你没有使用d......
  • JAVA基础--命令行传参
    命令行传参有时希望运行一个程序时再传递给它消息,这需要靠传递命令行参数给main()函数来实现编写以下代码publicclassDemo02{publicstaticvoidmain(String[]args){//args.length数组长度for(inti=0;i<args.length;i++){......
  • docker 常用命令
    docker常用命令1.dockersearch[OPTIONS]NAME#搜索DockerHub上的镜像。-q:只显示仓库名。--filter:设置过滤条件,比如搜索官方镜像可以使用--filter="is-official=true"。limit:设置搜索结果的最大条数。--no-trunc:显示完整的镜像描述,而不是截断的描述。例子......