shell脚本之基础
配置启动界面
vim /etc/inittab/ init3
配置网卡 重启生效
system-config-network
网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes 开机自启动网卡
查看历史命令:参数 -c(清空) -w(保存)
history
shell脚本开头第一行:说明一下内容是shell脚本。
#!/bin/bash
命令别名:
alias
alias vi = 'vim'临时生效,重启命令就会消失。
vim /root/.bashrc 将要添加的别名写入到配置文件中。
删除别名:
unalias
清屏:
ctrl+L 相当于clear
删除或剪切光标之前的所有命令:
ctrl+U
粘贴ctrl+U的数据
ctrl+Y
搜索history的内容
ctrl+R 回车直接执行
退出终端:
ctrl+D
正确输出重定向:
覆盖之前的内容:命令 > 文件
追加内容:命令 >> 文件
错误输出重定向:
输出错误内容覆盖之前的内容:命令 2> 文件
输出错误内容追加内容:命令 2>>文件
错误输出和正确输出都输出到一个文件里:命令 &>> 文件
正确错误分别保存:命令 >> 文件1 2>> 文件2
黑洞垃圾箱:
/dev/null
输入重定向:wc 参数:-c(统计字节数),-w(统计单词数),-l(统计行数)
wc < aa.log
wc -l < aa.log
wc -c aa.log
wc -w < aa.log
- 多命令顺序执行:
; 顺序执行
&& 当前一个执行不报错,顺序执行,报错结束
|| 当前一个执行报错,才执行条件2
用在程序判断:
ls && echo yes || echo no 正确执行输出yes
lsss && echo yes || echo no错误执行输出no
- 管道符:
命令2作为命令1的输出: 例子:ls -l /etc | more
grep:搜索关键字,在文件当中搜索相关的字符串
例子:netstat | grep EST
- 通配符和特殊符号:用来匹配文件的
?:匹配一个任意字符
*:匹配多个或任意多个字符,可以匹配任何内容
[]:匹配中括号中任意一个字符,例如[a,b,c]代表一定匹配一个字符,或者a,或者b,或者c
[-]匹配中括号中任意一个字符,-代表范围例如:[a-z]代表匹配一个小写的字母
[^]逻辑非,表示匹配不是中括号内的一个字符,例如:[^0-9]代表匹配不是一个数字的字符
特殊字符
'' 内容都是字符串里边的不识别特殊字符
"" 能识别特殊字符
$ 调用变量的值
$()和反引号效果一样,输出内容的结果
\特殊符号的特殊作用取消变成普通字符
例:
[root@zabbix_1 ~]# name=$(date)
[root@zabbix_1 ~]# echo $name
Thu Oct 25 08:41:09 CST 2018
[root@zabbix_1 ~]# name=22
[root@zabbix_1 ~]# echo '$name'
$name
[root@zabbix_1 ~]# echo "$name"
22
- 变量:
定义变量:变量=值
变量叠加:变量="$(变量)新值"
查看变量:echo $变量 或者 echo "$变量"
查看变量 set(查看所有变量)
删除变量:unset 变量名
环境变量:PATH、PS1变量重要
定义:export 变量=值
已经定义好的自定义变量想改成全局环境变量:
sex=boy
export=sex 这样就定义好了全局环境变量
查询环境变量: env(查看环境变量)
变量叠加: PATH="$PATH:/路径" 重启就会失效,永久生效需要添加到环境变量中
- 位置参数变量:
$n(n代表参数)$0代表命令本身,$1-$9代表第一个到第九个参数,10以上的参数需要用大括号包含例如:${10}
$* 把所有参数当成一个整体,打印一行。
$@ 把每个参数当成一个整体,几个参数打印几行。
$# 返回参数的个数。
- 预定义变量:
$? 返回判断上一条命令是否正确执行,正确执行返回0,不正确执行返回非零
$$ 显示当前进程的ID
$! 显示后台进程的ID
接收键盘输入:-p(提示信息),-t(秒数),-n(字符数,用户可以输入几个字符),-s(隐藏输入的信息)
例:
#!/bin/bash
read -t 30 -p "pleas is:" name
echo "$name"
read -s -t 10 -p "pleas is:" age
echo "\n"
echo "$age"
read -n 1 -t 20 -p "[Y/N]:" is
echo $is
- 数据运算与运算符:
declare 参数:
-:给变量设定属性类型
+:取消变量的属性类型
-i:将变量声明为整型
-x:将变量声明为环境变量
-p:显示指定变量的被声明的类型
例1:
[root@zabbix_1 sh]# aa=11
[root@zabbix_1 sh]# bb=12
[root@zabbix_1 sh]# declare -i cc=aa+bb
[root@zabbix_1 sh]# echo $cc
23
[root@zabbix_1 sh]#
例2:
[root@zabbix_1 sh]# dd=$(($aa+$bb))
[root@zabbix_1 sh]# echo $dd
23
[root@zabbix_1 sh]#
例3:
[root@zabbix_1 sh]# ff=$((($aa+$bb)*$ee)) 先算加减
[root@zabbix_1 sh]# echo $ff
483
[root@zabbix_1 sh]#
- 取余:
例:
[root@zabbix_1 sh]# dq=$((13%3))
[root@zabbix_1 sh]# echo $dq
1
[root@zabbix_1 sh]#
- 逻辑与&&:
例1:
[root@zabbix_1 sh]# ds=$((1&&0)) 一边为1,返回值为0
[root@zabbix_1 sh]# echo $ds
0
[root@zabbix_1 sh]# ds=$((1&&1))两边都为1,返回值为1
[root@zabbix_1 sh]# echo $ds
1
[root@zabbix_1 sh]#
- 逻辑或||:
例:
[root@zabbix_1 sh]# ds=$((1||0)) 有一个为1,返回值就为1
[root@zabbix_1 sh]# echo $ds
1
[root@zabbix_1 sh]# ds=$((0||0)) 两个都不为1,返回值为0
[root@zabbix_1 sh]# echo $ds
0
[root@zabbix_1 sh]#
变量测试与内容替换:
略
- 环境变量配置文件:
环境变量有哪些:PATH、HISTSIZE、PSI、HOSTNAME
source /etc/profile 不重启生效环境变量
环境变量配置文件有哪些:
配置文件作用:
/etc/下的配置文件对任何用户都生效。
/etc/profile 下的配置文件对任何用户都生效。
/etc/profile.d/*.sh --->以.sh结尾的文件
/root/.bash_profile 写在哪个家目录就对哪个用户生效
/root/.bashrc 写在哪个家目录就对哪个用户生效
/etc/bashrc 下的配置文件对任何用户都生效。
- 配置文件启动顺序

- su命令切换用户(切换登录)

- 正则表达式:
:
shell脚本之基础的更多相关文章
- Linux shell脚本编程基础之练习篇
shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...
- shell脚本语法基础汇总
shell脚本语法基础汇总 将命令的输出读入一个变量中,可以将它放入双引号中,即可保留空格和换行符(\n) out=$(cat text.txt) 输出1 2 3 out="$(cat te ...
- linux的基本操作(shell 脚本的基础知识)
shell 脚本的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本 ...
- SHELL脚本编程基础知识
SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...
- shell脚本编程基础介绍
Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...
- 学习笔记:CentOS7学习之二十:shell脚本的基础
目录 学习笔记:CentOS7学习之二十:shell脚本的基础 20.1 shell 基本语法 20.1.1 什么是shell? 20.1.2 编程语言分类 20.1.3 什么是shell脚本 20. ...
- linux基础—课堂随笔_03 SHELL脚本编程基础
shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件:then条件为真的分 ...
- shell脚本编程基础
最近学习了shell脚本编程,感觉自己的脚本写的不太好,所以想把shell脚本相关的知识系统的整理一下,便于以后的学习和使用. 一.shell脚本基础 shell脚本是利用shell的功能 ...
- SHELL脚本--变量(基础)
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$ ...
- Shell 脚本编程基础
通过本文记录学习Linux Shell的一些笔记思考和总结,以加强记忆和理解.主要学习参考资料有: 1.<鸟哥的Linux私房菜-基础篇>第四版 2.菜鸟教程——Linux教程 3.ear ...
随机推荐
- mysql中InnoDB表为什么要建议用自增列做主键
InnoDB引擎表的特点 1.InnoDB引擎表是基于B+树的索引组织表(IOT) 关于B+树 (图片来源于网上) B+ 树的特点: (1)所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关 ...
- MySQL升级后 MySQL 5.7 时间不兼容问题
- surging API
基于.NET CORE微服务框架 -谈谈surging API网关 基于.NET CORE微服务框架 -浅析如何使用surging surging 系列 NET Core 2.0 在WIN7系统 的H ...
- python os模块 遍历目录
#os #os ->tree命令 import os #递归 #目录 ->文件,文件夹 -> 文件文件夹 dirpath = input('请输入你要遍历的目录\n') def ge ...
- Linux运维之系统性能瓶颈工具vmstat分析
vmstat是一个很好用的检测系统性能工具,没有过多的参数,直接一个vmstat命令即可,不过我们一般加上-w表示宽格式输出.然后再附加上侦测时间即可 例如: vmstat 表示每3秒检测一次并输出系 ...
- 使用JFreeChart实现基于Web的柱状图
JFreeChart是一组功能强大.灵活易用的 Java绘图 API,使用它可以生成多种通用性的报表,包括柱状图.饼图.曲线图等.它能够用在 Swing和 Web等中制作自定义的图表或报表,并且得到广 ...
- swift protocol的几种形式
三个关注点:1.形式:2.实现方式:3.使用方式: 一.基本形式: 形式:内部无泛型类型: 实现:只需指定类型和实现相应的功能即可: 使用:可以用在其他类型出现的任何地方: protocol Resp ...
- ES6简介之let和const命令解说
一.var申明变量 学习过JavaScript的同学都应该知道,ES5中申明变量使用var,ES5中的var可以说是无所不能的,所有类型的变量都是由var来申明,但往往很多使用者不知道var申明的变量 ...
- Python os.walk() 方法
#coding=utf-8 import os #(dirpath, dirnames, filenames)[文件夹路径, 文件夹名字, 文件名] def file_name(file_dir): ...
- lua-resty-gearman模块
粘贴一段百度对gearman的解释: Gearman是一个用来把工作委派给其他机器.分布式的调用更适合做某项工作的机器.并发的做某项工作在多个调用间做负载均衡.或用来在调用其它语言的函数的系统. lu ...