首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

bash 中冷门但非常有用的命令: trap

trap 属于bash的内置命令,所以查看帮助用: help trap, 如果用”man trap“则会跳出bash的帮助文档; trap命令的作用是:对捕获到的SIGNAL ,改变原有的处理action...这个属于 对键盘输入中断 的处理结果;如果纯粹的发送 SIGINT 信号,将看不到"^C"这个符号: [root@www ~]# bash [root@www ~]# trap 'echo -e "\nCTRL-C...而trap只是对其父进程起作用,而对父进程的子进程并不起作用,而B进程(sleep)属于A的父进程的子进程;所以trap命令无法对sleep命令的SIGINT起作用; 而如果把着两条命令放到一个脚本中...,则会起作用,因为当运行脚本的时候, 按下ctrl+c触发的SIGINT信号被发送到了bash脚本对应的进程,而trap作为脚本中的一条命令,它本身是脚本的子进程,所以其父进程就是脚本进程;因此trap...从上述介绍的trap可以捕获signal的范围来讲,trap的使用基本都是在 bash服务脚本中: 接受到特定信号的时候,用于kill 进程;比如: trap "kill $THIS_PID" SIGTERM

5.4K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在Bash命令中展开单引号内的变量?

    问题 我想从一个 bash 脚本中运行一个包含单引号且单引号内有其他命令和一个变量的命令。 例如:repo forall -c '.......$variable' 在这种格式中,美元符号 $ 被转义,变量没有被展开。 我尝试了以下几种变化形式,但它们都被拒绝了: repo forall -c '...."...$variable "'" 如果我将变量的值直接替换进去,命令就能正常执行。 请告诉我哪里出了错。 回答 在单引号内,所有内容都会被原样保留,无一例外。...不要拼接由 Shell 解析的字符串 你应绝对避免通过拼接变量来构建 Shell 命令。这和 SQL 片段的拼接(导致 SQL 注入)一样是个坏主意!...通常情况下,可以在命令中设置占位符,并将命令与变量一起提供,以便调用者能从调用参数列表中接收它们 例如,以下做法非常不安全。

    14910

    bash 和 zsh 命令行终端中的快捷键

    bash 和 zsh 命令行终端都非常流行,后者尤为“精妙”。...这两个终端的关键命令很相似,而对于经常使用它们的人来说,了解这些省时省力的快捷键命令 -- 大部分是用来对当前命令行进行快速导航或编辑的,将会事半功倍。...,使用 [Alt][B] 或 [Option][→] 除了可以在当前行中前后移动,快捷键还可以用来操作当前行中的文本。...比如: 使用 [Ctrl][K] 可以清除光标之后当前行中的字符 [Ctrl][U] 在 bash 和 zsh 则有所区别,前者会清除光标之前的字符,而后者则会清除整行 要清除光标之前的一个单词,使用...移动光标选中某条命令后,按回车键,所选命令就会出现在当前行中。

    2.5K10

    M10F支持扩展卡吗_ibb与obb

    执行测试 4.3 gobpf库工具的使用 1. go bash readline 监控所有/bin/bash命令使用 4.4 bpftool调试工具的使用 4.5 bpftrace工具的使用 自己编写一个...size 这个参数表示bpf_attr union 这个对象以字节为单位的大小 1.2 eBPF的系统调用命令 即上面bpf系统调用中的CMD,其作为第一个参数传递: 可以使用命令创建和修改eBPF...bpf_get_current_pid_tgid(); data.ts = bpf_ktime_get_ns(); bpf_get_current_comm(&data.comm, sizeof(data.comm)); // 发送到通道中...提供的辅助函数获取必要信息填充对象结构 将填充好的对象结构放入/提交到map中存储(给用户态程序获取做准备) 用户态程序通过在open_perf_buffer传入回调函数并编写逻辑,处理从缓冲区中读取的.../master/examples/bcc/bash_readline/bash_readline.go 1. go bash readline 监控所有/bin/bash命令使用 核心要使用的包就是github.com

    1.1K20

    LINUX 性能专家 Brendan Gregg博文拜读系列-附九张性能图片

    具体案例:在Linux系统中,可以使用perf record命令对特定程序进行性能采样分析。...具体案例:可以使用bpftrace脚本来跟踪所有的系统调用,并使用bpftool将结果导出到一个跟踪文件中。...具体案例:通过biolatency分析块设备的I/O延迟,可以使用以下命令: ./biolatency Tracing block device I/O... Hit Ctrl-C to end....常见命令:通过perf和其他性能分析工具生成火焰图,如使用perf script将perf record的输出转换为火焰图。...perf script将采样数据转换为文本格式,然后使用flamegraph.pl脚本生成火焰图flamegraph.svg,可视化地显示应用程序中的CPU使用情况,快速定位热点函数。

    68010

    关于 K8s 中 Kubectl && bash 命名空间批量操作命令的一些笔记

    写在前面 ---- 分享几个命名空间批量操作的 bash 命令 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。...所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》 ---- 命名空间切换 ┌──[root@vms100.liruilongs.github.io...get pods -A | grep Terminating \ | awk '{print "pod: " $2 " -n " $1 }' \ | xargs -n1 -I{} bash -c...grep Terminating \ | awk '{print "kubectl delete pod " $2 " -n " $1 " --force" }' \ | xargs -n1 -I{} bash...-c "{}" ┌──[root@vms100.liruilongs.github.io]-[~/ansible/kubescape] └─$ 获取当前集群,所有命名空间的所有资源,通过下面的命令获取

    17810

    CPU给我们的启示

    这个时间还是相当可观的,特别是在进程上下文切换次数较多的情况下,很容易导致CPU将大量时间消耗在寄存器,内核栈以及虚拟内存等资源的保存和恢复上,进而大大缩短了真正运行进程的时间。 对于Linux来说。...先不要管里面的细节了,反正内容很多,切换肯定是要有陈本的。比如,厕纸放在家里卧室柜子的第三层小隔间。 ? vmstat命令显示的这几列,就是这么个意思。...使用perf命令同样能够观测到这个上下文切换到过程和数量。...比如: # 跟踪所有上下文切换,直到Ctrl-C: perf record -e context-switches -c 1 -a # 包括使用的原始设置(请参阅:man perf_event_open...): perf record -vv -e context-switches -a # 使用堆栈跟踪的示例上下文切换,直到Ctrl-C: perf record -e context-switches

    44620

    我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗

    echo $VAR 有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR? 答: 不可以。 但是有几种可能的解决办法。...在调用 shell 的上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是在脚本中打印设置环境变量的命令.../set-vars2.sh)" $ echo "$FOO" BAR 在终端上执行 help export 可以查看 Bash 内置命令 export 的帮助文档: # help export export...-f 指 shell 函数 -n 从每个(变量)名称中删除 export 属性 -p 显示所有导出变量和函数的列表 ---- 参考: stackoverflow question 16618071...help eval 相关阅读: 用和不用export定义变量的区别 在shell编程中$(cmd) 和 `cmd` 之间有什么区别 ----

    18020

    Docker 常用命令汇总

    ps -a 列出所有容器(包括已停止容器) $ docker ps -l 进入运行中的 Docker 容器 $ docker exec -it {容器ID} /bin/bash 停止 Docker 容器...官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程...,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。...top) 容器运行时不一定有/bin/bash终端来交互执行top命令,查看container中正在运行的进程,况且还不一定有top命令,这是docker top <container_id/container_name...docker tag Registry/Repos:Tag New_Registry/New_Repos:New_Tag 将一个container固化为一个新的image(commit) 当我们在制作自己的镜像的时候

    44320
    领券