1.8 打好shell基础

news2024/11/29 22:48:24

一、常用shell命令

1、管道命令

(1)命令格式

(2)案例演示

任务1、查看/etc目录信息前5行信息

执行命令:ll /etc | head -5
在这里插入图片描述

任务2、查看/etc/profile文件后5行信息

执行命令:cat /etc/profile | tail -5
在这里插入图片描述

2、grep命令

(1)命令格式

grep [选项参数] 文件

(2)案例演示

任务1、抓取/etc目录下的python信息

执行命令:ll /etc | grep python
在这里插入图片描述

执行命令:ll /etc | grep -c python
在这里插入图片描述

任务2、抓取/etc/profile文件里的dev信息

执行命令:cat /etc/profile | grep dev
在这里插入图片描述

任务3、抓取用户数据文件中以how打头的信息

执行命令:cat /etc/passwd | grep how*
在这里插入图片描述

任务4、显示所有以d开头的文件中包含hi的行

执行命令:grep hi d*

任务5、显示两个文件匹配某个字符串的行

执行命令:grep ‘hadoop’ demo.txt demo1.txt

任务6、显示文件中至少有n个连续小写字符的行

执行命令:grep ‘[a-z]{7}’ demo.txt
执行命令:grep ‘[a-z]{6}’ demo.txt

3、find命令

(1)命令格式

find 路径 [选项参数]

(2)案例演示

任务1、按类型查找

执行命令:find /etc/sysconfig -type ‘d’
在这里插入图片描述

检查是否查找成功
在这里插入图片描述
执行命令:find /etc/sysconfig -type ‘l’
在这里插入图片描述

执行命令:find /etc/sysconfig -type ‘f’
在这里插入图片描述

任务2、按名称查找

执行命令:find /etc/sysconfig -name ‘network’
执行命令:find /etc/sysconfig -name ‘net*’ (可使用通配符)
在这里插入图片描述

任务3、按大小查找

执行命令:find /etc/sysconfig -size 15c(等于15字节)
在这里插入图片描述

执行命令:find /etc/sysconfig -size +10k(大于10240个字节)
在这里插入图片描述

执行命令:find /etc/sysconfig -size -20c (小于20个字节)
在这里插入图片描述

任务4、按权限查找

执行命令:find /etc/sysconfig -perm ‘777’ (权限字符串:rwxrwxrwx)
在这里插入图片描述
执行命令:find /etc/sysconfig -perm ‘755’ (权限字符串:rwxr-xr-x)
在这里插入图片描述

4、sed命令

(1)命令格式

sed “[action]” [filename]

(2)案例演示

预备工作:创建demo.txt
在这里插入图片描述

1)替换操作(s - substitute)
任务1、将所有行的第一个hello替换成HELLO

执行命令:sed “s/hello/HELLO/” demo.txt
在这里插入图片描述

任务2、将第2行到第3行的第2个hello替换成HELLO

执行命令:sed “2,3s/hello/HELLO/2” demo.txt
在这里插入图片描述

任务3、将第2行的hello全部替换成HELLO

执行命令:sed “2s/hello/HELLO/g” demo.txt
在这里插入图片描述

任务4、将全部的hello替换成HELLO后生成新文件

执行命令:sed “s/hello/HELLO/g” demo.txt > demo1.txt
在这里插入图片描述

任务5、将全部的hello替换成hi,要求修改原文件

执行命令: sed -i “s/hello/hi/g” demo.txt
在这里插入图片描述

2)插入操作(i - insert, a - append)
任务1、在第2行之前插入一行新内容

执行命令:sed “2 i I love Linux” demo.txt
在这里插入图片描述

任务2、在第2行之后插入一行新内容

执行命令:sed “2 a Linux is fun and I love it” demo.txt
在这里插入图片描述

3)删除操作(d - delete)
任务1、删除第2行

执行命令:sed ‘2d’ demo.txt
在这里插入图片描述

任务2、删除第2行到第3行

执行命令: sed ‘2,3d’ demo.txt
在这里插入图片描述

任务3、删除文件所有行

执行命令:sed ‘d’ demo.txt
在这里插入图片描述

任务4、删除包含指定字符串的行

执行命令:sed ‘/scala/g’ demo.txt
在这里插入图片描述

5、tail命令

(1)命令格式

tail [选项参数] 文件名

(2)案例演示

任务1、显示文件最后4行内容

执行命令:tail -n 4 anaconda-ks.cfg
在这里插入图片描述

任务2、显示文件最后4个字符内容

执行命令:tail -c 4 love.txt
在这里插入图片描述

6、sort命令

(1)命令格式

sort [选项参数] 文件

(2)案例演示

预备工作:创建ips.txt文件
在这里插入图片描述

任务1、对文件按行排序

执行命令:sort ips.txt,按字典排序法升序排列
在这里插入图片描述

执行命令:sort -r ips.txt,按字典排序法降序排列
在这里插入图片描述

任务2、对文件按第4节排序

执行命令:sort -t ‘.’ -k 4 ips.txt,升序排列
在这里插入图片描述

执行命令:sort -t ‘.’ -k 4 -r ips.txt,降序排列
在这里插入图片描述

7、cut命令

(1)命令格式

cut [选项参数] 文件名

(2)案例演示

任务1、提取ips.txt文件第7列字符

执行命令:cut -c 7 ips.txt
在这里插入图片描述

执行命令:cut -b 7 ips.txt
在这里插入图片描述

任务2、提取ips.txt文件第4节内容

执行命令:cut -d ‘.’ -f 4 ips.txt,提取第4节内容
在这里插入图片描述

执行命令:cut -d ‘.’ -f 2 ips.txt,提取第2节内容在这里插入图片描述

8、history命令

(1)命令格式

history [选项参数]

(2)案例演示

任务1、查看历史操作记录

执行命令:history在这里插入图片描述

任务2、查看最近10条历史命令

执行命令:history 10 (写成history -n 10也是一样效果)在这里插入图片描述

任务3、查看最开始10条历史命令

执行命令:history | head -10在这里插入图片描述

任务4、曾多少次使用vim编辑文本文件?

执行命令:history | grep vim在这里插入图片描述

任务5、执行历史第5条命令

查看历史第5条命令
执行命令:!5在这里插入图片描述

任务6、执行上一条命令

执行命令:!!在这里插入图片描述

任务7、执行最后一次以his开头的命令

执行命令:!his在这里插入图片描述

任务8、将当前历史命令缓冲区命令写入历史命令文件中

执行命令:history -w myhis在这里插入图片描述

执行命令:cat myhis | tail -5在这里插入图片描述

任务9、 清除第5条历史命令

查看第5条历史明令
执行命令:history -d 5
在这里插入图片描述

任务10、清除所有历史命令

执行命令:history -c
在这里插入图片描述

任务11、将历史命令文件中的命令读入当前历史命令缓冲区

执行命令:history -r myhis在这里插入图片描述

执行命令:history | head -10在这里插入图片描述

二、shell脚本

1、执行shell脚本

创建脚本文件,执行命令:vim /home/shell.sh在这里插入图片描述
此时,shell.sh对于所有者而言,只有读和写的权限,并不是可执行的脚本
在这里插入图片描述

(1)直接执行脚本

shell.sh文件必须具备可读与可执行(rx) 的权限
增加shell.sh的写权限,执行命令:chmod u+x /home/shell.sh在这里插入图片描述
在这里插入图片描述

绝对路径方式执行脚本
执行命令:/home/shell.sh在这里插入图片描述

相对路径方式执行脚本
执行命令:cd /home
执行命令:./shell.sh (.表示当前目录)
在这里插入图片描述

(2)利用source命令执行脚本

执行命令:source shell.sh在这里插入图片描述

(3)利用bash或sh命令执行脚本

执行命令:bash shell.sh在这里插入图片描述

执行命令: sh shell.sh在这里插入图片描述

2、shell脚本实战

任务1、显示当前用户主目录

1)编写脚本

执行命令:vim shell01.sh在这里插入图片描述

2)设置权限

执行命令:chmod u+x shell01.sh,增加可执行权限在这里插入图片描述

3)执行脚本

执行命令:./shell01.sh在这里插入图片描述

任务2、编程实现两个数相乘

1)编写脚本

执行命令:vim shell02.sh在这里插入图片描述

2)设置权限

执行命令:chmod u+x shell02.sh在这里插入图片描述

3)执行脚本

执行命令:./shell02.sh在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/49053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据培训FileInputFormat实现类

FileInputFormat实现类 思考:在运行MapReduce程序时,输入的文件格式包括:基于行的日志文件、 二进制格式文件、数据库表等。那么,针对不同的数据类型,MapReduce是如 何读取这些劣如据的呢? FileInputFormat常见的接口实现类包括:TextInputF…

mapreduce搭建

一.虚拟机安装CentOS7并配置共享文件夹 二.CentOS 7 上hadoop伪分布式搭建全流程完整教程 三.本机使用python操作hdfs搭建及常见问题 四.mapreduce搭建 五.mapper-reducer编程搭建 mapreduce搭建一、配置1.创建mapred-site.xml文件2.编辑mapred-site.xml二、打开hadoop0.删除da…

virtio-net 实现机制【一】(图文并茂)

1. 基于virtio的半虚拟化概述 1.1 virtio运行结构 ① virtio表示虚拟化IO,用于实现设备半虚拟化,即虚拟机中运行的操作系统需要加载特殊的驱动(e.g. virtio-net)且虚拟机知道自己是虚拟机 相较于基于完全模拟的全虚拟化&#xf…

PR-视频加介绍背景

每天一个PS/PR小技巧(原理实践) 比如我们有一个展示视频,我们希望在视频一开始时添加一个介绍背景(纯色背景): 点击新建->颜色遮罩: 定义名称,选择颜色,然后就能在工…

Bug: conda环境与jupyter notebook kernel核环境不一致

问题 一般在服务器上进行环境安装的时候有多种方式,比如docker, conda等。conda肯使用起来更加简便,docker更适合服务器部署的时候使用。 本文记录在使用conda时候出现的问题,jupter notebook中的环境不一致导致的。 首先conda创建环境 co…

蓝桥杯嵌入式第二篇配置按键

文章目录前言一、原理图查看二、cubeMX配置三、代码讲解(使用按键控制LED灯的开关)四、HAL_Delay的内部实现五.遗留的问题总结前言 点完灯后接下来我们就开始按键的学习了,这也是很简单的,大家不用担心。 一、原理图查看 可以看到板子上面是有4个按键…

定时任务多线程-springboot

定时任务 在项目开发过程中,经常需要定时任务来帮助我们实现某些业务功能,比如定时生成数据报表、生成对账单、订单超时处理等。Spring Boot提供了内置的Scheduled注解实现定时任务的功能。 步骤 1.修改启动类 在启动类上加上EnableScheduling开启定时…

华为数字化转型之道 方法篇 第五章 视IT为投资,用产品思维管理IT

第五章 视IT为投资,用产品思维管理IT 5.1 数字时代IT系统的重新定位 比较传统信息化和数字化转型下的IT系统特征,我们发现业务环境、IT能力、业务和IT的关系都发生了巨大的变化(见图5-1) 从“管理系统”到“作业平台” 传统信息化下的IT系统往往侧重于信息记录、流程固化…

LeetCode994. 腐烂的橘子(C++中等题)

题目 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格…

因子模型:协方差矩阵

本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 因子协方差矩阵(factor covariance matrix)在计算风险的时候很重要。如果一个模型有个因子,那么协方差矩阵的大小就是。对角线元素是每个因子的方差,非…

[附源码]Python计算机毕业设计SSM流浪动物管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

用Python来开发安卓程序:(1)BeeWare安卓开发环境的搭建

文章目录1. 前言2. BeeWare简介3. 开发环境搭建注意事项4. 安装BeeWare5. 开发环境搭建5.1 创建项目5.1.1 创建一个新项目5.2 运行项目5.3 打包项目5.3.1 打包为Windows程序5.3.1.1 首先briefcase create安装应用的脚手架5.3.1.2 然后构建应用5.3.1.3 接着,运行构建…

2. JVM内存模型

1. JVM虚拟机内存模型图解 JAVA虚拟机主要由这三部分组成类装载子系统,字节码执行引擎,运行时数据区上一节我们不是学了类的加载吗,那些类加载器许多都是C帮我们做的,那么我们这个类装载子系统就是帮我们把类放入运行时数据区的&a…

[附源码]Python计算机毕业设计SSM浪漫烘焙屋(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

原创|一个统计查询模块基于设计模式的抽象设计

文章目录一、需求背景二、详细设计UML设计包设计三、程序设计1、VideoAdStatCaliberEnum2、LiveDashboardBusiness3、StatHandleDispatcher4、StatCaliberEnum5、StatContext5、AbstractStatHandler6、LoggerService7、AbstractVideoAdStatHandler1、VideoAdStatContext2、Vide…

cpu设计和实现(协处理器cp0)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 除了通用计算器负责控制和计算之外,cpu如果需要正常有序地运行,还需要一定地协处理器来帮助完成对应地工作。在mips下面&am…

Vue实现流程图,借鉴vue-tree-color 实现流程框架技术

Vue实现流程图,借鉴vue-tree-color 实现流程框架技术 文章目录Vue实现流程图,借鉴vue-tree-color 实现流程框架技术借鉴鸣谢演示效果引入依赖添加全局组件的二次封装步骤1 创建组件目录Vuenode.jstree.less使用组件引入使用数据结构案例借鉴鸣谢 实现组…

[附源码]Python计算机毕业设计Django的桌游信息管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

元宇宙产业委调研行杭州站 | 联合西溪谷管委会共商元宇宙赋能实体经济

11月29日下午,由杭州西溪谷建设发展管理委员会和中国移动通信联合会元宇宙产业工作委员会共同举办的“元宇宙赋能实体经济企业家沙龙暨元宇宙产业委调研行杭州站”在西溪谷杭州蚂蚁链产业创新中心召开。20余家元宇宙和区块链企业到场,西溪谷管委会党委书…

pytorch复习笔记--loss.backward()、optimizer.step()和optimizer.zero_grad()的用法

目录 1--loss.backward()的用法 2--optimizer.step()的用法 3--optimizer.zero_grad()的用法 4--举例说明 5--参考 1--loss.backward()的用法 作用:将损失loss向输入测进行反向传播;这一步会计算所有变量x的梯度值 ,并将其累积为 进行备…