shell之路 shell核心语法【第一篇】shell初识
shell简介
1.Shell是Unix的脚本语言,是与 Unix/Linux 交互的工具,shell使用的熟练程度反映了用户对Unix/Linux使用的熟练程度
2.Shell是系统命令+程序逻辑的的集合
3.Shell脚本和编程语言很相似
4.shell还不止一种?
常见的有四种:bash、sh、csh、ksh
我们学的是bash(全称:Bourne Again shell)
因为大多数Linux/UNIX默认是bash
5.怎么查看用户使用的是哪种shell?查看/etc/passwd文件就OK了 ?
我的系统的root用户的shell是bash
用户可以指定使用的shell类型,nologin代表用户不能使用shell和登陆
shell环境搭建
环境选择
shell环境在Linux系统上,首先我们需要一台Linux系统。这里你可以用虚拟机或者真实机器装一台Linux系统,发行版任意,可以是Centos、Redhat、Ubuntu、ArchLinux等等,你甚至可以在安卓手机上下载一个shell软件。
缩进设置
Linux的一个Tab键默认缩进8个空格,这里设置成4个,为了编码方便,以后每次缩进就可以按Tab就行了,Shell对缩进其实没有要求,这样设置纯属为了代码格式简洁清晰
打开配置文件
vim /etc/vimrc 或 vim ~/.vimrc
前者时系统范围配置文件,后者是个人配置文件
设置tab为4个空格
set ts=4
设置shift+>为4个空格
set smartindent
set shiftwidth=4
关闭当前连接,重新登录Linux后生效
编码规范
我们一般是windows,这样就会有很多问题,因为windows的换行符是\r\n,Linux的换行符是\n,Tab和空格也要注意,因此采用专业的编辑器很重要
1.编辑器:Notepad++,设置换行符为Unix,Tab设置为4个空格
(设置换行符没有设置为Unix,要使用dos2unix filename命令,把文件格式化成unix格式(把换行符换成\n))
2.从编辑器粘贴到vi编辑器
直接复制粘贴会有缩进错乱的问题
在vi编辑器输入:set paste再复制粘贴就不会出现缩进混乱的问题了
本教程环境
为了方便,本教程使用云服务器,每次直接使用远程登录工具连接登录就行了
美化cat命令
由于只有vim命令可以看彩色的内容,为了看彩色内容用vim命令还得进入vi退出vi太麻烦,因此用彩色版的cat
wget https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-amd64-1.1.0.tar.gz
# 如果下载不下来用代理,你懂得,然后其他的不是amd64位发行版本的看这里
https://github.com/jingweno/ccat/releases
#接着解压
tar -zxvf linux-amd64-1.1.0.tar.gz
#移动到二进制文件目录
cd linux-amd64-1.1.0
sudo mv ccat /usr/local/bin
#接着给这个文件赋予可执行权限
sudo chmod +x /usr/local/bin/ccat
之后就可以和cat一样执行命令了
现在ccat就是彩色的cat。
如果你觉得ccat比cat好,而且我以后不想使用cat了,想用ccat来代替cat,那么我就可以设置一个别名
vim ~/.bashrc
alias cat='ccat'
source ~/.bashrc
第一个shell程序
代码
vi t1.sh(文件名任意取,后缀可以不为.sh) #t1.sh在/tmp目录下
#!/bin/bash
echo "hello shell"
执行方式
source、sh、bash、./有什么区别
source 在当前shell内去读取、执行a.sh,而a.sh不需要有"执行权限",source命令可以简写为"." sh/bash 打开一个subshell去读取、执行a.sh,而a.sh不需要有"执行权限"。通常在subshell里运行的脚本里设置变量,不会影响到父shell的。 ./ 打开一个subshell去读取、执行a.sh,但a.sh需要有"执行权限"。可以用chmod +x添加执行权限。这里使用文件名直接执行(路径可以是相对路径可以是绝对路径,一般用./)
父子shell
父shell
我们登录服务器后,默认在一个shell中,默认初始化一堆变量给当前用户,这和windows的默认系统变量一样
子shell
Linux的shell和windows的cmd一样,都是一个软件,或者说一个程序,子shell就是子程序,子程序默认继承或者说复制父进程的所有变量子进程的变量和父进程的变量是无关的,父进程的变量影响子进程,子进程不影响父进程
如何进入子shell?
方式一:sh/bash filename或者./ filename
方式二:在终端,命令bash或者sh可进入子shell
#!/bin/bash
#!/bin/bash什么作用?解释器
上图可知,shell脚本有两种执行方式,sh和bash是一种(centos系统下,sh是bash的软连接,软连接类似于windows下的快捷方式),./和完整的.sh文件路径是另一种,这两种执行方式的区别在于,前者可以省略#!/bin/bash。
#!/bin/bash,后者则不可省略,因为后者通过#!/bin/bash调用bash解释器。前者的sh .sh的sh已经显式的指定了解释器;但是共同点是两者都要在.sh所在的目录操作(完整的.sh文件路径除外)。
so over!!
注释
单行注释 #注释
多行注释(BLOCK为字符或数字) :<< BLOCK 注释 BLOCK
aaarticlea/png;base64,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" alt="" />
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3QAAAAzCAIAAABQR92lAAAFLElEQVR4nO3d3ZWiMAAGUOqxFSqhEAqhDvvYdtwHHSAQCCAYxHvPPuyMIT/4MN9JICn+/ftXDJX1/aWpbqNP59yqZuul36Os7031VgEAgCt6PB5FLFwyS7gEAIgRLlfrJnUnZmeTBQAArkq4BABgN8IlAAC7ES4BANiNcAkAwG6+N1xu3ywJAICDTIXLvNGtrBPNlnXXsf7/247nD5wL9/ss63tdPkvX5Y7N73ofnpXt2r9evSf4sgCAvcyEy4x/8hOtl3WYdIabSubt/ECiM69Qeci+mG/fhzYg13V9RLgsipN9WQDAu74xXA6z5Wja71R5JRkum+p21nB5SFUfqxkAyGBluGynsp5J6G/xfDCnFewiHpvvmi4QbkAeLdSPkt3acyRcduvS/Q+7S0Zr6Uct/c4H5aa6bV8V78Z4v9fla419UHn8PqzzVgT8VCcBgPw2zVw+P6yaVxAIk1H767bsYE4uWSDRetvcrWru0WhW1vemaboqBi1Go9xoOnQvU2OZiNFr5i/DcY0fjEzdhx1GcapOAgD5bQ2XEzEoOgPXrytZIN36XxVdVZFwmUiTsRbXRZq/CdBk5Fo6lg3ZrWrmm0/fh8XeCpef6iQAkN/mcBn/8x/PBb0HCpMF0q0vCpfh5eO8Eg7hVjWrpgy7WdteNJpIUYvGsjm79VecY7Oxqfuw1G7L4kd2EgDIb/uy+OQHE/lqWYEFrbfho92DaEO4DLPgW3EmMYcZH8stCFz9VfHt77aMMv9ZwuWgosM6CQDkt2+4/OjMZRFGtPAxzgV5pY05hz1uGe/M6MPizXTbE9ZzxnBZHNhJACC/ncPlJ565TIfBpXnlOXmZeijwTak7WZfFtnAZ+xZyhct2N/SsnQQA8ts5XBajRw/HjzMmCxTRV4x7ZVLpcnFeeWWiQ6PM3J1865HL0WtVozv5sXDZvvk+KvPRTgIA+a0Ll/Htc0ZJIHieMBZDkwUGTQ270m5C1BZt+9C77llgYum815Njk8yR4fK1IVTsTq68D9NtLPnCEzOXB3cSADiRc57Qs0A/hmw+2+boJfGimL+Tf58N9hUHAPhWM+FyYtbwQtbuQLS68uvfQgCAwFS4/AXHviUOAPCDfi9cjneYPGzyEgDg1/xeuAQA4DDCJQAAuxEuAQDYjXAJAMBuhEsAAHbTC5ftKSvvbcoYbG4eqypZ4Fg/MkwAgBwGM5c7HsyTrCrjIUA/MkwAgE8TLo+uSrgEAH5IPFx2S7rjE2y6gyHnV3zfSl1BI5tO0elvlV6Xg8O7zzJMAICLiYTLpunSUNXch6ks/MWwQFB0Y+oa1FnWqw/RCWt45sRhuMw+TACA6xmHyzBF3aqm93PwQ/fLaHjamLpusTbWBrSqmS+ff5gAAJeUeuayn7qiua8obvHYtTF1xdso6y2Tl5ML6/mHCQBwSWvD5YSpPLg6dU1ctT5cDq4Oe5h9mAAA17QmXBaD12LmZZ65nK02/zABAC5pVbhcFbvyPXMZS6JrwuUnhgkAcEnrwuXfq9tBVhotOk9UtbjA4HWcW9Wsm7Z8vh3eu2RUwymGCQBwPePjH7ttHfsPHw735Zl4EnHqecU2XiULRJpYuyD+jHP9Kvo1nGmYAAAXM5i5BACA7YRLAAB2I1wCALAb4RIAgN0IlwAA7Ea4/E6P1D8AgByEy+8kXAIApyRcfifhEgA4pe8Nl91m6L+4M7lwCQCc0lS4zBvdlpyp2JYIj2p8dTx/4Owd0jPXmdc55tEj1WcIlwDAKT0ej/9vq2IN4OUTLgAAAABJRU5ErkJggg==" alt="" />
变量
为什么使用变量
1.代码简洁:当某个数据被频繁使用或者很长的时候,最好使用变量代替
#!/bin/bash
a='hello shell' # 字符串可以使用单引号或者双引号
b="hello shell"
echo $a # 引用变量的结果:使用美元符+变量名
echo $b ####输出
[root@hy shellScripts]# sh t1.sh
hello shell
hello shell
2.获取命令的输出
`cmd` 或者$(cmd)可获得命令的输出结果,需要注意的是`cmd`兼容性更强,部分unix系统可能不能正常使用$(cmd)
#!/bin/bash
a=`pwd`
b=`ls`
echo $a
echo $b ###输出
[root@hy shellScripts]# sh t1.sh
/root/wulei/shellScripts
t1.sh
变量定义
1.系统自带变量是大写
2.自定义变量:
变量名可以是字母、数字(不能是首字符)、下划线的组合
变量赋值时,等号的两边不能留有空格(否则报语法错误)
等号右边和数据之间有空格
变量使用
1.$变量名
2.${变量名} # 更易于阅读和理解
a=`pwd` # 或者a=$(pwd)
history_command=`ls`
echo $a
echo $history_command
echo ${history_command} ###输出
[root@hy shellScripts]# sh t1.sh
/root/wulei/shellScripts
t1.sh
t1.sh
变量长度
特殊变量列表
aaarticlea/png;base64,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" alt="" />
$* 和 $@ 的区别:
当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;
"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
#!/bin/bash
echo "\$*=" $*
echo "\$*=" "$*"
echo "\$@=" $@
echo "\$@=" "$@"
echo "print each param from \$*"
for var in $*
do
echo "$var"
done
echo "print each param from "\$@""
for var in $@
do
echo "$var"
done
echo "print each param from \$*"
for var in "$*"
do
echo "$var"
done
echo "print each param from "\$@""
for var in "$@"
do
echo "$var"
done
demo1
[root@hy ~]# ./.sh a b c d
$*= a b c d
$*= a b c d
$@= a b c d
$@= a b c d
print each param from $*
a
b
c
d
print each param from $@
a
b
c
d
print each param from $*
a b c d
print each param from $@
a
b
c
d
[root@hy ~]#
demo2
转义字符
aaarticlea/png;base64,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" alt="" />
\c 不换行
#!/bin/bash
a=10
echo -e "Value \t of a is \n$a"
异常
如果某行代码出现语法错误,程序退出; 如果是Linux命令出错,程序不退出,继续执行
正常代码
#!/bin/bash
a=3 if [ $a -gt 2 ];then
echo "大于2"
fi echo $a ###输出
[root@hy shellScripts]# sh t1.sh
大于2
3
Linux命令错误
语法错误
输出
echo(自动换行;双引号可省略)
#!/bin/bash
name=world
echo hello $name
echo "hello $name"
printf(不会自动换行;)
printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。
#!/bin/bash
read -p "please input:" input
printf "%s \n" "you input $input"
输入
使用变量接收
read 输入(-p -t) ##-p输入时的提示字符;-t多久不输入shell程序就退出
#!/bin/bash
read -p "please input:" input
echo you input $input
$REPLY
如果不使用变量接收输入的数据,数据会存到变量REPLY
#!/bin/bash
read -p "please input:"
echo "you first input $REPLY" read -p "please input:"
echo "you second input $REPLY"
shell之路 shell核心语法【第一篇】shell初识的更多相关文章
- EnjoyingSoft之Mule ESB开发教程第一篇:初识Mule ESB
目录 1. Mule ESB基本介绍 2. Mule ESB社区版和企业版 3. Mule ESB常用场景 4. Mule ESB软件安装 客户端安装 服务端安装 5. 第一个Mule ESB应用- ...
- 回合对战制游戏第一篇(初识java)
回合对战制游戏第一篇 一,所谓的java. java是一门完全面向对象的编程语言,而之前所接触到的C语言是一门面向有一个过程的语音,对于两个的区别应该有一个清楚的认识. java的第一个内容. 类和对 ...
- shell之路 Linux核心命令【第一篇】管道符与重定向
输出重定向 命令输出重定向的语法为: command > file 或 command >> file 这样,输出到显示器的内容就可以被重定向到文件.果不希望文件内容被覆盖,可以使用 ...
- shell脚本学习积累笔记(第一篇)
(1)首先,今天在执行shell脚本./test.sh时抛出“/bin/sh^M: bad interpreter: No such file or directory”的异常,百度后,才知道这是由于 ...
- SpringCloud核心教程 | 第一篇: 使用Intellij中的Spring Initializr来快速构建Spring Cloud工程
spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环 ...
- Node.js之路【第一篇】初识Node.js
什么是Node.js 1.Node.js就是运行在服务端的JavaScrip. 2.Node.js是一个基于Chrome JavaScrip运行时简历的一个平台. 3.Node.js是一个非阻塞I/O ...
- #Java学习之路——基础阶段(第一篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- python开发第一篇:初识python
一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...
- 第一篇:初识python
1.python介绍 Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python的官方介绍是: ...
- python 【第一篇】初识python
人生苦短,我用python Python是我喜欢的语言,简洁.优美.容易使用.所以我总是很激昂的向朋友宣传Python的好处. python起源 1989年,为了打发圣诞节假期,Guido开始写Pyt ...
随机推荐
- 统计分析_集中趋势and离散程度
1.数组的集中趋势-如何定义数组的中心 1.1 常用几下几个指标来描述一个数组的集中趋势 均值-算术平均数 . 中位数-将数组升序或降序排列后,位于中间的数. 众数-数组中出现最多的数. 1.2 指标 ...
- 8.3 String 类的方法 使用分类
String类的判断功能.获取功能. * String类的判断功能: * boolean equals(Object obj):比较字符串的内容是否相同 * boolean equalsIgnoreC ...
- python的多线程、多进程、协程用代码详解
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:刘早起早起 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...
- vs 类型定义及语句,随机数
1 类型定义: 1)小数: 类型 变量名 赋值 decimal d : d=1.2m float ...
- file_put_contens小trick
file_put_contents tricks 0x01 trick1 来自于P神的实例: <?php $text = $_GET['text']; if(preg_match('[<& ...
- 被折磨致死的heroku——herku部署
最近一直在弄heroku部署上线,但是因为中国墙和英语问题,一直弄不好,,很是烦躁,所有暂时先放弃了,但是因为查询了一些资料,有些文档链接有必要放到下面,方便各位和自己查看: heroku官方网站: ...
- 常问的MySQL面试题整理
char.varchar 的区别是什么? varchar是变长而char的长度是固定的.如果创建的列是固定大小的,你会得到更好的性能 truncate 和 delete 的区别是什么? delete ...
- 隐藏响应中的server和X-Powered-By
来源:https://www.yduba.com/biancheng-7831560074.html 有时候,我们用调试工具查看别人的网站时,经常看到 X-Powered-By:PHP/7.1.8 这 ...
- vue.js click点击事件获取当前元素对象
Vue.js可以传递$event对象 <body id="app"> <ul> <li v-on:click="say('hello!', ...
- 【Python可视化】使用Pyecharts进行奥运会可视化分析~
项目全部代码 & 数据集都可以访问我的KLab --[Pyecharts]奥运会数据集可视化分析-获取,点击Fork即可- 受疫情影响,2020东京奥运会将延期至2021年举行: 虽然延期,但 ...