linux脚本

shell 中的变量

混江龙づ霸主 提交于 2019-11-28 05:43:15
变量的定义 变量即在程序运行过程中它的值是允许改变的量。 变量是用一串固定的字符来标示不固定的值的一种方法。 变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息。 在 shell 中变量是不能永久保存在系统中的,必须在文件中声明。 变量的种类及定义方法 在 shell 中变量分为环境级变量,用户级变量,系统级变量: 环境级变量只在当前 shell 中生效, shell 关闭变量丢失 未声明之前,只在当前shell中生效: 声明:export redhat=1,声明之后,在所有shell中生效: 用户级变量写在用户的骨文件中,只针对当前用户生效 su - 切换用户,读取bashrc和profile,读取用户环境 profile 环境信息 bash shell配置 su 切换用户,只读取bash,不读取用户环境 vim ~/.bash_profile export a=10 未声明之前,环境文件中写的配置不起作用: 声明之后,只对应用当前用户环境的用户生效: source ~/.bash_profile 要想删除用户级变量,只需将环境文件中的配置信息删掉,之后再声明一下,就可以重新定义变量: 系统级变量被写在系统的配置文件 /etc/profile 或者 /etc/profile.d/ 中,对于所有用户都生效 vim /etc

linux后台运行命令

只谈情不闲聊 提交于 2019-11-28 05:08:29
可以参考一下 https://blog.csdn.net/tang9140/article/details/38899345 以及 https://blog.csdn.net/csdn_xsx/article/details/78411296 后台运行脚本 monitor.sh & --shell终端断掉脚本就停止运行了 nohup command & --不挂断的执行程序 setsid command & --关闭shell终端,命令继续后台运行 (monitor.sh &) --关闭shell终端,命令继续后台运行 disown -h %1 开机执行脚本 方案一:  1.因为其中的rc.local是在完成所有初始化之后执行,因此我们可以把启动脚本写到里面  2.用root账号登陆Linux,vi /etc/rc.d/rc.local编辑文件,在最后加入两行需要执行的脚本程序   cd /home/test1 --该步不可少,否则会提示没有权限打开'test.log'文件   su test1 -c "python /home/test1/test.py" --把要执行的命令作为一个参数传递级su 方案二:   1.init.d目录下都为可执行程序,他们其实是服务脚本,按照一定格式编写,Linux 在启动时会自动执行,类似Windows下 的服务   2.用root帐号登录,vi

LinuxOS的启动流程

岁酱吖の 提交于 2019-11-28 05:07:23
因6和7俩个系列的启动流程有区别,所以我把他们分开来写 linux可看作是内核和根文件系统组成我们把内核单独拿出来总结一下 一、CentOS6系列启动流程 首先总结一下总体的流程,接下来展开来叙述:POST加电自检 -- MBR(0扇区前446个字节为GRUB第1阶段) -- (在1扇区后存放GRUB第1.5阶段)GRUB(第2阶段)-- 加载内核(vmlinuz,initramfs)-- 启动第一个进程(init ;/etc/ini/*.conf init 程序的配置文件)-- 读取/etc/inittab文件来决定进入的系统级别 -- 执行/etc/rc.d/rc.sysinit脚本来初始化系统 -- 使用/etc/rc.d/rc脚本来根据当前所在的系统级别来读取对应/etc/rc#.d/下的脚本 -- K开头的脚本不启动,S开头的脚本启动,启动顺序按后边跟的数子大小来决定 -- 最后执行的脚本/etc/rc.d/rc.local -- 启动/bin/login进程来启动登录程序 --- OK! 加载BIOS的硬件信息,获取第一个启动设备 读取第一个启动设备MBR的引导加载程序(grub)的启动信息 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备 核心执行init程序,并获取默认的运行信息 init程序执行/etc/rc.d/rc.sysinit文件

shell 脚本示例

送分小仙女□ 提交于 2019-11-28 05:05:57
1、9*9乘法表: #!/bin/bash for((i=1;i<=9;i++)); do for((j=1;j<=i;j++)); do echo -ne "${i}*${j}=$[${i}*${j}]\t" ##-ne中-n代表不换行,-e代表识别其中的特殊字符如\t done echo done 2、9*9逆乘法表: #!/bin/bash for((i=9;i>=1;--i)) do for((j=i;j>=1;j--)) do echo -ne "$i*$j=$((i*j))\t" done echo done 3、自动安装jdk:   a、获取到这个安装包,通过使用httpd服务,用wget方式去下载到本机   b、解压到对应的安装目录   c、配置环境变量   d、收尾工作:删除一些不必要的东西,还有做一些环境变量生效的工作 #!/bin/bash BASE_SERVER=hadoop yum install -y wget wget $BASE_SERVER/mysoft/jdk-7u80-linux-x64.tar.gz tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local cat >> /etc/profile << EOF export JAVA_HOME=/usr/local/jdk1.7.0_80 export

Linux-定时任务

假如想象 提交于 2019-11-28 03:57:41
/*--> */ /*--> */ 第17章 Linux系统管理-定时任务 第17章 Linux系统管理-定时任务 1. 定时任务基本概述 2. 定时任务管理 3. 定时任务实战 4. 定时任务课堂练习题 5. 定时给小姐姐发情书 6. 定时任务编写思路 7. 总结:9句箴言 1. 定时任务基本概述 01. 什么是定时任务? xxxxxxxxxx ​ 设定某个日期或时间周期性执行指令。比如设定一个闹铃,叫你每天早上7点钟起床等,这就是一个定时任务。 ​ 02. 什么是crond? xxxxxxxxxx ​ crond是linux系统中用来定期执行命令或脚本的一种服务软件,一般情况下,我们安装完centos操作系统之后, 默认便会启动Crond任务调度服务。 ​ crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定 时任务规则自动执行该定时任务工作,这个crond定时任务服务就相当于我们平时早起使用的闹钟一样。 ​ 03. 为什么要使用定时任务? xxxxxxxxxx ​ 我们举个例子说明:例如,我们的数据库或者代码程序需要每天晚上0点做一次备份,这样每天夜里都需要执行的周期性工作,如果要让人操作的话,就得每天半夜爬起来,然后登录系统执行任务,执行完接着睡觉。另外,执行任务的过程也可能持续几个小时,这样一来

shell脚本day06-sed

青春壹個敷衍的年華 提交于 2019-11-28 03:55:17
Linux文本处理三剑客----sed sed streanm edite   作为行编辑器,对文本进行编辑(以行为单位进行编辑)   注意:sed编辑文件,却不改变源文件 一、sed的工作原理   指定一个文本文件,一次读取文文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换、删除、修改、保存) 二、sed用法   选项:     -n     -r //指定使用扩展的正则表达式       匹配IP       1、所有的\都不要       2、|或者     -e script for while if     -f //指定脚本文件     -i 指定文本换行长度     -l 直接修改文件内容(建议不要使用)   地址定界方法:     1、直接匹配数值       sed -n '5,7p' 文件     2、d~步长       sed -n '1~3p' 文件     3、$指定步长       sed -n '10,$p' 文件     4、/正则/       /正则1/,/正则2/       sed -n '/o\{5\}/,$p' 文件名.sh     5.0,addr       addr 可以为数字/ $/正则      6.addr,+n      

Linux shell基础

余生颓废 提交于 2019-11-28 03:50:41
shell基础 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚本的内容。每一个合格的Linux系统管理员或运维工程师,都需要熟练的编写Shell脚本语言,并能够阅读系统及各类软件附带的Shell脚本内容。只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础。 1.2 学好Shell编程所需的基础知识 能够熟练使用vim编辑器,熟悉SSH终端 有一定的Linux命令基础,至少需要掌握80个以上Linux常用命令,并能够熟练使用它。 要熟练掌握Linux正则表达式及三剑客命令(grep,sed,awk) 1.3 如何学好Shel编程 学好Shel编程的 核心 :多练-->多思考-->再练-->再思考,坚持如此循环即可! 新手大忌 :不可拿来主义,可以模仿,但是要自己嚼烂了吃下去,否则会闹肚子。 格言 :你觉得会了并不一定会了,你认为对的并不一定对的。 大家要勤动手,自行完成学习笔记和代码的书写。通过每一个小目标培养自己的兴趣以及成就感 2,Shell脚本入门 2.1 什么是Shell Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话

Redhat Linux /etc/profile 与 /etc/bashrc 的区别

北城以北 提交于 2019-11-28 03:06:01
最近学习RHCE,在umask这里,书里说要修改/etc/profile和/etc/bashrc两个文件,却没有说明这两个区别。于是在上网查看之后倒是明白了各是怎么用的。/etc/profile是对应登录的,/etc/bashrc是对应打开shell的。但是实际使用区别在哪,如果说bashrc是对应shell的,那么改这一个文件不就行了?最后自己实践一下,发现还是不同的,特此分享一下,也做个记录。 实验准备:将/etc/profile文件中的umask改为007,将/etc/bashrc中的umask改为077。 实验步骤:   1.以root身份登录并打开shell,umask值 077   2.su test, umask值 077   3.su - test,umask值 007 实验结果:如果只是切换用户,不重新登录,那么profile的脚本将不会执行,从而bashrc中的脚本发生作用。 总结一下就是,打开一个shell的话,会执行shell相关的bashrc的脚本,用su -命令执行时会重新loggin,因此会再调用一次profile里的脚本。 所以,如果不想搞出歧义为自己的管理添麻烦的话,还是老老实实的改两个文件吧。由于还没时间写程序,不过如果没猜错的话,程序应该用的是bashrc里的值。 转载于:https://www.cnblogs.com/ebread/p

linux之shell脚本学习篇一

Deadly 提交于 2019-11-28 02:13:48
此文包含脚本服务请求,字符串截取,文件读写内容,打印内容换行。 #!/bin/bash retMsg=""; while read LINE do echo "this is text: $LINE"; retMsg=`/usr/bin/curl -o test3.log -w %{http_code}"\\n" $LINE`; #http请求, 响应内容写文件以及响应状态码 echo "Retutn value is text: $http_code"; if [ "$retMsg" == "200" ] then echo "请求服务成功"; #else # echo "请求服务失败"; while read MOBILE do echo "The rtn mobile is $MOBILE"; a="$MOBILE"; info=`echo "$a"|awk -F ',' '{print $1}'`; #按,截取字符串 url=`echo "$a"|awk -F ',' '{print $2}'`; #按,截取字符串 echo -e "截取后的字符串:\n$info\n$url"; #字符串换行 done < mobile.txt fi done < serverList.txt #读文件 转载于:https://www.cnblogs.com/FCWORLD/p

JAVA调用R脚本

旧街凉风 提交于 2019-11-28 01:40:09
0 前言 R是一种非常方便易用的绘图、统计分析、ML算法设计方面的脚本语言。实际中有这样一种场景:算法工程师用R搭建了机器学习算法模型,想用于javaweb之中但是又不想重新用java写一遍算法模型,那么可以考虑java程序中直接调用R的脚本。JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的系统。 本文将搞清楚如下几个问题: 1)java调用R的方式有哪些及每种方式如何使用? 2)这些调用方式的有哪些优缺点? 下面开始。 1 java调用R的两种方式 1.1 远程调用模式(使用Rserve) Rserve是一个基于TCP/IP的服务器,通过二进制协议传输数据,可以提供远程连接,使得客户端语言能够调用R。   Rserve作为一个package发布在CRAN上,在服务端计算机安装R之后可以直接使用install.packages(“Rserve”)进行安装。需要使用时在R控制台下加载该包,然后输入命令Rserve(),开启服务器就可以供客户端调用。   首先建立一个新的连接,然后就可以使用eval之类的方法将R中的表达式传到服务器端,通过R求值后传回JAVA中REXP类型的变量,然后打印出来,整个过程非常简单。由于不需要对R进行初始化,因此速度会比较快。在linux等其他系统下可以同时建立多个连接,但是在Windows下只允许同时打开一个连接