shell-day1
shell概述:这里说的是命令行shell,例如"bash/sh/ksh/csh"(Unix/Linux系统)、cmd.exe命令提示字符(windwos系统),这里主要介绍Unix/Linux系统。
shell不但可以命令手机,还可以用来编程。运维人员可以通过shell来自动化管理系统,Linux系统所有命令都可以被shell调用。
1.脚本调用方式
./*.sh #要求有执行权限,必须声明shell类型(#!/bin/sh)
sh *.sh #使用sh执行脚本
sh -x *.sh #sh -x 表示显示执行过程
2.变量
使用>写第一个脚本
cat > hello.sh
echo "Hello World!"
#ctrl + D结束
chmod +x hello.sh
#使用上面三种方法来执行脚本 接下来在终端上使用即可
1.定义变量
a1="Hello World"
a2=`date "+%Y-%m-%d %H-%M-%S"`
2.获取变量并输出
第一种:
echo $a1 #echo ${a1}
>>Hello World
echo $a2
>>2018-01-02 23-40-57
第二种:切片取值
echo ${a1:0:2} #变量都是从0开始,第二个为1,0为开始位,展示两位,也就是Hl
>>He #如果是echo ${a1:0}则打印0包括后面全部的值
第三种:组合
echo $a1,$a2
>>Hello World,2018-01-02 23-40-57
3.删除变量
unset 变量名
unset a1
3.read命令
read命令接收标准输入(键盘)的输入,得到输入后,read命令将数据放入一个标准变量中 cat test.sh #!/bin/bash
echo -n "Enter your name:" #-n表示不换行,echo默认会换行
read name #变量
echo "Hello $name" #显示输入的信息
exit 0 #退出 #read有一个-p参数,后面可以跟提示信息,就跟echo一样,这样就可以简写 read -p "Enter your name:" name
echo "Hello $name"
4.sort命令
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 cat test.txt
b
b
d
f
a
c
sort test.txt
a
b
b
c
d
e
f #-u选项,输出时去掉重复行
sort -u test.txt
a
b
c
d
e
f #-r,选项,降序,默认是升序
sort -r test.txt
f
e
d
c
b
b
a #-o选项,sort默认是把结果输出到标准实处,需要用重定向才能写入文件,例如sort test.txt > test2.txt,但是,要把结果输出到源文件中,就不行了,原文件会空,-o可以完美解决
sort -r test.txt -o test.txt
cat test.txt
f
e
d
c
b
a #-n选项,有时候会遇到10比2大的情况,sort会比较字符,1比2小,所以放在2前面,-n可以避免
cat test.txt
1
2
3
4
10
sort test.txt
1
10
2
3
4
sort -n test.txt
1
2
3
4
10 #-t和-k选项
有个文件
cat a.txt
a.9.2
d.7.3
c.5.1
现在我要根据第二列的数字来排序,如何做到?可以使用-k和-t
sort -n -k 2 -t . a.txt #-k选择第几列-t选择分隔符,这里是.
c.5.1
d.7.3
a.9.2
shell-day1的更多相关文章
- DBA需要掌握的shell知识
每个中高级DBA都需要掌握一些简单脚本的编写,这样才能从繁杂重复的基础维护工作中解脱出来,才能有时间去研究更有价值的技术.VBird在讲shell script的时候,给出了几个经典的小范例练习,对于 ...
- Day1 - Python基础1 介绍、基本语法、流程控制
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼 ...
- 小白的Python之路 day1
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van ...
- 运维shell全部语法进阶
Linux运维之shell脚本进阶篇 一.if语句的使用 1)语法规则 1 2 3 4 5 6 7 8 9 if [条件] then 指令 fi 或 if [条件];then ...
- Linux运维之shell脚本进阶篇
一.if语句的使用 1)语法规则 if [条件] then 指令 fi 或 if [条件];then 指令 fi 提示:分号相当于命令换行,上面两种语法等同特殊写法:if[ -f"$file ...
- Linux运维之shell脚本
一.bash漏洞 1)bash漏洞 bash漏洞是控制Linux计算机命令提示符的软件中存在的漏洞. bash是一个为GNU计划编写的Unix shell.它的名字是一系列缩写:Bourne-Agai ...
- Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)
I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量 env:环境变量 常用系统变量: path pwd lang home his ...
- 学习Python的day1
自己以前从来没有写博客的想法,但是学Python,里面的老师也说了,写博客可以加深自己的记忆,也能回顾内容.还能给别人参考.挺值的.2017-09-16 一. Python介绍 python的创始人为 ...
- Shell替换
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. #!/bin/bash a= echo -e "Value of a is ...
- Shell特殊变量
$ 表示当前Shell进程的ID,即pid $echo $$ 运行结果 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数 ...
随机推荐
- spring data jpa 动态查询(工具类封装)
利用JPA的Specification<T>接口和元模型就实现动态查询了.但是这样每一个需要动态查询的地方都需要写一个这样类似的findByConditions方法,小型项目还好,大型项目 ...
- Full Text Search 实现Sort的实现方案
CREATE TABLE dbo.pageStore( ID int NOT NULL, StoreName varchar(50) NULL, OwnerOccupation varchar(50) ...
- springmvc4 相关注解的详细讲解
首先我是一个初学springmvc,抱着去加深印象的目的去整理相关springmvc4的相关注解,同时也希望给需要相关查阅的读者带来帮助. 1.@ControllerController控制器是通过服 ...
- HtmlUnit 开发网络爬虫
网络爬虫第一个要面临的问题,就是如何抓取网页,抓取其实很容易,没你想的那么复杂,一个开源HtmlUnit包,几行代码就OK啦! 通常在一个页面中会包含别的Url,在别的Url当中又会包含更多的Url. ...
- zato server启动后自动关闭问题解决
症状 zato start server 启动server后,过一会server自动关闭了 解决 查看日志 UnicodeDecodeError: 'ascii' codec can't decode ...
- Word 只读模式修改
一.设置只读模式: 方法一: 打开目标文件,点击另存为,如下: 2.点击常规选项,勾选‘建议以只读方式打开文档,也可以在此页给文档加密: 方法二: 在工具栏-->审阅--->限制编辑: 二 ...
- 入门Promise的正确姿势
Promise是异步编程的一种解决方案,从语法上说,Promise是一个对象,从它可以获取异步操作的消息. Promise的基本用法 Promise构造函数接受一个函数作为参数,该函数的两个参数分别是 ...
- android 生成随机数
/** * 随机数.字母 工具类 * Created by admin on 2017/2/20. */ public class RandomUntil { /** * 生成 ...
- PS基础,英语
PS基础(矢量图案的绘制) 水平参考线:新建背景(长宽一致,背景内容为透明)---设置水平参考线(水平垂直都要)---完成. 背景制作:设置前景色---用矩形选框工具绘制正方形选区(背景已被参考线平分 ...
- C++(笔)001.
1.编程范式 编程范式是指计算机编程的基本风格,C++可容纳多种程度范式,如面向对象编程.泛型编程及传统的过程式编程. 2.与C相比较 C++在C语言的基础上新加的特性如下: a.类和对象.继承 b. ...