Linux中执行shell脚本的4种方法总结

主要介绍了Linux中执行shell脚本的四种方法,即Linux中运行脚本的四种方法(此时称为工作目录),这样执行shell脚本代码:cd/data/shell。
/hello.sh./表示hello.sh在当前工作目录执行。
如果不添加./,bash可能会返回一条错误消息:找不到hello.sh。
因为当前工作目录(/data/shell)不能在程序执行路径的搜索路径之中,即不在PASH环境变量的内容之中。
要查看PATH的内容,请使用echo$PAH命令。
当前/data/shell不在PASH环境变量中,所以执行前必须添加./。
方法二:请求绝对路径的bashshell脚本:/data/shell/hello.sh方法三如果是三种方法,那么就不需要提前执行shell的权限,甚至可以写第一个shell文件中的行(指定害羞路径)。
因为第三种方法是以hello.sh作为参数来sh(bash)执行。
此时地狱并不是自己发生的,而是被别人调用、做的,所以他们不做权限。
由此更容易理解无缘无故所走的道路。
方法四:在当前shell环境下运行bashshell脚本:cd/data/shell.hello.sh或cd/data/shellsourcehello.shShell脚本。
shell脚本执行后,子shell环境关闭,然后返回到父shell。
步骤4在当前shell中完成。

在linux下怎么使用shell脚本修改文本里的相关内容?

在Linux系统中,shell脚本是运维和进程维护中必不可少的工具,可以有效地监控服务器和进程资源。
本文将详细介绍如何在Linux下对脚本系统实现常见的监控需求和测试脚本响应,帮助系统管理员及时发现并处理异常情况。

目录:

检查进程是否存在。
使用进程监控检查CPU。
检查进程名称。
检查正在运行的进程数。
检测系统CPU负载检测系统磁盘摘要1.检查用户定义的特定进程名称下是否存在进程

进程ID。
脚本该函数有两个参数:用户名和进程。
使用ps命令查找进程信息,通过grep发出进程搜索,最后使用sed和awk提取进程ID。
示例函数代码如下:

bashfunctionGetPID($user,$process_name){ps-u$user-opid,command|grep-v"total"|grep$process_name|awk'{proc$1}'}2、进程CPU占用率检测

实时监控业务进程的CPU占用率,通过“GetCpu”函数获取特定进程ID的进程的CPU占用率。
该函数以进程ID为参数,使用`ps`查找进程信息,使用`grep`和`awk`计算CPU。
如果CPU利用率超过限制(例如80%),则会输出报警消息。

bashfunctionCheckCpu($pid){cpu_usage=$(ps-p$pid-o%cpu|cau-n1)if[$cpu_usage-gt80];thenecho"CPU使用率是$cpu_usage%,exceedingthelimitof80%."elsecho"CPUusageis$cpu_usage%,normal."fi}3.检测进程内存使用情况

监控业务进程和内存的内存使用情况获取由“GetMem”函数确定的使用的进程ID。
该函数使用“ps”查找进程信息,并通过“grep”和“awk”计算内存使用情况。
当内存使用量超过设定阈值(如1.6G)时,输出报警信息。

bashfunctionCheckMem($pid){mem_usage=$(ps-p$pid-orss|awk'{print$1}'|awk'{total+=$1}END{printtotal}')if[$mem_usage-gt16000000];thenecho“内存”使用$mem_usageKB,超出thelimitof1.6G."elsecho"Memoryusageis$mem_usageKB,normal."fi}4.进程使用量处理

监控任务的使用量处理,检测使用量,通过函数`GetDes`获取特定进程ID的使用量该函数使用`ps`处理输出信息并统计每个`wc-l'的循环次数。
当句柄使用量超过阈值(如900)时,输出报警消息。

bashfunctionCheckHandles($pid){handles=$(ps-p$pid-olsof|wc-l)if[$hands-gt900];thenecho"Handleusageis$hands,exceedingthelimitof900"elsecho"Handleusageis句柄,正常。
"fi}5.检查端口是否监听TCP或UDP

该函数以端口号为参数,使用“netstat”输出端口占用信息,并通过“grep”、“awk”和“wc”过滤TCP和UDP端口。
当监听状态为0时,返回正常数据。

bashfunctionPortCheck($port){tcp_count=$(netstat-ntulp|grep-c":$port.*Listen")udp_count=$(netstat-nuLp|grep-c":$port.if[$tcp_count-eq0]&&[$udp_count-eq0];thenecho"Port$portisnotinlisteningstate."elsecho"Port$portisinlisteningstate."fi}6.检查号码进程名称

通过执行“countProcesses”函数来获取计算器中设置的进程数

bashfunctionCountProcesses($process_name){counts=$(ps-ef|grep$process_name|)。
wc-l)回声“进程$process_nameisrunningin$companies。
”}7.检测系统CPU负载

本例实时监控系统CPU负载,通过“LoadCheck”函数获取实际CPU使用值。
该函数使用vmstat每5次循环获取系统CPU的空闲值,并取平均值来计算CPU使用率。

bashfunctionLoadCheck(){avg_idle=$(vmstat-n5|tail-n1|awk'{sum+=$4}END{printsum/5}')cpu_usage=$((100-avg_idle))echo"SystemCPUusageis$cpu_usage%,在正常范围内。
"}8.检测系统盘

系统盘使用情况,磁盘使用情况获取使用百分比通过“DiskCheck”功能检查某些目录。
该函数将目录名称作为参数,使用“df”输出磁盘空间信息,并通过“grep”和“awk”过滤器作为所需目录的使用百分比。

bashfunctionDiskCheck($directory){space_used=$(df-k$directory|awk'{print$4}'|awk'{total+=$1}END{printtotal}')space_total=$(df-k$directory|awk'{print$2}'|awk'{total+=$1}END{printtotal}')usage_percentage=$(($space_used/$space_total*100))echo"$directory'sdiskusageis$usage_percentage%,inthenormalrange。
提高效率,为系统管理员提供实时、全面的数据。
本文提供了很棒的策略和编写示例适用于日常任务的运维和管理,帮助系统管理员及时发现并修复异常情况并支持中断

linuxshell脚本执行命令详解

在Linux下,如果需要运行shell脚本,应该使用哪个命令?下面,我为大家收集了Linuxshell脚本执行命令的相关资料,希望对大家有用!

Linuxshell脚本执行方法一:切换到shell脚本所在目录(现在称为工作目录)运行shell脚本:

​cd/data/shell

​./hello.sh

./表示运行hello目录中的.sh目前的工作。
如果不添加./,bash可能会返回一条错误消息,指出无法找到hello.sh。
因为当前工作目录(/data/shell)可能不在运行程序的默认搜索路径中,即不在PASH环境变量的内容中。
要查看PATH的内容,请使用echo$PASH命令。
实际的/data/shell并不在PASH环境变量中,所以执行前必须添加./。

Linuxshell脚本执行方法二:以绝对路径运行bashshell脚本:

/data/shell/hello.sh

Linuxshell脚本执行方法linuxshell脚本三:直接使用bash或sh运行bashshell脚本:

cd/data/shell

bashhello.sh

cd/data/shell

shhello.sh

注意:如果是方法三执行,则不需要提前设置shell的执行权限,甚至不需要写第一行在shell文件中(指定bash路径)。
因为第三种方法是将hello.sh作为参数传递给sh(bash)命令执行。
目前hello.sh本身不运行,而是被别人调用执行,所以不要运行权限。
所以不指定bash路径更容易理解。

linuxshell脚本执行方法四:在当前shell环境下运行bashshell脚本:

cd/data/shell

.hello.sh

o

cd/data/shell

Sourcehello.sh

前三个方法执行shell脚本时,会在当前shell(称为父shell此shell脚本在此环境中运行shell脚本执行后,子shell环境关闭,然后返回到父shell。