`

linux学习笔记之shell(1)

阅读更多

一、shell是什么?

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。

 二、shell的运行环境及编写工具

 shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了
Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh)等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种 就足够了。在本文中,我们关注的重点是Bash,也就是Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认的Shell。在一般情况下,人们并不区分 Bourne Shell和Bourne Again Shell,所以,在下面的文字中,我们可以看到#!/bin/sh,它同样也可以改为#!/bin/bash。

 三、shell脚本的基本语法

写道
利用vi等文本编辑器编写Shell脚本的格式是固定的,如下:
#!/bin/sh
#comments
Your commands go here
首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程 序。如果首行没有这句话,在执行脚本文件的时候,将会出现错误。后续的部分就是主程序,Shell脚本像高级语言一样,也有变量赋值,也有控制语句。除第 一行外,以#开头的行就是注释行,直到此行的结束。如果一行未完成,可以在行尾加上",这个符号表明下一行与此行会合并为同一行。
编辑完毕,将脚本存盘为filename.sh,文件名后缀sh表明这是一个Bash脚本文件。
执行脚本要先将脚本文件的属性改为可执行的:
chmod +x filename.sh
常见执行脚本的方法是:
1)作为可执行程序
./filename.sh
注意,一定要写成 ./filename.sh,而不是 filename.sh,运行其它二进制的程序也一样,直接写filename.sh,linux 系统会去 PATH 里寻找有没有叫filename.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成filename.sh 是会找不到命令的,要用 ./filename.sh 告诉系统说,就在当前目录找。
2)作为解释器参数
/bin/sh filename.sh

 四、第一个helloworld.sh

#!/bin/bash
echo 'hello world'
[imix@localhost shell]$ chmod +x helloworld.sh
[imix@localhost shell]$ ./helloworld.sh
hello world
[imix@localhost shell]$ /bin/sh helloworld.sh
hello world

 

 

分享到:
评论

相关推荐

    linux学习笔记及其shell脚本学习教程

    三天掌握linux学习笔记及其shell脚本学习教程

    Linux学习笔记Linux学习资料Linux教程

    【linux学习笔记-16】shell管道重定向程序的实现.doc 【linux学习笔记-1】使用GDB调试简单的用户程序.doc 【linux学习笔记-2】父子进程共享文件描述符.doc 【linux学习笔记-3】文件操作(stat,chmod,umask).doc ...

    linux脚本shell学习笔记

    shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识

    Linux教程+ shell学习笔记 + Shell脚本常用命令+shell脚本100例资源合集

    本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    在Linux学习笔记中,你将接触到以下几个关键知识点: 1. **命令行基础**:了解如何在终端中启动和使用shell,学习基本的文件和目录操作,如`cd`(改变目录)、`ls`(列出目录内容)、`touch`(创建新文件)、`mv`...

    非常宝贵的LINUX学习笔记

    【linux学习笔记-1】使用GDB...【linux学习笔记-16】shell管道重定向程序的实现 【linux学习笔记--17】POSIX IPC——消息队列 【linux学习笔记--18】POSIX IPC——信号量 【linux学习笔记--19】POSIX IPC——共享内存

    Linux学习笔记【博文整理系列】

    学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 博文来自http://blog.csdn.net/wklken,共12篇,类似手册,可快速练习和查阅,容易上手 文档列表: Linux笔记——vim常用操作及扩展补充...

    尚硅谷Linux学习笔记(不包含shell)超级详细版

    我自己看完韩顺平老师在尚硅谷发布的新版的Linux的视频...网上看到了别的网友分享的其他资源的学习笔记,下载下来看了之后感觉还有可以优化的地方,之后也会把其他的笔记整理好上传下来,不过最重要的是看完后要实践。

    Linux学习笔记——入门资料

    Linux学习笔记——入门资料 Linux,作为一款开源、免费的操作系统,因其稳定性和安全性而备受开发者和系统管理员的青睐。这份“Linux学习笔记”旨在帮助初学者快速掌握Linux的基础知识和操作技能,从而轻松入门。 ...

    linux运维学习笔记:Shell脚本书写规范.pdf

    Linux运维学习笔记:Shell脚本书写规范 Shell脚本是Linux系统中一种极为重要的工具,它能够帮助用户执行批量的命令操作,自动化日常运维任务。编写规范、易于理解的Shell脚本不仅有助于提高工作效率,而且方便日后...

    linux运维学习笔记:Shell变量.pdf

    Linux Shell变量知识点: 1. 变量概念: 在Linux Shell编程中,变量是存储数据的基本单元。变量可以看作是一个容器,用于临时存储字符串、数字等数据类型,包括但不限于路径、命令结果等。变量通过赋值操作符“=”...

    兄弟连linux教程1-16章学习笔记(全)

    《兄弟连Linux教程1-16章学习笔记》是一份全面涵盖Linux基础知识的学习资料,特别适合初学者和希望快速提升Linux技能的人群。这个压缩包包含了一系列文本文件和辅助图片,旨在帮助用户深入理解Linux系统的基本操作和...

    马哥的linux学习笔记

    《马哥的Linux学习笔记》是一份针对初学者和进阶者精心编撰的Linux教程,旨在帮助读者全面掌握Linux操作系统的核心概念、命令行操作以及系统管理技能。这份笔记以清晰明了的语言和实例解析了Linux系统的各个方面,是...

    Linux Shell编程学习笔记

    Linux Shell编程学习笔记

    LINUX学习笔记,包括各种命令用法,认识SHELL,帐号管理等等...

    在IT领域,Linux是一种广泛...这些只是Linux学习笔记的冰山一角,实际的学习过程中,你还需要深入了解文件系统、设备管理、软件编译、系统服务配置等多个方面。持续实践和探索,你将逐渐掌握这个强大而灵活的操作系统。

    LINUX与UNIX_Shell编程指南V1.0_学习笔记.docx

    这份学习笔记将深入探讨Shell编程的基础,包括文件权限与安全,这是理解Linux和Unix系统管理的关键。 首先,我们关注文件权限。在Linux和Unix中,每个文件和目录都有三个基本的权限:读(r)、写(w)和执行(x)。...

    Linux Shell学习笔记

    Linux shell是学习Linux必须掌握的脚本之一,该文档为本人学习Shell脚本时总结的一些基础知识,包括Shell的语法、简单示例和总结,欢迎下载学习。

    linux运维学习笔记:企业Shell面试题总结-2.pdf

    linux运维学习笔记:企业Shell面试题总结-2

    Linux学习笔记PDF文档.pdf

    Linux学习笔记PDF文档.pdf是一个详尽的资源,旨在帮助初学者和有经验的用户深入理解Linux操作系统。Linux作为开源的类Unix系统,以其稳定、安全和可定制性在全球范围内广泛应用于服务器、桌面环境以及嵌入式设备。这...

Global site tag (gtag.js) - Google Analytics