西数超哥博客
运维经验教程分享

【原创】shell学习笔记第一天(shell基础入门)

shell未来主要关键掌握:find  grep sed awk   xargs  ps  netstat等结合正则表达式,管道命令和数据流等实现应有的功能。
1,什么是shell?
shell 是一个使用者与系统的互动界面,主要是让使用者透过命令行(commandline)来使用系统以完成工作。shell 的最简单的定义就是—命令解译器(CommandInterpreter):
$ 将使用者的命令翻译给核心处理,
$ 同时,将核心处理结果翻译给使用者。
鸟哥对shell的定义是:shell script 是利用 shell 的功能所写的一个program,这个程序是使用纯文字档,将一些 shell 的语法与命令(含外部命令)写在里面, 搭配正规表示法、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。
 
2,shell编写注意事项:
命令的运行是从上而下、从左而右的分析与运行;
 命令、选项与参数间的多个空白都会被忽略掉;
空白行也将被忽略掉,并且 [tab] 按键所推开的空白同样视为空白键;
如果读取到一个 Enter 符号 (CR) ,就尝试开始运行该行 (或该串) 命令(告知命令结束,可以执行了);
至於如果一行的内容太多,则可以使用 \[Enter] 来延伸至下一行(注意是反斜杠回车哦);
 # 可做为注解!任何加在 # 后面的数据将全部被视为注解文字而被忽略!
 
3,shell命令执行:
(1)直接命令下达: shell.sh 文件必须要具备可读与可运行 (rx) 的权限,然后:
绝对路径:使用 /home/dmtsai/shell.sh 来下达命令;
相对路径:假设工作目录在 /home/dmtsai/ ,则使用 ./shell.sh 来运行
变量PATH功能:将 shell.sh 放在 PATH 指定的目录内,例如: ~/bin/
(2)以 bash 程序来运行:透过 bash shell.sh 或sh shell.sh 来运行
那么问题就来了,闭上眼,思考下,一个shell脚本有几种执行方式呢?
 
4,shell组成部分:


第一行 #!/bin/bash 在宣告这个 脚本使用的 shell 名称,必不可少!
第二行 程序内容的说明 通过注释说明,便于了解shell的作用,谁写的,便于后期修改 (最好养成习惯)
第三行 主要环境变量的宣告
第四行 主要程序部分 核心部分
第五航 运行成果告知 (定义回传值)
那么问题来了,开始一下hello world吧,别嫌弃简单,忘记了你学c的时候了吗,哼!不过回想了下,貌似很亲切,吼吼~~
第一个自己的hello.sh 脚本:


vim hello.sh
#! /bin/bash
#study shell
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
echo  ‘hello world’
exit  0
chmod  a+x hello.sh;   ./hello.sh
 
再次闭上眼,想想一个shell脚本的小结构,是不是有点小激动。没有那么想想的复杂,加油吧骚年!
补充一点:


1,script 的运行方式差异source(父进程,变量全局有效,只要不重启服务器), sh script, ./script 子进程,变量后续无效。
2,如果你的脚本是从Windows里面复制到Linux的,格式问题无法识别,首先需要先转换格式:
dos2unix hello.sh    (没有这个工具的请先yum一个吧)

3,预定义变量都是由$符和另一个符号(变量名)组成的,判断一个程序执行成功与否:

$?
一般程序都是成功返回0 ,失败返回非零!

转载请注明:西数超哥博客www.ysidc.top» 【原创】shell学习笔记第一天(shell基础入门)

https://www.ysidc.top 西数超哥博客,数据库,西数超哥,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top

赞(0)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » 【原创】shell学习笔记第一天(shell基础入门)