成都网站建设设计

将想法与焦点和您一起共享

linux脚本命令重置 linux脚本重命名

linux shell脚本执行命令详解

在Linux下,如果你需要执行shell脚本,那么应该使用那个命令呢?下面由我为大家整理了linux shell脚本执行命令的相关知识,希望对大家有帮助!

创新互联公司是专业的喀什网站建设公司,喀什接单;提供网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行喀什网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

linux shell脚本执行

linux shell脚本执行方法一: 切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:

cd /data/shell

./hello.sh

./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。

linux shell脚本执行方法二: 以绝对路径的方式去执行bash shell脚本:

/data/shell/hello.sh

   linux shell脚本执行方法三: 直接使用bash 或sh 来执行bash shell脚本:

cd /data/shell

bash hello.sh

cd /data/shell

sh hello.sh

注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊。

linux shell脚本执行方法四: 在当前的shell环境中执行bash shell脚本:

cd /data/shell

. hello.sh

cd /data/shell

source hello.sh

前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。

linux shell 重启命令

linux shell 重启命令有五个,分别如下:

1、shutdown。

2、poweroff。

3、init。

4、reboot。

5、halt。

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。

相关简介

Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。

Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。

linux脚本中的ps等命令问题

ps -eaf |grep tomcat |grep -v grep /dev/null 21

分为4段

1、ps -eaf 查看当前进程,-e 显示所有进程,a显示终端上的所有进程,包括其他用户的进程,f 全格式。

2、显示的结果通过管道“|”传给第二段 grep tomcat,查找tomcat进程。

3、同样查找的结果传给第三段 grep -v grep,-v 不显示匹配的行,因为用grep查询tomcat的时候也算一个进程,而ps的时候该进程信息中也包含了tomcat,例如:

root      2317  0.0  0.0   5980   744 pts/4    S+   15:00   0:00 grep tomcat

所以用grep -v grep把这条过滤掉。

4、第四段 /dev/null 21,将显示结果(默认是正确输出,即1)重定向到/dev/null中去,2代表错误输出,也和1一样。Linux中0代表输入stdin,1代表输出stdout,2代表错误输出stderror。

每运行一个命令,该命令都会有一个返回值给shell,你可以在终端中试试ls,然后echo $?查看返回值,肯定是0,如果ls 一个不存在的文件,再看,肯定不是0。以此判断上一条命令是否执行成功。

if [ $? -eq 0 ]; then

判断上一条命令的返回值是否等于(-eq) 0,即是否运行成功。

linux下shell脚本命令

Shell脚本基本知识

概述:shell其实是内核与用户之间的一个接口,

shell脚本

如果有一系列经常使用的linux命令,你可以把它们存储在一个文件肿。shenll可以读取这个文件,并执行其中的命令。这样的文件成为脚本文件。

执行shell脚本

要创建一个shell脚本,你要使用任何编辑器比如vi在文本文件中编写他。

为了使用bash shell赖执行脚本magic,其命令是:bash magic或者./magic

echo命令:

echo “this is an example of the echo command!”

屏幕上就会回显“this is an example of the echo command!”

#符号

用于在shell脚本肿可以包含注解入口

echo “hello”

#this is a comment line. this would not produce any output!

echo “world!”

第二行是一个注解的例子。它将被shell忽略,而且不产生任何消息

变量:

可以在任何时间通过简单的赋值来创建。

语法:

variable name-value

Linux 中的所有变量都被当作字符串

引用变量:

$符号用于引用一个变量的内容

variable1 = ${variable2}

读入值给变量

在执行shell脚本时,shell还允许用户直接从键盘读入一个值给变量,还可以使用read命令来作。

$read fname

本地和全局shell变量

局部变量

当引用shell时,只有创建它的shell能够知道变量的存在

全局变量

称为子shell

shell中创建的变量局部于创建它的shell,除非使用export命令特别指出是全局的。

环境变量:

通过改变这些变量的值,用户能够定制此环境

一些环境变量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL

HOME变量

Linux系统中的每个用户都有一个相关的称作HOME的目录

当一个用户登录后,进入相应的HOME的目录

$ echo $HOME

PATH变量

包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索。

PS1变量

PS1(Prompt String 1)变量包含了shell提示符,$符号

$ PS1 = “HELLO”

HELLO

PS2变量

是为第二个提示符设置值的环境变量

LOGNAME变量

包含用户的注册名字

$echo “${LOGNAME}”

SHLVL 变量

该变量包含当前工作的shell level

SHELL变量

环境变量存储了用户缺省的shell

env命令

可用来查看所有的已移出的环境变量表和它们各自的值!

命令替换

在单个命令行中使用多个命令的另外一种方法(非Pipes)是通过命令替换

echo “the data is `date`”

expr命令

用于求之算术表达式。该命令的输出被送到标准输出

$ expr 4 + 5

将在屏幕上显示9

算术展开:

你可以在$((…)) 中括一个表达式,用下面的命令来计算它的值;

$((expression))

example1

编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接受一天那所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量。

所有未应答的询问总数=所有询问的总数-应答的询问的数量

!--[if !supportLists]--※ !--[endif]--※※※※※※※※※※※※※※※※※※※※※※※

条件执行

test和[]

求值表达式,并返回true(0)或false()

数值测试:

-eq 等于则为真

-ne 不等于则为真

-gt 大于则为真

-ge 大于等于则为真

-lt 小于则为真

-le 小于等于则为真

if构造

Linux shell提供了循环和判定的构造,可以在shell脚本中使用

算术测试

结合if构造,它可以用于测试变量的数字值

串测试

test命令也可以用于字符串

= 等于则为真

!= 不相等则为真

-z 字符串 长度为零则为真

-n 字符串 长度不为零则为真

文件测试

test命令也可以用于检查文件的状态

-e 文件存在则为真

-r 文件存在并且可读则为真

-w 文件存在并且可写则为真

-x 文件存在并且可执行则为真

-s 文件存在并且至少有一个字符则为真

-d 文件存在并且为目录则为真

-f 文件存在并且为普通文件则为真

-c 文件存在并且为字符型文件则为真

-b 文件存在并且为块特殊文件则为真

-a并且 -o或者 !非

exit命令

用于终止shell脚本的执行并返回到$提示符下

case 。。。esac

shell脚本中使用的这个构造依据变量的值而执行一组特定指令

当变量的值和其中的一个值匹配的时候,就执行写在该值下的一组命令。

example3

迭代

while构造

while 条件

do

命令(s)

done

只有条件为真的时候,才能执行do与done之间的命令

until构造

until循环构造的求值模式于while循环相反

until循环将继续执行直到求值的条件为真的时候

for构造

for variable_name in list_of_values

do

done

for循环取一列值作为输入并对循环中每个值执行循环

break和contineu命令

同其他语言中的用法

example4

控制进程的执行

请求后台处理

用于请求后台进程的符号是 ()

$ wc tempfile

[1] 2082

$ vi newfile

检查后台进程

ps(进程状态)命令为每个当前的活动的每个进程产生一行入口。

终止后台进程

可用kill,如下所示

kill 278

查看完成一个命令所花的时间

你可以使用time命令来查看一个命令从开始到结束所花的时间

time fine /etc –name “passwd” 2 /dev/null /dev/null表明忽略错误信息。

管道的介绍

垂直条(|)是管道字符

它只是shell:“|”前面命令的输出作为“|”之后命令的输入发送

ls –l | more

用管道组合命令,功能强大

linux初学之安装虚拟机,写几个简单脚本,实

1、准备镜像(输入cat /etc/redhat-release可以查看redhat版本) #输入uname -r可以查看linux系统版本

根据查看的版本去网上下载相关资源。例如本机是7.2.

2、输入virt-manager进入虚拟机控制平台

点击小电脑图标

我们选择第一个选项(通过iso image或者光盘进行安装)

然后找到刚刚下载好的镜像。

名字和内存都随自己更改。

3、更改时区,语言,安装方式(真机须选3个关于虚拟化的选项)。

时区选择上海即可

加入中文简体

一般选择最后一个,安装一些必要的程序即可。

4、分区(建议自动分区,然后修改分配容量)

(1)/boot ---启动分区,200M即可,太大没有什么作用

(2)/swap ---交换分区,当内存容量大于内存80%时,把多余的放进硬盘,待内存降下来之后,又放回内存,建议分区大小为物理内存1.5~2倍,8G可设12G。

(3)/ ---其余分区皆为即可。

接下来等待安装即可。

二 创建脚本安装虚拟机

在 /usr/sbin/建立一个Create_Vm.sh

chmod +x Create_Vm.sh ---加可执行权限

加在后台运行,不加在前台(创建虚拟机)

#!/bin/bash

virt-install \

--name $1 \

--ram 1024 \

--file /var/lib/libvirt/images/$1.qcow2 \

--file-size 8 \

--cdrom /home/kiosk/Desktop/rhel-server-7.2-x86_64-dvd.iso \

--vcpus 1

写入如下脚本:

如果是无图形界面则依次输入12cc即可

xml ---可扩展标记语言 ,封装数据

模拟拷贝虚拟机

1 cd /etc/libvirt/qemu/ ---进入虚拟机目录

2 ls ---显示该目录文件项

3 cp node1.xml /mnt/ ---复制(发送)前端文件(硬件相关信息)到目标主机

4 cd var/lib/libvirt/images/ ---进入到虚拟机硬盘所在目录

5 ls

6 mv node1.qcow2 /mnt/ ---复制硬盘到目标主机

7 virsh undefine node1 ---删除原有虚拟机(在复制到其他机器上忽略此步骤)

8 mv /mnt/node1.qcow2 /var/lib/libvirt/images/ ---复制硬盘到虚拟机默认硬盘所在目录

9 virsh define node1.xml ---创建复制虚拟机

9 virsh create node1.xml ---打开复制过来的虚拟机,关闭之后在manager会消失

打开虚拟机相关命令:

virsh list ---显示当前正在运行的虚拟机

virsh list --all ---显示所有虚拟机

virsh start node1 ---打开虚拟机

virt-viewer node1 ---显示图形界面

virsh shutdown node1 ---正常关机

virsh destroy node1 ---强制关机

剩下就不一一列举了

三 虚拟机快照:(以安装node1为例)

1、 cd /var/lib/libvirt/images/ ---进入新安装的虚拟机的硬盘目录

2、 在虚拟机管理界面delete 新安装的虚拟机node1,记得不要删除其硬盘文件,留下其硬盘文件,可以母盘,下面是为了防止以后手残更改了母盘文件导致其他虚拟机不能用。

3、 mv node1.qcow2 vm_storage.qcow2 ---更改源硬盘文件名,名字可以自行确定

4、 qemu-img create -f qcow2 -b vm_storage.qcow2 newname.qcow2 ---创建新快照。

5、虚拟机管理界面添加新机即可。

选择第四个,然后改名字即可。

新机就建立完成。

四 脚本:

1)只添加虚拟机其余自己操作的脚本:Create_Vm.sh

#!/bin/bash

virt-install \

--name $1 \

--ram 1024 \

--file /var/lib/libvirt/images/$1.wcow2 \

--file-size 8 \

--cdrom /home/kiosk/Desktop/rhel-server-7.2-x86_64-dvd.iso \

--vcpus 1

这个脚本上边已经有详细过程。

2)添加带磁盘的虚拟机脚本:创建快照,添加快照,安装 Createvm.sh

#!/bin/bash

qemu-img create -f qcow2 -b /var/lib/libvirt/images/vm_storage.qcow2 \

/var/lib/libvirt/images/$1.qcow2 /dev/null

virt-install \

--name $1 \

--ram 1024 \

--file /var/lib/libvirt/images/$1.qcow2,bus=virtio \

--file-size 8 \

--network source=br0,model=virtio \

--import /dev/null

3)重置虚拟机脚本:Resetvm.sh

#!/bin/bash

virsh destory $1 /dev/null

rm -rf /var/lib/libvirt/images/$1.qcow2

qemu-img create -f qcow2 -b /var/lib/libvirt/images/vm_storage.qcow2 \

/var/lib/libvirt/images/$1.qcow2 /dev/null

echo Successfully!!!

virsh start $1 /dev/null

virt-viewer $1 /dev/null

sh -x 命令 ---一步一步安装,若出错,报告出错过程


当前文章:linux脚本命令重置 linux脚本重命名
当前URL:http://chengdu.cdxwcx.cn/article/dosssop.html