`
gelongmei
  • 浏览: 209312 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Shell高级命令

 
阅读更多
Shell脚本编程学习5--管道命令(pipe)
分类: Linux/Unix 2013-05-27 16:22 84人阅读 评论(0) 收藏 举报
一、管道命令的介绍

    1、管道命令“|”仅能处理经由前面一个命令传来的正确信息,也就是standard output的信息,对于standard error并没有直接处理能力。

    2、管道命令示意图:

          command1 | command2 | command3

          即:command1正确执行的数据传递给command2,command2正确执行的数据传递给command3。

    3、在每个管道后面接的第一个数据必须是命令,而且这个命令必须能够接收standard input的数据才行,这样的命令才是管道命令。

二、选取命令:cut、grep

    将一段数据以行为单位进行分析,取出我们所想要的,或者经分析关键字,取出我们所想要的那一行。

    1、cut

     (1)作用:在一行信息中取出某部分我们想要的。

     (2)语法:

               cut   -d  '分隔符'  -f  fields   用于分隔字符

               cut   -c   字符范围                用于排列整齐的信息

     (3)参数:

              -d:后面接分隔符,与-f一起使用

               -f:依据-d的分隔符将一段信息切割成数段,用-f取出第几段的意思

              -c:以字符为单位取出固定字符区间。

     (4)例子:



上面就是取出以:为分隔符的第一段数据。

    

上面是取出以:为分隔符的第一段和第三段数据。



以上例子,说明取出每一行12个字符以后的数据。

总结:

       cut的主要用途在于将同一行里面的数据进行分解,最常用的使用在分析一些数据或文字数据的时候。以某些字符当作切割的参数,然后来将数据加以切割,以取得我们所需要的数据。

    2、grep

    (1)作用:分析一行信息,若当中有我们所需要的信息,就将该行拿出来。

    (2)语法:grep [-acinv] [--color=auto] '查找字符串'  filename

    (3)参数:

                       -a:将binary文件以text文件的方式查找数据

                       -c:计算找到‘查找字符串’的次数

                        -i:忽略大小写的不同

                       -n:顺便输出行号

                        -v:反向选择,即显示出没有‘查找字符串’内容的一行

     --color=auto:可以将找到的关键字部分加上颜色显示

                       -A:后面可加数字,为after的意思,除了列出该行外,后续的n行也列出来

                       -B:后面可加数字,为befer的意思,除了列出该行外,前面的n行也列出来

    (4)例子:





三、排序命令:sort、wc、uniq

    1、sort:

     (1)作用:排序,可以按照不同的数据类型排序

     (2)语法:sort [-fbMnrtuk] [file or stdin]

     (3)参数:

                     -f:忽略大小写

                    -b:忽略最前面的空格符部分

                   -M:以月份的名字来排序,英文月份

                    -n:使用纯数字排序(默认是一文字类型来排序的)

                     -r:反向排序

                     -t:分隔符,默认是用TAB键来分割的

                    -u:uniq相同的数据中,仅出现一行代表

                    -k:以那个区间来进行排序

     (4)例子:

              默认以文字类型来排序:


             以:来分隔,以第三列来排序:


             以:来分隔,以第三列的数字排序:



    2、wc:
     (1)作用:统计一个文件里有多少字、多少行、多少字符

     (2)语法:wc [-lwm]

     (3)参数:

                     -l:仅列出行

                   -w:仅列出多少字(英文单字)

                  -m:多少字符

     (4)例子:  


使用last可以输出登录者,但是last最后两行并非帐号内容


那么用下面的一行命令即可取得这个月登录系统的总人次


    3、uniq:

     (1)作用:将重复的数据仅列出一个显示

     (2)语法:uniq  [-ic]

     (3)参数:

                     -i:忽略大小写字符的不同

                    -c:进行计数

     (4)例子:


四、双向重定向:tee

   1、作用:可以同时将数据流送与文件与屏幕

   2、语法:tee [-a] file

   3、参数:

             -a:以累加的方式,将数据加入file中

   4、例子:   


五、字符转换命令:tr、col、join、paste、expand

    1、tr:

    (1)作用:删除一段信息当中的文字,或者进行文字信息的替换。

    (2)语法:tr  [-ds]  SET1 ……

    (3)参数:

                     -d:删除信息中的SET1这个字符串

                     -s:替换掉重复的字符

    (4)例子:

      将last输出的信息中所有的小写字符变成大写字符


      将/etc/passwd输出信息中的冒号删除


    2、col:

    (1)作用:经常用于man page转存为纯文本文件以方便查阅的功能

    (2)语法:col  [-xb]

    (3)参数:

                   -x:将tab键转换成对等的空格键

                  -b:在文字内部有反斜杠时,仅保留反斜杠最后接的那个字符

    (4)例子:


^I 就是tab,替换后:


    3、join:

    (1)作用:将两个文件当中有相同数据的那一行加在一起

    (2)语法:join  [-ti12]  file1 file2

    (3)参数:

                    -t:默认以空格符分隔数据,并且对比第一个字段的数据,如果两个文件相同,则将两条数据连成一行,且第一个字段放在第一个

                    -i:忽略大小写

                    -1:代表第一个文件要用哪个字段来分析的意思

                   -2:代表第二个文件要用哪个字段来分析的意思

    (4)例子:


注意:在使用join之前,你所需要处理的文件应该要事先经过排序处理的。

    4、paste:

   (1)作用:直接将相同行的数据贴在一起,中间以tab键隔开

   (2)语法:paste [-d] file1 file2

   (3)参数:

                 -d:后面可接分隔符,默认是tab键来分隔的

                  - :如果file部分习写成- ,表示来自standard input的数据意思。

   (4)例子:

    5、expand:

   (1)作用:将tab键转成空格键

   (2)语法:expand  [-t]  file

   (3)参数:

                   -t:后面可以接数字,一般来说一个tab键可以用8个空格键替换

   (4)例子:

六、切割命令:split

    1、作用:将一个大文件依据文件大小或行数来切割成为小文件,快速又有效

    2、语法:split [-bl] file PREFIX

    3、参数:

               -b:后面可以接切割成的文件大小,可以加单位,如:b、k、 m等

                -l:以行数来进行切割

    PREFIX:代表前导符,可以作为切割文件的前导文字。

    4、例子:

七、参数代换:xargs

    1、作用:产生某个命令的参数的意思,xargs可以读入stdin的数据,并且以空格符或断行字符进行分辨,将stdin的数据分隔成为arguments

    2、语法:xargs [-0epn] command

    3、参数:

               -0:如果输入的stdin有特殊字符,例如` 、\空格等,这个参数可以将它还原成一般字符。

               -e:EOF

               -p:在执行每个命令时都会询问用户

               -n:后面接次数,每次command命令执行时,要使用几个参数的意思。

              当xargs后面没有接任何的命令时,默认是echo来进行输出

    4、例子:

        

八、关于减号-的用途






     (1)作用:

     (2)语法:

     (3)参数:

     (4)例子:

     (1)作用:

     (2)语法:

     (3)参数:

     (4)例子:
分享到:
评论

相关推荐

    shell高级命令学习

    本主题将深入探讨“shell高级命令学习”,结合提供的资源,我们将关注bash shell的基础和进阶知识,以及如何利用crontab进行任务调度。 首先,我们来了解bash shell。`bash`是Bourne-Again SHell的缩写,它是GNU...

    Linux Shell高级技巧实战总结

    Linux Shell高级技巧实战总结 一、将输入信息转换为大写字符后再进行条件判断 二、为调试信息设置输出级别 三、判断参数是否为数字 四、判断整数变量的奇偶性 五、将Shell命令赋值给指定变量,以保证脚本的移植性 六...

    adb常用命令adb shell常用命令.docx.zip

    3. **ADB Shell高级命令**: - `su`:切换到root权限,进行系统级别的操作。 - `stop` / `start`:停止或启动设备上的系统服务。 - `dumpsys`:获取系统服务的状态信息。 - `cat` / `more` / `less`:查看文件...

    Shell基本命令.rar

    这些只是Shell命令的基本概念,实际上,Shell还有更多高级特性,如条件语句、循环结构、函数定义等,可用于编写复杂的脚本,实现自动化任务。熟悉和掌握这些命令,可以显著提高Linux环境下的工作效率。

    bash shell高级编程

    Bash Shell高级编程涉及到一系列技巧和功能,可以帮助用户提高效率,实现自动化任务。以下是一些关于Bash Shell高级编程的重要知识点: 1. **命令别名**:可以通过定义别名来简化常用命令,如`alias ll='ls -l'`,...

    shell快捷命令,shell快捷命令

    在IT行业中,Shell脚本是Linux/Unix操作系统中不可或缺的一部分,它是一种强大的命令行界面,...当然,Shell命令的运用远不止于此,还有更多高级技巧和功能等待探索。持续学习和实践,将使你在Linux环境中如鱼得水。

    shell高级编程实例

    本压缩包“shell高级编程实例”显然是为了教授如何利用Shell进行更复杂的编程实践。以下是关于Shell高级编程的一些关键知识点: 1. **变量与环境变量**:在Shell脚本中,变量用于存储数据。它们可以是字符串、数字...

    shell命令文档 中文版

    这本书“shell命令文档 中文版”提供了一个全面的指南,涵盖了所有基本到高级的Shell命令,这对于系统管理员、开发者以及任何需要在命令行环境中工作的用户来说都是一份宝贵的资源。 一、Shell简介 Shell是操作系统...

    Android程序中(APK程序)执行Adb shell 命令

    本篇将深入探讨如何在APK程序中执行Adb shell命令以及它与高级语言之间的调用关系。 首先,了解ADB的基本功能至关重要。ADB是Android开发者用于调试应用程序、传输文件、执行shell命令等的桥梁。通过USB连接或Wi-Fi...

    windows命令大全+shell命令大全

    ### Windows命令大全与Shell命令详解 #### 一、Windows下的Shell命令概述 Windows下的Shell命令通常指的是CMD命令,这是从MS-DOS系统继承下来的特性。Shell命令提供了比图形用户界面更为快速的操作方式,尤其受到...

    shell高级编程 shell的经典教程

    shell 是操作系统的最外层。shell 合并编程语言以控制进程和文件,以及启动和控制其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自...shell 脚本是 shell 和操作系统命令的序列,它存储在文件中。

    python调用shell命令

    ### Python调用Shell命令知识点详解 #### 一、引言 在进行系统自动化运维或脚本编程时,经常需要从Python脚本中调用Shell命令来执行特定任务,如文件管理、网络操作等。本文将详细介绍如何使用Python来调用Shell...

    Android-ExecuteShell是一个可以方便的执行shell命令的Android开源库

    3. **版本兼容性**: 虽然ExecuteShell库尝试覆盖广泛的Android版本,但某些高级的shell命令可能仅在较新的Android版本中可用。 总之,ExecuteShell是Android开发中一个实用的工具库,它简化了shell命令的执行流程,...

    SHell高级编程技术

    Shell高级编程技术,常规shell脚本写法,shell项目实战 100+命令讲解,以及运维技术,还有运维开发技术

    老男孩shell高级编程实战视频百度云盘分享

    根据提供的文件信息,我们可以推断出这是一份关于“老男孩shell高级编程实战视频”的资源分享,主要聚焦于Shell编程的高级应用与实践。接下来,我们将深入探讨与该主题相关的几个核心知识点,包括Shell编程的基本...

    Linux UNIX shell命令大全

    本书分为五个部分,全面覆盖了从基础到高级的各类Shell编程技术和UNIX命令,旨在帮助读者提升在Linux环境中的工作效率。 第一部分:Shell编程基础 这部分主要介绍了Shell的基本概念,包括何为Shell、它的作用以及...

    window的shell命令大全

    以上只是Windows Shell命令的一小部分,实际使用中还有更多高级功能和技巧,如文件通配符、重定向和追加输出、网络命令等。通过深入学习和实践,你可以更高效地管理Windows系统和自动化日常任务。

    Linux主要shell命令、sed、awk使用详解

    shell 的另一个重要特性是它自身就是一个解释型的程序设计语言,shell 程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell 编程语言简单易学,任何在提示符中能键入的...

    模拟shell命令解释器操作系统课程设计报告

    ### 模拟Shell命令解释器的关键知识点 #### 设计目的 - **开发环境与目标**:本项目旨在通过使用C语言,在Linux/Unix平台上开发一个命令解释器程序。该程序的目标是模仿现有的shell命令行界面的功能,从而为用户...

Global site tag (gtag.js) - Google Analytics