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 ...
随机推荐
- 常用的 接口访问方法 post 和get
public string GetFunction(string serviceAddress) { HttpWebRequest request = (HttpWebRequest)WebReque ...
- 【Weex学习】环境搭建
教程来源:http://jspang.com/2017/07/12/weex/,我本地是第一次安装Android Studio和教程有些出入 一.软件安装 1.安装Node.js 2.安装Java(h ...
- linux 下获取文件最后几行
在Linux下,获取文件倒数几行的命令是: tail -n 10 your_filename #获取倒数10行
- 乘风破浪:LeetCode真题_041_First Missing Positive
乘风破浪:LeetCode真题_041_First Missing Positive 一.前言 这次的题目之所以说是难,其实还是在于对于某些空间和时间的限制. 二.First Missing Posi ...
- redis 配置文件示例
# redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位,# 通常的格式就是 1k 5gb 4m 等酱紫:## 1k => 1000 bytes# 1kb =& ...
- [BZOJ 4763]雪辉
[BZOJ 4763] 雪辉 题意 给定一棵 \(n\) 个点的无根树, 点带权. \(q\) 次询问, 每次给定树上的若干路径, 求这些路径上的点共有多少种不同权值以及这些点的权值组成的集合的 \( ...
- BZOJ4552:[TJOI2016&HEOI2016]排序(线段树,二分)
Description 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他. 这个难题是这样子的:给出一个1到n的全排列,现在对这 ...
- 连接远程数据库ORACLE11g,错误百出!
客户机中PLSQL DEV访问虚拟机中的ORACLE11g,错误百出! 创建时间: 2017/10/14 18:44 作者: CNSIMO 标签: ORACLE 忙了一下午,只有两个字形容:麻烦! ...
- JSP中使用JDBC连接MySQL数据库的详细步骤
1,首先在自己新建的项目文本框中输入Web Project的名称,然后单击下一步. 2,继续单击下一步 3,把Generate web.xml deployment descriptor复选框勾上. ...
- vector使用小结
1.创建vector容器: std::vector<int> data; std::vector<int> data(20);大小20,自动赋值为0 std::vector&l ...