linux脚本

shell 第五章 函数应用

坚强是说给别人听的谎言 提交于 2019-12-01 18:27:18
第五章 Shell函数应用 1. 函数基本概述 2. 函数基本使用 3. 函数参数传递 4. 函数状态返回 5. 函数场景示例 1. 函数基本概述 01. 什么是函数? 函数其实就是一堆命令的合集,用来完成特定功能的代码块,你可以对它进行自定义命令,并且可以在脚本中任意位置使用这个函数,要使用定义的函数,只需要填写函数名称就可以了。 02. 函数的作用 1.使用函数可以让代码模块化,便于代码的复用,同时增加脚本的可读性。 2.函数和变量类似,必须先定义才可使用,如果定义不调用则不会被执行。 2. 函数基本使用 01. 如何定义Shell函数,可以通过如下两种方式进行定义。 #方式一 函数名() { command1 command2 ... commandN } #方式二 function 函数名 { command1 command2 ... commandN } 02. 如何调用Shell函数,直接使用函数名调用即可。在函数内部也可以使用$1、$2..$n的方式传递参数。 #1.命令行定义函数 [root@rlb /scripts]# fun1() { echo "hello world"; } #2.命令行调用函数 [root@rlb /scripts]# fun1 hello world #给函数传递参数 [root@rlb /scripts]# fun2() { echo

Linux运维工程师-面试题总结

假如想象 提交于 2019-12-01 18:17:45
1.linux 如何挂在 windows 下的共享目录 mount.cifs //192.168.1.3/server /mnt/server -o user=administrator,pass=123456 linux 下的 server 需要自己手动建一个 后面的 user 与 pass 是 windows 主机的账号和密码 注意空格 和逗号 2.查看 http 的并发请求数与其 TCP 连接状态 [root@localhost ~]# netstat -n | awk '/^tcp/ {b[$NF]++} END{for(a in b)print a,b[a]}' 还有 ulimit -n 查看 linux 系统打开最大的文件描述符,这里默认 1024,不修改这里 web 服务器修改再大也没用。若要用就修改有几个办法,这里说其中一个: 修改/etc/security/limits.conf Shell 1 2 * soft nofile 10240 * hard nofile 10240 重启后生效 3.用 tcpdump 嗅探 80 端口的访问看看谁最高 tcpdump -i eth0 -tnn dst port 80 -c 1000 tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"

linux的部署脚本笔记

大城市里の小女人 提交于 2019-12-01 17:36:04
stop.sh结束进程的脚本 kill -9 $(netstat -nlp | grep :80 | awk '{print $7}' | awk -F"/" '{ print $1 }') $(netstat -nlp | grep :80 | awk ‘{print $7}’ | awk -F"/" ‘{ print $1 }’) kill-9 杀死进程 $() 拼接符号 netstat -nlp | grep :80 列出端口为80的进程 awk ‘{print $7}’ | awk -F"/" '{ print $1 } 从第七列到第一列 pullCode.sh从git拉取代码的脚本 git pull origin echo "更新成功!" start.sh从git拉取代码的脚本 if [ "$1" = "" ]; then echo "请输入环境值:dev,test,prod..." else # mvn clean package # exec nohup mvn spring-boot:run -Drun.profiles="$1" & mvn clean package; exec nohup java -jar -Dspring.profiles.active="$1" -Duser.timezone="Asia/Shanghai" -server .

shell 的概述

回眸只為那壹抹淺笑 提交于 2019-12-01 17:27:35
1. Shell变量概述 1. 什么是变量 · 变量是Shell传递数据的一种方法,简单理解:用一个固定的字符串去表示不固定的内容,便于后续引用。 2.变量命令规范 变量定义时名称有要求:字母、数字、下划线几个组成,尽量字母开头,变量名最好具备一定的含义。ip=10.0.0.100ip1=10.0.0.100Hostname_Ip=10.0.0.100hostname_IP=10.0.0.100等号是赋值,需要注意:等号两边不能有空格,其次定义的变量不要与系统命令出现冲突。 3. Shell变量定义的方式 01)用户自定义变量:人为定义的变量名称。 02)系统环境变量:保存的是和系统操作环境相关的数据。 03)位置参数变量:向脚本中进行参数传递,变量名不能自定义,变量作用是固定的。 04)预定义的变量:是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。 4. Shell变量定义实践 01.用户自定义变量示例,当前Shell有效 #1.定义变量,变量名=变量值。不能出现"-横岗"命令 [root@qiudao ~]# qiudao="hello shell" #定义变量有空格时,必须使用引号#2.引用变量,$变量名 或 ${变量名} [root@qiudao ~]# echo $qiudao hello shell [root@qiudao ~]# echo

Shell变量概述

好久不见. 提交于 2019-12-01 17:07:22
目录 1. Shell变量概述 1.定义变量,变量名=变量值。不能出现"-横杠"命令 2.引用变量,$变量名 3.查看变量,set显示所有变量,包括自定义变量和环境变量 4.取消变量,作用范围:仅在当前Shell中有效。 5.注意事项,引用变量时注意事项,单双引号和不加引号的区别。 注意: 2.执行结果如下: 3.这里需要注意 $*和$@的区别 执行结果如下: 自定义变量运算 命令的嵌套使用,使用$($()) 2. Shell变量赋值 echo命令输出颜色。 3. Shell变量替换 4. Shell变量运算 5. Shell变量案例 1. Shell变量概述 1. 什么是变量 变量是Shell传递数据的一种方法,简单理解:用一个固定的字符串去表示不固定的内容,便于后续引用。 2.变量命令规范 变量定义时名称有要求:字母、数字、下划线几个组成,尽量字母开头,变量名最好具备一定的含义。 ip=10.0.0.100 ip1=10.0.0.100 Hostname_Ip=10.0.0.100 hostname_IP=10.0.0.100 等号是赋值,需要注意:等号两边不能有空格,其次定义的变量不要与系统命令出现冲突。 3. Shell变量定义的方式 01)用户自定义变量:人为定义的变量名称。 02)系统环境变量:保存的是和系统操作环境相关的数据。 03)位置参数变量:向脚本中进行参数传递

6条shell小技巧,让脚本显得不再业余【转】

99封情书 提交于 2019-12-01 16:31:53
如何能让自己的shell显得不那么业余? 下面6点实践一定有用。 画外音:本篇文章源自Google的一篇实践,抽取了部分1分钟能读完的内容,加入了一些分析。 一、以下面的语句开场 set -o nounset 在默认情况下,遇到不存在的变量,会忽略并继续执行,而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的执行。 画外音:有些变量名的手误,会让人崩溃的调试半天,通过这个方式,这类手误秒发现。 set -o errexit 在默认情况下,遇到执行出错,会跳过并继续执行,而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的执行。 画外音:有些Linux命令,例如rm的-f参数可以强制忽略错误,此时脚本便无法捕捉到errexit,这样的参数在脚本里是不推荐使用的。 这两个选项,都符合fail fast设计理念。 二、封装函数有必要 别光顾着一溜往下写,封装可以提高复用。 如上例: log() 简单封装,能够省去很多 [$(date +%Y/%m/%d\ %H:%M:%S)] 的重复代码。 画外音:这个log()有点意思,学到了吗? 同时,封装还能提高代码的可读性。 如上例: ExtractBashComments 比 egrep "^#" 的可读性就高很多。 画外音:有些抬杠的朋友会说,不认识英文。 三、使用readonly和local修饰变量 readonly

Linux 开机自动启动脚本

冷暖自知 提交于 2019-12-01 13:42:24
1)编写要执行脚本的sh文件mysetup.sh #!/bin/sh ### BEGIN INIT INFO # Provides: land.sh # Required-start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the svnd.sh daemon # Description: starts svnd.sh using start-stop-daemon ### END INIT INFO #任务脚本 #进入要执行脚本目录 cd /home/cbuav/working/opencv/target_land #取得root权限,'123456'为密码,不用加引号,'ls'无实际作用 echo 123456 | sudo -S ls #执行脚本./bin/mywork,sudo -S需要加上 sudo -S ./bin/mywork #任务脚本 注释部分是必须内容,ubuntu 16.04中一定要加上该LSB信息,不然放入启动脚本的时候会报错无法开机启动。 任务脚本中

【转】ssh 远程执行命令

二次信任 提交于 2019-12-01 13:00:23
原文: https://blog.csdn.net/liuxiao723846/article/details/82667482 SSH 是 Linux 下进行远程连接的基本工具,不光可以登录,也可以远程操作。接下来我们详细讲解一些常用的情况。 1、执行简单的命令: 1)查看某台主机上的磁盘使用情况: $ ssh root@1.113.195.138 "df -h" *************************************************************************** NOTICE TO Users This computer system is the private property of ... *************************************************************************** Filesystem Size Used Avail Use% Mounted on /dev/vda2 36G 3.2G 31G 10% / tmpfs 25G 0 25G 0% /dev/shm /dev/vdb 296G 2.0G 279G 1% /data 可以看到会把ssh远程连接的信息,以及远程执行名的返回的信息都输出到了控制台上。 2)保存远程执行命令结果:

python中#!/usr/bin/python与#!/usr/bin/env python的区别

喜你入骨 提交于 2019-12-01 11:47:16
目的是在运行python脚本的时候告诉操作系统我们要用python解释器去运行py脚本 所以我们在第一句往往会写如下两句中的其中一句: #!/usr/bin/python 或 >#!/usr/bin/env python 就是说在没有在执行程序时指出用什么程序运行py脚本时,系统会去调用python程序来执行。 举个简单的例子: 我们在linux环境下写一个最简单的python脚本 vim hello.py #!/usr/bin/python 或者#!/usr/bin/env python print ‘ helloworld! 编写完成后正常我们在会输入命令: python hello.py来执行这个脚本,但是因为有了第一行的声明,所以我们只要是给这个py脚本添加可执行权限,那我们就可以直接 ./hellp.py 来执行了。   在这里还是要推荐下我自己建的 Python开发学习群:725479218 ,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴 #!/usr/bin/python与#!/usr/bin/env python的区别是? 明白了写第一句语句的初衷后

Linux 系统启动过程

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 09:53:36
linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。 init程序的类型: SysV: init, CentOS 5之前, 配置文件: /etc/inittab。 Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。 Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。 内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。 运行init init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。 init 程序首先是需要读取配置文件 /etc/inittab。 运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。 init进程的一大任务,就是去运行这些开机启动的程序。 但是,不同的场合需要启动不同的程序,比如用作服务器时