shell脚本基础学习(一)

本文介绍了Linux Shell脚本的基础知识,包括Shell的功能、类型、bash特性、通配符的使用,以及变量的定义和类型。通过示例详细讲解了别名、环境变量、命令补全、快捷键、历史记录等功能,还探讨了如何使用Shell脚本来处理通配符、重定向、管道等。此外,文章还介绍了如何创建和使用自定义变量、环境变量以及位置变量,并提供了多个实用的Shell脚本示例。
摘要由CSDN通过智能技术生成

Shell 脚本

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
由于习惯的原因,简洁起见,本文出现的 “shell” 都是指 shell 脚本编程,不是指开发 shell 自身。

shell的功能

命令解释器 负责人机交互 也是一种程序设计语言 shell perl python。

shell的类型

bash是redhat主流的shell类型
bash
[root@client Desktop]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh

bash的特性

1.支持历史记录
history 查看历史记录
历史命令
!341 直接执行第341条记录
alt . 上面操作的最右边的一个参数 !$
!c 执行历史记录中最新有c条目的操作
上下方向键可以翻动历史记录
history -c 删除历史记录
历史记录的条数
1000
设置历史记录的条数
#vim /etc/profile
HISTSIZE=1000

2.命令和文件补全功能tab键

3.支持快捷键
ctrl l 清屏
ctrl a 移动行首
ctrl e 移动行尾
ctrl u 删除光标所在位置之前的内容
ctrl k 删除光标所在位置之后的内容
ctrl c 中断
ctrl d 正常结束

4.别名
查看
#alias
设置
#alias a=‘init 0’
vim ~/.bashrc 对当前用户生效
取消
unalias a

5.支持定义环境变量

6.进程前后台

7.通配符
[]
?
*
!
{}

8.管道 输出输入重定向

9.命令排序
; ls /tmp ;cat /etc/passwd 同时执行两条命令 不具备逻辑判断
&& 具备逻辑判断 逻辑与
#lS /tmp && ls /tmp &&前面命令执行不成功后面命令无法执行
#ls /tmp && LS /tmp &&前面命令执行成功后面命令不成功只执行前面命令
|| 逻辑或
#cd /aa || a.txt ||前面命令执行不成功,执行后面命令
-bash: cd: /aa: 没有那个文件或目录
-rw-r–r-- 1 root root 21 4月 26 12:05 a.txt
#cd /tmp || ll a.txt ||前面命令执行成功,不执行后面命令

查看/etc/pass文件,如果这个文件存在,提示文件已存在,不存在提示文件不存在
[root@client ~]# cat /etc/pass &>/dev/null && echo “yes” ||echo “no”

“” 弱引 软引 会翻译引号内的内容(如果有变量可以取出变量的值)
[root@client ~]# echo “变量a的值为$a”
变量a的值为16

‘’ 强引 硬引 不会翻译引号内的内容(有变量也不取值)
[root@client ~]# echo '变量a的值为 a ′ 变 量 a 的 值 为 a' 变量a的值为 aaa

`` 会翻译内部命令并将结果交给外部命令去使用
[root@client ~]# echo "today is date +%F"
today is 2017-04-26
[root@client ~]# rpm -qf which cat
coreutils-8.4-31.el6.x86_64
[root@client ~]# tar czf /tmp/date +%Fetc.tar.gz /etc/
[root@client ~]# ls /tmp
2017-04-26etc.tar.gz

\ 转义字符
\n 换行符
\t tab键
[root@client ~]# echo -e “hello\nworld”
hello
world
[root@client ~]# echo -e “hello\tworld”
hello world
[root@client ~]# echo -e ‘atb’
atb
[root@client ~]# echo -e ‘a\tb’
a b
[root@client ~]# echo -e ‘anb’
anb
[root@client ~]# echo -e ‘a\nb’
a
b
echo -n 取消换行
创建文件的几种方法
[root@client ~]# touch a.txt
[root@client ~]# vim b.txt
[root@client ~]# cat > c.txt
[root@client ~]# >d.txt

shell的变量

常量 固定的字符或字符串 不能变 所有被赋值的字符串都被称为常量
=赋值符号
变量 值可以发生变化 y=123 把=右边的内容赋值到等号左边
变量名称:只能由字母数字和下划线组成 不能以数字开头 见名知意
变量的类型:
1.自定义变量
2.环境变量
3.位置变量
4.特殊变量 预定义变量

1.自定义变量 局部变量
定义变量?
变量名=变量的内容
#a=80
只对当前shell生效
子shell不生效

如何引用变量?
#echo $a

查看所有变量(包含自定义变量和环境变量)
#set

取消变量?
#unset a

2.环境变量 全局变量
用来指定操作系统运行环境的一些参数
在父shell里面设置的变量在他的子shell里面生效的话,说明这个变量拥有继承性,我们可以把拥有继承性的变量称为环境变量,环境变量都可以在env查看到
查看环境变量
env
常用的环境变量
HOSTNAME=client.uplooking.com //表示当前主机名
SHELL=/bin/bash //表示当前shell的类型
HISTSIZE=1000 //表示当前历史记录的条数
USER=root //表示当前登陆的用户
PWD=/root //表示当前路径
LANG=zh_CN.UTF-8 //表示当前使用的语言
HOME=/root //表示当前用户的家目录
PS1=’[\u@\h \W]$ ’ //表示一级提示符
PS2=’> ’ //表示二级提示符
UID=0 //表示当前用

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值