首页 > 系统相关 >Linux基本命令(三) 文本处理及优化终端操作

Linux基本命令(三) 文本处理及优化终端操作

时间:2024-11-20 10:17:17浏览次数:3  
标签:文件 log 1.2 文本处理 命令 sed 内容 终端 Linux

目录

一、文本处理 

  1.1 内容匹配

1.1.1 grep文件内容搜索

1.1.2 awk正则匹配内容

1.2 内容打印

 1.2.1 head显示文件头部内容

1.2.2 tail显示文件底部内容

1.2.3 sed文件内容显示

1.2.4 cut列提取

1.3 内容处理

1.3.1 内容替换

1.3.2 sort内容排序

1.3.3 uniq内容去重

1.4 重定向

1.4.1  输出重定向

1.4.2  输入重定向

 1.5 命令相关

1.5.1 搜索命令的位置

1.6 命名别名

1.6.1  设置别名

1.6.2  查看别名

1.6.3  删除别名

二、历史命令

2.1查看历史命令

 2.2  执行历史命令


一、文本处理 

  1.1 内容匹配

1.1.1 grep文件内容搜索

搜索文件包含匹配内容

grep [keyword] [filename]
  • -v 取反
  • -i 不区分大小写
  • -E[keyword]支持正则

1.1.2 awk正则匹配内容

正则表达式

awk '/^root/ {print}' /etc/passwd
  • /pattern/正则内容, 上文中为^root

行号判断与使用

awk '{if(NR>2&&NR<4) printf $0}' /etc/passwd

awk 'NR > 10 {print}' /etc/passwd
  • NR行号

字段分割

awk -F ':' '{print $1}' /etc/passwd
awk -F ':' '{print $NF}' /etc/passwd
  • -F指定分隔符, 每一行都会被分割成一组数组数据
  • $1内置变量, 每组的第一个字段, 也就是index[0], $0是整列
  • $NF内置变量, 每行最后一个字段

1.2 内容打印

 1.2.1 head显示文件头部内容

显示文件头部前几行,默认10行数

head [filename]
  • -c [-]打印前几个字节
  • -n [-]打印前几行

1.2.2 tail显示文件底部内容

显示文件尾部前几行,默认10行数

tail [filename]
  • -c [-]打印后几个字节
  • -n [-]打印后几行
  • -f实时打印

1.2.3 sed文件内容显示

sed [script-only-if-no-other-script] [filename]
  • -n抑制模式空间的自动打印
  • -e将脚本添加到要执行的命令中
  • -f将脚本文件的内容添加到要执行的命令中
  • --follow-symlinks在进行处理时遵循符号链接
  • -i[SUFFIX]在适当的位置编辑文件(如果提供了后缀,可以进行备份)
  • -c在-i模式下,使用copy而不是重命名
  • -l N为l命令指定所需的行包长度
  • -r在脚本中使用扩展的正则表达式
  • -s把文件看作是独立的,而不是单一的连续的长流
  • -u从输入文件加载最小数量的数据,并经常刷新输出缓冲区
  • -z 用NUL字符分隔的行

显示文件1~2行的内容

sed -n 1,2p file.txt

隐藏第一行的数据显示

sed '1d' file.txt

正则的方式替换, 将old替换成new

需要注意的, 如果使用正则+需要变成\+

sed 's/old/new/g' file.txt		//old替换为new显示
  • s / is替换操作不修改源数据, i修改源数据
  • g / d标志, g代表全局, i代表忽略大小写, d代表删除
  • old需要替换的内容
  • new替换的新内容

1.2.4 cut列提取

生成一个data.txt, 第一列名称, 第二列年龄

life 99 2020-1-1
xxit 88 2828-1-1
ggb	 77 2011-9-1

提取年龄列的数据

cut -d " " -f 2-2 data.txt
  • -d [symbol]指定分隔符
  • -f [start-end]指定提取的列
  • -c [start-end]按字符位置提取

1.3 内容处理

1.3.1 内容替换

sed也支持文件的内容替换

1.3.2 sort内容排序

如果一个数值内容不指定-n, 那么它会使用每一位ASCII的方式进行排序

sort filename

//根据第三列(UID)进行排序
sed 's/:/ /g' /etc/passwd | sort -n -k 3
  • -n如果内容是数据, 可以根据数值进行排序
  • -r逆向排序
  • -k根据某列号排序

1.3.3 uniq内容去重


去重文件中的重复行, 并且去除头部的空格
    ●-c在最前面显示, 重复的数据行数

去重的问题:
去重只会去重相邻的重复数据, 下图中 1并没有出现想想中的很多次, 所以需要结合sort使用

1.4 重定向

1.4.1  输出重定向

输出设备 显示器(/dev/sdtout标准输出|/dev/sdterr标准错误输出)

标准输出的内容重定向到文件上(重复会进行覆盖文件)

ll > test132.log

 将标准输出的内容重定向到文件上(重复会进行追加)

ls -a >> ceshi.log

将标准错误输出的报错信息重定向到文件上(注意2旁边没有空格)

asdas 2>> test.log

 如果命令正确则直接写入文件 如果命令错误将错误文件写入到绑定的&1中(test.log)

命令 >> test.log 2>&1
命令 &>> 文件							//是上面一条命令的缩写

标准输出导入su11.log 错误输出导入error.log

命令 >> su11.log 2>> error.log

1.4.2  输入重定向


输入设备 键盘(/dev/stdin标准输入)
 

wc [options] < filename.txt
  • -c统计字节数
  • -w统计单词数
  • -l统计行数

使用管道费进行重定向, 管道符: 将前一个命令的输出传递给后面的命令

echo "Hello" | wc -m

使用管道符统计ESTABLISHED的端口数量

netstat -an | grep ESTABLISHED | wc -l

 1.5 命令相关

1.5.1 搜索命令的位置

whereis [cmd_name]
  • -b 搜索只看所在位置
  • -m 搜索man手册的位置

查看命令所在位置 和 别名

1.6 命名别名

注意: alias的命名方式重启失效

1.6.1  设置别名

例如将ls设置为ls --color=never

alias ls = 'ls --color=never'


永久生效需要修改 ~/.bashrc或者/etc/bashrc隐藏文件

alias ls = 'ls --color=never'

更改立即生效

source ~/.bashrc

1.6.2  查看别名

alias

1.6.3  删除别名

unalias [aliasName]

二、历史命令

2.1查看历史命令

(保存在 ~/.bash_history 这个文件只记录上次登录的历史命令)

history
  • -w强制写入~/.bash_history文件
  • -c清空历史命令

历史命令的配置/etc/profile默认保留1000条 (HISTSIZE)

 2.2  执行历史命令

!n  				//重复执行第n条历史命令
!!					//重复执行上一次命令
!字符串			//重复执行最后以该字符的命令

标签:文件,log,1.2,文本处理,命令,sed,内容,终端,Linux
From: https://blog.csdn.net/m0_74100826/article/details/143902633

相关文章

  • Rocky Linux 9.5 正式版发布 - RHEL 100% 1:1 兼容免费发行版
    RockyLinux9.5正式版发布-RHEL100%1:1兼容免费发行版RockyLinux由CentOS项目的创始人GregoryKurtzer领导请访问原文链接:https://sysin.org/blog/rocky-linux-9/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org以社区方式驱动的企业LinuxRockyLinu......
  • 虚拟机之linux系统命令
    1、df查看磁盘使用情况(1)dfFilesystem:代表该文件系统时哪个分区,所以列出的是设备名称。1K-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置。Used:已经使用的空间大小。Available:剩余的空间大小。Use%:磁盘使用率。如果使用率在90%以上时,就需要注......
  • 虚拟机之linux介绍和命令
    一、linux介绍1、Linux是一个免费、开源的操作系统,能多用户、多任务、支持多线程和多CPU的操作系统,相对windows更加稳定,在unix系统的基础上开发的系统;注解:(1)免费:不要钱(2)源代码公开(3)多用户:可以在不同用户操作(4)多任务:同时执行多个任务(5)多线程:支多个线程同时工作(6)多cpu:系......
  • linux之vim命令
    vim命令1、touch创建文件2、vim或vi编辑文件3、vim文件名4、vim编辑器共分为三种模式:(1)命令模式esc或ctrl+c(2)编辑模式按i键(3)底层命令模式先进入命令模式=shift+:=输入命令5、快捷键(1)enter键换行(2)backspce退格键,删除光标前一......
  • 【Linux】将python文件上传到GitHub(新版图文逐步详解)
    1.进入想要上传文件所在的文件夹,这里以如下图中目录下的t1为例2.输入如下命令,将当前目录变为git可以管理的目录gitinit3.将想要上传的文件添加到缓冲区gitaddt1.py出错了,查阅资料发现出现该提示是因为.gitignore文件中有规则将t1.py文件(或其所在目录)排除了,如果......
  • 如何在Linux系统实现屏幕旋转?触觉智能RK3568鸿蒙开发板演示
    本文介绍Linux系统实现屏幕角度旋转的方法,以解决不同产品形态的展现方式,其中Ubuntu、Debian系统可以通过xrandr工具实现屏幕旋转。使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568芯片,搭载四核A55处理器,主频2.0Ghz;1T算力NPU;现已发布全新OpenHarmony5.0Release固件。Linux旋......
  • [Linux]环境变量
    环境变量环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,是操作系统为了满足不同的应用场景预先在系统内预先设置的一大批全局变量。常用的环境变量PATH:指定了操作系统在查找可执行文件时搜索的目录列表,目录之间用冒号:分隔。当在命令行中输入一个命令时,操作......
  • Linux常用基础指令-ls指令
    1.ls指令ls用于列出目录内容。显示指定目录下的文件和子目录,可以通过不同的选项来显示文件的详细信息。1.1.基本语法ls[选项][文件或目录]1.2.常用选项ls列出当前目录下的文件和子目录,显示的内容按照字母顺序排列。lsls-l使用长格式列出目录内容。每个文件或目......
  • linux启动流程
    Linux启动流程笔记系统目录结构/boot目录内容[root@web01boot]#lsconfig-4.18.0-305.3.1.el8.x86_64initramfs-4.18.0-305.3.1.el8.x86_64kdump.imgefiloadergrub2......
  • Oracle Linux 9.5 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
    OracleLinux9.5正式版发布-Oracle提供支持RHEL兼容发行版OracleLinuxwithUnbreakableEnterpriseKernel(UEK)&RedHatcompatiblekernel(RHCK)请访问原文链接:https://sysin.org/blog/oracle-linux-9/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......