一、shell概述
查看当前Linux支持的shell
vim /etc/shells
二、shell脚本的执行方式
2.1 echo 输出命令
echo [选项] [输出的内容]
-e 开启反斜杠控制的字符转换
例: echo -e "ab\bc" 输出: ab
echo -e "\e[1;31m ABCD \e[0m" 输出: ABCD(红色) (30->黑 31->红 32->绿 33->黄 34->蓝 35->洋红 36->青 37->白)
开启 -e 的反斜杠控制的选择
2.2 第一个脚本
首先选择一个文件夹
- vim 文件名.sh (虽然不区分后缀名,但最好shell脚本加上.sh)
- 进入文件
#!bin/bash 这一行不是注释,相当于web页面的<html>标签
# 以#开头的一般是注释
echo "hello, shell" 输出语句
- 编写的脚本没有执行权限,要进行执行权限设置
chmod 755 文件名.sh
- 执行脚本
sh ./文件名.sh (可以使用绝对路径 或 进入该目录使用相对路径)
或
bash ./文件名.sh
2.3 bash的基本共功能
- history 查看历史命令
history [选项]
-c 清除历史命令
-w 将缓存中的历史命令写入到历史命令文件中(~/.bash_history 隐藏文件默认保存1000条可以在/etc/profile中修改)
使用历史命令
2. tab键文件补全
3. alias 命令取别名
alias 查看系统所有别名
vi /root/.bashrc 让别名永久生效
nualias 删除别名
- Liunx的命令执行顺序
- Linux的常用快捷键
- 标准输入输出
- 输出重定向
例如:
ls > abc 将ls的所有输出文件写到abc文件中(覆盖)
ls >> abc 将ls的所有输出文件追加到abc文件中
- wc 输入重定向
wc [选项] [文件名]
-c 统计字节数
-w 统计单词数
-l 统计行数
- 多命令顺序执行
dd 复制磁盘、分区等命令
dd if=输入文件 of=输出文件 bs=字节数 count=个数
例如: 查看文复制时用了多少时间
date; dd if=/dev/zero of=/root/testfile bs=1k count=1000; date 查看文件复制过程中用的时间
10. 管道符
命令1 | 命令2 命令1的正确执行作为命令2的操作对象
例如:
ll /etc | more 查看etc下文件,分页显示
grep 搜索
grep [选项] "搜索内容"
-i 忽略大小写
-n 输出行号
-v 反向查找
--color=auto 搜索关键字,用颜色显示
结合上面用法:
netstat -an | grep 8080 查看8080端口情况
- 通配符
- 其他特殊符号
例如:
echo $(date) 或 echo `date` 输出时间
变量名=值 赋值(如 name=sc)
三、bash的变量
3.1 用户自定义变量
- 什么是变量
2.变量设置规则
- 变量的分类
4.本地变量
(1)变量定义
变量=值 变量定义(如:name=jack)
(2)变量追加
abc=123
abc="$abc"456 或 abc=${abc}456 输出结果:123456
(3)变量的调用
echo $abc
(4)变量的查看
set
(5)删除变量
unset abc
3.2 环境变量
1.环境变量是什么
2.设置环境变量
(1)声明变量
export 变量名=值
(2)查询变量
env
(3)删除变量
unset
- 系统常见环境变量
平时输入的命令如 ls,其实在linux中都是输入的绝对路径或相对路径,但是系统的环境变量path配置后,每次输入,都会调用path环境变量来查找相对应的命令,就如java中jdk,配置了path环境变量,在任何目录直接使用
(1)PATH
(1)查看PATH
echo $PATH 默认是以 : 分割
(2)变量追加 echo "$PATH":绝对路径
echo "$PATH":/root
(2)PSl (平时写命令前面显示的内容设置)
例如
3.3 位置参数变量
(1)$n
a.编写脚本 文件名.sh
#!/bin/bash
number1=$1
number2=$2
number3=$3
sum=$((number1+number2+number3))
echo $sum
b.授可执行权限
chomd 755 文件名.sh
c.执行
sh ./文件名.sh 1 2 3 (123为参数传递给脚本文件,然后执行运算输出)
d.输出结果为:6
(2) $ * 和$ # 和$ @
a.编写脚本 文件名.sh
echo $*
echo $#
echo $@
b.授可执行权限
chomd 755 文件名.sh
c.执行
sh ./文件名.sh 1 2 3 4 5 6 (123456为参数传递给脚本文件)
d.输出结果为
123456 (是一个整体)
6 (参数个数)
123456 (6个参数)
3.4预定义变量
接收键盘输入
例如:
四、bash的运算符
4.1 数值运算与运算符
1.declare 申明变量类型
declare [+/-] [选项] 变量名
-: 给变量设定属性类型
+: 取消属性的变量类型
-i: 将变量声明为整数型
-x: 将变量声明为环境变量
-p: 显示指定变量的被声明类型
在平时操作中,使用c=$a+$b 输出的结果是两个变量和+号的拼接字符串。
数值运算的几种常用方法
(1) declare -i c=$a+$b 输出结果是a变量和b变量相加的结果
(2)使用expr或let数值运算工具
c=$(expr $a + $b)
(3)$((算式)) 或 $[算式] 最为常用
c=$(($a + $b)) 或 c=$[$a + $b]
- 运算符
4.1变量测试与内容替换
相对于编程语言的中三元运算符的作用,这里定义了不同的规则
五、环境变量配置文件
5.1环境变量配置文件简介
1.source命令,使环境变量变量生效
source 配置文件 或 . 配置文件
5.2 环境变量配置文件的作用
当用户登录后,会有一下系统文件调用流程
5.3 其他配置文件及设置登录信息
1.注销时生效的配置文件
~/.bash_logout
2.历史命令配置文件
~/bash_history
3.shell的登录信息预各种设置
(1)服务器本地的欢迎信息设置 目录:/etc/issue
只能在服务器本地使用转义符操作
(2)远程连接终端的欢迎信息设置 目录:/etc/issue.net
上面的转义符在该文件中不能生效,只能以文本格式输出
(3)设置登陆后的欢迎信息,在本地与远程都有效 目录:/etc/motd