Shell基础入门

简介: Shell基础入门

Shell 实现的功能

1)手动安装操作系统
2)初始化操作系统
3)安装服务
4)服务启动systemd
5)shell进行代码上线
6)监控zabbix cacti网卡 Nagios监控硬件交换机路由器
7)日志分析

必备基础

1.熟练使用vim编辑器2.熟悉ssh终端3.熟练使用linux基础命令4.熟练使用四剑客

基础命令参考链接

linux常用命令

Linux重要命令合集

shell 知识点

变量基础
  条件表达式
  if判断
  for循环
  while循环
  utile循环
    continue
    break  
    exit
  case语句
  数组
看懂别人的脚本 掌握常见语法 重复练习
要有编程思维
找合适的教材(项目多)

Shell入门

1)什么是Shell

Shell是一个命令解释器,作用解释用户输入的命令以及程序。

2)什么是Shell脚本

把命令统一在放一个文件中进行执行,称为Shell脚本。

Shell脚本包含若干个命令+IF判断+FOR循环+变量+数组等等

hello,world

[root@m01 /server/scripts ]# vim test.sh
#!/bin/sh                #解释器
#Author ajie             #作者
#print hello word        #目的
echo "hello,word!"

如何执行脚本

sh test.sh
chmod +x test.sh
./test.sh
/server/scritps/test.sh
source test.sh 
. test.sh
cat test.sh|bash
bash < test.sh

变量

变量的生存周期

永久的 需要修改环境变量配置文件 
变量永久生效 /etc/profile临时的
直接使用export声明变量即可,关闭shell则变量失效 
不加export 则只对当前的shell生效加export   则对当前打开窗口所有的shell生效

环境变量配置文件生效的顺序

/etc/profile     .bash_profile .bashrc         /etc/bashrc

自定义环境变量

变量名=变量值

获取值 $变量名

[root@m01 ~ ]# name=ajie
[root@m01 ~ ]# echo $nameajie

变量值的定义

数字变量内容定义
age=18 
字符串定义
boy='I am  teacher' 默认是双引号 混合字符串必须加双引号 数字 字符串 变量

单引号和双引号的区别

单引号: 所见即所得 吃什么吐什么 
定义的什么值输出或者调用的就是什么值 不会解析变量 双引号:可以解析变量

命令的定义方式

test=`pwd`
test=$(pwd)

Shell特殊位置重要变量

配合echo使用

$0  获取当前Shell脚本的文件名  如果脚本全路径执行则显示全路径 basename 只获取脚本名称
$n  获取当前脚本的第n个参数,n为0则是脚本名称,从$1开始代表脚本的第一个参数  $9以后需要加{} ${10}
$#  获取shell脚本所有传参的总个数
$*  获取shell脚本所有传参的参数,如果不加双引号则和$@相同,在循环语句中如果加上双引号,则表示将所有的参数视为单个字符串
$@  获取shell脚本所有传参的参数,如果不加双引号则和$*相同,在循环语句中如果加上双引号,则表示将所有的参数视为独立字符串
$?  获取执行上一条命令的执行状态结果,返回值0为成功 非0失败
$$  获取当前脚本的PID
$!  获取上一个后台工作脚本进行的PID
$_  获取脚本最后的一个参数 类似于ESC .

脚本的传参

直接传参

[root@m01 /server/scripts ]# cat test.sh 
#!/bin/bash
#Author: ajie
#FileName:test.sh
ping -c1 -W1 $1 &>/dev/null
[ $? -eq 0 ] && echo "ping is ok" || echo "ping is error"
[root@m01 /server/scripts ]# sh test.sh baidu.com
ping is ok
[root@m01 /server/scripts ]# sh test.sh baiduuuuuuuuu.com
ping is error

变量赋值

[root@m01 /server/scripts ]# cat test.sh 
#!/bin/bash
#Author: ajie
#FileName:test.sh
url=$1
ping -c1 -W1 $url &>/dev/null
[ $? -eq 0 ] && echo "ping is ok" || echo "ping is error"

read读入

[root@m01 /server/scripts ]# cat test.sh 
#!/bin/bash
#Author: ajie
#FileName:test.sh
read -p "check your url: " url
ping -c1 -W1 $url &>/dev/null
[ $? -eq 0 ] && echo "ping is ok" || echo "ping is error"
[root@m01 /server/scripts ]# sh test.sh 
check your url: lvxinjie.cn
ping is ok

变量的子串

子串切片

name="I am shuaiguo"

取出am 三种方式取值

echo $name|awk '{print $2}'
am
echo $name|cut -c 3-4
am
echo ${name:2:2}
am

如何统计变量内的长度

echo $name|wc -L
13
echo ${#name}
13
echo $name|awk '{print length}'
13
expr length "$name"
13

变量的删除和替换

url=www.sina.com.cn
方法1
sed -r 's#www.(.*)#\1#'
方法2
echo www.sina.com.cn|grep 's.*$' -o
方法3
echo $url|sed 's#www.##g'
方法4
echo ${url:4}
方法5 切碎组合
echo $url|cut -d "." -f2
方法6 变量删除
[root@shell ~]# echo $url
www.sina.com.cn
[root@shell ~]# echo ${url#*.}
sina.com.cn
[root@shell ~]# echo ${url#*.*.}
com.cn
[root@shell ~]# echo ${url#*.*.*.}
cn
[root@shell ~]# echo ${url}
www.sina.com.cn
[root@shell ~]# echo ${url#*s}
ina.com.cn
[root@shell ~]# echo ${url}   
www.sina.com.cn
[root@shell ~]# echo ${url#*c}
om.cn
[root@shell ~]# echo ${url##*c}
n
[root@shell ~]# echo ${url}
www.sina.com.cn
[root@shell ~]# echo ${url%.*}
www.sina.com
[root@shell ~]# echo ${url%.*.*}
www.sina
[root@shell ~]# echo ${url%%.*} 
www
[root@shell ~]# echo $url
www.sina.com.cn
[root@shell ~]# echo $url|sed 's#sina#baidu#g'
www.baidu.com.cn
[root@shell ~]# echo ${url/sina/baidu}
www.baidu.com.cn
[root@shell ~]# echo ${url}
www.sina.com.cn
[root@shell ~]# echo ${url/w/a}
aww.sina.com.cn
[root@shell ~]# echo ${url//w/a}
aaa.sina.com.cn










相关文章
|
1天前
|
Shell Linux
Linux下的Shell基础——Shell概述和入门(一)
Linux下的Shell基础——Shell概述和入门(一)
39 0
Linux下的Shell基础——Shell概述和入门(一)
|
1天前
|
Shell 索引
shell脚本入门到实战(四)- 数组
shell脚本入门到实战(四)- 数组
|
1天前
|
Shell
shell脚本入门到实战(三) - 变量
shell脚本入门到实战(三) - 变量
|
1天前
|
Shell Linux 人机交互
shell脚本入门到实战(二)--shell输入和格式化输出
shell脚本入门到实战(二)--shell输入和格式化输出
|
1天前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
1天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
1天前
|
Linux Shell
Linux下的Shell基础——正则表达式入门(四)
Linux下的Shell基础——正则表达式入门(四)
26 1
Linux下的Shell基础——正则表达式入门(四)
|
1天前
|
Unix Shell Linux
【Shell】Shell脚本入门
【Shell】Shell脚本入门
60 0
|
1天前
|
Shell Linux Perl
Shell基础学习---3、Read读取控制台输入、函数、综合应用案例:归档文件、正则表达式入门(第二天学习)
Shell基础学习---3、Read读取控制台输入、函数、综合应用案例:归档文件、正则表达式入门
|
1天前
|
机器学习/深度学习 大数据 Shell
Shell基础学习---1、Shell概述、脚本入门、变量
大数据学习 Shell基础学习---1、Shell概述、脚本入门、变量