1-9·shell入门、脚本、概念

来源:互联网 发布:ubuntu redis 绑定ip 编辑:程序博客网 时间:2024/05/21 10:29

一·Shell脚本概述

1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至时编写一些程序。Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令

2)Shell分类
Bourne Shell:主文件名为sh(早期)
C Shell:BSD版的Unix
两种语法类型有Bourne和C,彼此不兼容。Bourne家族主要包括sh,ksh,Bash(Linux标准Shell),psh,zsh;C家族主要包括:csh,tcsh
echo $SHELL 查看Shell (默认RHEL与CENTOS是bash)

Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell

 vi /etc/shells     //查看系统默认支持的shell

二·Shell脚本的执行方式

1)echo输出命令
格式:echo [选项] [输出内容]
选项:

 -e:支持反斜线控制的字符转换[root@localhost ~]# echo "helloWorld"\a - 输出警告音\b - 退格符\n - 换行符\r - 回车键\t - 制表符,也就是tab键\v - 垂直制表符\0nnn - 按照八进制ASCII码输出字符\xhh - 按照十六进制ASCII表输出字符

例:

echo -e "hell\bo"echo -e "h\te\tl\nl\to\t"echo -e "\x68\t\x65\t\x6c\n\x6c\t\x6f"echo -e "\e[1;31mHelloWorld\e[0m"输出颜色 \e[1;##m - 开启颜色显示;\e[0m - 关闭颜色显示30m=黑色,31m=红色,32m=绿色,33m=黄色34m=蓝色,35m=洋红,36m=青色,37m=白色

2)脚本执行
1.赋予执行权限,直接运行

[root@localhost ~]# chmod 755 *.sh
[root@localhost ~]# ./*.sh(或者绝对路径执行 /root/*.sh)

2.通过Bash调用执行脚本

[root@localhost ~]# bash *.sh
#!/bin/Bash

不是注释,它标称下面的内容是linux的标准脚本程序 如果该脚本使用纯shell语句完成,不加#!/bin/Bash,运行没问题但,脚本调用了其他语言,就会报错!我们可以指定其他方式的shell执行如:#!/bin/zsh

三·Shell别名与快捷键

1)Bash的基本功能
1.使用别名

[root@localhost ~]# alias                                  //查看系统当中默认已经生效的别名[root@localhost ~]# alias ls = 'ls --color=never'          //设定别名(临时生效,重启或重登录后失效)[root@localhost ~]# vi ~/.bashrc(不止一个环境变量文件)      //写入环境变量配置文件(用来更新用户环境变量~代表用户家目录)[root@localhost ~]# vi /root/.bashrc                       //增加alias ls = 'ls --color=never’(系统再次重启后永久生效)[root@localhost ~]# source .bashrc                         //使当前环境变量设置生效(不需要系统再次重启后永久生效)[root@localhost ~]# unalias ls                                 //删除别名

2.命令生效顺序(优先级)
第一顺位执行绝对路径或者相对路径的命令
第二顺位执行别名
第三顺位执行Bash的内部命令
第四顺位执行按照$PATH环境变量设置定义的目录顺序的第一个命令

3.快捷键

ctrl + c 强制终止ctrl + l 清屏相当于clearctrl + a 光标快速回到行首ctrl + e 光标快速去到行尾ctrl + u 从光标所在位置删除到行首ctrl + z 把命令放入后台--这个命令很谨慎使用ctrl + r 历史命令搜索

四·历史命令

1.历史命令

history [选项] [历史命令保存文件]
-c 清空历史命令-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history

默认保存1000条,可以人为修改,建议历史命令不保存,定期备份到一个比较隐蔽的路径!

vim ~/.bash_history                //当前用户的历史命令配置文件HISTSIZE=1000                   //历史数量

vi /etc/profile 环境变量配置文件

基本调用技巧

上下箭头来重复调用!n 来执行第n条历史命令!! 重复执行上一条命令!字符串 重复执行后一个该串开头的命令

五·输出重定向

1)标准输入设备:键盘/dev/stdin 描述0
标准输出:显示器/dev/stdout 描述1
标准错误输出:显示器/dev/stderr 描述2

2)输出重定向
命令 > 文件 “覆盖方式把命令的正确输出 输出到指定文件或设备中”
命令 >> 文件 “追加方式把命令的正确输出 输出到指定文件或设备中”
命令 2>(2>>)文件 “覆盖(追加)方式把命令的错误输出 输出到指定文件或设备中”注意带2的错误输出后面不能有空格
命令 >> 文件 2>&1 命令 &>> 文件 把命令的正确或错误续写到文件或设备中
命令 >> 文件1 2>> 文件2 把命令正确输出 输出到指定文件或设备
命令 &> /dev/null 将命令的结果丢入null(作用类似于垃圾箱)中 只执行,不显示

3) 输入重定向(用的少,了解即可)
wc 执行后 输入 ctrl+d结束 会统计输入行数 单词数 字母数

wc [选项] [文件名] -c字节数 -l行数 -w单词数

wc < 文件名 用文件的内容作为输入 wc << 标记 统计标记到标记再次出现之间的字符

六·管道符

";"连接命令 顺序执行"&&"连接命令 逻辑与执行 第一条执行 第二条执行 第一条错误 第二条不执行"||"连接命令 逻辑或执行 第一条执行 第二条不执行 第一条错误 第二条执行

脚本中的应用:命令 && echo yes || echo no 命令正确yes 错误no
注意&& echo yes || echo no 顺序不能颠倒,不然命令出错的时候会同时输出no yes

more [文件名]              //"分页显示文件内容"
"|" 管道符 命令1|命令2 命令1正确的结果 作为命令2的操作对象

例:

[root@localhost ~]# ls -l > /etc/ | more “用于分页显示命令执行结果”[root@localhost ~]# netstat -an | grep ESTABLISHED | wc -l "用于查看当前连接本机的客户端 并 统计客户端数量"

七·通配符

1)通配符(文件名或者目录名)

?  匹配任意一个字符*  匹配0个或任意多个字符[] 匹配括号中任意一个字符[-]匹配括号中任意一个字符,-代表一个范围[^]匹配不是括号中任意一个字符
Bash中其他特殊符号'' 单引号,在单引号中左右的特殊符号,如$,&都没有特殊含义"" 双引号,在双引号中左右的特殊符号都没有特殊含义,但是“$”,"`","\"是例外。拥有“调用变量的值”,“引用命令”和“转义符”的特殊含义`` 反引号,反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样。$() 用来引用系统命令

在Shell脚本中,#开头的行代表注释

$ 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值\ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出"$"符号[root@localhost ~]# echo \$

简单的入门就介绍的这里,因为语法符号没有什么好方法,建议大家一定要记住!以后工作会经常与其打交道。

原创粉丝点击