zoukankan      html  css  js  c++  java
  • 常用命令

    Shell内嵌命令

    标准嵌入命令如下表:

    :

    空,永远返回为true

    readonly

    使变量只读

    .

    从当前shell中执行操作

    return

    退出函数并带有返回值

    break

    退出for、while、until或case语句

    set

    控制各种参数到标准输出的显示

    cd

    改变到当前目录

    shift

    命令行参数向左偏移一个

    continue

    执行循环的下一步

    test

    评估条件表达式

    echo

    反馈信息到标准输出

    times

    显示shell运行过程的用户和系统时间

    eval

    读取参数,执行结果命令

    trap

    当捕获信号时运行指定命令

    exec

    执行命令,但不在当前shell

    ulimit

    显示或设置shell资源

    exit

    退出当前shell

    umask

    显示或设置缺省文件创建模式

    export

    导出变量,使当前shell可利用它

    unset

    从shell内存中删除变量或函数

    pwd

    显示当前目录

    wait

    等待直到子进程运行完毕,报告终止

    read

    从标准输入读取一行文本

     

    输入输出

    标准输入:默认为键盘,可以指定为文件。

    标准输出:默认为屏幕,可以指定为文件。

    *****如果在终端输入时,一行不能结束,可以使用反斜杠 在下一行接着输入。

    echo 

    echo用于将字符串输出
    1 使用时如果用双引号字符串,内部的$变量将会被替换,内部的反单引号中的命令会输出``,但是转义字符不会发生转义。
    2 使用单引号字符串,$变量不会被替换,返单引号不会执行命令,同样不发生转义字符转义。
    3 不使用引号等于使用双引号。

    echo有三个控制选项:
    -n do not output the trailing newline
    -e enable interpretation of backslash escapes
    -E disable interpretation of backslash escapes (default)

    # 输出后没有换行
    echo -n "what's your first name: "
    read first_name
    # 输出后换行
    echo "what's your last name: "
    read last_name
    # 没有输出tab字符
    echo "first name	last name"
    # 输出后有tab字符
    echo -e "${first_name}	${last_name}"

     read

    read后跟变量名称,会读取输入流,直到换行或者EOF(可以通过Ctrl+d)。
    1. 如果变量有多个,那么每次读入的,将会通过空白字符分割赋值给变量。
    2. 如果分割的个数多,最后一个变量获得到之后全部的输入。

    用法
    read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...]

    cat

    用来显示文件内容,控制字符,行号等。

    如果没有指定文件,或者文件为"-",则从标准输入读取。

    -A, --show-all equivalent to -vET
    -b, --number-nonblank number nonempty output lines, overrides -n
    -e equivalent to -vE
    -E, --show-ends display $ at end of each line
    -n, --number number all output lines
    -s, --squeeze-blank suppress repeated empty output lines
    -t 与-vT 等价
    -T, --show-tabs 将跳格字符显示为^I
    -u (被忽略)
    -v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外

    管道pie

    管道可以将一个命令的输出传递给另一个命令作为输入。管道用 | 表示。形式为
    命令1 | 命令2

    如下命令,将文件中的内容读取到变量中去。

    cat text.txt | read var

    tee

    把标准输入,输出到标准输出。同时,也拷贝到相应的文件中去。

    Angel@DESKTOP-254LBLA ~
    $ echo abcdefg | tee a.txt
    abcdefg
    
    Angel@DESKTOP-254LBLA ~
    $ cat a.txt
    abcdefg

    ***** tee有一个-a选项,表示追加到文件。

    重定向

    打开shell时,每个进程有三个打开的文件与之关联,分别是:

    标准输入:默认是键盘  文件描述符:1
    标准输出:默认是屏幕  文件描述符:2
    标准错误:默认是屏幕  文件描述符:3

    如果有其他文件需要描述符,可以任意使用3-9的数字。

    重定向的方式:

    1. >  重定向标准输出到一个新文件中。
    2. >> 重定向标准输出,会在文件中追加。
    3. < 重定向标准输入。

    重定向的形式:

    1. 输出文件描述符 > 文件名
    2. 输出文件描述符 > &输出文件描述符
    3. < 输入文件名
    4. < &输入文件描述符
    命令 解释

    command > filename

    把标准输出重定向到一个新文件中

    command >> filename

    把标准输出重定向到一个文件中 (追加)

    command 1 > fielname

    把标准输出重定向到一个文件中

    command > filename 2>&1

    把标准输出和标准错误一起重定向到一个文件中

    command 2 > filename

    把标准错误重定向到一个文件中

    command 2 >> filename

    把标准输出重定向到一个文件中 (追加)

    command >> filename 2>&1

    把标准输出和标准错误一起重定向到一个文件中 (追加)

    command < filename >filename2

    把command命令以filename文件作为标准输入,以filename 2文件作为标准输出

    command < filename

    把command命令以filename文件作为标准输入

    command << delimiter

    把从标准输入中读入,直至遇到delimiter分界符

    command <&m

    把文件描述符 m作为标准输入

    command >&m

    把标准输出重定向到文件描述符 m中

    command <&-

    把关闭标准输入

     << delimiter

    使用重定向冲标准输入时,还可以使用delimiter分界符来进行输入。规则是首行输入分界的标识,中间输入内容,最后再次输入标识标识内容结束。

    执行状态

    exec

    exec用于清除当前shell环境,重新启动一个shell,并执行跟随的命令。命令执行完成之后,shell随之关闭。新shell与原shell具有相同的PID。

    如果单纯执行shell script文件,并且文件第一行声明了shell路径,则启动子shell执行其中的命令
    如果使用source命令执行shell文件,则在当前shell执行文件中的命令。

    后台执行命令

    与后台执行命令相关的有:

    1. &放到命令最后,可以将这行命令立即放到后台执行。为了不干扰,通常会将输出重定向到文件,不让它显示在屏幕。
    2. nohup命令,其后跟随的命令行在用户退出后仍然后再后台继续运行。
      通常使用nohub command &
    3. ctrl+z:将当前执行的命令放到后台,并暂停执行。
    4. jobs:查看后台执行的命令
    5. fg %jobnumber:将编号为num的后台命令调到前台执行。
    6. bg %jobnumber:将任务放到后台去处理
    7. kill %jobnumber:杀死后台任务
  • 相关阅读:
    服务器迁移总结
    使用OpenSSL生成证书
    mysql Event、存储过程、表命令
    负载均衡 > 常见问题
    SpringMVC记住密码功能
    spring mvc +cookie+拦截器功能 实现系统自动登陆
    android studio之argument for @notnull parameter 'name'
    jQuery ajax表单提交实现局部刷新
    Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法
    ajax表单提交全路径
  • 原文地址:https://www.cnblogs.com/qiusuo/p/5587871.html
Copyright © 2011-2022 走看看