GNU sed

6个方法,轻松应对85%的 Linux 使用场景!

天大地大妈咪最大 提交于 2020-08-17 03:37:12
毫无疑问,互联网上很多技术和产品背后都有 Linux 的身影。 当你用 Google 搜索,在淘宝购物,用 QQ、微信聊天的时候,后台是成千上万的 Linux 服务器在支撑着这些软件和服务。 对软件工程师来说,也几乎一定会遇到 Linux 的应用场景,如果你无法熟练地操作 Linux ,基本上等于少了一半的功力,也少了一半的机会…… 但我发现,身边的开发、运维、DBA 同事们经常面临的问题,就是想用 Linux 解决某一问题时,往往需要多条命令组合, 不少人由于对相关命令或其参数不够熟悉,经常是从网上复制粘贴了事 ,而且还极有可能不起作用。 如果侥幸解决了特定的问题,也意识到自己需要系统学习一下 Linux ,以便今后能更高效地解决其他 Linux 相关问题,但又发现 Linux 涉及到的常用命令实在是太多了 ,更别提每个命令又有一大堆相关参数,导致学起来毫无头绪,而且网络上的资料质量也参差不齐,很少带你去深入理论和细节,当下次遇到的问题稍有变化,就不知该从哪里下手了。 比如下面这些问题: 如何提取日志中含有关键字的指定行,上一行或上几行? ln 做了符号链接,对符号链接进行权限修改,原文件是否会受到影响? Shell 脚本里有很多特殊符号,到底该怎么用?网上流传的 .(){.|.&};. 脚本能不能执行? Linux 里的编辑器繁多,比如 vim、sed、awk,

MAGE47期-第五周作业

耗尽温柔 提交于 2020-08-16 18:19:33
1、查找/etc目录下大于1M且类型为普通文件的所有文件 2、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。 3、利用sed 取出ifconfig命令中本机的IPv4地址 4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符 5、处理/etc/fstab路径,使用sed命令取出其目录名和基名 取目录名 [root@magedu ~ ]# echo /etc/fstab |sed -nr "s@(^/.*/)(.*)@\1@p" /etc/ 取基名 [root@magedu ~ ]# echo /etc/fstab |sed -nr "s@(^/.*/)(.*)@\2@p" fstab 来源: oschina 链接: https://my.oschina.net/u/4376318/blog/4411286

删除文本文件中包含特定字符串的行

不问归期 提交于 2020-08-16 13:02:02
问题: 我将如何使用sed删除文本文件中包含特定字符串的所有行? 解决方案: 参考一: https://stackoom.com/question/MhaH/删除文本文件中包含特定字符串的行 参考二: https://oldbug.net/q/MhaH/Delete-lines-in-a-text-file-that-contain-a-specific-string 来源: oschina 链接: https://my.oschina.net/u/4432649/blog/4476030

Centos记录所有用户登录和操作的详细日志

夙愿已清 提交于 2020-08-16 07:59:34
1、起因 最近 Linux 服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录。 一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行,当然你也可以vim /etc/profile将1000修改成1000000行,但是这只是比较笼统的做法,看不到详细的用户来源已经操作记录,比如来源ip地址、操作时间、操作用户等。 2、环境准备 cat /etc/passwd #查看可以登录的用户 mkdir -p /var/log/history/admin #创建可登录用户的目录 chown -R admin:admin /var/log/history/admin #给各个用户赋予权限 3、自动记录脚本 在/etc/profile文件的末尾追加编写脚本如下: #set user history history USER=`whoami` USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` if [ "$USER_IP" = "" ]; then USER_IP=`hostname` fi if [ ! -d /var/log/history ]; then mkdir /var/log/history chmod 777 /var

django-xadmin docker镜像

旧巷老猫 提交于 2020-08-15 22:28:18
一、目录结构: pip.conf文件: [global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com requirements.txt文件: Django== 2.2.2 PyMySQL== 0.9.3 xlrd== 1.2.0 XlsxWriter== 1.1.8 xlwt== 1.3.0 uWSGI== 2.0.18 uwsgitop== 0.1 Dockerfile文件: FROM ubuntu: 18.04 # 基础镜像 MAINTAINER yangjianliang < 526861348@qq.com > # 作者 RUN sed -i s@ /archive.ubuntu.com /@ /mirrors.aliyun.com /@g /etc /apt /sources.list # 设置apt源为阿里云源 RUN apt-get clean && \ apt-get update && \ apt-get upgrade -y # 检查软件包并升级 RUN apt-get update && \ apt-get install -y \ python3 && \ apt-get update && \ apt-get

Linux常用命令总结

吃可爱长大的小学妹 提交于 2020-08-15 16:46:19
Hello,Everyone ! ( 今天小鸟我看了不少的Linux命令;随便查了查,分享给大家150常用命令做个留念吧!呵呵!) 以下命令读者可以用man [命令]查看详细使用情况 一. 启动,关机,登入,登出相关命令 <login> 登录 <logout> 登出 <exit> 登出 <shutdown> 停止系统 <halt> 停止系统 <reboot> 重启动 <poweroff> 切断电源 <sync> 把内存里的内容写入磁盘 <lilo> 安装lilo启动管理程序 <grub> 安装lilo启动管理程序 二. Shell相关命令 <chsh> 切换Shell <history> 显示命令履历 <alias> 设置命令别名 <unalias> 取消命令别名 <which> 显示命令所在位置 <type> 查询命令种类 <echo> 显示字符串或者变量内容 <set> 设置/显示Shell变量 <printenv> 显示环境变量 <export> 设置环境变量 <env> 设置临时环境变量 <unset> 释放环境变量 <setenv> 设置环境变量 <unsetenv> 释放环境变量 <source> 执行文件当中的命令 <man> 查询命令手册 <info> 查询超文本命令手册 <whatis> 显示命令简介 <apropos> 通过关键字查询手册 三. 用户管理相关命令

linux使用grep条件搜索大文件的行数等操作

拟墨画扇 提交于 2020-08-15 10:58:32
一、前言 最近需要查询大日志文件的时候,每次打开vim,cat之类的都会卡死,但是需要查看符合条件的共有多少行数据,这可愁死我了,下面列出一些常用的匹配查询命令。 二、常用的搜索命令 1、grep搜索 grep 参数 文件名 | head //从头查找 grep 参数 文件名 | wc- l //查看符合条件的有多少行 cat 文件名 |grep 参数$ //输出以该参数结尾的行内容 2、实例 (1)根据具体的参数来搜索行数 cat /data/weblogs/xxx.access.log |grep "GET /pixel.jpg?"|wc -l 4102386 (2)部分正则查询 cat /data/weblogs/em.evony.com.access.log |grep "25/Nov/2019:15:[00-59]" |wc -l 120 查询25/Nov/2019:15时的所有数据,那么15时后面的分钟数就是00-59 (3)多个条件之间可以使用管道连接,查询同时符合两个条件的行数 cat /data/weblogs/xxx.log |grep "25/Nov/2019:15:[00-59]" |grep "GET /pixel.jpg?"|wc -l 120 查询符合条件1或者符合条件2 的行数 cat /data/weblogs/xxx.log |grep -E

删除文本文件中包含特定字符串的行

情到浓时终转凉″ 提交于 2020-08-15 07:19:27
问题: 我将如何使用sed删除文本文件中包含特定字符串的所有行? 解决方案: 参考一: https://stackoom.com/question/MhaH/删除文本文件中包含特定字符串的行 参考二: https://oldbug.net/q/MhaH/Delete-lines-in-a-text-file-that-contain-a-specific-string 来源: oschina 链接: https://my.oschina.net/u/4438370/blog/4301571

利用ssh分发实现方法

风流意气都作罢 提交于 2020-08-15 05:40:08
ssh 服务提供两个服务功能:一个是提供类似 telnet 远程服务,另一个就是类似 ftp 服务提供安全的传输 ssh 安全的加密协议,用于远程连接服务器 默认端口 22 ,,安全版本为 2 ssh 服务提供两个服务功能 ssh 客户端包含 ssh 连接命令,以及远程拷贝 scp 命令等 ssh 服务由 openssh 和客户端组成 ssh 服务认证类型 基于口令 ssh -p52113 root@172.16.10.10 基于秘钥 公钥放在服务器上,私钥放在自己电脑上 给你一个端口如何查出对应的服务 [root@localhost ~]# lsof -i tcp:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1023 root 3u IPv4 9425 0t0 TCP *:ssh (LISTEN) sshd 1023 root 4u IPv6 9427 0t0 TCP *:ssh (LISTEN) sshd 1134 root 3r IPv4 9867 0t0 TCP 172.16.10.20:ssh->172.16. losf -i tcp:52113 netstat -an |grep 52113 ssh 安全优化 端口更改,禁止 root 登录,禁止空密码登录,不使用 dns 免密码验证小结 1

Linux常用命令大全

旧巷老猫 提交于 2020-08-15 05:15:37
systemd systemctl start service //启动service systemctl stop service //停止service systemctl restart service //重启service systemctl enable service //service开机自启 systemctl disable service //service禁止开机自启 systemctl status service //查看service systemctl is-enabled service //查看service是否开机自启 查看系统信息 arch #显示机器的处理器架构 uname -m #显示机器的处理器架构 uname -r #显示正在使用的内核版本 dmidecode -q #显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda #罗列一个磁盘的架构特性 hdparm -tT /dev/sda #在磁盘上执行测试性读取操作 cat /proc/cpuinfo #显示CPU info的信息 cat /proc/interrupts #显示中断 cat /proc/meminfo #校验内存使用 cat /proc/swaps #显示哪些swap被使用 cat /proc/version #显示内核的版本