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}

dateclockhwclock

基于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的更多相关文章

  1. Shell - 简明Shell入门01 - 第一个脚本(HelloShell)

    示例脚本及注释 #!/bin/bash echo "hello shell!" # 打印字符串"hello shell!" echo "Date: & ...

  2. Shell - 简明Shell入门

    本文以示例和注释的方式,对Shell编程的基本知识点进行了总结和回顾,所有脚本均已做了基本的调试和验证. Shell - 简明Shell入门 01 - 第一个脚本 脚本的定义.执行方法以及echo命令 ...

  3. Linux shell入门基础(六)

    六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...

  4. Linux shell入门基础(一)

    Linux shell入门基础(一): 01.增加删除用户: #useradd byf   userdel byf(主目录未删除)  userdel -r byf   该用户的属性:usermod 用 ...

  5. 不用搭环境的10分钟AngularJS指令简易入门01(含例子)

    不用搭环境的10分钟AngularJS指令简易入门01(含例子) `#不用搭环境系列AngularJS教程01,前端新手也可以轻松入坑~阅读本文大概需要10分钟~` AngularJS的指令是一大特色 ...

  6. 【爬虫入门01】我第一只由Reuests和BeautifulSoup4供养的Spider

    [爬虫入门01]我第一只由Reuests和BeautifulSoup4供养的Spider 广东职业技术学院  欧浩源 1.引言  网络爬虫可以完成传统搜索引擎不能做的事情,利用爬虫程序在网络上取得数据 ...

  7. JavaScript基础入门 - 01

    JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写JavaScript代码, ...

  8. CSS3基础入门01

    CSS3 基础入门 01 前言 相对于css2来说,css3更新了很多的内容,其中包括选择器.颜色.阴影.背景.文本.边框.新的布局方案.2d.3d.动画等等. 而如果想要学习css3的诸多部分,不妨 ...

  9. Java基础语法入门01

    Java基础语法入门01 学习java你要先进行去了解JDK,JRE,JVM JDK Java开发工具包 JRE Java语言开发的运行环境 JVM Java虚拟机,用于Java语言的跨平台所用. 当 ...

随机推荐

  1. Application.CreateForm()和TForm.Create()创建的窗体有什么区别么?二者在使用上各有什么技巧?(50分)

    https://wedelphi.com/t/135849/ 请详细些,并给出例子.谢谢. Application.CreateForm()创建的第一个可显示的窗体是自动成为主窗体,并且自动显示,并且 ...

  2. Flink数据流图的生成----简单执行计划的生成

    Flink的数据流图的生成主要分为简单执行计划-->StreamGraph的生成-->JobGraph的生成-->ExecutionGraph的生成-->物理执行图.其中前三个 ...

  3. java jna 调用windows动态链接库

    import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.Platform; import com.sun.j ...

  4. 解决Pip install Pillow 失败问题

    当我在使用Django一个上传图片功能的时候, Django 提示我安装 Pillow这个图片处理的库, 当我尝试安装的时候. 总是提示安装失败 报如下错误. v = self._sslobj.rea ...

  5. 定制属于你自己的ViewEngine(一套逻辑多套UI)

    ASP.NET MVC出来这么久了,心中却又很多的疑惑:为什么所有的View都要放在Views目录下? 为什么Shared文件夹下面的页面可以被共享? 为什么Page既可以是*.cshtml,也可以是 ...

  6. Eclipse 添加Hibernate 插件

    打开Eclipse, Help-->Eclipse Marketplace   在搜索框输入JBoss-Tools ,回车   根据搜索结果选择与自己Eclipse版本匹配的JBoss,然后点击 ...

  7. 【ABAP系列】SAP ABAP 关于BAPI的EXTENSIONIN 一点解释

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 关于BAPI的 ...

  8. 第8周课程总结&实验报告6

    实验六 Java异常 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异常类 ...

  9. [转帖]16nm国内最先进 兆芯展示x86 KX-6000八核处理器

    16nm国内最先进 兆芯展示x86 KX-6000八核处理器 https://www.cnbeta.com/articles/tech/847125.htm 在近日的2019北京国际互联网科技博览会暨 ...

  10. spring循环依赖是怎么解决的?

    回答:循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleA,则它们最终反映为一个环. Spring如何解决循环依赖? ...