• shell 命令之bind,enable,ulimit


    1、bind

    在shell中,内建(builtin)命令bind,格式如下:

        bind [-m keymap] [-lpsvPSVX]
        bind [-m keymap] [-q function] [-u function] [-r keyseq]
        bind [-m keymap] -f filename
        bind [-m keymap] -x keyseq:shell-command
        bind [-m keymap] keyseq:function-name
        bind readline-command


    bind命令用于显示当前“readline”中键和function的绑定,绑定键序列与function或宏,设置“readline”变量。每个非选项参数都是一个命令,好像来自特殊文件“.inputrc”一样。所有的绑定和命令都必须作为一个单独的参数,例如’”C-xC-r”: re-read-init-file’。

    bind命令中各选项的作用:

    “-m keymap”:用参数keymap作为后续绑定的键映射,参数可以是emacs、emacs-standard、emacs-meta、emacs-ctlx、vi、vi-move、vi-command、vi-insert,其中vi和vi-command相同,emacs和emacs-standard相同。
    “-l”:列出所有的“readline”的function名称。
    “-p”:以可以作为重新输入的格式显示“readline”的function名称和绑定。
    “-P”:列出当前“readline”的function名称和绑定。
    “-s”:以可以作为重新输入的格式显示“readline”绑定到宏的键序列和输出的字符串。
    “-S”:显示“readline”绑定到宏的键序列和输出的字符串。
    “-v”:以可以作为重新输入的格式显示“readline”变量名和值。
    “-V”:显示当前“readline”变量名和值。
    “-f filename”:从文件filename中读取键绑定。
    “-q function”:查询与function绑定的键。
    “-u function”:解除所有与function绑定的键。
    “-r keyseq”:删除当前所有的与键序列keyseq的绑定。
    “-x keyseq:shell-command”:每次获取键序列keyseq时都执行shell命令shell-command。执行shell命令时,变量READLINE_LINE保存“readline”缓冲的内容,变量READLINE_POINT保存当前插入点的位置,如果这两个变量被修改,新的变量值会在编辑状态中出现。
    “-X”:以可以作为重新输入的格式显示所有的绑定到shell命令的键序列。
    例如,对于shell命令uname,把它绑定到按键“u”上。

    $ bind -x '"u": uname'

     

    当在shell终端按下“u”键时就会直接执行uname命令。

    2、enable

    在shell中,内建(builtin)命令enable,格式如下:

        enable [-a] [-dnps] [-f filename] [name ...]

    enable命令用于启用或禁用shell内建命令。在执行shell命令时,先查找是否属于内建命令,然后才在环境变量PATH中查找,如果使用enable禁用了这个命令,那么PATH中的同名命令就会执行。选项“-n”用于禁用命令,不使用时则启用命令。在支持动态加载的系统上,选项“-f”设置从动态库filename中加载新的内建命令,“-d”则用来删除加载的这些命令。如果不指定命令name或者只是使用了选项“-p”时,则输出当前启用的内建命令。选项“-a”显示所有的内建命令,包括启用的和禁止的命令。选项“-s”仅输出POSIX内建命令。

    先来看一下特殊的POSIX内建命令:
          

    提示:POSIX特殊命令是什么?由于历史原因,POSIX标准把几个内建命令归类为特殊命令。当Bash在POSIX模式下运行时,这些特殊的内建命令与普通的内建命令有几点不同:特殊命令先于shell函数被搜索,特殊命令返回false时如果是非交互运行的shell就会退出,命令前面的赋值语句在命令结束后仍对shell环境有效。

    禁用内建命令exit:



    3、ulimit

    在shell中,内建(builtin)命令ulimit,格式如下:

        ulimit [-HSTabcdefilmnpqrstuvx [limit]]


    如果系统支持,ulimit命令能够控制shell中的有效资源。选项“-H”、“-S”分别指硬限制、软限制,硬限制设置好之后不能由非root用户来增加其值,软限制则可能增加到硬限制的值,这两个选项都不指定时会同时设置它们的值。参数limit可以为数字,也可以是三个特殊的字符串,hard、soft和unlimited,不设置limit时显示当前软限制值,此时除非设置了“-H”才显示硬限制值。

    下面是ulimit命令其它选项的含义。

      “-a”:显示当前所有的限制。
      “-b”:套接字socket缓冲的最大长度。
      “-c”:可创建的core文件的最大个数。
      “-d”:一个进程的数据段的最大长度。
      “-e”:调度优先级即nice的最大值。
      “-f”:shell及其子进程写文件时的最大长度。
      “-i”:等待的信号的最大个数。
      “-l”:锁在内存中最大长度。
      “-m”:常驻内存的最大值(许多系统不支持这个限制)。
      “-n”:打开的文件描述符的最大个数(许多系统禁止设置这个限制)。
      “-p”:块block大小为512字节的管道长度。
      “-q”:POSIX消息队列的最大字节数。
      “-r”:实时调度的最大优先级。
      “-s”:堆栈stack的最大长度。
      “-t”:累计CPU时间(秒)的最大值。
      “-u”:单个用户可以拥有的进程的最大个数。
      “-v”:shell可用的虚拟内存的最大值。
      “-x”:文件锁的最大个数。
      “-T”:最大线程数。

    ulimit命令中,如果设置了参数limit,且没有使用选项“-a”,指定的资源便会设置为这个新的limit值。如果不使用任何选项的话,默认使用“-f”。选项“-t”增值的单位为秒,“-p”增值的单位为块block即512字节,“-T”、“-b”、“-N”、“-u”则没有这种特殊的增长幅度,剩余其它选项的增值单位为1024各字节。

    系统默认的ulimit值:
        

    原文参考来自: https://blog.csdn.net/iEearth/article/details/52641058

  • 相关阅读:
    埃尔多安回击“穆斯林都是恐怖分子”:坏人也可能是基督徒或犹太人
    通信行业并非那么”腹黑“
    苹果无人驾驶技术专家遭大众挖角
    数据结构之数组定义及基本操作(转)
    LCD浮点数显示函数的探讨
    C 数据类型
    C 基本语法
    C 标准库
    C 语言实例
    C 语言实例
  • 原文地址:https://www.cnblogs.com/kingle-study/p/9871889.html
Copyright © 2020-2023  润新知