zoukankan      html  css  js  c++  java
  • Shell:命令

    Blog:博客园 个人

    命令优先级:别名(alias)、保留关键字、函数(funciton)、内置命令、外部命令。

    别名

    alisa 用来给命令创建一个别名。

    CentOS 7默认创建的alias:

    [root@test ~]# 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'
    

    语法说明

    alias [-p] [name[=value] ... ]
    

    在代码中使用 alias 命令定义的别名只能在当前 Shell 进程中使用,在子进程和其它进程中都不能使用。当前 Shell 进程结束后,别名也随之消失。

    删除别名

    使用 unalias 内建命令可以删除当前 Shell 进程中的别名。unalias 有两种使用方法:

    • 第一种用法是在命令后跟上某个命令的别名,用于删除指定的别名。
    • 第二种用法是在命令后接-a参数,删除当前 Shell 进程中所有的别名。

    保留关键字

    待补充

    内置命令

    如何查看是否为内置命令:

    # cd 是一个 Shell 内建命令,而 cat 是一个外部文件
    [root@test ~]# type cat
    cat is /usr/bin/cat
    [root@test ~]# type cd
    cd is a shell builtin
    

    $PATH 变量包含的目录中几乎聚集了系统中绝大多数的可执行命令,它们都是外部命令。

    通常来说,内建命令会比外部命令执行得更快,执行外部命令时不但会触发磁盘 I/O,还需要 fork 出一个单独的进程来执行,执行完成后再退出。而执行内建命令相当于调用当前 Shell 进程的一个函数。

    以下为内置命令及其说明:

    命令 说明
    : 扩展参数列表,执行重定向操作
    . 读取并执行指定文件中的命令(在当前 shell 环境中)
    alias 为指定命令定义一个别名
    bg 将作业以后台模式运行
    bind 将键盘序列绑定到一个 readline 函数或宏
    break 退出 for、while、select 或 until 循环
    builtin 执行指定的 shell 内建命令
    caller 返回活动子函数调用的上下文
    cd 将当前目录切换为指定的目录
    command 执行指定的命令,无需进行通常的 shell 查找
    compgen 为指定单词生成可能的补全匹配
    complete 显示指定的单词是如何补全的
    compopt 修改指定单词的补全选项
    continue 继续执行 for、while、select 或 until 循环的下一次迭代
    declare 声明一个变量或变量类型。
    dirs 显示当前存储目录的列表
    disown 从进程作业表中刪除指定的作业
    echo 将指定字符串输出到 STDOUT
    enable 启用或禁用指定的内建shell命令
    eval 将指定的参数拼接成一个命令,然后执行该命令
    exec 用指定命令替换 shell 进程
    exit 强制 shell 以指定的退出状态码退出
    export 设置子 shell 进程可用的变量
    fc 从历史记录中选择命令列表
    fg 将作业以前台模式运行
    getopts 分析指定的位置参数
    hash 查找并记住指定命令的全路径名
    help 显示帮助文件
    history 显示命令历史记录
    jobs 列出活动作业
    kill 向指定的进程 ID(PID) 发送一个系统信号
    let 计算一个数学表达式中的每个参数
    local 在函数中创建一个作用域受限的变量
    logout 退出登录 shell
    mapfile 从 STDIN 读取数据行,并将其加入索引数组
    popd 从目录栈中删除记录
    printf 使用格式化字符串显示文本
    pushd 向目录栈添加一个目录
    pwd 显示当前工作目录的路径名
    read 从 STDIN 读取一行数据并将其赋给一个变量
    readarray 从 STDIN 读取数据行并将其放入索引数组
    readonly 从 STDIN 读取一行数据并将其赋给一个不可修改的变量
    return 强制函数以某个值退出,这个值可以被调用脚本提取
    set 设置并显示环境变量的值和 shell 属性
    shift 将位置参数依次向下降一个位置
    shopt 打开/关闭控制 shell 可选行为的变量值
    source 读取并执行指定文件中的命令(在当前 shell 环境中)
    suspend 暂停 Shell 的执行,直到收到一个 SIGCONT 信号
    test 基于指定条件返回退出状态码 0 或 1
    times 显示累计的用户和系统时间
    trap 如果收到了指定的系统信号,执行指定的命令
    type 显示指定的单词如果作为命令将会如何被解释
    typeset 声明一个变量或变量类型。
    ulimit 为系统用户设置指定的资源的上限
    umask 为新建的文件和目录设置默认权限
    unalias 刪除指定的别名
    unset 刪除指定的环境变量或 shell 属性
    wait 等待指定的进程完成,并返回退出状态码
  • 相关阅读:
    并发控制-CycliBarrier
    并发控制-条件对象(Condition接口)
    并发控制-信号量(Semaphore)
    控制并发-CountDownLatch
    控制并发流程
    [杂谈]重新认识RDD
    【杂谈】RDD-运行-2
    【杂谈】RDD-依赖
    [杂谈]Executor-1
    [杂谈]Rdd运行-1
  • 原文地址:https://www.cnblogs.com/Rohn/p/14370671.html
Copyright © 2011-2022 走看看