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

(0)
上一篇 2016-01-08 13:29
下一篇 2016-01-11 05:20

相关推荐

  • linux学习笔记: shell脚本编程相关(上)

    前言 unix/linux操作系统下的shell,是一种壳,其目的是提供一个用户与计算机相互交互的命令接口,通过输入各种命令,达到操作的目的。 与此同时,shell支持控制流程,进而可以组合出各种各样的应用实例。 shell脚本的格式  首行shebang机制:  bash脚本,首行添加#!/bin/bash&nbsp…

    Linux干货 2017-04-18
  • 网络班22期+第二周作业练习

    常用的文件管理命令: ls,显示文件或目录 -l:显示文件或目录的包括权限、属主、属组大小创建日期等详细信息 [root@centos7 ~]# ls -l total 16 -rw-r–r–. 1 root root   64 Aug&nbsp…

    Linux干货 2016-09-05
  • 系统日志和loganalyzer

    作为运维人员,熟悉系统日志是一项基本功。本文将介绍centos6的系统日志rsyslog及loganalyzer工具。 简介 系统日志:记录历史事件,通常都是按时间顺序将发生的事件予以记录,linux上的日志分为syslogd(系统进程相关日志)和klogd(内核事件日志) centos5:syslog    缺点:不能进行并行数据存储,…

    Linux干货 2016-03-20
  • grep

    1. 文本处理工具的使用:   cat 连接文件并打印到标准输出设备,但是文件较大时,翻屏太快,与more或者less连用 命令反着输入(tac)将会反向输出文本文件 用法: cat 选项 参数   选项: -A 显示不可打印字符 -b 对行进行编号,空白行不编号 -s 压缩空白行 -n 对行进行编号,包括空白航  参数: &n…

    Linux干货 2016-08-08
  • Python入门之闭包,匿名函数,过滤器,映射器,折叠

    在学习python函数的过程中,函数的高阶应用包括闭包lambda函数,过滤器等都让我头痛不已.接下来我把课堂中听到的笔记进行整理,再写一遍,希望在提醒自己的同时也能帮助到别人. 首先,我们来看一下什么是闭包,闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程中,我们见…

    Linux干货 2015-12-19
  • Linux初识

    N22-熊宝–http://www.178linux.com/author/echeng1514 –马哥教育网络班22期–第1周课程练习   1、描述计算机的组成及其功能: 2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别: Linux有众多的发行版,都是基于不同的内核版本,做了许多改…

    Linux干货 2016-08-15