精华内容
下载资源
问答
  • 比如,我们在终端输入了top 那么它就会一直动态运行下去。 我们怎样让它终止呢? 很简单,Ctrl +C就可以了...它们两个的效果是一样。 转载于:https://www.cnblogs.com/o8le/archive/2012/05/02/2479800.html...

    比如,我们在终端输入了top

    那么它就会一直动态的运行下去。

    我们怎样让它终止呢?

    很简单,Ctrl +C就可以了。

    另外,还有一种方法,

    直接按一下q也可以退出。

    它们两个的效果是一样的。

    转载于:https://www.cnblogs.com/o8le/archive/2012/05/02/2479800.html

    展开全文
  • 入门前端两年了,发现自己对平时习以为常东西缺乏深入了解,很多时候都只是知道一个工具或者一个命令是怎么用完全不知道他们是如何工作。感觉自己基础不牢固,所以今天以npm run webpack 为例讲一下npm ...

    1f0bb02cbdc6d7d0bb315888863c083d.png

    入门前端两年了,发现自己对平时习以为常的东西缺乏深入的了解,很多时候都只是知道一个工具或者一个命令是怎么用的完全不知道他们是如何工作的。感觉自己的基础不牢固,所以今天以npm run webpack 为例讲一下npm run script命令是如何运行的。

    如图所示

    2492f7698e9e4c9488daf92394d0d017.png

    图中的build字段是在package.json中scripts字段里定义的,熟悉前端的同学都知道这时候当我们运行npm run build的时候相当于在当前了目录中运行了webpack命令。那么这个webpack命令是哪里来的呢?

    62d16b35d46d08cd0bee4b0b5d4488a0.png

    这个是npm cli 文档上的一段对npm run script的说明,划线的部分可以理解为当我们执行npm run script命令(着这里是npm run build 命令)时会将当前项目的node_modules目录下的.bin目录添加到PATH中。我们知道PATH环境变量的作用是指定命令的搜索路径。而在执行npm run srcipt的时候会添加一个命令的搜索路径,这就在暗示我们webpack命令很可能就在我们项目的node_modules/.bin目录下(要不然为什么要添加这个命令搜索路径呢?)。下面我们去node_modules/.bin目录下看一看(结果入下图所示)

    82ac7bd7cdf2c6e6a359eec8f00428ec.png

    我们果然在.bin目录下找到了webpack文件,进入.bin目录查看我们会发现其实这个webpack文件只是个软链接,它所连接的文件其实是该项目node_modules目录中的_webpack@4.41.5@webpack/bin/webpack.js文件。我们进这个webpack.js看一下

    96792371917aaef947a50f9e15856f30.png
    webpack.js的部分代码截图

    看到划红线的那个注释了吗?这个文件可以说是个shell脚本,脚本第一行的注释是在告诉系统请用 node 运行该脚本。

    通过我们的层层查找我们现在得出了一个结论:webpack命令之所以存在是因为我们在npm run build 的时候将webpack命令给加入到了PATH环境变量中了。

    那么现在问题来了,我们安装webpack的时候为什么会在node_modules/.bin目录下生成一个webpack.js的软链接呢?

    其实这与webpack包中package.json文件中的bin字段有关。

    55ab7565c8bfe300e718292e28a4a26a.png

    这是我截取的有关package.json的bin字段的说明。也就是说如果npm包的package.json文件的bin字段中指定了文件,那么当我们全局安装这个包的时候我们会在/usr/local/bin目录下创建一个到bin字段中指定的文件的软链接,该软链接文件的名字(也是就命令的名字)会根据bin字段中的格式自动生成。

    7c9213c146c8060ce2806cd011bd334a.png

    这个就是webpack包中package.json中所写的bin字段,也就是说当运行webpack命令的时候其实我们运行的是webpack包中的bin目录下的webpack.js,这与我们之前找到的webpack软链接的原文件是一直的。

    总的来说:

    当我们全局安装一个npm包时,npm 会对package.json文件的bin字段所指定的文件生成一个软链接,并把这个软链接放在/usr/local/bin目录下。当我们调用npm run script 时npm会先在当前项目中的node_modules/.bin/目录下找该命令,如果找到就执行软链接的原文件,如果找不到则会在/usr/local/bin/目录下找该命令。

    当我们局部安装一个npm包时,npm 会对package.json文件的bin字段所指定的文件生成一个软链接,并把这个软链接放在该项目的node_modules/.bin/目录下。当我们调用npm run script 时npm会先在当前项目中的node_modules/.bin/目录下找该命令,如果找到就执行软链接的原文件,如果找不到则会在/usr/local/bin/目录下找该命令。

    展开全文
  • Wait是一个shell命令,它能保持等待状态, 直到指定进程运行完成,而且返回进程退出状态值。 而且Wait命令还可以用于等待特定进程ID和作业ID并返回其终止状态。​ 那么在什么情况下需要使用Wait命令呢? ​ 在...

    3ef3ed5197e107621775f92193289155.png

    ​ 大家好, 我是吉阿, 今天给大家介绍Linux系统中等待命令的使用。

    Wait是一个shell命令,它能保持等待状态, 直到指定进程运行完成,而且返回进程的退出状态值。 而且Wait命令还可以用于等待特定的进程ID和作业ID并返回其终止状态。

    ​ 那么在什么情况下需要使用Wait命令呢?

    ​ 在执行较大的自动化脚本时,某些命令或者模块的运行依赖于其它命令或者模块的运行结果, 这时我们需要使这些依赖别的模块结果的模块一直等待, 直到被依赖的模块完成并返回, 然后执行后续的模块或命令,在这种情况下,我们可以使用Wait命令保持等待状态直到上一个模块结束。

    如何使用Wait命令

    ​ Wait命令可以用于监视先前的过程,根据被等待的命令的运行结果,它将返回Exit状态。例如,如果我们要等待进程ID是13245,我们可以使用“ wait 13245”, 当此进程(PID 13245)完成, wait命令将返回此进程(PID 13245)退出时的返回值。

    PID-标识要等待终止的命令的进程ID。

    wait PID

    JID-标识要等待的后台进程的作业ID,仅适用于当前Shell执行环境中的wait调用。

    wait JID

    wait命令的退出返回值取决于指定的最后一个PID / JID。当任何进程异常终止时,退出状态将大于128。

    ​ 当wait命令后面没有接参数,并且当前shell知道的所有进程ID都已终止时,Wait命令将以0值退出。

    ​ 如果wait命令检测到任何错误,那么它将返回1到126之间的任何值。如果最后一个进程ID是未知的,则wait命令将以值127退出。

    Wait命令使用范例

    ​ 让我们通过一些例子脚本来学习了解wait命令的工作方式。

    示例1:带有wait命令的脚本

    ​ 我们这里有两个脚本,分别为“ foo.sh”和“ bar.sh”脚本。

    ​ “ Foo.sh”脚本的功能是打印介于1到5之间的数字,“ bar.sh”脚本将调用foo.sh并在后台运行它,然后获取foo.sh的PID并等待其完成,一旦完成,它将 启动“ bar.sh”里的循环并完成。

    脚本: foo.sh

    #!/bin/bash
    for i in 1 2 3 4 5
    do
          echo “foo.sh – Looping … number $i”
    done

    脚本:bar.sh

    #!/bin/bash
    echo “Started bar.sh”
    echo “Started foo.sh”
    ./foo.sh &
    pid=$!
    wait $pid
    echo “Completed foo.sh”
    
    for I in 1 2 3 4 5
    do
            echo “bar.sh – Looping … number $i”
    done

    运行结果:

    Started bar.sh
    Started foo.sh
    foo.sh – Looping .. number 1
    foo.sh – Looping .. number 2
    foo.sh – Looping .. number 3
    foo.sh – Looping .. number 4
    foo.sh – Looping .. number 5
    Completed foo.sh
    bar.sh – Looping .. number 1
    bar.sh – Looping .. number 2
    bar.sh – Looping .. number 3
    bar.sh – Looping .. number 4
    bar.sh – Looping .. number 5
    Completed bar.sh
    $

    示例2 –没有等待命令的脚本

    仍旧有两个类似脚本,“ foo.sh”和“ bar.sh”脚本。 'foo.sh'脚本输出介于1到5之间的数字,而bar.sh脚本将调用foo.sh并在后台运行它,但它不会等待foo.sh完成并执行这两个脚本。

    脚本– foo.sh

    #!/bin/bash
    for i in 1 2 3 4 5
    do
          echo “foo.sh – Looping … number $i”
    done

    脚本– bar.sh

    #!/bin/bash
    echo “Started bar.sh”
    echo “Started foo.sh”
    ./foo.sh &
    echo “Completed foo.sh”
    
    for I in 1 2 3 4 5
    do
            echo “bar.sh – Looping … number $i”
    done

    运行结果:

    Started bar.sh
    Started foo.sh
    Completed foo.sh
    bar.sh – Looping .. number 1
    bar.sh – Looping .. number 2
    bar.sh – Looping .. number 3
    bar.sh – Looping .. number 4
    bar.sh – Looping .. number 5
    Completed bar.sh
    $
    foo.sh – Looping .. number 1
    foo.sh – Looping .. number 2
    foo.sh – Looping .. number 3
    foo.sh – Looping .. number 4
    foo.sh – Looping .. number 5
    $

    示例3:具有等待命令和返回状态的脚本

    和上面类似, “ bar.sh”脚本将调用foo.sh并在后台运行它,获取foo.sh的PID并等待其完成,一旦完成,它将启动bar.sh循环并完成,最后,它返回 foo.sh脚本的退出代码。

    脚本: foo.sh (Exit status = 0)

    脚本- foo.sh

    #!/bin/bash
    for i in 1 2 3 4 5
    do
          echo “foo.sh – Looping … number $i”
    done
    exit 0

    脚本– bar.sh

    #!/bin/bash
    ./foo.sh &
    BPID=$!
    wait $BPID
    stat=$?
    
    if [ $stat –eq 0 ]
    then
           echo “Exit status - $stat”
    else
           echo “Exit status - $stat”
    fi

    运行结果:

    foo.sh – Looping .. number 1
    foo.sh – Looping .. number 2
    foo.sh – Looping .. number 3
    foo.sh – Looping .. number 4
    foo.sh – Looping .. number 5
    Exit status - 0
    $

    Script – foo.sh (Exit status = NON Zero)

    Script - foo.sh

    #!/bin/bash
    for i in 1 2 3 4 5
    do
          iiecho “foo.sh – Looping … number $i”
    done
    exit 127

    Script – bar.sh

    #!/bin/bash
    ./foo.sh &
    BPID=$!
    wait $BPID
    stat=$?
    
    if [ $stat –eq 0 ]
    then
           echo “Exit status - $stat”
    else
           echo “Exit status - $stat”
    fi

    Result

    ./foo.sh: line 4: iiecho: command not found
    ./foo.sh: line 4: iiecho: command not found
    ./foo.sh: line 4: iiecho: command not found
    ./foo.sh: line 4: iiecho: command not found
    ./foo.sh: line 4: iiecho: command not found
    Exit status – 127
    $

    结论

    ​ wait和sleep都是操作系统中基于时间的系统调用。

    ​ 让我们检查wait和sleep命令之间的区别。

    ​ wait:当用户想要暂停当前进程并释放该进程持有的所有资源并等待其他进程执行时。

    ​ sleep:当用户想要暂停当前进程一段时间时,使用此系统调用。 它将保持对资源的锁定,直到睡眠时间结束,然后再次开始执行该过程。

    展开全文
  • 假如你工作目录是/root/hello就是相当于windows你打开了这个文件夹/root/hello,你创建一个文件也是保存在这个目录下.cd 路径名: change directory,切换工作目录到指定路径下文件夹ls 路径名: 查看指定路径下...

    基础

    1. Ctrl+Alt+T打开命令行终端。
    2. pwd:print workspace directory,打印当前所在的工作目录。工作目录有什么用?假如你工作目录是/root/hello就是相当于windows你打开了这个文件夹/root/hello,你创建一个文件也是保存在这个目录下.
    3. cd 路径名: change directory,切换工作目录到指定路径下的文件夹
    4. ls 路径名: 查看指定路径下所有文件的文件名,如果不填路径那就是查看当前文件夹下的所有文的文件名。
    5. Ctr+A 返回到当前命令行的开头,Ctr+U删除当前输入的这些字符

    Linux批处理

    有时候我们需要输入很多命令,如果一个一个的输入然后等他们执行完那就要等很久。如果能一次性输入完让Linux自己批量执行那就不用我们等了。下面是3种控制批处理各命令执行逻辑的语法。

    1. 用;分隔。从左到右依次执行命令。 例子:command1;command2;command3; note: Linux会依次执行command1、command2和command3。
    2. 用&&分隔。从左到右依次执行命令,但是中间有一个失败就会停止后面的命令执行 例子:command1 && command2 && command3 note: 如果command2执行失败那就command2后面所有命令不会执行,即在例子中command3不会执行。
    3. 用|分隔。|左边的命令执行结果会作为|右边命令的输入。 例子:ls | grep abc note: ls 是列出当前文件夹下所有文件名,在上个例子中ls是|左边的命令,它的输出结果(即当前文件夹下的所有文件的文件名)会传递给|右边的命令grep。其中grep abc的意思是指从被传递过来的字符串列表中中搜索含有abc的字符串并输出。因此这个例子就成功实现了搜索当前文件夹下文件名中含有abc的文件名。

    Linux如何终止命令执行?

    有时候我们发现某个命令输入有问题想终止命令运行,下面我提供了几条终止命令运行的方法。

    1. Ctr + C : 终止当前命令行中正在执行的命令

    2. killall 进程的名字 : 根据进程的命令关掉进程

    3. kill -9 进程的pid :根据进程的pid去关掉那个进程。当然这需要我们知道进程的pid。查看现在Linux中运行的各进程pid的命令是top。下面是输入top这个命令后的效果,最左边就是PID。我们要关pid为1的进程的命令就是kill -9 1。(我只是举个例子,当然你关了pid为1的进程肯定会出大问题。)

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           1   root      20   0 24188 2120 1300 S  0.0  0.2   0:00.56 init               2   root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd           3   root      20   0     0    0    0 S  0.0  0.0   0:00.07 ksoftirqd/0

    安装软件包、编程依赖包

    1. sudo apt install 包名 : 根据软件包名安装软件。注意:一般编程的依赖包都是lib作为前缀名。普通的应用性软件就没有前缀规范。当然如果你想看看这个软件有哪些版本可以用下面这条命令:
    2. apt search 包名

    你的赞与关注是对

    @司南牧

    写简短易懂教程的最大支持

    推荐阅读

    程序员们平时都喜欢逛什么论坛呢?

    GitHub 上有哪些优秀的项目?

    什么是梯度下降法?

    如何通俗并尽可能详细解释卡尔曼滤波?

    快速提高逼格的电脑快捷键有哪些?

    9b1887fb8ec081b0b9e6ccac6de6814a.png
    展开全文
  • 概述使用Linux朋友对输入密码都不会陌生,比如使用超级用户执行命令,又...expect是建立在tcl基础上的一个工具,它可以让一些需要交互任务自动化地完成。相当于模拟了用户和命令行交互操作。一个具体场景:...
  • 我们的目的是当其中的命令挂了的时候可以自动启动,我们的目的很明确,但是当我们不需要这个命令的时候就需要将其关闭。 当我们的命令行没有关闭的时候很简单,ctrl+c停止执行就好了,但是当我们关了命令行,或者是...
  • 如果运行了一个不断循环程序,想要终止程序,应该怎么做?直接关掉终端可行,但是毕竟太麻烦了...另外还有一个命令:ctrl + D,本人使用时候貌似不太灵,在线程并发执行的时候有效果,而且是直接推出了终端。 ...
  • 而重新开始另一个命令的输入。2.如果有一条命令在缓慢执行,如何停止当前命令的执行。ctrl+z 挂起当前进程 如果需要恢复到前台输入fg,恢复到后台输入bgctrl+c,彻底终止该进程如果下次碰到这样的command就这么...
  • 也就是说,kill 命令的执行原理是这样的,kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。kill 命令的基本格式如下:[r...
  • 如何停止linux下正在执行的ping命令

    万次阅读 多人点赞 2018-05-01 09:30:47
    在Linux系统中,当能ping通一个主机时,此时ping命令会一直执行,要想终止,可采用CTRL+c或CTRL+z方式退出。也可以设置选项方式,使得ping命令执行若干次包就终止。ping 192.168.34.44 -c 4,此时ping命令执行4次...
  • Linux如何使用kill命令强制终止进程在Windows系统中,如果应用程序无反应我们会启动任务管理器终止应用,而在Linux系统中则使用kill命令,kill命令主要用于强制关闭进程,下面小编就给大家介绍下Linux中kill命令的...
  • 在Windows系统中,如果应用...Kill命令和信号当你执行一个“kill”命令,你实际上发送了一个信号给系统,让它去终结不正常应用。总共有60个你可以使用信号,但是基本上你只需要知道SIGTERM(15)和SIGKILL(9)。...
  • top命令是Linux下常用...如果在前台执行命令,它将独占前台,直到用户终止该程序为止.比较准确说,top命令提供了实时对系统处理器状态监视.它将显示系统中CPU最“敏感”任务列表.该命令可以按CPU使用.内存...
  • ps -aux|grep csh   假设得到:   root 1345 1345 ……… /bin/csh   root 2434 2434 ……… /bin/csh   root 3678 3678 ……... 而如果我们使用fuser命令就可以执行:   fuser -k /bin
  • 新建一个bat文件,里面编写如下内容:@echo offcall 你bat文件路径\startup.bat pause ...从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令接受用作调用目标标签。如果在脚...
  • 程序和进程关系、程序和进程关系1.1 程序1.2 进程1.3 ps命令——查看进程信息1.3.1 查看静态进程统计信息1.3.2 查看静态进程统计信息1.4 top命令——查看进程信息1.5 pgrep命令——查看进程信息1.6 pstree...
  • 满意答案homewellhhx2014....建议如下:如果你这个A()调用接口一次只允许一个访问,那么需要在A所在类里设置一个静态成员变量,如static String object = "some"。然后在A()方法一开始用synchronized (object) {...
  • 我正在尝试实现一个单独命令,我认为它将是Bash(Bourne等)附带正常'exit'和'return'shell内置函数包装器,这个命令不受这些不兼容问题困扰 . 因为如果我使用'exit 1'来结束错误级别为1脚本,如果我获取该...
  • Linux命令行下如何终止当前程序

    万次阅读 2019-03-20 09:59:53
    Linux命令行下如何终止当前程序 快捷键: Ctrl+c 在命令行下起着终止当前执行程序的作用(强制中断程序的执行,进程已终止) Ctrl+z 中断命令,将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中...
  • Ctrl+c在命令行下起着终止当前执行程序作用,Ctrl+d相当于exit命令,退出当前shellCtrl+s挂起当前shell(保护作用很明显哦)Ctrl+q解冻挂起shell再不行就重新连接打开一个终端,reboot linux 或 kill 相关进程。...
  • nohup ./exec_name > /dev/null 2>&1 &\n")然后在其他一些代码之后,它向服务器发送一个kill命令以停止进程执行;代码如下:^{pr2}$它不返回错误,但不会终止进程,并且它在系统中仍然是活动。我也尝试了ki...
  • linux 后台执行命令

    2017-02-06 09:23:00
    如果一个进程已经运行,例如tar 命令行例子,简单按下Ctrl+Z就可以停止它(这里说“停止”,不是终止,而是“暂停”意思),然后输入命令bg就可以继续以一个任务在后台运行了。 在后台运行 Linux 命令 ...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 352
精华内容 140
关键字:

如何终止一个命令的执行