shell脚本学习(一)[shell介绍,格式说明,管道符及变量赋值]

假期是一个可自由支配的、不太容易被别人打扰的、独自学习的好机会,尤其是对于我这样一个平时还要做试验出data的生物狗来说,更是千载难逢的好机会。之前对shell脚本零零散散地看过,但并不系统,所以通过假期拿出大块的时间来学习。我主要是通过学习极客时间尹会生老师的课“Linux实战技能100讲”,从视频课中记录笔记及加上自己的一些看法和日常练习。希望过完春假,我能独立写一个简单的脚本,让我的双手从单行命令中解放出来。

shell脚本学习

chapter1 什么是shell

1.shell是命令解释器,用于解释用户对操作系统的操作。

2.shell有很多种,cat/etc/shells

3.CentOS7 默认使用的shell是bash,是基于bsh,把bshell好用的功能拿过来,a是again的意思。

4.把脚本写好,用户不用编写程序,也不用开发复杂的C语言。

Chapter 2 linux启动过程

主要是讲了系统自带的shell脚本,对于我而言超纲了,且目前用不到,跳过。

Chapter3 shell脚本的形式

1.UNIX的哲学:一条命令只做一件事。

2.为了组合命令和多次执行,使用脚本文件来保存需要执行的命令。

3.赋予该文件执行权限(chmod u+rx filename)

一个简单的脚本文件举例:

#进入文件路径并查看内容,显示当前目录和大小
vim 1.sh
cd /var/ ; ls ;pwd ; du -sh #在脚本文件中去掉冒号并变成多行
#赋予权限
chmod u+x 1.sh
#查看其权限
ls -l 1.sh
#运行1
bash 1.sh 
#运行2,用系统自带的bash 
./1.bash

在vim中脚本中进行声明,解释该脚本用什么来编写,如 #!/bin/bash
声明之后再加注释,格式为 #demo

标准的shell脚本要包含哪些元素

1.Sha-Bang:以#!为开头的声明

2.命令

3."#"开头的注释

4.chmod u+rx filename 可执行权限

Chapter4 脚本不同执行方式的影响

5.执行命令

5.1 bash ./filename.sh 可以不赋予执行权限,内建命令会对当前环境造成影响。
5.2./filename.sh 必须要有可执行权限。

5.3 source ./filename.sh

5.4 . ./filename.sh

5.3和5.4与上述两个不同,是在当前路径进行执行,内建命令不产生子进程,会对当前环境造成影响。如果有cd命令,脚本运行结束后当前路径也会发生变化。5.1和5.2运行后会产生新的子进程,运行结束后再从子进程回到父进程,如果脚本中有cd命令,脚本结束后会回到当前目录,所以对当前环境没有影响。

举例:

vim 2.sh
#!/bin/bash
# demo

内建命令和外部命令的区别

1.内建命令不需要创建子进程,如cd,pwd。

2.内建命令对当前Shell生效。

Chapter 5 管道

1.管道与管道符

1.1管道和信号一样,也是进程通信的方式之一。

举例:

cat | ps -f

管道符与分号不同,分号是执行完一条命令,再执行下一条命令,管道符是将上一条命令的结果传递给下一条命令,并会为这两条命令建立子进程,避免在管道府中使用内建命令,如cd,pwd。

1.2匿名管道(管道符)是Shell编程经常用到的通信工具。

1.3管道符是"|",将前一个命令执行的结果传递给后面的命令,可多个程序连用。如ps | cat,echo 123 | ps

2.子进程与子shell

Chapter6 重定向符号

重定向符号

1.一个进程默认会打开标准输入、标准输出、错误输出三个文件描述符。

2.输入重定向符号"<"

read var < /path/to/a/file

3.输出重定向符号 ">" ">>" "2>" "&>"

echo 123 > /path/to/a/file

>会把文件里的内容清空,再输入到新的文件,>>会把当前内容保持不变,然后在下一行进行追加。2>错误重定向,如果当前命令产生了错误,会把错误重定向到文件中,而不会打印到屏幕。&>无论内容正确还是错误都会把文件输出到文件中。

举例:

输入重定向
usage:
命令 < file
#加入输入重定向,对输入文件进行计数
wc -l < /etc/passwd 
#查看变量内容
echo $变量名
输出重定向
echo $var2 > b.txt #使用'>'会将原来b.txt里面的内容清空再添加进新内容。'>>'为追加重定向,会在原文件的基础上,再添加新内容。

4.输入和输出重定向组合使用

cat > /path/to/a/file << EOF

I am $USER

EOF 结束脚本

举例:

vim 3.sh
#!/bin/bash
cat > /root/a.sh <<EOF
echo 'hello bash'
EOF

bash 3.sh
cat a.sh

Chapter7 变量赋值

1.变量的定义

1.1变量名的命名规则

1.1.1 有意义的字母,数字,下划线

1.1.2 不以数字开头(硬性规则)

2.变量的赋值

2.1 为变量赋值的过程,称为变量替换。

2.1.1变量名=变量值,如a=123。赋值时等号左右两侧不允许出现空格,若有空格,则空格前面的内容会被当成命令。

2.1.2使用let为变量赋值,如 let a=10+20

2.1.3将命令赋值给变量(不常用),如l=ls

2.1.4将命令结果赋值给变量(常用,为系统节约资源),使用$()'',如letc=$(ls -l/etc),cmd1='ls /root'

举例:

#将命令的结果赋给bash
cmd1='ls /root'
cmd2=$(ls /root)

2.1.5变量值有空格等特殊字符可以包含在""或''中。

string1="hello bash" #双引号里面嵌套单引号或单引号里面嵌套双引号。
echo $string1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容