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 \$
简单的入门就介绍的这里,因为语法符号没有什么好方法,建议大家一定要记住!以后工作会经常与其打交道。
- 1-9·shell入门、脚本、概念
- shell 脚本入门--基础1
- Shell入门之概念
- linux shell 脚本入门
- linux shell脚本入门
- Linux: shell 脚本入门
- Korn Shell 脚本入门
- Shell脚本学习指南-入门
- linux shell 脚本入门
- shell脚本入门
- shell脚本入门
- shell脚本入门
- shell脚本入门
- shell-脚本入门
- Korn Shell 脚本入门
- shell脚本学习入门
- shell脚本---之入门
- Linux shell脚本入门
- leetcode 338. Counting Bits
- linux下用rpm 安装jdk
- 数据结构-栈的顺序存储
- 网页静态化
- [发福利]APPx双11上线大放价,定制小程序只需一元
- 1-9·shell入门、脚本、概念
- 2017.11.07
- classpath拒绝访问
- Linux core 文件介绍
- python学习:实例动态绑定属性和方法
- STM32F103单片机IIC从机模式调试记录
- Android 侧滑菜单最简单的模板
- 2017.11.08
- 错排公式