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复制] SQL_ERROR 1032解决办法(non-gtid env)
一.缘由: 在主主同步的测试环境,由于业务侧没有遵循同一时间只写一个点的原则,造成A库上删除了一条数据,B库上在同时更新这条数据. 由于异步和网络延时,B的更新event先到达A端执行,造成A端找不到 ...
- Configure network bonding on RHEL (Red Hat Enterprise Linux)
Question: Recently I have to use the RHEL and need to config the network with a few NICs. Here comes ...
- Win7下的C盘重新划分为两个盘
Win 7分盘 注意事项:操作之前,先备份好重要数据,以免误操作导致数据丢失 . 方法步骤如下: 1.在桌面右键点击"计算机"-"管理": 2.鼠标左键单击选& ...
- MySQL基础之---mysqlimport工具和LOAD DATA命令导入文本文件
1.mysqlimport工具的使用 看一下命令的使用方法: shell > mysqlimport -u root -p [--LOCAL] DBname File [option] --f ...
- 如何创建只读权限oracle账户
1.创建角色 CREATE ROLE SELECT_ROLE 2.给角色分配权限 grant CREATE VIEW to SELECT_ROLE; grant CREATE SYNONYM to S ...
- Beyond Compare使用
1.通过过滤功能设置要比较的文件: 2.all,diff功能适用于文件本身的差异以及目录的差异 其它问题: 1.Beyond Compare比较文件时,相同的文件也显示为红色(有差异) http:// ...
- Swift学习笔记十:属性
1.存储属性 1. 作为特定类或结构实例的一部分,存储属性存储着常量或者变量的值. 存储属性可分为变量存储属性(keywordvar描写叙述)和常量存储属性(keywordlet描写叙述) ...
- etcd管理
操作etcd有命令行工具etcdctl,有两个api版本互不兼容的,系统默认的v2版本,kubernetes集群使用的是v3版本,v2版本下是看不到v3版本的数据的,我也是找了些资料才了解这个情况. ...
- docker swarm英文文档学习-6-添加节点到集群
Join nodes to a swarm添加节点到集群 当你第一次创建集群时,你将单个Docker引擎置于集群模式中.为了充分利用群体模式,可以在集群中添加节点: 添加工作节点可以增加容量.当你将服 ...
- ORACLE RMAN备份及还原(转)
RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_heade ...