grep命令

alias命令

直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。
例一:列出当前系统中所有已经定义的命令别名。

[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

grep  命令

grepglobal search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
-o 只输出文件中匹配到的部分。
-v 反转查找。
-i 忽略大小写的差别
-q 不显示任何信息。
-A<显示列数> ,并显示该#行之后的内容。
-B 显示匹配到的行,并显示#前行
-C<显示列数>-<显示列数> 并显示该列之#前后的内容。
-E 意味着使用能使用扩展正则表达式。
例一:搜索root 字符

[root@localhost ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

例二:只显示搜索内容

[root@localhost ~]# grep -o root /etc/passwd
root
root
root
root

例三:A<显示列数> ,并显示该2行之后的内容。

     -B 显示匹配到的行,并显示2前行
     -C 并显示该列之2前后的内容。

[root@localhost ~]# grep -A 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@localhost ~]# grep -B 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# grep -C 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
 

基本正则表达式元字符
字符匹配:
     .:匹配任意单个字符
     []:匹配指定范围内的任意单个字符
     [^]:匹配指定范围外的任意单个字符
[:digit:][:lower:][:upper:][:alpha:][:alnum:][:punxt:][:space:]
匹配次数:用在要指定次数的字符后面,用于指定前面字符要出现的次数
        *:匹配前面的字符任意次:
              例如:grep “x*y”
                  abxy
                  xay
                  xxxxxxy
  贪婪模式
.*:任意长度的任意字符;
\?:匹配其前面的字符01次;即前面的可有可无
\+:匹配其前面的字符至少1次;
\{m\}:匹配前面的字符配前面的字符至少1次:
    \{0,n}:匹配前面的字符至少n
    \{m,\}:匹配前面的字符至少m次;
 
位置错定
^:行首锚定用于模式的最左侧
$:行尾锚定:用于模式的最右侧
^PATTERN$:用于模式匹配整行
   ^$:穿行:
   ^[[:space:]]*$
 \<\b:词首锚定;用于单词模式的左侧
\>\b:词尾锚定;用于单词模式的右侧
\<PATTERN\>:匹配整个单词
分组:
   \(\):将一个或多个字符捆绑在一起,当作一个整体进行处理
      \(xy\)*ab
Note :分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为:\1,\2\3…..
\1:从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符:
    \(ab\+\(xy)*\);
       \1:ab\+\(xy\)*
       \2:xy
例一:显示/proc/meminfo文件中以大小写开头的行:

[root@localhost ~]# grep -i '^s' /proc/meminfo
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              6856 kB
Slab:              73728 kB
SReclaimable:      34992 kB
SUnreclaim:        38736 kB

第二种方法:

[root@localhost ~]# grep '^[Ss]' /proc/meminfo
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              6856 kB
Slab:              73728 kB
SReclaimable:      34992 kB
SUnreclaim:        38736 kB
 
例二:显示、etc/passwd文件中不以/bin/bash结尾的行

root@localhost ~]# grep ‘/bin/bash$’ /etc/passwd

root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# grep -v '/bin/bash$' /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin 

nano

nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano

netstat

netstat命令网络测试 netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

-a–all:显示所有连线中的Socket

 -A<网络类型>–<网络类型>:列出该网络类型连线中的相关地址;

-c–continuous:持续列出网络状态;
-C–cache:显示路由器配置的快取信息;
 -e–extend:显示网络其他相关信息;
 -F–fib:显示FIB
-g–groups:显示多重广播功能群组组员名单;
 -h–help:在线帮助;
 -i–interfaces:显示网络界面信息表单;
-l–listening:显示监控中的服务器的Socket
-M–masquerade:显示伪装的网络连线;
 -n–numeric:直接使用ip地址,而不通过域名服务器;
 -N–netlink–symbolic:显示网络硬件外围设备的符号连接名称;
-o–timers:显示计时器;
 -p–programs:显示正在使用Socket的程序识别码和程序名称;
 -r–route:显示Routing Table
 -s–statistice:显示网络工作信息统计表;
-t–tcp:显示TCP传输协议的连线状况;
 -u–udp:显示UDP传输协议的连线状况;
-v–verbose:显示指令执行过程;
 -V–version:显示版本信息;
 -w–raw:显示RAW传输协议的连线状况;
 -x–unix:此参数的效果和指定“-A unix”参数相同; 
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口 
netstat -l #只显示监听端口
netstat -lt #只列出所有监听 tcp 端口
netstat -lu #只列出所有监听显示每个协议的统计信息
udp 端口 netstat -lx #只列出所有监听 UNIX 端口
显示每个协议的统计信息
netstat -s 显示所有端口的统计信息
netstat -st 显示TCP端口的统计信息
netstat -su 显示UDP端口的统计信息
显示核心路由信息
 netstat -r
fgrep:
不支持正则表达式搜索:
 
bash的基础特性(4
     变量类型:
          数据存储格式、存储空间大小、参与运算种类
      字符型
      数值型:
           整型
           浮点型
       强类型:定义变量时必须指定类型、参与运算符合类型要求;调用未声明变量会产生错误
         弱类型:无需指定类型,默认均为字符型,参与 运算会自动进行隐藏式类型转换;变量无需事先定义可直接调用
 
  bash中的变量的种类:
        根据变量的生效范围标准;
             本地变量;生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效;
             环境变量;生效范围为当前要shell进程及其子进程
              局部变量;生效范围为当前shell进程中某代码片段(通常指函数)
              位置变量:$1,$2,..来表示,用于让脚本在脚本代码中要调用通过命令行传递给它的参数;
              特殊变量:$?,$0,$*,$@,$#
  本地变量
      变量赋值:name=`value`
          可以使用引用;
                value:
                    (1)可以是直接字串;name=”username”
                    (2)变量引用;name=”$username”          
                     (3)命令引用:name=`COMMAND`,name=$(COMMAND)
          变量引用:$(name),$name
               “” ,弱引用,其中的变量引用会被替换为变量值:
               ‘’强引用,其中的变量引用不会被替换为变量值,而保持原字符串;
           显示已定义的所有变量
               set
           销毁变量
               unset name   
  环境变量
      变量声明,赋值:
           export   name-VALUE
           declare -x name-VALUE
      变量引用:$name,$(name)
      显示所有环境变量
             export
             env
              printenv
        销毁:
             unset  name
         bash有许多内建的环境变量:PATH,SHELL,UID,HISTSIZE,HOME,PWD,
 
变量命名法则:
       1·不能使程序中的保留字;例如if,for;
       2, 只能使用数字,字母及下划线,且不能以数字开头;
       3,见名知义;
  只读变量;
        readonly name
         declare -r name
位置变量;
      在脚本代码中调用通过命令行传递给脚本的参数
           $1,$2,…对应调用第1,第2等参数;
           $0; 命令本身;
 
       $*; 传递给脚本的所有参数
       $@:传递给脚本的所有参数
       $#;传递给脚本的参数的个数
 
 unset命令Shell内建命令 unset命令用于删除已定义的shell变量(包括环境变量)和shell函数。unset命令不能够删除具有只读属性的shell变量和环境变量。
e declare命令Shell内建命令 declare命令用于声明和显示已存在的shell变量。当不提供变量名参数时显示所有shell变量。declare命令若不带任何参数选项,则会显示所有shell变量及其值。declare的功能与typeset命令的功能是相同的。
 +/-“-“可用来指定变量的属性,
“+”则是取消变量所设的属性;
 -f:仅显示函数;
 r:将变量设置为只读;
 x:指定的变量会成为环境变量,可供shell以外的程序来使用;
 i[设置值]可以是数值,字符串或运算式。
 export export命令Shell内建命令 export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。 一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
-f:代表[变量名称]中为函数名称;
 -n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;
 -p:列出所有的shell赋予程序的环境变量。

 nano

nano命令文件编辑 nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nanonano命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行中输入过长的内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如Linux系统的配置文件,自动断行就会使本来只能写在一行上的内容折断成多行了,有可能造成系统不灵了。因此,如果你想避免这种情况出现,就加上-w选项吧。

原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/75118

(1)
kangkang
上一篇 2016-01-08
下一篇 2016-01-11

相关推荐

  • Select、Case

    select循环与菜单 select循环主要用于创建菜单,按数字排序list指定的顺序排序,并列出在标准输出,利用PS3列出提示符进行输入选择 用法: select VARIABLE in list  do     循环体命令 done PS3提示语定义: 在脚本中脚本代码的第一…

    Linux干货 2016-08-21
  • 逻辑卷(LVM)管理实例详解

    LVM基本术语 下面是LVM需要了解的基本术语:    物理卷(PV physical volume): 它可以是物理硬盘上的分区,也可以是整块物理硬盘;  卷组(VG volume group): 建立在物理卷之上,一个卷组至少包括一个物理卷,可以动态增删物理卷;  逻辑卷(LV logical volume):建立…

    Linux干货 2016-09-01
  • 网络班N22期第六周博客作业

    请详细总结vim编辑器的使用并完成以下练习题 打开文件: ~]# vim [options] [file ..]       +#:打开文件后,直接让光标处于第#行       +/PART…

    Linux干货 2016-09-26
  • 配置LAMP实现WordPress

    配置LAMP实现WordPress 在同一台主机上实现LAMP(Linux + Apache + MariaDB + PHP) CentOS 7.3、Apache 2.4.6、MariaDB 5.5.52、PHP 5.4.16 1 安装LAMP 采用yum方式进行安装httpd、MariaDB、php、php-mysql,php-mysql用来进行php和M…

    2017-06-06
  • Shell脚本-循环基础

    Shell脚本-循环基础 背景: 正在学习Shell脚本之循环,发现Shell的循环和其他编程语言大同小异,逻辑上都是相通的,但在使用格式上却有点不同,在学习完Shell循环后,将学习的心得体会记录下来,以备今后复习。 介绍: 什么是Shell脚本:       shell script是利用shell的功能…

    2017-08-26
  • N25_第六周作业

    1、复制/etc/rc.d/rc.sysinit文件至tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; :%s@^[[:space:]]\+@#&@g(CentOS7下并未看到这个文件) 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;…

    Linux干货 2017-02-15