Linux常用命令总结

来源:互联网 发布:淘宝异地租车违章代办 编辑:程序博客网 时间:2024/06/18 17:42
  1. 学习linux好习惯

    1. 善于查看man pagemanual)等帮助文档
    2. 利用好Tab
    3. 掌握好一些快捷键
    4. ctrl + c(停止当前进程)
    5. history(查看命令历史)
    6. ctrl + l(清屏,与clear命令作用相同)

  2. 常见问题
    1. telnet不能用!!!提示:-bash: telnet: command not found
    2. 解决方式,重装一下telnet客户端。
    3. centosubuntu
    4. yum list telnet* 查看telnet相关的安装包
    5. yum install telnet-server 安装telnet服务
    6. yum install telnet.* 安装telnet客户端

  3. Linux下如何查看版本信息
    1. Linux下如何查看版本信息, 包括位数、版本信息以及CPU内核信息、CPU具体型号等等,整个CPU信息一目了然。
    2.   # uname -a Linux查看版本当前操作系统内核信息)
    3.   Linux localhost.localdomain 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 athlon i386 GNU/Linux
    4.   # cat /proc/version Linux查看当前操作系统版本信息)
    5.   # cat /etc/issue cat /etc/redhat-releaseLinux查看版本当前操作系统发行版信息)
    6.   # cat /proc/cpuinfo Linux查看cpu相关信息,包括型号、主频、内核信息等)
    7.   # getconf LONG_BIT Linux查看版本说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit
    8.   # lsb_release -a


  4. Linux查看CPU和内存使用情况
    1. top 命令
    2. CentOS 中,可以通过 top 命令来查看 CPU 使用状况。
    3. 运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,
    4. 可以控制显示方式等等。
    5. 退出 top 的命令为 q (在 top 运行中敲 q 键一次)
    6. top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,
    7. 类似于Windows的任务管理器
    8. 可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,
    9. 如想查看root用户的进程内存使用情况的话可以使用如下的命令:
      1. top -u root

    10. 内容解释:
      1.  PID:进程的ID
      2.   USER:进程所有者
      3.   PR:进程的优先级别,越小越优先被执行
      4.   NInice:值
      5.   VIRT:进程占用的虚拟内存
      6.   RES:进程占用的物理内存
      7.   SHR:进程使用的共享内存
      8.   S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
      9.   %CPU:进程占用CPU的使用率
      10.   %MEM:进程使用的物理内存和总内存的百分比
      11.   TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
      12.   COMMAND:进程启动命令名称

    11.  


    12. 操作实例:

    13.   在命令行中输入 top

      1. top - 02:53:32 up 16 days, 6:34, 17 users, load average: 0.24, 0.21, 0.24
      2. Tasks: 481 total, 3 running, 474 sleeping, 0 stopped, 4 zombie
      3. Cpu(s): 10.3%us, 1.8%sy, 0.0%ni, 86.6%id, 0.5%wa, 0.2%hi, 0.6%si, 0.0%st
      4. Mem: 4042764k total, 4001096k used, 41668k free, 383536k buffers
      5. Swap: 2104472k total, 7900k used, 2096572k free, 1557040k cached
      6. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
      7. 32497 jacky 20 0 669m 222m 31m R 10 5.6 29:27.62 firefox
      8. 4788 yiuwing 20 0 257m 18m 13m S 5 0.5 5:42.44 konsole
      9. 5657 Liuxiaof 20 0 585m 159m 30m S 4 4.0 5:25.06 firefox
      10. 4455 xiefc 20 0 542m 124m 30m R 4 3.1 7:23.03 firefox
      11. 6188 Liuxiaof 20 0 191m 17m 13m S 4 0.5 0:01.16 konsole


    14.   即可启动 top

    15.   top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。

    16. 第一部分 -- 最上部的 系统信息栏

    17.   第一行(top):

    18.     00:11:04”为系统当前时刻;

    19.     3:35”为系统启动后到现在的运作时间;

    20.     2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 
    21. 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;

    22.     load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,
    23. 一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;

    24.   第二行(Tasks):

    25.     59 total”为当前系统进程总数;

    26.     1 running”为当前运行中的进程数;

    27.     58 sleeping”为当前处于等待状态中的进程数;

    28.     0 stoped”为被停止的系统进程数;

    29.     0 zombie”为被复原的进程数;

    30.   第三行(Cpus):

    31.     分别表示了 CPU 当前的使用率;

    32.   第四行(Mem):

    33.     分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;

    34.   第五行(Swap):

    35.     表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。
    36. 通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

    37. 第二部分 -- 中间部分的内部命令提示栏:

    38.   top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:

    39.   s - 改变画面更新频率

    40.   l - 关闭或开启第一部分第一行 top 信息的表示

    41.   t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示

    42.   m - 关闭或开启第一部分第四行 Mem 第五行 Swap 信息的表示

    43.   N - PID 的大小的顺序排列表示进程列表(第三部分后述)

    44.   P - CPU 占用率大小的顺序排列进程列表 (第三部分后述)

    45.   M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)

    46.   h - 显示帮助

    47.   n - 设置在进程列表所显示进程的数量

    48.   q - 退出 top

    49. 第三部分 -- 最下部分的进程列表栏:

    50. PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式

    51. Linux下查看内存我们一般用free命令:

      1. [root@scs-2 tmp]# free
      2. total used free shared buffers cached
      3. Mem: 3266180 3250004 16176 0 110652 2668236
      4. -/+ buffers/cache: 471116 2795064
      5. Swap: 2048276 80160 1968116


    52. 下面是对这些数值的解释:
    53. total:总计物理内存的大小。
    54. used:已使用多大。
    55. free:可用有多少。
    56. Shared:多个进程共享的内存总额。
    57. Buffers/cached:磁盘缓存的大小。
    58. 第三行(-/+ buffers/cached):
    59. used:已使用多大。
    60. free:可用有多少。

    61. 第四行就不多解释了。

    62. 区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 
    63. 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OSbuffers/cached 都是属于被使用,
    64. 所以他的可用内存是16176KB,已用内存是3250004KB,
    65. 其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.

    66. 第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,
    67. 因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

    68. 所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached

    69. top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。

    70. <空格>:立刻刷新。

    71. P:根据CPU使用大小进行排序。

    72. T:根据时间、累计时间排序。

    73. q:退出top命令。

    74. m:切换显示内存信息。

    75. t:切换显示进程和CPU状态信息。

    76. c:切换显示命令名称和完整命令行。

    77. M:根据使用内存大小进行排序。

    78. W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。


    79. 可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。
    80. 但是,它的缺点是会消耗很多系统资源。

    81. 应用实例

    82. 使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。
    83. 如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。

    84. a.作用
    85. free命令用来显示内存的使用情况,使用权限是所有用户。
    86. b.格式
      1. free [-b -k -m] [-o] [-s delay] [-t] [-V]

    87. c.主要参数

      1. b k m:分别以字节(KBMB)为单位显示内存使用情况。
      2. s delay:显示每隔多少秒数来显示一次内存使用情况。
      3. t:显示内存总和列。
      4. o:不显示缓冲区调节列。

    88. d.应用实例

    89. free命令是用来查看内存使用情况的主要命令。
    90. top命令相比,它的优点是使用简单,并且只占用很少的系统资源。
    91. 通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
      1. free b s5

  5.  系统时间查看
    1. date -R
    2. 修改系统时间。
    3. linux系统时钟有两个,
    4. 一个是硬件时钟,即BIOS时间,就是我们进行CMOS设置时看到的时间,
    5. 另一个是系统时钟,是linux系统Kernel时间。
    6. Linux启动时,系统Kernel会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。
    7. 有时我们会发现系统时钟和硬件时钟不一致,因此需要执行时间同步,下面就分享一下时间设置及时钟同步的命令使用方法。
    8. date命令将日期设置为2014618
    9. ---- date -s 06/18/14
    10. 将时间设置为142050
    11. ---- date -s 14:20:50
    12. 将时间设置为2014618141630秒(MMDDhhmmYYYY.ss
    13. ----date 0618141614.30
    14. linux系统修改系统时间与时区
    15. hwclock/clock 命令查看、设置硬件时间
    16. 查看系统硬件时钟
    17. hwclock --show 或者
    18. clock --show
    19. 设置硬件时间
    20. hwclock --set --date="03/29/17 15:27:25" (月/日/年时:分:秒)
    21. 或者# clock --set --date="06/18/14 14:55" (月/日/年时:分:秒)
    22. 同步系统及硬件时钟。
    23. 可以使用hwclock或者clock进行同步,
    24. 硬件时钟与系统时钟同步:
    25. # hwclock --hctosys 或者 # clock --hctosys hc代表硬件时间,sys代表系统时间,即用硬件时钟同步系统时钟
    26. 系统时钟和硬件时钟同步:
    27. # hwclock --systohc或者# clock --systohc 即用系统时钟同步硬件时钟

  6.  当前目录下的file.sh文件的所有者增加可执行权限   
    1. chmod u+x file.sh

  7.  Linux查找最近修改的文件
    1. 查找当前目录下.phtml文件中,最近30分钟内修改过的文件。
    2. find . -name ‘*.phtml -type f -mmin -30
    3. 查找当前目录下.phtml文件中,最近30分钟内修改过的文件,的详细情况
    4. find . -name ‘*.phtml -type f -mmin -30 -ls
    5. 查找当前目录下,最近1天内修改过的常规文件。
    6. find . -type f -mtime -1
    7. 查找当前目录下,最近1天前(2天内)修改过的常规文件。
    8. find . -type f -mtime +1
    1. Linux系统文件有三个主要的时间属性,分别是 ctime(change time), atime(access time), mtime(modify time)。
    2. 这三个时间很容易混淆,准备深入了解linux的童鞋请区分这三者的区别
    3. atimeAccess time
    4. 是在读取文件或者执行文件时更改,即文件最后一次被读取的时间。
    5. 说明: st_atime
    6. Time when file data was last accessed. Changed by the
    7. following functions: creat(), mknod(), pipe(),
    8. utime(2), and read(2).
    9. mtimeModified time
    10. 是在写入文件时随文件内容的更改而更改,是指文件内容最后一次被修改的时间。
    11. 说明: st_mtime
    12. Time when data was last modified. Changed by the fol-
    13. lowing functions: creat(), mknod(), pipe(), utime(),
    14. and write(2).
    15. ctimeChange time
    16. 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改,即文件状态最后一次被改变的时间。
    17. 说明: st_ctime
    18. Time when file status was last changed. Changed by the
    19. following functions: chmod(), chown(), creat(),
    20. link(2), mknod(), pipe(), unlink(2), utime(), and
    21. write().
    22. 很多人把它理解成create time,包括很多误导人的书籍也是这么写。实际上ctime是指change time
    23. 注意:
    24. 1、修改是文本本身的内容发生了变化(mtime
    25. 改变是文件的索引节点发生了改变(ctime
    26. 2、如果修改了文件内容,则同时更新ctimemtime
    27. 3、如果只改变了文件索引节点,比如修改权限,则只是改变了ctime
    28. 4、如果使用ext3文件系统的时候,在mount的时候使用了noatime参数则不会更新atime的信息,
    29. 即访问文件之后atime不会被修改,而这个不代表真实情况
    30. 小知识:这三个 time stamp 都放在 inode 中。若mtime,atime修改,
    31. inode 就一定会改,相应的inode改了,那ctime 也就跟着要改了,之所以在mount option中使用 noatime,
    32. 就是不想 file system 做太多的修改, 从而改善读取性能.
    33. 查看文件的 atimectime mtime
    34. # ls -lc filename 列出文件的 ctime
    35. # ls -lu filename 列出文件的 atime
    36. # ls -l filename 列出文件的 mtime
  8.   Linux下查看文件和文件夹大小的df和du命令
    1. 当磁盘大小超过标准时会有报警提示,这时如果掌握dfdu命令是非常明智的选择。
    2. df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
    3. du可以查看文件及文件夹的大小。
    1. [root@localhost ~]# df #列出各文件系统的磁盘空间使用情况
    2. [root@localhost ~]# df -ia #列出各文件系统的i节点使用情况
    3. [root@localhost ~]# df -T #列出文件系统的类型
    4. [root@localhost ~]# df -h #目前磁盘空间和使用情况 以更易读的方式显示
    5. [root@localhost ~]# df -k #以单位显示磁盘的使用情况
    1. [root@rudder ~]# du #查看当前目录下的,所有文件和目录
    2. [root@rudder ~]# du -ah #详细查看当前目录,子目录下的,所有文件和目录
    3. [root@rudder ~]# du test.bz2 #查看单个文件
    4. [root@bsso yayu]# du -h --max-depth=1 work/testing
    1. du 统计文件大小相加
    2. df 统计数据块使用情况
    3. 如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,
    4. df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。
    5. 如此一来在定期删除 /var/spool/clientmqueue下面的文件时,如果没有杀掉其进程,那么空间一直没有释放。
    6. 使用下面的命令杀掉进程之后,系统恢复。
    7. fuser -u /var/spool/clientmqueue

  9. 使/etc/profile里的配置立即生效
    1. source /etc/profile

        
  10.  系统服务
    1. 关机重启命令
    2. shutdown系统关机
      1. -r 关机后立即重启
      2. -h 关机后不重新启动

    3. halt 关机后关闭电源

    4. reboot 重新启动

    5. 重启网络服务

    6. root权限下 service network restart

    7. 关闭防火墙服务 service iptables stop

    8. 关闭防火墙自动启动 chkconfig iptables off


  11.  根据端口号查询进程pid
    1. netstat -nptl
    2. netstat -nptl |grep 8082
    1. 常见参数
    2. -a (all)显示所有选项,默认不显示LISTEN相关
    3. -t (tcp)仅显示tcp相关选项
    4. -u (udp)仅显示udp相关选项
    5. -n 拒绝显示别名,能显示数字的全部转化成数字。
    6. -l 仅列出有在 Listen (监听) 的服務状态
    7. -p 显示建立相关链接的程序名
    8. -r 显示路由信息,路由表
    9. -e 显示扩展信息,例如uid
    10. -s 按各个协议进行统计
    11. -c 每隔一个固定时间,执行该netstat命令。
    12. 提示:LISTENLISTENING的状态只有用-a或者-l才能看到

  12.  pstree以树结构显示进程
    1. pstree -aup |grep tomcat

  13.  删除文件  
    1. rm filename (rm -r 删除文件夹 rm -rf 强制删除文件或文件夹)

  14. 移动文件  修改文件名
    1. mv a/wenjian1.txt b/file1.txt (移动文件的同时还修改了文件名)


  15. tar 文件、目录打(解)包
    1. tar -xzvf testdir.tar.gz 解压到当前目录下
    2. tar -zxvf testdir.tar.gz -C Downloads/ 解压到指定的Downloads目录下
    1. -c 建立一个压缩文件的参数指令(create
    2. -x 解开一个压缩文件的参数指令(extract
    3. -z 是否需要用 gzip 压缩
    4. -j 是否需要用 bzip2 压缩
    5. -v 压缩的过程中显示文件(verbose
    6. -f 使用档名,在 f 之后要立即接档名(file

  16.  jinfo用法
    1. jinfojdk自带的命令,用来查看jvm的配置参数。通常会先使用jps查看java进程的id,然后使用jinfo查看指定pidjvm信息
    2. 查看所有的参数
    3. jinfo process_id
    4. 查看jvm的参数
    5. jinfo -flags process_id
    6. 查看java系统参数
    7. jinfo -sysprops process_id

  17.  查看防火墙状态
    1. Centos 7 firewall 命令:
    2. 查看已经开放的端口:
    3. firewall-cmd --list-ports
    4. 开启端口
    5. firewall-cmd --zone=public --add-port=80/tcp --permanent
    6. 命令含义:
    7. zone #作用域
    8. add-port=80/tcp #添加端口,格式为:端口/通讯协议
    9. permanent #永久生效,没有此参数重启后失效
    10. 重启防火墙
    11. firewall-cmd --reload #重启firewall
    12. systemctl stop firewalld.service #停止firewall
    13. systemctl disable firewalld.service #禁止firewall开机启动
    14. CentOS 7 以下版本 iptables 命令
    15. 如要开放80228080 端口,输入以下命令即可
    16. /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    17. /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
    18. /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
    19. 然后保存:
    20. /etc/rc.d/init.d/iptables save
    21. 查看打开的端口:
    22. /etc/init.d/iptables status
    23. 关闭防火墙
    24. 1 永久性生效,重启后不会复原
    25. 开启: chkconfig iptables on
    26. 关闭: chkconfig iptables off
    27. 2 即时生效,重启后复原
    28. 开启: service iptables start
    29. 重启: service iptables restart
    30. 关闭: service iptables stop
    31. 状态: service iptables status
    32. 需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
    1. 存在以下两种方式:
    2. 一、service方式
    3. 查看防火墙状态:
    4. [root@centos6 ~]# service iptables status
    5. iptables:未运行防火墙。
    6. 开启防火墙:
    7. [root@centos6 ~]# service iptables start
    8. 关闭防火墙:
    9. [root@centos6 ~]# service iptables stop
    10. 二、iptables方式
    11. 先进入init.d目录,命令如下:
    12. [root@centos6 ~]# cd /etc/init.d/
    13. [root@centos6 init.d]#
    14. 然后
    15. 查看防火墙状态:
    16. [root@centos6 init.d]# /etc/init.d/iptables status
    17. 暂时关闭防火墙:
    18. [root@centos6 init.d]# /etc/init.d/iptables stop
    19. 重启iptables
    20. [root@centos6 init.d]# /etc/init.d/iptables restart

  18.  查看文本文件内容 
    1. 查看文本文件内容
    2. cat wodeqingshu.txt
    3. more wodeqingshu.txt 可以分页看
    4. less wodeqingshu.txt 不仅可以分页,还可以方便地搜索,回翻等操作
    5. 空格--翻页;向下/上的箭头----上下翻行;shift+g--文件末尾;gg--文件开始;
    6. 先按冒号,再按“/关键字”---搜索
    7. tail -10 wodeqingshu.txt 查看文件的尾部的10
    8. 程序打出的日志在生产实践中具有非凡的debug的意义
    9. tail -f user.log 实时刷新显示文件的尾部
    10. head -20 wodeqingshu.txt 查看文件的头部20

  19.  linux下的find文件查找命令与grep文件内容查找命令
    1. 在使用linux时,经常需要进行文件查找。其中查找的命令主要有findgrep。两个命令是有区的。
    2. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
    3. (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
    4. 一.find命令
    5.     基本格式:find path expression
    6.     1.按照文件名查找
    7.     (1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
    8.     (2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
    9.     (3)find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。
    10. 表示在/etc目录下查找文件名中含有字符串‘srm’的文件
    11.     (4)find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件
    12.     2.按照文件特征查找     
    13.     (1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
    14.     (2)find / -atime -2   # 查找在系统中最后48小时访问的文件
    15.     (3)find / -empty   # 查找在系统中为空的文件或者文件夹
    16.     (4)find / -group cat   # 查找在系统中属于 groupcat的文件
    17.     (5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
    18.     (6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件
    19.     (7)find / -user fred   #查找在系统中属于fred这个用户的文件
    20.     (8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KBM:MBG:GB)
    21.     (9)find / -size -1000k   #查找出小于1000KB的文件
    22.     3.使用混合查找方式查找文件
    23.     参数有: !,-and(-a),-or(-o)。
    24.     (1)find /tmp -size +10000c -and -mtime +2   #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
    25.    (2)find / -user fred -or -user george   #在/目录下查找用户是fred或者george的文件文件
    26.    (3)find /tmp ! -user panda  #在/tmp目录中查找所有不属于panda用户的文件
    27.   二、grep命令
    28.     基本格式:find expression
    29.     1.主要参数
    30.     [options]主要参数:
    31.     c:只输出匹配行的计数。
    32.     i:不区分大小写
    33.     h:查询多文件时不显示文件名。
    34.     l:查询多文件时只输出包含匹配字符的文件名。
    35.     n:显示匹配行及行号。
    36.     s:不显示不存在或无匹配文本的错误信息。
    37.     v:显示不包含匹配文本的所有行。
    38.     pattern正则表达式主要参数:
    39.     \: 忽略正则表达式中特殊字符的原有含义。
    40.     ^:匹配正则表达式的开始行。
    41.     $: 匹配正则表达式的结束行。
    42.     \<:从匹配正则表达 式的行开始。
    43.     \>:到匹配正则表达式的行结束
    44.     [ ]:单个字符,如[A]即A符合要求
    45.     [ - ]:范围,如[A-Z],即ABC一直到Z都符合要求
    46.     .:所有的单个字符。
    47.     * :有字符,长度可以为0
    48.     2.实例 
    49.   (1)grep 'test' d*  #显示所有以d开头的文件中包含 test的行
    50.   (2)grep test aa bb cc    #显示在aabbcc文件中包含test的行
    51.   (3)grep ‘[a-z]\{5\} aa   #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
    52.   (4)grep magic /usr/src  #显示/usr/src目录下的文件(不含子目录)包含magic的行
    53.   (5)grep -r magic /usr/src  #显示/usr/src目录下的文件(包含子目录)包含magic的行
    54.   (6)grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

  20. Vim编辑器
    1. 1.1 Vi简介
    2. vi / vim Unix / Linux上最常用的文本编辑器而且功能非常强大。
    3. 只有命令,没有菜单。
    4. Vim工作模式:
    5.  
    6. 1.2 编辑使用的快捷键
      1. i在光标前插入
      2. I在光标当前行开始插入
      3. a在光标后插入
      4. A在光标当前行末尾插入
      5. o在光标当前行的下一行插入新行
      6. O在光标当前行的上一行插入新行
      7. yy复制当前行
      8. yw复制一个单词
      9. y$复制光标到结尾
      10. y^复制光标到行首
      11. #yy复制#行
      12. #yw复制#个单词
      13. m,ny复制mn行内容
      14. 粘贴在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴

    7. 1.3 Vi编辑定位使用命令
      1. :set nu显示行号
      2. :set nonu取消行号
      3. gg到文本的第一行
      4. G到文本的最后一行
      5. o 新建一行
      6. :n到文本的第n

    8. 1.4 删除键及命令
      1. x删除光标所在处字符
      2. nx删除光标所在处后的n个字符
      3. dd删除光标所在行。ndd删除n
      4. dG删除光标所在行到末尾行的所以内容
      5. D删除光标所在处到行尾的内容
      6. :n1,n2d删除指定范围的行

    9. 1.5 替换和取消命令及键

      1. uundo,取消上一步操作
      2. Ctrl + rredo,返回到undo之前
      3. r替换光标所在处的字符
      4. R从光标所在处开始替换,按Esc键结束
      5. Shift+ zz保存退出,与“:wq”作用相同
      6. v进入字符可视模式(选中)
      7. V Shift + v进入行可视模式(整行选中)
      8. Ctrl + v进入块可视模式(按照块选中)

    10. 1.6 查找
      1. 命令模式下,输入 /word 后回车,即查找word
      2. n 查找下一个匹配单词,按 N 查找上一个匹配单词。
      3. /后跟查找的字符串。vim会显示文本中第一个出现的字符串。
      4. ?后跟查找的字符串。vim会显示文本中最后一个出现的字符串。

原创粉丝点击