Shell入门01
Shell入门
1.基于硬件的虚拟化
2.基于平台的虚拟化
3.基于服务的虚拟化
4.基于库的虚拟化
5.基于操作系统的虚拟化
管理员使用Shell程序与操作系统进行交互,之前学习的shell脚本都是以单行命令来执行的,缺乏逻辑关系,将单行的命令统一并建立逻辑关系的过程,就是shell脚本编程。
Sum _ = 0
For I in range(1,101):
Sum_ += i
Print(sum_)
--------------------------------------------------------------------
sum_= 0
for i in $(seq 100);do
…………..
done
输出echo
格式化输出 awk – printf
与其他编程语言的区别:使用shell来实现linux的批量管理,而不是去开发应用程序
学习内容:shell(python、perl、)
Pip install ipython----交互式工具执行单行命令比较方便
1.bash的基本特性
python可以通过调用库来实现各种行业的需求
ctrl + l
上键
History
2.IO重定向与管道符---shell的功能特性 命令是一个可执行的二进制程序
Which ls
3.编程基础
程序是什么?----程序是执行以某个功能的代码,而算法是程序中的其中一种。
#/!bin/bash ------制定解释器
Path路径来执行shell ./aa.txt
变量:是指一段命名的内存空间
数据有变量来提供
指令---命令
程序必须包含 指令 + 数据 + (逻辑关系)
编程原理----面向对象()和面向过程
4.!!!!!!!!!!!!!!!!grep和正则表达式!!!!!!!!!!!!!
Linux三剑客 **grep过滤(行)
Pattern“模式”
5.语句的逻辑关系
分支
if
循环
for 工作中常用—不容易进入死循环 放入for循环的列表
while 指定初始值,循环条件为True 不要进入死循环
until 与while相反 循环条件为False不要进入死循环
case------**编写linux的程序启动脚本**
打断循环的语句
break 跳出循环
continue跳出当前循环
exit 退出当前程序,指定程序的返回值
echo $? 命令执行情况
read –--input()
echo---print()
unix bsd
6.**变量**
network:宣告路由,让路由器发送helllo包,携带路由信息,组播
Linux三剑客
**sed---编辑器 stream edit d。。 流编辑器
数据存储在磁盘里就是“流”
换行 输出数据时手动添加/n,计算机识别后展示
流设备基于流编辑器。。。
两种模式的切换
**awk 报告生成器-----一个独立的编程语言
函数 ----- 一段固定功能的代码块
数组 ---- 列表、元组、字典
字符串----- 字符串的处理太复杂 方法多
重复:必须连续且相同的数据 先排序再去重(Sort 去重)
练习:
line = `wc –l /etc/inittab | cat –d’ ’ –f1 ` 查看行数
echo $line
cat –n /etc/inittab
if test $line -gt 100 ;then if [ $line -gt 100 ];then
echo “ /etc/inittab is a big file ” echo “ /etc/inittab is a big file ”
else else
echo “/etc/inittab is a small file” echo “/etc/inittab is a small file”
fi fi
test 相当于一个[] test $line –gt 100 ==[$line –gt 100]
-gt ----大于
bash的基本特性
linux的时间:系统时钟和硬件时钟
系统时间—date
硬件时间---clock hwclock
1.命令历史 根----加载驱动
作用:查看之前使用的命令
关于命令历史的文件------每个用户家目录下面的.bash_history
在关机的时候,会自动写入一次
history是内置命令 history –r 将内存中的命令历史写入文件
useradd xls –l
echo “123456” | passwd –stdin(标准输入) “xls -l”
cd /home/xls-l
ls
ls -a
关于命令历史的变量(环境变量) path只是环境变量的一种 chroot 切换文件根目录
Env //查看环境变量
Set //查看更加详细的环境变量参数
HISTSIZE = 1000 总量是1000条历史命令。超过1000删除重存
HISTCONTROL = ignoredups/ignorespace/ignoreboth
Set|grep“HIST”
History的常见操作
查看命令历史
!+编号----!#---执行#号行的命令(#表示数值)
!+string----匹配最近一次的字符串
!!-------上一条命令
*!$*------- 上一条命令的最后一个参数
ls /etc == ls !$
ESC+.---上一条命令的最后一个参数
常见的选项:
-a 追加历史行到历史文件
-d 删除
-c 清空
History # 显示最近#行的命令
2.命令补全
Tab :扩展:制表符 \t 四个空格键
1.提示2.自动补全
3.目录补全
Tab 1.提示2.自动补全
4.命令展开—date命令
{}
Linux的目录遵循的规则------FHS(文件系统层次化标准)目录规则
Mkdir –pv mylinux{bin,boot/grub,dev,etc{/rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys}
属性一 属性二
A 1
B 2
Mkdir –pv /var/{a,b}-{1,2}
date、clock、hwclock
基于date命令来创建目录文件
date +%F---改变date输出的格式 –日期格式 年-月-日 CCYY-mm-dd
date+%F-%H-%M-%S
%H---小时 hh
%M---分钟 MM
%S---秒 ss
%T---hh:MM:ss
%D---mm/dd/CCYY(月/日/年)
%Y---显示年份CCYY %y
练习:
通过for语句循环创建一个月的日志文件;.log 2019-08-06.log
Crontab –e * * * * *(分、时、日、月、星期)
touch `date +%F`.http.log
for i in {1..30};do
touch `date +%Y-%m-$i`.http.log
done
for i in {1..30};do touch `date +%Y-%m-$i`.http.log; done --- 一行执行
tar
归档命令 压缩解压缩
压缩工具 gzip、bzip、xz、zcat(不解压查看压缩文件)
文本文件压缩效果较好,压缩只能对文件进行操作,不能对目录进行操作
Tar的常见参数:
归档工具
-j bzip2
-J xz
-z gzip
-c create(压缩)
-x extract (解压)//可以不用指定解压的工具
-f 指定文件名
-v 显示详细信息 verbose
-t 不解压查看内容和zcat一样
Tar归档工具可以对目录进行操作
gzip /etc/inittab
压缩 tar cjvf 2019-08.http.log.bz2 2019-08-*.http.log
解压 tar xvf 2019-08.http.log.bz2 –C abc
解压可以不选择解压方式
.*---正则表达式 *---不是正则表达式
crontab –e * * * * *(分、时、日、月、星期) 写全路径 除/以外的符号都可以当作文件名
20 02 * * * /root/xxx.sh
编写xxx.sh脚本文件
Vim xxx.sh
#!/bin/bash
#
tar cJvf /var/`date +%F` .xz /etc/
chmod +x xxx.sh
补充:
clock、hwclock ---- 查看硬件时钟(如何同步系统时钟和硬件时钟,以哪一个为准)
cal 日历 cal 1997
5.命令的执行状态
在linux中,每一条命令执行后都会有两个结果:
命令本身放回的内容
其次,命令执行的结果状态
$? 变量,就是用来存放命令执行状态的变量;
0 表示成功的状态(与python相反)
1-255 表示失败的状态
[$? –eq 0] && exit 0|| exit 1
在程序执行中,我们可以使用exit来手动制定返回的状态码
6.命令的快捷键
Ctrl + l //清屏
Ctrl + c
Ctrl + u //删除光标前的字符
Ctrl + k //删除光标后的字符
Ctrl + a //光标头
Ctrl + e //光标尾
Ctrl + e
Ctrl + w //以空格为分隔符,去删除文件
Ctrl + r //搜索命令(进入交互式界面,搜索最近一次使用的命令要输入字符串)
7.alias别名
系统启动时读取一些特殊文件的顺序;
alias 文件别名
alias cdnet=”cd /etc/sysconfig/network-scripts” //这种方式定义的alias只能在当前shell使用
pstree
如果想要别名所有人都可以使用,写入下面两个文件中
/etc/profile
/etc/bashrc
如果想要别名自己使用,写入下面两个文件中
~ /.bash_profile
~/.bashrc
PEP代码标准


8.文件通配符
**文件通配符不是正则表达式**
? 任意单个字符
* 任意长度的任意字符
[] 指定范围内的任意字符
^ 1.以什么开头
2.[^]指定范围以外的任意一个字符
[^0-9A-Za-z] [0-9] [A-Z] [a-zA-Z]
指定字符类:
1.[:alnum]----- [^0-9A-Za-z]字母+数字
2.[:upper:]-----字母大小写
3.[:digit:]-------数字
4.[:punct:]-----特殊字符
5.[:space:]-----空格 ^*[[:space:]]*$-----匹配空白行
Shell入门01的更多相关文章
- Shell - 简明Shell入门01 - 第一个脚本(HelloShell)
示例脚本及注释 #!/bin/bash echo "hello shell!" # 打印字符串"hello shell!" echo "Date: & ...
- Shell - 简明Shell入门
本文以示例和注释的方式,对Shell编程的基本知识点进行了总结和回顾,所有脚本均已做了基本的调试和验证. Shell - 简明Shell入门 01 - 第一个脚本 脚本的定义.执行方法以及echo命令 ...
- Linux shell入门基础(六)
六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...
- Linux shell入门基础(一)
Linux shell入门基础(一): 01.增加删除用户: #useradd byf userdel byf(主目录未删除) userdel -r byf 该用户的属性:usermod 用 ...
- 不用搭环境的10分钟AngularJS指令简易入门01(含例子)
不用搭环境的10分钟AngularJS指令简易入门01(含例子) `#不用搭环境系列AngularJS教程01,前端新手也可以轻松入坑~阅读本文大概需要10分钟~` AngularJS的指令是一大特色 ...
- 【爬虫入门01】我第一只由Reuests和BeautifulSoup4供养的Spider
[爬虫入门01]我第一只由Reuests和BeautifulSoup4供养的Spider 广东职业技术学院 欧浩源 1.引言 网络爬虫可以完成传统搜索引擎不能做的事情,利用爬虫程序在网络上取得数据 ...
- JavaScript基础入门 - 01
JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写JavaScript代码, ...
- CSS3基础入门01
CSS3 基础入门 01 前言 相对于css2来说,css3更新了很多的内容,其中包括选择器.颜色.阴影.背景.文本.边框.新的布局方案.2d.3d.动画等等. 而如果想要学习css3的诸多部分,不妨 ...
- Java基础语法入门01
Java基础语法入门01 学习java你要先进行去了解JDK,JRE,JVM JDK Java开发工具包 JRE Java语言开发的运行环境 JVM Java虚拟机,用于Java语言的跨平台所用. 当 ...
随机推荐
- 中国MOOC_零基础学Java语言_第3周 循环_1奇偶个数
第3周编程题 查看帮助 返回 第3周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截 ...
- HTML CSS JS 特殊字符(转义)表
HTML有许多特殊的字符,您对此有多少了解?平时在WEB制作中,您又有用到多少?或者说你在平时使用之时,是否也会碰到,有许多特殊字符要如何打印出来?比如说“笑脸”,比如说“版权号”.要是你用时忘记了这 ...
- .net 部署到服务端IIS,Process调用exe程序无法运行问题解决
场景: 开发某一功能将html内容转换为pdf,采用第三方插件wkhtmltopdf.exe进行转换.在本地调试正常运行,部署到服务端后文件没有正常生成. IIS中,Process打不开cmd程序,程 ...
- python2.7安装numpy、pandas、matplotlib库
我装的是python2.7 然后pip的版本是18.1,最近使用pip install **安装包的时候总是会提示 You are using pip version 18.1, however ve ...
- disabled_button 按钮按不下去
X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去 检查元素 删除 按钮就可以摁了 出现答案
- 嘉馨学姐又双叒叕来吃包子了 QDUOJ 模拟 尺度法
嘉馨学姐又双叒叕来吃包子了 QDUOJ 模拟 尺度法 点我进入OJ题目详情 题意 给你一串数,让你求长度最长的子串,这个字串满足里面没有重复出现的数字. 解题思路 使用一个标记数组,来标记每个数的第一 ...
- 四、JVM — 类文件结构
类文件结构 一 概述 二 Class 文件结构总结 2.1 魔数 2.2 Class 文件版本 2.3 常量池 2.4 访问标志 2.5 当前类索引,父类索引与接口索引集合 2.6 字段表集合 2.7 ...
- http-proxy-middleware
概述 这是设置代理的神器,webpack的devServer.proxy就是使用了非常强大的 http-proxy-middleware 包.Node.js代理很简单. 轻松配置代理中间件进行连接,发 ...
- 2015GDCPC广东省赛总结
第二年参加省赛,也是我接触ACM这个行列已经过去了一年有余的里程碑.省赛个人排位,直到省赛现场赛结束后这段时间确实学到了很多很多的东西.按照惯例,先讲下比赛过程,题目3人分,我前,盛爷 ...
- js实现404页面倒计时跳转
<script type="text/javascript"> (function(){ var i=5,timer=null,number=document.getE ...