Linux 常用命令(要求全而精)

grep [参数...](查找的内容) (文件名)

1、linux分区

grep上下10行_grep上下文grep上下10行_grep上下文


grep上下10行_grep上下文


--在linux里面所有的设备、任何东西,在linux看来都是文件。

--文件在它看来,有两种形式:

第二种是二进制型(硬盘、光驱、U盘)

--linux中所有硬件

--手动分区

--A、至少有两个分区

/ 根分区

SWAP 交换分区(物理内存大小的两倍)

--B、个人桌面分区

//boot 128MB is enough

/usr

SWAP

/tmp(用于光盘刻录)

2、linux目录说明

--/dev/xxyN

--xx (分区所在设备类型:hd--IDE硬盘 sd--SCSI硬盘)

--y (标明分区所在设备

例如:/dev/hda 个IDE硬盘 或 /dev/hdb 第二个IDE硬盘 或 /dev/sdb 第二个SCSI硬盘)

--N (数字代表分区:1-4--主分区或扩展分区;逻辑分区从5开始!

例如:/dev/hda3 个IDE硬盘上的第三个主分区或扩展分区

/dev/sdb6 第二个SCSI硬盘上的第二个逻辑分区)

3、linux目录结构

/ 根目录,别

/bin 系统基本命令存放目录(/usr/bin)

/boot linux的内核及系统程序文件存放目录(如:vmlinuz、initrd.img)

一般情况下,GRUB或LILO系统管理也位于这个目录

/ect 存放系统设置文件(如用户账号密码、配置文件等)

/home 普通用户家目录,默认存放目录

/lib 库文件存放目录

/lost+found 在ext2或ext3文件系统中,当系统以外崩溃或机器意外关机,而产生一些文件碎片放在这里。

当系统启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。

有事喜用发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或者移文件到原来的位置上。

/media 即插即用型存储设备的挂载点自动在这个目录下创建。

如USB盘系统自动挂在后,会在这个目录下产生一个目录;

/mnt 存放挂载存储设备的挂载目录,如cdrom等目录

/opt 表示可选的意思,有些软件包也会被安装在此,也就是自定义软件包,

比如OpenOff,或者一些我们自己编译的软件包,也可安装此处。

/proc 作系统运行时,进程(正在运行的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在此。

/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统

/root linux超级权限用户root的家目录

/in 大多是涉及系统管理的命令的存放,只有超级权限用户root才可执行命令存放,普通用户无权限执行此目录下的命令

与 /usr/in; /usr/X11R6/in; usr/local/in 目录相似

(in,只有root权限才能执行)

/tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。

/var/tmp目录和此目录相似

/usr 系统存放程序的目录,如命令、帮助文件等。这个目录下有很多的文件和目录。

大部分Linux发行版提供的软件包都安装在此,涉及的配置文件就安装在/ect中。

/usr/share/fonts 字体目录

/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin 普通用户可执行文件目录

/usr/in 或 /usr/local/in 或 /usr/X11R6/in 超级权限用户root可执行命令存放目录

/usr/include 程序头文件存放目录

/var (vary)此目录经常变动

/var/log 用来存放系统日志

/var/www 用来定义Apache站点存放

/var/lib 用来存放一些库文件,如MySQL的,以及MySQL数据库的存放地。

--查看帮助 -- --?

--查看详细帮助 man

--登录 login

--退出窗口 exit

--重启 reboot

--初始化 init (run ll -/etc/inittab),0-6看第六部分的g

--进入根目录 cd /

--回上层目录 cd ..

--相对路径 cd dev

--路径 cd /dev

--查用户名 whoami

--查当前目录 pwd

--列出当前目录内容 ls

-l(树详细显示目录内容)

-m(横列显示目录内容,是屏幕长度显示)

-a(列出全部文件,包括隐藏文件)

-S(以文档大小排序)

--创建目录 mkdir dname

--删除目录 rmdir dname

rm -r -(递归删除该目录下所有内容,询问每个准备删除的文件)

rm -rf -(强制删除该目录下所有内容,不询问)

--创建空白文件 touch

(ps:从技术的角度来讲,linux的文件后缀名没有任何意义)

-- cp

cp -r 1 2 (1到2中)

--移动 mv

mv -t 1 2 (把2移动到1中)

--编辑文本 vi [文件名]

--查看文本 cat 由行开始显示文本内容

tac 从一行显示,可以看出 tac 是 cat 的倒着写

more 一页一页的显示文档内容

less 与 more 类似,可以往前翻页

head 只看头几行

-N(数字,可根据行数显示)

tail 只看后几行

-N(数字,可根据行数显示)

nl 显示的时候,顺序输出行号

od 以二进制位的方式读取档案内容

--查找文本 find [路径][查找类型][搜索文件名]

如查找rc.local find /etc -name .local

--查找命令信息及其位置 whereis 命令

如 whereis ls

--查看环境变量 echo $SHELL

如 echo $PATH (分大小写:分隔符是:,windows是echo %path%;)

如 ln joe.txt a (硬链接,如同一个新文件,joe.txt删除后,a还存在)

a是链接的名称,a和joe.txt同步,然后a的内容和joe.txt一样

joe.txt改变,a也跟着变

如 ln -s joe.txt b (软链接,如同创建一个快捷方式,joe.txt删除后,b不存在)

--wc 统计指定文本文件的行数、字数、字符数

--grep(很常用) 在指定的文本文件中查找指定的字符串

grep 字符串 文件名

--col 见管道..

----信息显示命令----

--date 显示和设置日期

--stat 显示指定文件的相关信息

--who、w 显示在线登录用户

--whoami 显示用户自己的身份

--id 显示当前用户的id信息

--hostname 显示主机名称

--uname 显示作系统信息

--dmesg 显示系统启动信息

--du 显示指定的文件(目录)已使用的磁盘空间

--df 显示文件系统磁盘空间的使用情况

--free 显示当前内存和交换空间的使用情况

--fdisk -l 显示磁盘信息

--locale 显示当前语言环境

5、挂载点(mount 设备目录 挂载目录)

--访问设备 (那设备当成一个文件,和另外一个文件夹进行绑定)

--例如挂载光驱:步骤 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接访问光驱内容

6、startup-shutdown(linux启动流程)

--A、boot sequence(important) linux启动过程

b. read MBR's config to find out the OS

(MBR--Master Boot Record,硬盘个物理扇区,柱面0、磁头0、扇区1,包含主程序和硬盘分区表)

c. load the kernel of the OS

(加载为kernel核心的OS)

d. init process starts...

(启动linux个进程init)

e. execute /etc/rc.d/sysinit

(执行系统最重要的配置文件,后台启用进程)

(rc.d--run command)

f. start other modules(stc/modules.conf)

(开启各种模块,如内存管理模块、硬盘管理模块)

g. execute the run ll scripts

(系统启动是分层次的,根据情况执行,每个层次之间没关系)

0 - 系统停机状态

1 - 单用户工作状态 root

2 - 多用户状态(没有NFS)

NFS - Network File System 网络文件系统,联网系统

4 - 系统未使用,留给用户

5 - 图形界面

6 - 系统正常关闭并重新启动

如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多个文件夹,保存着各个层次执行的进程文件

h. execute /etc/rc.d/rc.local (重要)

(保存其它进程脚本,如tomcat自动启动,要修改此配置文件)

i. execute /bin/login

j. shell started...

7、vi 文本编辑器

--两种模式:命令模式 编辑模式

--vi [文件名]

(切换到编辑模式)

a append-光标后添加

i insert-光标前插入

o open-另起一行编辑

esc (切换回命令模式)

:w 存盘

:wq 存盘退出

:q 退出

:q! 不存盘退出

dd 删除其中一行

dw 删除一个单词

(sudo gedit 文本 常用linux下的文本编辑器,比vi好用)

8、用户设置

--切换用户(switch user) su username

小技巧:直接exit切换

--添加用户 useradd username [-g] [组名](分配到某个用户组)

(创建后会自动在/home目录下创建该新用户的文件夹,如/home/username)

--设置密码 passwd username

--cd /etc

--查看用户信息 more password

如新增的用户信息:username:x:500:500::/home/username:/bin/bash

个数字,代表用户组,当添加用户没有指定用户组时,系统会创建一个和用户ID一样的组ID;

第二个数字:用户ID号;

用户的目录是/home/username;

用户的SHELL是/bin/bash

(命令--->SHELL[解释命令]--->kenrel内核)

SHELL有多种类型,如csh、bash(常用)、bsh、ksh、sh(最原始)

--添加用户组 groupadd groupname

--查看用户组信息 more group

--删除用户组 groupdel groupname

--修改用户 usermod [-g] [组名] [用户名]

--删除用户 userdel username

然后把/home的文件夹删除了 rm -rf 文件夹

9、权限file privilege

--linux把文件的权限分成四种:r:read w:write x:execute -:none

lrwxrwxrwx

drwxr-xr-x

drwxr-xr-x

个数字'-'代表文件,其余是文件夹,后9位分为3组,每组有四种权限设置rwx-

位表示文件所有者

第二位表示和所有者在同一用户组的用户

第三位表示不在同一用户组的用户权限

--设置权限 (随意应用,灵活组合!)

1、普通用法

--添加权限 [chmod +x 文件]

如:查看-rw-r--r-- ---> -rwxr-xr-x

--删除权限 [chmod -x 文件]

如:-rwxr-xr-x ---> -rw-r--r--

--给自己添加权限 [chmod ?+x 文件]

如此类推,组--g,其他人--o

如:chmod u+x -rw-r--r-- ---> -rwxr--r--

chmod o+x -rwa. load bios(hardware rmation)-r--r-- ---> -rw-r--r-x

2、专业用法 chmod 755/777

--原理,八进制转二进制

777,111 111 111, rwx rwx rwx

--修改所有者权限 chown (change owner)

如:chown 原来文件 file1 的所有者是 root,改成joe的

chown joe file1

10、管道(把上一个命令执行的结果交给下一个命令)

--使用方法:

命令1|命令2|命令3......|命令n

--使用举例

--$ls -Rl /etc | more

(如 ls -Rl /etc (在控制台模式下,无法返回前面过去的信息),因此需要管道执行该查询,实现分页的工作, ls -Rl /etc | more)

(显示文件结果,再数数有多少行)

--$cat /etc/passwd | grep lrj

(显示文件结果,再查找包含lrj的行)

--#dmesg | grep 0

(显示系统启动的信息,再查找包含0的行--真正含义,检查网卡执行信息是否正常)

--$man bash | col -b > bash.txt

语法:col [-bfx][-l<缓冲区列数>]

参数:

-b 过滤掉所有的控制字符,包括RLF和HRLF。

-f 滤除RLF字符,但允许将HRLF字符呈现出来。

-x 以多个空格字符来表示跳格字符。

--$ls -l | grep "^d"

(用正则表达式筛选出目录列表中 头字母为'd' 的内容--目录)(^是正则表达式开头部分)

--$ls -l | grep "^-" | wc -l

(列出目录列表中 头字符为'-'的内容--文件,并统计显示的行数wc -l)

11、其他命令

--wall(warning all) 通知所有人

a.命令替换

如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)

b.重定向

重定向输出:

如 ls > cmd.txt ,把文件写到cmd.txt,不输出在控制台

ls >> cmd.txt ,把文件追加写到cmd.txt

重定向输入:

如 wall > cmd.txt,把文本内容发给所有人

12、修改系统的默认系统级别

常用3和5

NFS - Network File System 网络文件系统,联网系统

5 - 图形界面

PS.设置用户权限: sudo chmod 777 目录

4表示读,2表示写,1表示执行.

位表示文件所有者,第二位表示和所有者在同一用户组的用户,第三位表示不在同一用户组的用户权限.

755表示文件所有者可读写,执行.

第二位5表示与所有者在同一用户组的可读,可执行,不可写.

第三位5表示其它组可读,可执行,不可写. 转载于Joewalker在本人空间也有详细说明

Linux下Grep命令的详细使用方法

chmod g+x -rw-r--r-- ---> -rw-r-xr--

在linux中grep命令是非常有用的,它和管道(|)配合使用,非常强大,用于搜索文本文件.如果想要在几个文本文件中查找一字符串,可以使用‘grep’命令。‘grep’在文本中搜索指定的字符串。

设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘magic’的文件:

$ grep magic /usr/src/linux/Documentation/

sysrq.txt: How do I enable the magic SysRQ 如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:key?

sysrq.txt: How do I use the magic SysRQ key?

其中文件‘sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。

grep: sound: Is a directory

这可能会使‘grep’的输出难于阅读。这里有两种解决的办法:

明确要求搜索子目录:grep -r

或忽略子目录:grep -d skip

当然,如果预料到有许多输出,您可以通过 管道 将其转到‘less’上阅读:

$ grep magic /usr/src/linux/Documentation/ | less

这样,您就可以更方便地阅读。

有一点要注意,您必需返回内容为提供一个文件过滤方式(搜索全部文件的话用 )。如果您忘了,‘grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 ,然后再试。

下面是一些有意思的命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,

grep -l pattern files :只列出匹配的文件名,

grep -L pattern files :列出不匹配的文件名,

grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

grep -C number pattern files :匹配的上下文分别显示[number]行,

grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

这里还有些用于搜索的特殊符号:

< 和 > 分别标注单词的开始与结尾。

grep man 会匹配 ‘Batman’、‘manic’、‘man’等,

grep '

grep '' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

'^':指匹配的字符串在行首,

'$':指匹配的字符串在行尾,

如果您不习惯命令行参数,可以试试图形界面的‘grep’,如 reXgrep 。这个软件提供 AND、OR、NOT 等语法,还有漂亮的按钮 :-) 。如果您只是需要更清楚的输出,不妨试试 fungrep 。

linux查看日志的命令是?具体怎么用

对于从事web开发的人员来说.上的日志多如牛毛,如何快速从中找出所需信息非常重要,以下是我在工作中用到的查找日志的简单命令,希望能对您有所帮助:

要看你想查什么样的日志了,linux下面日志有很多,有系统的,有应用的。如果是系统下面的日志,一般都在/var/log下面。

如果是看应用日志,那就到应用日志所在目录去看,这个要看具体应用,每个的路径都不一样。

一般查看日志,可以看静态日志,也就是用'vi 日志文件名',或者用more之类的工具查看。

还可以看动态日志,用'tail -f 日志文件名',可以实时查看打命令之后产生的所有新日志。

Linux查看日志的命令有很多,比如tail、cat、tac、head、echo等,今天给大家介绍几种常用的方法:

1、tail-实时查看变化的日志

命令格式:tail [必要参数][选择参数][文件]

-f:循环读取

-q:不显示处理信息

-v:显示详细的处理信息

-n<行数>:显示行数

-q, --quiet, --silent:从不输出给出文件名的首部

-s, --sleep-interval=S:与-f合用,表示在每次反复的间隔休眠S秒

2、head

head -n 10 test.log:查询日志文件中的前10行日志;

head -n -10 test.log:查询日志文件除了10行的其他所--关机 shutdown有日志;

3、cat-搜索关键字附近的日志

ca默认情况下,‘grep’只搜索当前目录。如果此目录下有许多子目录,‘grep’会以如下形式列出:t是由行到一行连续显示在屏幕上

最常用的命令:cat -n filename | grep "关键字"

cat app.log | grep -C 5 '关键字':显示日志里匹配字串那行以及前后5行;

cat app.log | grep -B 5 '关键字':显示匹配字串及前5行;

cat app.log | grep -A 5 '关键字':显示匹配字串及后5行;

4、more

more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位作。

more的语法:more 文件名

linux怎么查看指定行的日志

内容返回为

按行号查看---过滤出关键字附近的日志

我想要在行下面添加一句:woshishazi

因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.

我是这样做的,首先: cat -n test.log |grep "地形" 得到关键日志的行号

<3>得到"地形"关键字所在的行号是102行. 此时如果我想查看这个关键字前10行和后10行的日志:

cat -n test.log |tail -n +92|head -n 20

tail -n +92表示查询92行之后的日志

head -n 20 则表示在前面的查询结果里再查前20条记录

按日期怎么查:

通常我们非常需要查找指定时间端的日志

特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.

关于日期打印,可以先 grep '2014-12-17 16:1--------------------7:20' test.log 来确定日志中是否有该时间点,以确保第4步可以拿到日志

这个根据时间段查询日志是非常有用的命令.

(1)使用more和less命令, 如: cat -n test.log |grep "地形" |more 这样就分页打印了,通过点击空格键翻页

(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:

cat -n test.log |grep "地形" >xxx.txt

Linux4-文本处理三驾马车:grep, sed, awk

输出结果为:

Linux基础课程系列:

linuxSecureCRT

格式: grep [options] pattern file ([]内的部分可以省略)

sed:流编辑器,一般用来对文本进行 增删改查 (sed是以 行 为单位来处理的)。

用法: sed [-options] 'script' file(s)

[!] 表示否定,取反(相当于grep -v)

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其 对数据分析并生成报告 时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。gawk 是 AWK 的 GNU 版本。

用法: awk [options] '{script}' file 。

基础结构: ' {script} '

匹配结构: ' /pattern/{script} '

扩展结构: 'BEGI5/7N{script} {script} END{script}'

awk 在读取一行文本时,会用预定义的字段分隔符划分每个数据字段,并分配给一个变量。

$0 代表整个文本行;

……

$NF 代表文本行中的一个数据字段

awk 默认的字段分隔符是任意空白字符(如:空格or 制表符),也可以用-F 参数自定义分隔符

Linux系统中grep命令如何使用?常用参数有哪些?

3 - 多用户状态(有NFS)

进行Linux系统维护的时候,想要在文本中快速搜索到你需要的东西,grep命令是非常不错的选择,它主要用于查找文件里符合条件的字符串,从而节省时间、提高工作效率。那么Linux系统中grep命令如何使用?我们一起来看看详细的内容介绍。

Linux grep命令用于查找文件里符合条件的字符串。

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为-,则grep指令会从标准输入设备读取数据。

语法

grep

[-abcEFGhHilLnqrsvVwxy][-A<显示行数>]补充说明:在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符">"和">>",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。[-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--][范本样式][文件或目录...]

参数

---链接 lna或--text:不要忽略二进制的数据。

-A<显示行数>或--after-context=<显示行数>:除了显示符合范本样式的那一列之外,并显示该行之后的内容。

-b或--byte-offset:在显示符合样式的那一行之前,标示出该行个字符的编号。

-B<显示行数>或--before-context=<显示行数>:除了显示符合样式的那一行之外,并显示该行之前的内容。

-c或--count:计算符合样式的列数。

-C<显示行数>或--context=<显示行数>或-<显示行数>:除了显示符合样式的那一行之外,并显示该行之前后的内容。

-d<动作>或--directories=<动作>:当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。

-e<范本样式>或--regexp=<范本样式>:指定字符串做为查找文件内容的样式。

-E或--extended-regexp:将样式为延伸的正则表达式来使用。

-f<规则文件>或--file=<规则文件>:指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。

-F或--fixed-regexp:将样式视为固定字符串的列表。

-G或--basic-regexp:将样式视为普通的表示法来使用。

-h或--no-filename:在显示符合样式的那一行之前,不标示该行所属的文件名称。

-H或--with-filename:在显示符合样式的那一行之前,表示该行所属的文件名称。

………………

参数较多,就不为大家一一讲解了!

linux下如何获得特定字符串前后几行文本

例如:

删除字符的, 就要使用命令工具sed了, 再配合正则使用, 比如纯字符[A-Zz-a]+

输出内容相关的参数

这样可以匹$1 代表文本行中的第1个数据字段;配你想要的字符集, 这个工具也会很强大的啊。

如果以后有遇到Linxu的问题, 或者是是shell编程问题, Linux运维问题, 系统管理, 都可以一起研究一下哦

这个得用脚本来处理了,比如:python。

linux三剑客的基本使用——grep、sed、awk

跟tail相反,head是看日志的前多少行

grep、sed、awk是linux功能非常强大的三个命令,grep是查找过滤文本,sed是对文本进行编辑替换,awk是对文本进行分析报告。

grep:一种强大的文本搜索工具,它能使用正则表达式匹配模式搜索文本,并把匹配的行打印出来

最简单的理解就是找什么东西用grep,想修改什么内容用sed,想格式化内容用awk。

创建一个文件名为grep_text.txt的文件,并放入内容:

SillyMadman is both a madman and a fool.

Everyone agrees with this sentence.

我要查找在grep_text.txt文件里有Silly的行

命令是: grep Silly grep_text.txt

会返回内容:SillyMadman is both a madman and a fool.

也可以带以下参数,这些我认为可能容易用到的参数,其它的参数需要另行查找

文档,比如可以使用正则进行匹配。

内容相关的

-B, --before context=NUM显示所在行之前的行数

-A, --after context=NUM显示所在行之后的行数

-C, --context=NUM打印输出上下文的行数

过滤内容相关的参数:

-i, --忽略大小写区分

-w,--匹配查找的整个单词

-x,--匹配查找的整行文本

-v, --过滤掉匹配的内容

-n, --行号打印带有输出行的行号

比如,我要查找在grep_text.txt文件里不区分大小写查找sillymadman,并显示行号和匹配文本的下一行,那么我可以用以下命令查找

grep sillymadman grep_text.txt -i -n -A1

1:SillyMadman is both a madman and a fool.

2-Everyone agrees with this sentence.

总体而言grep的使用方式就是

grep也经常搭配管道符号"|"使用,比如我要查询某程序的进程,并去掉查找进程本身,那么命令为

ps -ef | grep program_name | grep -v grep

再创建一个文件名为sed_text.txt的文件,并放入内容:

SillyMadman is both a madman and a fool.

Everyone agrees with this sentence.

命令是:sed '1awoshishazi' sed_text.txt

返回内容为:

SillyMadman is both a madman and a fool.

woshishazi

Everyone agrees with this sentence.

但是以上这个命令不会修改原文件,如果需要,需要加上-i

sed -i '1awoshishazi' sed_text.txt

上面a是代表append,从指定行后面新的一行添加数据,还有其他作

作有以下这些

a :从下面一行新增

i :从上面一行插入,

d :删除

c :整行替换

p :打印

s :对指定内容进行替换

下面稍微举下例:

a: sed '1awoshishazi' sed_text.txt 从行后面添加

i: sed '1iwoshishazi' sed_text.txt 从行入

d: sed '1d' sed_text.txt 删除行

c: sed '1cwoshishazi' sed_text.txt 替换行内容为woshishazi

p: sed -n '1p' sed_text.txt 打印行,一般搭配-n使用,其他内容就不会再展示

s:这个相对复杂一点需要详细说明一下

sed的参数为 '[行]s/要被替换的内容/新的内容/g'

行是一个可选项,可以选择具体的行进行替换

g代表替换所有匹配到的内容,也可以改为数字,表示第几次匹配到时进行替换

sed 'sSillyMadmanshafengzig' sed_text.txt ,将所有SillyMadman替换为shafengzi

shafengzi is both a madman and a fool.

Everyone agrees with this sentence.

再创建一个文件名为awk_text.txt的文件,并放入内容:

1 sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.loga

2 b

3 c

4 d

5 f

以空白符作为分隔符这个文本相当于每一行有两个字段。

那么打印个字段时 awk '{print 0的话,则代表打印所有字段

awk默认以空白符作为分隔符,也可以指定分割符通过-F

awk -F: '{print $1}' awk_text.txt,以“:”作为作为分隔符

那么返回内容就为

1 a

2 b

3 c

4 d

5 f

相当于只有一列或者说一个字段

然后还可以对前面加上一个正则对行进行匹配内容

awk '/a/{print 2 ~ /a/){print $1}' awk_text.txt

1

下面哪个是linux动态查看100行日志的方式?

head -n -10 test.log 查询日志文件除了10行的其他所有日志;

...展开

/dev 设备文件存储目录,如声卡、光驱..4、基本命令.

工具原料

方法/步骤分步阅读

1/7

先必须了解两个最基本的命令:

tail -n 10 test.log 查询日志尾部10行的日志;

head -n 10 test.log 查询日志文件中的头10行日志;

2/7

场景1: 按行号查看---过滤出关键字附近的日志

因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.

我是这样做的,首先: cat -n test.log |grep "地形" 得到关键日志的行号

3/7

<3>得到"地形"关键字所在的行号是102行. 此时如果我想查看这个关键字前10行和后10行的日志:

cat -n test.log |tail -n +92|head -n 20

tail -n +92表示查询92行之后的日志

head -n 20 则表示在前面的查询结果里再查前20条记录

1688

根据文章内容为您

广告

Batterytesterlithiumbatterydischargetester

¥4700 元

Batterytesterlithiumbatterydischargetester

¥4700 元

FORMERCEDESM272OILFILTERGASKETMLR350GL350A2721840280

¥9.9 元

Testequipmentforransformerdcresistancetester

¥4700 元

Testequipmentforransformerdcresistancetester

¥4700 元

4/7

场景2:那么按日期怎么查呢? 通常我们非常需要查找指定时间端的日志

特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.

关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点,以确保第4步可以拿到日志

这个根据时间段查询日志是非常有用的命令.

6/7

(1)使用more和less命令, 如: cat -n test.log |grep "地形" |more 这样就分页打印了,通过点击空格键翻页

(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:

cat -n test.log |grep "地形" >xxx.txt

7/7

这几个日志查看方法应该可以满足日常需求了.