linux搜索命令入门 linux内容搜索命令

关于LINUX最基本的一些命令?

Linux运维人员必会的120个命令

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的兴宾网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

跟老男孩学Linux运维:核心系统命令实战

前言

第1章 Linux命令行简介 / 1

1.1Linux命令行概述 / 1

1.2在Linux命令行下查看命令帮助 / 4

1.3Linux shutdown reboot halt / 9

关机:

shutdown -h now

halt

init 0

第2章 文件和目录操作命令 / 13

2.1pwd:显示当前所在的位置 / 13

2.2cd:切换目录 / 16

2.3tree:以树形结构显示目录下的内容 / 18

2.4mkdir:创建目录 / 22

2.5touch:创建空文件或改变文件的时间戳属性 / 27

2.6ls:显示目录下的内容及相关属性信息 / 30

2.7cp:复制文件或目录 / 39

2.8mv:移动或重命名文件 / 42

2.9rm:删除文件或目录 / 45

2.10rmdir:删除空目录 / 48

2.11ln:硬链接与软链接 / 49

2.12readlink:查看符号链接文件的内容 / 54

2.13find:查找目录下的文件 / 55

2.14xargs:将标准输入转换成命令行参数 / 68

2.15rename:重命名文件 / 71

2.16basename:显示文件名或目录名 / 72

2.17dirname:显示文件或目录路径 / 72

2.18chattr:改变文件的扩展属性 / 73

2.19lsattr:查看文件扩展属性 / 75

2.20file:显示文件的类型 / 76

2.21md5sum:计算和校验文件的MD5值 / 77

2.22chown:改变文件或目录的用户和用户组 / 80

2.23chmod:改变文件或目录权限 / 81

2.24chgrp:更改文件用户组 / 85

2.25umask:显示或设置权限掩码 / 86

2.26老男孩从新手成为技术大牛的心法 / 90

第3章 文件过滤及内容编辑处理命令 / 91

3.1cat:合并文件或查看文件内容 / 91

3.2tac:反向显示文件内容 / 103

3.3more:分页显示文件内容 / 104

3.4less:分页显示文件内容 / 107

3.5head:显示文件内容头部 / 109

3.6tail:显示文件内容尾部 / 111

3.7tailf:跟踪日志文件 / 114

3.8cut:从文本中提取一段文字并输出 / 115

3.9split:分割文件 / 117

3.10paste:合并文件 / 118

3.11sort:文本排序 / 123

3.12join:按两个文件的相同字段合并 / 127

3.13uniq:去除重复行 / 129

3.14wc:统计文件的行数、单词数或字节数 / 131

3.15iconv:转换文件的编码格式 / 133

3.16dos2unix:将DOS格式文件转换成UNIX格式 / 134

3.17diff:比较两个文件的不同 / 135

3.18vimdiff:可视化比较工具 / 138

3.19rev:反向输出文件内容 / 139

3.20tr:替换或删除字符 / 140

3.21od:按不同进制显示文件 / 143

3.22tee:多重定向 / 145

3.23vi/vim:纯文本编辑器 / 147

3.24老男孩逆袭思想:做Linux运维的多个好处 / 152

第4章 文本处理三剑客 / 153

4.1grep:文本过滤工具 / 153

4.2sed:字符流编辑器 / 159

4.3awk基础入门 / 165

第5章 Linux信息显示与搜索文件命令 / 176

5.1uname:显示系统信息 / 176

5.2hostname:显示或设置系统的主机名 / 178

5.3dmesg:系统启动异常诊断 / 179

5.4stat:显示文件或文件系统状态 / 181

5.5du:统计磁盘空间使用情况 / 183

5.6date:显示与设置系统时间 / 186

5.7echo:显示一行文本 / 190

5.8watch:监视命令执行情况 / 193

5.9which:显示命令的全路径 / 195

5.10whereis:显示命令及其相关文件全路径 / 196

5.11locate:快速定位文件路径 / 197

5.12updatedb:更新mlocate数据库 / 199

5.13老男孩逆袭思想:新手在工作中如何问问题不会被鄙视 / 200

第6章 文件备份与压缩命令 / 201

6.1tar:打包备份 / 201

6.2gzip:压缩或解压文件 / 208

6.3zip:打包和压缩文件 / 211

6.4unzip:解压zip文件 / 212

6.5scp:远程文件复制 / 214

6.6rsync:文件同步工具 / 216

6.7老男孩逆袭思想:新手如何高效地提问 / 220

第7章 Linux用户管理及用户信息查询命令 / 222

7.1 useradd:创建用户 / 222

7.2usermod:修改用户信息 / 227

7.3userdel:删除用户 / 229

7.4groupadd:创建新的用户组 / 230

7.5groupdel:删除用户组 / 231

7.6passwd:修改用户密码 / 232

7.7chage:修改用户密码有效期 / 237

7.8chpasswd:批量更新用户密码 / 238

7.9su:切换用户 / 240

7.10visudo:编辑sudoers文件 / 242

7.11sudo:以另一个用户身份执行命令 / 244

7.12id:显示用户与用户组的信息 / 248

7.13w:显示已登录用户信息 / 249

7.14who:显示已登录用户信息 / 250

7.15users:显示已登录用户 / 252

7.16whoami:显示当前登录的用户名 / 253

7.17last:显示用户登录列表 / 253

7.18lastb:显示用户登录失败的记录 / 254

7.19lastlog:显示所有用户的最近登录记录 / 255

第8章 Linux磁盘与文件系统管理命令 / 257

8.1fdisk:磁盘分区工具 / 257

8.2partprobe:更新内核的硬盘分区表信息 / 265

8.3tune2fs:调整ext2/ext3/ext4文件系统参数 / 266

8.4parted:磁盘分区工具 / 268

8.5mkfs:创建Linux文件系统 / 272

8.6dumpe2fs:导出ext2/ext3/ext4文件系统信息 / 274

8.7resize2fs:调整ext2/ext3/ext4文件系统大小 / 275

8.8fsck:检查并修复Linux文件系统 / 278

8.9dd:转换或复制文件 / 281

8.10mount:挂载文件系统 / 284

8.11umount:卸载文件系统 / 288

8.12df:报告文件系统磁盘空间的使用情况 / 289

8.13mkswap:创建交换分区 / 293

8.14swapon:激活交换分区 / 294

8.15swapoff:关闭交换分区 / 295

8.16sync:刷新文件系统缓冲区 / 296

第9章 Linux进程管理命令 / 298

9.1ps:查看进程 / 298

9.2pstree:显示进程状态树 / 305

9.3pgrep:查找匹配条件的进程 / 306

9.4kill:终止进程 / 307

9.5killall:通过进程名终止进程 / 310

9.6pkill:通过进程名终止进程 / 311

9.7top:实时显示系统中各个进程的资源占用状况 / 313

9.8nice:调整程序运行时的优先级 / 320

9.9renice:调整运行中的进程的优先级 / 323

9.10nohup:用户退出系统进程继续工作 / 324

9.11strace:跟踪进程的系统调用 / 325

9.12ltrace:跟踪进程调用库函数 / 332

9.13runlevel:输出当前运行级别 / 334

9.14init:初始化Linux进程 / 335

9.15service:管理系统服务 / 335

第10章 Linux网络管理命令 / 338

10.1ifconfig:配置或显示网络接口信息 / 338

10.2ifup:激活网络接口 / 343

ifup eth0

10.3ifdown:禁用网络接口 / 343

ifdown eth0

service network restart(/etc/init.d/network restart) 激活整个网络,所有网卡。

10.4route:显示或管理路由表 / 344

10.5arp:管理系统的arp缓存 / 350

10.6ip:网络配置工具 / 351

10.7netstat:查看网络状态 / 358

10.8ss:查看网络状态 / 362

10.9ping:测试主机之间网络的连通性 / 363

10.10traceroute:追踪数据传输路由状况 / 366

10.11arping:发送arp请求 / 367

10.12telnet:远程登录主机 / 369

10.13nc:多功能网络工具 / 370

10.14ssh:安全地远程登录主机 / 373

10.15wget:命令行下载工具 / 376

10.16mailq:显示邮件传输队列 / 379

10.17mail:发送和接收邮件 / 381

10.18nslookup:域名查询工具 / 386

10.19dig:域名查询工具 / 389

10.20host:域名查询工具 / 393

10.21nmap:网络探测工具和安全/端口扫描器 / 394

10.22tcpdump:监听网络流量 / 398

第11章 Linux系统管理命令 / 407

11.1lsof:查看进程打开的文件 / 407

11.2uptime:显示系统的运行时间及负载 / 411

11.3free:查看系统内存信息 / 411

11.4iftop:动态显示网络接口流量信息 / 413

11.5vmstat:虚拟内存统计 / 415

11.6mpstat:CPU信息统计 / 419

11.7iostat:I/O信息统计 / 420

11.8iotop:动态显示磁盘I/O统计信息 / 423

11.9sar:收集系统信息 / 425

11.10chkconfig:管理开机服务 / 430

11.11ntsysv:管理开机服务 / 433

11.12 setup:系统管理工具 / 434

11.13ethtool:查询网卡参数 / 436

11.14mii-tool:管理网络接口的状态 / 437

11.19rpm:RPM包管理器 / 443

11.20yum:自动化RPM包管理工具 / 446

top命令

第12章 Linux系统常用内置命令 / 450

12.1Linux内置命令概述 / 450

12.2Linux内置命令简介 / 450

12.3Linux常用内置命令实例 / 452

Linux下文件搜索、查找、查看命令

1、最强大的搜索命令:find 查找各种文件的命令 

2、在文件资料中查找文件:locate

3、搜索命令所在的目录及别名信息:which 

4、搜索命令所在的目录及帮助文档路径:whereis

5、在文件中搜寻字符串匹配的行并输出:grep

6、分页显示一个文件或任何输出结果:more

7、分页显示一个文件并且可以回头:less

8、指定显示前多少行文件内容:head

9、指定显示文件后多少行内容:tail

10、查看一个文件:cat

11、查看文件内容多少字符多少行多少字节:wc

12、排序文件内容:sort

一、根据 文件或目录名称 搜索

find 【搜索目录】【-name或者-iname】【搜索字符】:-name和-iname的区别一个区分大小写,一个不区分大小写

eg:在/etc 目录下搜索名字为init的文件或目录

①、find /etc -name init (精准搜索,名字必须为 init 才能搜索的到)

②、find /etc -iname init (精准搜索,名字必须为 init或者有字母大写也能搜索的到)

③、find /etc -name *init (模糊搜索,以 init 结尾的文件或目录名)

④、find /etc -name init??? (模糊搜索,? 表示单个字符,即搜索到 init___)

二、根据 文件大小 搜索

eg:在根目录下查找大于 100M 的文件

find / -size +204800

这里 +n 表示大于,-n 表示小于,n 表示等于

1 数据块 == 512 字节 0.5KB,也就是1KB等于2数据块

100MB == 102400KB204800数据块

三、根据 所有者和所属组 搜索

①、在home目录下查询所属组为 root 的文件

find /home -group root

②、在home目录下查询所有者为 root 的文件

find /home -user root

四、根据 时间属性 搜索

find 【路径】【选项】【时间】

选项有下面三种:-amin 访问时间

-cmin 文件属性被更改

-mmin 文件内容被修改

时间:+n,-n,n分别表示超过n分钟,n分钟以内和n分钟

eg:在 /etc 目录下查找5 分钟内被修改过属性的文件和目录

find /etc -cmin -5

五、根据 文件类型或i节点 搜索

 -type 根据文件类型查找:

 f表示文件,d表示目录,l表示软链接

eg:查找 /home 目录下文件类型是目录的

find /home -type d

-inum 根据i节点查找

eg:查找 /tmp 目录下i节点为400342的文件或目录

  find /tmp -inum 400342

六、组合条件 搜索

这里有两个参数:

①、-a 表示两个条件同时满足(and)

②、-o 表示两个条件满足任意一个即可(or)

范例:查找/etc目录下大于80MB同时小于100MB的文件

find /etc -size +163840 -a -size -204800

语法:locate【文件名】 -i 不区分大小写

注意:这里和 find 命令是有区别的,find是全盘检索,而locate 是在文件资料库中进行搜索。所以locate命令的执行要比find命令执行速度快很多。但是这里有个问题,文件资料库是需要不断更新的。我们新创建的文件如果不更新 文件资料库,使用 locate 是查找不到的。

updatedb 手动更新资料库,但是对于/tmp目录下的新建文件,是更新不到文件资料库的,因为/tmp目录不属于文件资料库的收录范围。

eg:locate hcf

功能描述:搜索命令所在的目录及别名信息

 语法:which【命令】

 eg:which ls

功能描述:搜索命令所在的目录及帮助文档路径

 语法:whereis【命令】

 eg:whereis ls

功能描述:在文件中搜寻字符串匹配的行并输出

 语法:grep -iv 【指定字符串】【文件】

-i 不区分大小写

-v 排除指定字符串

 eg:查找 /root/install.log 文件中包含 mysql 字符串的行,并输出

grep mysql /root/install.log

本搜索工具,根据用户指定的模式,对目标文件逐行进行匹配检查,打印匹配到的行

grep是在文件中搜索匹配的字符串,是在文件中进行内容搜索,这个命令后面用到的比较多

描述:

分页显示一个文件或任何输出结果

用于查看纯文本文件(较长的)格式

格式:

more[选项] 文件

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

head[必要参数][选择参数][文件]

用于显示指定文件开始多少行内容

命令参数:

-n 10 显示前10行

-n -10 正常输出但不显示最后的10行

eg:显示new.txt的前两行内容

head -n 2 new.txt

head -2 new.txt

tail[必要参数][选择参数][文件]

用于显示指定文件末尾多少行内容

命令参数:

-n 10 显示后面10行

-f 持续刷新显示的内容

eg:显示new.txt的末尾两行内容

tail -n 2 new.txt

tail -2 new.txt

eg:指定从第二行开始显示

tail -n +2 new.txt

描述:一次显示整个文件内容

cat 命令 用于查看纯文本文件(较短)

 cat [选项] [文件]…

描述:wc 命令默认情况下会打印换行符数、单词数和字符数。

 用法:wc [选项] [文件]

用法:sort [选项] [文件]

转自: Linux下文件搜索、查找、查看命令_黄小小的博客-CSDN博客_linux 搜索

Linux常用基本命令大全介绍

学习Linux系统,命令是最基础的一部分,有着很重要的地位,所以入门必须掌握好常用命令。下面由我为大家整理了Linux系统常用的基本命令入门篇,希望对大家有帮助!

Linux系统常用的基本命令入门篇一、基础命令

1.Linu x的进 入与退出系统

进入Linux系统:

必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:

1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。

2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。

一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。影响系统的正常运行。

用户登录分两步:第一步,输入用户的登录名,系统根据该登录名识别用户;第二步,输入用户的口令,该口令是用户自己设置的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。

当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:

[root@loclhost/root] #

这时就可以对系统做各种操作了。注意超级用户的提示符是ldquo;#rdquo;,其他用户的提示符是ldquo;$rdquo;。

2.修改口令

为了更好的保护用户帐号的安全,Linux允许用户随时修改自己的口令,修改口令的命令是passwd,它将提示用户输入旧口令和新口令,之后还要求用户再次确认新口令,以避免用户无意中按错键。如果用户忘记了口令,可以向系统管理员申请为自己重新设置一个。

3.虚拟控制台

Linux是一个真正的多用户 操作系统 ,它可以同时接受多个用户登录。Linux还允许一个用户进行多次登录,这是因为Linux和UNIX一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台进行多次登录。虚拟控制台的选择可以通过按下Alt键和一个功能键来实现,通常使用F1-F6例如,用户登录后,按一下Alt-F2键,用户又可以看到"login:"提示符,说明用户看到了第二个虚拟控制台。然后只需按Alt-F1键,就可以回到第一个虚拟控制台。 一个新安装的Linux系统默认允许用户使用Alt-F1到Alt-F6键来访问前六个虚拟控制台。虚拟控制台可使用户同时在多个控制台上工作,真正体现Linux系统多用户的特性。用户可以在某一虚拟控制台上进行的工作尚未结束时,切换到另一虚拟控制台开始另一项工作。

退出系统

不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit命令即可。

4.查看命令帮助信息

man命令

man命令用于查询命令和程序的使用 方法 和参数。

例如:

man ls

将显示ls命令的基本格式和使用方法

Linux系统常用的基本命令入门篇二、关机重启命令

首先,是关机/重启命令,仅在虚拟机时使用,实际工作中用不到

reboot 一般不跟参数使用,输入指令即可重启

shutdown 一般需要跟参数,例:

shutdown -r 延时多少分钟重启,一般使用now

shutdown -r now 立即重启

shutdown -f 强制重启

跟windows一样,linux也存在注销功能

exit

1)halt

halt 可不接参数

halt -f 强制关机

2)poweroff

poweroff 可不接参数使用

poweroff -f 强制关机

3)init 0

4)shutdown 不可单独使用

shutdown -h 分钟数 延时多久关机

shutdown -h now 立即关机

Linux系统常用的基本命令入门篇三、vi编辑

vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。

Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。

默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用ldquo;escrdquo;键,从命令模式切换到编辑模式使用ldquo;Ardquo;、ldquo;ardquo;、ldquo;Ordquo;、ldquo;ordquo;、ldquo;Irdquo;、ldquo;irdquo;键。

vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号ldquo;:rdquo;开头输入。常用内置命令如下:

1 Ctrl+u:向文件首翻半屏;

2 Ctrl+d:向文件尾翻半屏;

3 Ctrl+f:向文件尾翻一屏;

4 Ctrl+b:向文件首翻一屏;

5 Esc:从编辑模式切换到命令模式;

6 ZZ:命令模式下保存当前文件所做的修改后退出vi;

7 :行号:光标跳转到指定行的行首;

8 :$:光标跳转到最后一行的行首;

9 x或X:删除一个字符,x删除光标后的,而X删除光标前的;

10 D:删除从当前光标到光标所在行尾的全部字符;

11 dd:删除光标行正行内容;

12 ndd:删除当前行及其后n-1行;

13 nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;

14 p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;

15 P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;

16 /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;

17 ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;

18 a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,ldquo;s/rdquo;表示进行替换操作;

19 a:在当前字符后添加文本;

20 A:在行末添加文本;

21 i:在当前字符前插入文本;

22 I:在行首插入文本;

23 o:在当前行后面插入一空行;

24 O:在当前行前面插入一空行;

25 :wq:在命令模式下,执行存盘退出操作;

26 :w:在命令模式下,执行存盘操作;

27 :w!:在命令模式下,执行强制存盘操作;

28 :q:在命令模式下,执行退出vi操作;

29 :q!:在命令模式下,执行强制退出vi操作;

30 :e文件名:在命令模式下,打开并编辑指定名称的文件;

31 :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;

32 :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;

33 :set nu:在命令模式下,用于在最左端显示行号;

34 :set nonu:在命令模式下,用于在最左端不显示行号;

35 :1,3y 复制第一行到第三行

36 :1,3d 删除第一行到第三行

37 :1,3s/str/str_new/g 替换第一行到第三行中的字符串

38 :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符

39 :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行

Linux常用命令一、查询相关

find

按规则查找某个文件或文件夹,包括子目录

find . -name '_sh' -- 以.sh结尾的文件

find . -name '_hannel_ -- 包含channel字符的文件

find . -name 'build_ -- 以build开头的文件

find . -name 'abc??' -- abc后面有两个字符的文件

grep

查找内容包含指定的范本样式的文件,Global Regular Expression Print

grep -n pattern files -- 规则 -n表示显示行号

grep -n 'PostsActivity' AndroidManifest.xmlgrep -n '\d' AndroidManifest.xmlgrep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方

grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并显示行号

ps -e | grep java -- 所有java进程

ps -e | grep -i qq --所有qq进程,不区分大小写

find . -name '_hannel.xml' | xargs grep -n 'aapt' -- 在以channel.xml结尾的文件中查找包含lsquo;aaptrsquo;关键字的地方

ls | grep 'channel' -- 包含channel关键字的文件

which

在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

which zipwhich grep

Linux常用命令二、查看命令

tail

tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]

从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。

tail -f test.log,循环查看文件内容,Ctrl+c来终止

tail -n 5 test.log,显示文件最后5行内容

tail -n +5 test.log,从第5行开始显示文件

more

more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]

more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。

more +3 test.log,显示文件中从第3行起的内容

more -5 test.log,设定每屏显示行数

ls -l | more -5,每页显示5个文件信息

more +/day3 test.log,查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出

less

less [options] [file...]

与more命令一样,less命令也用来分屏显示文件的内容。但是二者存在差别:less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。

less test.log,查看文件

ps -ef | less,查看进程信息并通过less分页显示

history | less,查看命令历史使用记录并通过less分页显示

less test1.log test2.log,浏览多个文件,n和p切换文件

watch

watch [options] command

每隔一段时间重复运行一个命令,默认间隔时间是2秒。要运行的命令直接传给shell(注意引用和转义特殊字符)。结果会展示为全屏模式,这样你可以很方便的观察改变

watch -n 60 date,执行date命令每分钟一次,输入^C 退出

watch -d ls -l,查看目录变化

watch -d rsquo;ls -l | fgrep joersquo;,想找joe用户的文件

watch -d 'ls -l|grep scf',监测当前目录中 scf' 的文件的变化

watch -n 10 'cat /proc/loadavg',10秒一次输出系统的平均负载

watch -n 1 -d netstat -ant,每隔一秒高亮显示网络链接数的变化

watch -n 1 -d 'pstree | grep http',每隔一秒高亮显示http链接数的变化

Linux常用命令三、文件相关

vi

vi file

按i键,进入编辑模式

按esc键,进入命令模式

:w 保存文件但不退出vi

:w file 将修改另外保存到file中,不退出vi

:w! 强制保存,不推出vi

:wq 保存文件并退出vi

:wq! 强制保存文件,并退出vi

q: 不保存文件,退出vi

:q! 不保存文件,强制退出vi

:e! 放弃所有修改,从上次保存文件开始再编辑

chmod

change mode,变更文件或目录的读、写、运行权限

chmod [-cfvR] [--help] [--version] mode file...

mode:权限设定字串,格式如下 : [ugoa...][[+-=][rw xX ]...][,...]

u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

chmod也可以用数字来表示权限,语法为:chmod abc file,如chmod 777 file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1

chmod 777 file,等同于 chmod a=rwx file

chmod ug=rwx,o=x file,等同于 chmod 771 file

chmod 4755 filename,可使此程序具有root的权限

ls -l 可以查看列出当前用户的文件权限

zip

zip -r filename.zip filesdir

zip -r test.zip ./_把当前所有文件压缩到test.zip

zip -r test.zip test,把test文件所有文件及目录,要是到test.zip

zip -d test.zip test.txt,删除压缩文件中test.txt文件

zip -m test.zip ./test.txt,向压缩文件中test.zip中添加test.txt文件

zip -r test.zip file1 file2 file3 filesdir,处理多个文件和目录,空格隔开

unzip

unzip zip-file,解压到当前目录

unzip -d dst-dir zip-file,解压到指定的目录,-d后为指定目录

unzip -n zip-file,不覆盖已经存在的文件,-n为不要覆盖原有的文件

unzip -n -d dst-dir zip-file,解压到指定的目录,不覆盖已经原有的文件

unzip -o -d dst-dir zip-file,-o不必先询问用户覆盖原有文件

unzip -l zip-file,仅查看压缩文件内所包含的文件

tar

tar cvf test.tar test,把test下所有文件和目录做备份tar czvf test.tar.gz test,把test下所有文件和目录做备份并进行压缩tar xzvf test.tar.gz,把这个备份文件还原并解压缩tar tvf test.tar | more,查看备份文件的内容,并以分屏方式显示在 显示器 上

tar czvf test.tar.gz test --exclude=test/svn,备份压缩并排除目录

touch

Linux常用指令---grep(搜索过滤)(转)

Linux常用指令---grep(搜索过滤) (转)

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

1.命令格式:

grep [option] pattern file

2.命令功能:

用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。

3.命令参数:

-a   --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   #在显示符合样式的那一行之前,表示该行所属的文件名称。   

-i    --ignore-case   #忽略字符大小写的差别。   

-l    --file-with-matches   #列出文件内容符合指定的样式的文件名称。   

-L   --files-without-match   #列出文件内容不符合指定的样式的文件名称。   

-n   --line-number   #在显示符合样式的那一行之前,标示出该行的列数编号。   

-q   --quiet或--silent   #不显示任何信息。   

-r   --recursive   #此参数的效果和指定“-d recurse”参数相同。   

-s   --no-messages   #不显示错误信息。   

-v   --revert-match   #显示不包含匹配文本的所有行。   

-V   --version   #显示版本信息。   

-w   --word-regexp   #只显示全字符合的列。   

-x    --line-regexp   #只显示全列符合的列。   

-y   #此参数的效果和指定“-i”参数相同。

4.规则表达式:

grep的规则表达式:

^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。    

$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。    

.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。    

*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。    

.*   #一起用代表任意字符。   

[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。    

[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。    

\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。    

\      #锚定单词的开始,如:'\

\      #锚定单词的结束,如'grep\'匹配包含以grep结尾的单词的行。    

x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。    

x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。    

x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。   

\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。   

\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。   

\b    #单词锁定符,如: '\bgrep\b'只匹配grep。  

POSIX字符:

为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是[A-Za-z0-9]的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符类。

[:alnum:]    #文字数字字符   

[:alpha:]    #文字字符   

[:digit:]    #数字字符   

[:graph:]    #非空字符(非空格、控制字符)   

[:lower:]    #小写字符   

[:cntrl:]    #控制字符   

[:print:]    #非空字符(包括空格)   

[:punct:]    #标点符号   

[:space:]    #所有空白字符(新行,空格,制表符)   

[:upper:]    #大写字符   

[:xdigit:]   #十六进制数字(0-9,a-f,A-F)  

5.使用实例:

实例1:查找指定进程

命令:

ps -ef|grep svn

输出:

[root@localhost ~]# ps -ef|grep svn

root 4943   1      0  Dec05 ?   00:00:00 svnserve -d -r /opt/svndata/grape/

root 16867 16838  0 19:53 pts/0    00:00:00 grep svn

[root@localhost ~]#

说明:

第一条记录是查找出的进程;第二条结果是grep进程本身,并非真正要找的进程。

实例2:查找指定进程个数

命令:

ps -ef|grep svn -c

ps -ef|grep -c svn

输出:

[root@localhost ~]# ps -ef|grep svn -c

2

[root@localhost ~]# ps -ef|grep -c svn 

2

[root@localhost ~]#

说明:

实例3:从文件中读取关键词进行搜索

命令:

cat test.txt | grep -f test2.txt

输出:

[root@localhost test]# cat test.txt 

hnlinux

peida.cnblogs.com

ubuntu

ubuntu linux

redhat

Redhat

linuxmint

[root@localhost test]# cat test2.txt 

linux

Redhat

[root@localhost test]# cat test.txt | grep -f test2.txt

hnlinux

ubuntu linux

Redhat

linuxmint

[root@localhost test]#

说明:

输出test.txt文件中含有从test2.txt文件中读取出的关键词的内容行

实例3:从文件中读取关键词进行搜索 且显示行号

命令:

cat test.txt | grep -nf test2.txt

输出:

[root@localhost test]# cat test.txt 

hnlinux

peida.cnblogs.com

ubuntu

ubuntu linux

redhat

Redhat

linuxmint

[root@localhost test]# cat test2.txt 

linux

Redhat

[root@localhost test]# cat test.txt | grep -nf test2.txt

1:hnlinux

4:ubuntu linux

6:Redhat

7:linuxmint

[root@localhost test]#

说明:

输出test.txt文件中含有从test2.txt文件中读取出的关键词的内容行,并显示每一行的行号

实例5:从文件中查找关键词

命令:

grep 'linux' test.txt

输出:

[root@localhost test]# grep 'linux' test.txt 

hnlinux

ubuntu linux

linuxmint

[root@localhost test]# grep -n 'linux' test.txt 

1:hnlinux

4:ubuntu linux

7:linuxmint

[root@localhost test]#

说明:

实例6:从多个文件中查找关键词

命令:

grep 'linux' test.txt test2.txt

输出:

[root@localhost test]# grep -n 'linux' test.txt test2.txt 

test.txt:1:hnlinux

test.txt:4:ubuntu linux

test.txt:7:linuxmint

test2.txt:1:linux

[root@localhost test]# grep 'linux' test.txt test2.txt 

test.txt:hnlinux

test.txt:ubuntu linux

test.txt:linuxmint

test2.txt:linux

[root@localhost test]#

说明:

多文件时,输出查询到的信息内容行时,会把文件的命名在行最前面输出并且加上":"作为标示符

实例7:grep不显示本身进程

命令:

ps aux|grep \[s]sh

ps aux | grep ssh | grep -v "grep"

输出:

[root@localhost test]# ps aux|grep ssh

root   2720  0.0  0.0  62656  1212 ?      Ss   Nov02   0:00 /usr/sbin/sshd

root  16834  0.0  0.0  88088  3288 ?      Ss   19:53   0:00 sshd: root@pts/0 

root  16901  0.0  0.0  61180   764 pts/0  S+   20:31   0:00 grep ssh

[root@localhost test]# ps aux|grep \[s]sh]

[root@localhost test]# ps aux|grep \[s]sh

root   2720  0.0  0.0  62656  1212 ?      Ss   Nov02   0:00 /usr/sbin/sshd

root  16834  0.0  0.0  88088  3288 ?      Ss   19:53   0:00 sshd: root@pts/0 

[root@localhost test]# ps aux | grep ssh | grep -v "grep"

root   2720  0.0  0.0  62656  1212 ?      Ss   Nov02   0:00 /usr/sbin/sshd

root  16834  0.0  0.0  88088  3288 ?      Ss   19:53   0:00 sshd: root@pts/0

说明:

实例8:找出已u开头的行内容

命令:

cat test.txt |grep ^u

输出:

[root@localhost test]# cat test.txt |grep ^u

ubuntu

ubuntu linux

[root@localhost test]#

说明:

实例9:输出非u开头的行内容

命令:

cat test.txt |grep ^[^u]

输出:

[root@localhost test]# cat test.txt |grep ^[^u]

hnlinux

peida.cnblogs.com

redhat

Redhat

linuxmint

[root@localhost test]#

说明:

实例10:输出以hat结尾的行内容

命令:

cat test.txt |grep hat$

输出:

[root@localhost test]# cat test.txt |grep hat$

redhat

Redhat

[root@localhost test]#

说明:

实例11:输出ip地址

命令:

ifconfig eth0|grep -E "([0-9]{1,3}\.){3}[0-9]"

输出:

[root@localhost test]# ifconfig eth0|grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"

inet addr:192.168.120.204  Bcast:192.168.120.255  Mask:255.255.255.0

[root@localhost test]# ifconfig eth0|grep -E "([0-9]{1,3}\.){3}[0-9]"

inet addr:192.168.120.204  Bcast:192.168.120.255  Mask:255.255.255.0

[root@localhost test]#

说明:

实例12:显示包含ed或者at字符的内容行

命令:

cat test.txt |grep -E "ed|at"

输出:

[root@localhost test]# cat test.txt |grep -E "peida|com"

peida.cnblogs.com

[root@localhost test]# cat test.txt |grep -E "ed|at"

redhat

Redhat

[root@localhost test]#

说明:

实例13:显示当前目录下面以.txt 结尾的文件中的所有包含每个字符串至少有7个连续小写字符的字符串的行

命令:

grep '[a-z]\{7\}' *.txt

输出:

[root@localhost test]# grep '[a-z]\{7\}' *.txt

test.txt:hnlinux

test.txt:peida.cnblogs.com

test.txt:linuxmint

[root@localhost test]#

实例14:日志文件过大,不好查看,我们要从中查看自己想要的内容,或者得到同一类数据,比如说没有404日志信息的

命令:

grep '.' access1.log|grep -Ev '404'  access2.log

grep '.' access1.log|grep -Ev '(404|/photo/|/css/)'  access2.log

grep '.' access1.log|grep -E '404'  access2.log

输出:

[root@localhost test]# grep “.”access1.log|grep -Ev “404”  access2.log

说明:上面3句命令前面两句是在当前目录下对access1.log文件进行查找,找到那些不包含404的行,把它们放到access2.log中,后面去掉’v’,即是把有404的行放入access2.log


分享标题:linux搜索命令入门 linux内容搜索命令
文章路径:http://scyanting.com/article/dddoccg.html