Linux Shell脚本系列教程(一):Shell入门

一、Shell简介

诸多类Unix操作系统的设计令人惊叹。即便是在数十年后的今天,Unix式的操作系统架构仍是有史以来最佳的设计之一。这种架构最重要的一个特性就是命令行界面或者shell。shell环境使得用户能与操作系统的核心功能进行交互。术语脚本更多涉及的便是这种环境。编写脚本通常使用某种基于解释器的编程语言。shell脚本本质上就是一些文本文件,我们可以将一系列需要执行的命令写入其中,然后通过shell来执行。

在这里我们介绍的是Bash shell(Bourne Again Shell),它是目前大多数GUN/Linux系统默认的shell环境。书中所有的实验都是在Ubuntu14.04 LTS环境下完成的。

二、基本操作

1.打开终端

在ubuntu14.04 LTS系统中,已经默认安装了一个Terminal,我们可以通过多种方法打开终端。这里介绍两种:

方法一:通过系统自带的检索系统,我们可以轻松找到终端(Terminal),单击即可打开。检索系统可以通过快速启动栏右上角的按钮启动。
方法二:为了之后可以方便的打开终端,建议将终端固定在快速启动栏。操作方法为:通过方法一打开终端后,快速启动栏会出现一个终端的图表,在图表上单击鼠标右键,选择“固定在启动栏”即可将终端固定在快速启动栏。

2.终端初始化界面

默认情况下,终端提示符为:username@hostname或者root@hostname#。代表普通用户,#代表root用户。
例如:我在打开终端后,提示符为:wxb@ubuntu:~$。
root是linux系统中权限最高的用户,能力大风险也大,因此不介意使用root用户作为登陆系统的默认用户。

3.切换用户

通常情况下,对于个人版linux操作系统,系统上会存在两个用户,即用户自己以及root用户。对于使用者来说,时有需要切换用户,以执行一些普通用户不能执行的操作,此处提供两种方法切换用户。
方法一:临时切换。顾名思义,这种切换方法仅仅是临时的,当指令执行完成后,就会切换到原来的用户。切换指令为:sudo command, sudo 是super user do 的简写。

方法二:长久切换。顾名思义,使用这种方法切换后,指令执行完成后不会返回普通用户。切换指令为:su,su是switch user的简写,之后会提示输入密码等完成用户切换。

4.Shell脚本

下面这段脚本用于想终端打印 Hello world! 字符串。

代码如下:

#!/bin/bash
echo "Hello World!"

shell脚本的起始行通常是 #!/bin/bash,其中/bin/bash是解释器的路径,用于解释执行后续命令。各命令之间以 换行符 或者 分号 间隔。

5.运行脚本

在Ubuntu中,有多中方式可以运行脚本。
方法一: bash test.sh,在这种情况下,脚本文件的首行可以不必是”#!/bin/bash”,因为在这种方法下已经指定了解释器。
方法二: 首先修改脚本文件的权限 chmod a+x test.sh,这条指令主要是赋予脚本文件可执行权限。然后执行文件 ./test.sh即可;或者也可以通过完整路径来执行脚本。

6.脚本注释

在shell脚本中也不例外,我们需要在某些位置提供注释行,似的代码易于理解。#后面的内容为注释内容,不会被解释执行。注意:#是单行注释符。

(0)

相关推荐

  • Linux Shell脚本系列教程(六):数组和关联数组

    一.数组和关联数组 数组是Shell脚本非常重要的组成部分,它借助索引将多个独立的独立的数据存储为一个集合.普通数组只能使用整数作为数组索引,关联数组不仅可以使用整数作为索引,也可以使用字符串作为索引.通常情况下,使用字符串做索引更容易被人们理解.Bash从4.0之后开始引入关联数组. 二.定义打印普通数组 数组的方法有如下几种: 复制代码 代码如下: #在一行上列出所有元素 array_var=(1 2 3 4 5 6) #以"索引-值"的形式一一列出 array_var[0]=&q

  • Linux Shell脚本系列教程(五):数学运算

    在任何一种编程语言中,算术运算都是必不可少的,shell也不例外. 一. 使用let.(())和[]进行算术运算 可以使用普通变量赋值方法定义数值,这是,它会被保存为字符串.我们可以通过使用let.(()).[]等操作符,使得这些变量进行算术运算.例如: 复制代码 代码如下: #!/bin/bash no1=4                        #此处no1义字符串形式存储 no2=5                        #此处no2义字符串形式存储 let result=

  • Linux Shell脚本系列教程(四):使用函数添加环境变量

    一.简介 环境变量通常用于存储路径列表,这些路径用于搜索可执行文件.库文件等.例如:$PATH.$LD_LIBRARY_PATH,它们通常看起来像这样: 复制代码 代码如下: PATH=/usr/bin;bin LD_LIBRARY_PATH=/usr/lib;lib 这意味着只要shell需要运行二进制可执行文件时,它会首先查找/usr/bin,然后查找/bin.在ubuntu14.04中,PATH和LD_LIBRARY_PATH存储的路径如下所示: 复制代码 代码如下: PATH=/usr/

  • Linux Shell脚本系列教程(三):变量和环境变量

    一.玩转变量和环境变量 变量是任何一种编程语言都必不可少的组成部分,用于存放各种类型的变量.脚本语言大多是弱类型语言(动态语言),也就是说在使用变量时,不需要事先声明变量的类型,只需要直接赋值就可以.在Bash中,每一个变量的值都是字符串.无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储.有一些特殊的变量会被shell环境和操作系统保留,用来存储一些特别的值,这类变量就称为环境变量,相信大家对环境变量也并不陌生,因为即使在windows操作系统上,也存在环境变量. 二.普通变量 普通变

  • Linux Shell脚本系列教程(二):终端打印命令详解

    终端打印 终端是交互式工具,用户可以通过它与shell环境进行交互.在终端中打印文本是大多数shell脚本和工具日常需要执行的基本任务.通过终端打印,人们可以知道系统的运行状态,这对用户来说是至关重要的. echo终端打印 复制代码 代码如下: echo "Welcome to Bash" echo 'Welcome to Bash' echo  Welcome to Bash 以上三种方法的效果是一样的,输出内容都是"Welcome to Bash",并在末尾添加

  • Linux Shell脚本系列教程(一):Shell入门

    一.Shell简介 诸多类Unix操作系统的设计令人惊叹.即便是在数十年后的今天,Unix式的操作系统架构仍是有史以来最佳的设计之一.这种架构最重要的一个特性就是命令行界面或者shell.shell环境使得用户能与操作系统的核心功能进行交互.术语脚本更多涉及的便是这种环境.编写脚本通常使用某种基于解释器的编程语言.shell脚本本质上就是一些文本文件,我们可以将一系列需要执行的命令写入其中,然后通过shell来执行. 在这里我们介绍的是Bash shell(Bourne Again Shell)

  • Linux Shell脚本系列教程(七):脚本调试

    一.调试脚本 调试功能是每一种编程语言都应该实现的重要特性之一,当出现一些始料未及的情况时,用它来生成脚本的运行信息,调试信息可以帮你弄清楚是什么原因使得程序发生崩溃或者行为异常. 二.Bash内建调试功能 使用Bash的内建调试功能,可以对整个脚本进行调试,也可以仅对脚本中的某些语句进行调试. #使用set -x和set +x对脚本的某一句进行调试 复制代码 代码如下: #!/bin/bash for i in { 1 2 3 4 5 6 }; do     set -x           

  • JQuery 无废话系列教程(一) jquery入门 [推荐]

    本文的宗旨, 授人鱼不如授人渔. 我只会讲关键部分,不可能JQuery的每个函数我都讲,因为有很多函数贝壳自己在实际应用中都从未使用过. 但当我们已经会渔了还用担心鱼吗!? BTW:贝壳假设你已经掌了基本的JavaScript运用能力及基础的CSS知识. JQuery是什么        JQuery只是一个JS文件 人对新鲜事业总是报着好奇与排斥的情感,贝壳刚开始学的时候也一样. 想掌握又怕自己学不会. 其实JQuery很简单.       JQuery其实就是一个工具包,很多常用的功能已经被

  • Shell脚本编程30分钟入门(小结)

    什么是Shell脚本 Shell脚本(英语:Shell script),又称Shell命令稿.程序化脚本,是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作.被当成是一种脚本语言来设计,其运作方式与直译语言相当,由Unix shell扮演命令行解释器的角色,在读取shell脚本之后,依序运行其中的shell命令,之后输出结果.利用shell脚本可以进行系统管理,文件操作等. 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell

  • 分享一个可以通过命令简写执行对应命令的Shell脚本

    本篇文章介绍一个可以通过命令简写执行对应命令的 shell 脚本. 假设这个 shell 脚本的名称为 tinyshell.sh. 在 Linux 下进行项目开发,经常会用到一些调试开发命令. 这些命令可能比较长,需要输入多个字符. 例如,Android 系统抓取全部 log 并包含 log 时间的命令是 adb logcat -b all -v threadtime. 抓取 log 是调试开发非常常见的操作,这个命令又很长,输入起来不方便. 为了简化输入,可以配置一些命令简写来对应比较长命令.

随机推荐