shell学习

Shell学习略图 序 这是我的第一篇技术博文,目的在于总结归纳自己所学,以求模块化、系统化地将知识留存在大脑,也可与好学之人一同交流进步。 测试工程师的技能版图,已从手工测试转向要求左移的代码能力,右移的运维能力,上要求产品思维,下要求广阔知识面,Shell脚本的掌握理所当然成为了必备技能。 求职寒冬从2019年延续到2020年,企业缩编的同时提高门槛,即使像玩笑话所说“面试造飞机”,我们所做的只有不断学习,提升自... 阅读详情

 shell是一种特殊的程序,它是用户与UNIX系统的“心脏”(一个称之为内核的程序)之间的接口。内核(kernel)在系统引导时被载入内存,管理系统直至关机。它创建和控制进程、管理内存、文件系统以及通信等。内核以外的所有程序(包括shell程序)都保存在磁盘上。内核将这些程序载入到内核运行,在它们终止后清理系统。

     shell的任务

    shell负责确保用户在命令提示符后键入的命令被正确执行。这里的“责任”包括以下内容:

    1、读输入并解析命令行。

    2、替换特殊字符。

    3、设置管道、重定向和后台运行。

    4、处理信号。

    5、程序执行的相关设置。

    命令类型

    命令被执行时,可以是别名、函数、内置命令或磁盘上的可执行程序。别名是原有命令的缩写(绰号),可用于C、TC、Bash和Korn shell。函数就是一组命令,并像独立程序那样组织起来。别名和函数都在shell的内存空间中定义。内置命令是shell的内部程序,而可执行程序则在磁盘上。shell用路径变量在磁盘上定位可执行程序。执行命令前,shell按照以下顺序判定程序类型:

      1、别名

      2、关键字。

      3、函数(bash)

      4、内置命令

      5、可执行程序

      举个例子,如果命令是xyz,shell先检查xyz是不是一个别名。如果不是,那它是不是内置命令或函数?如果不是,那它肯定是磁盘上的一个可执行程序。接下来shell就要开始查找这个命令的路径。

     进程和shell

     进程是正在运行的程序,可以用它唯一的PID号(进程标示符)来标识,内核负责控制和管理进程。进程由可执行程序、数据、堆栈指针、寄存器以及程序运行时需要的所有信息组成。shell被启动后就成为一个进程,并且属于某个进程组。任何时候,只有一个进程组拥有终端的控制权,即所谓的“前台运行”。登录系统后,用户的shell便控制了终端,等待命令提示符后输入命令。下面是shell与命令执行流程图。

 

 

重定向

当文件描述符被分配给终端以外的对象时,就被称作I/O重定向。shell把输出重定向到一个文件的过程是:先关闭标准文件描述符1(终端),然后将这个描述符分配给该文件。重定向标准输入时,shell先关闭文件描述符0(终端),然后将它分配给一个文件。

例如:

$ cc prog.c 2> errfile

编译文件prog.c,如果编译失败,标准错误输出被重定向到文件errfile,现在你可以拿这个错误信息文件去请教身边的高手了。

$ find . -name /*.c -print > foundit 2> /dev/null

find命令在当前目录下查找以.c结尾的文件名,将找到的文件名打印到文件foundit中。find命令输出的错误信息则被发送到 /dev/null。

$ find . -name /*.c -print  >& foundit

find命令在当前目录下查找以.c结尾的文件名,将找到的文件名打印到文件foundit中。find命令输出的错误信息也被发送到文件foundit

$ find . -name /*.c -print > foundit 2>&1

find命令在当前目录下查找以.c结尾的文件名,将找到的文件名打印到文件foundit中。find命令输出的错误信息也被发送到文件foundit

$ echo "File needs an argument"  1>&2

echo将它的信息发往标准错误输出。该命令的标准输出被合并到标准错误输出中。

管道

管道允许一条命令的输出被发往另一条命令的输入。shell通过关闭和打开文件描述符来实现管道;但是此时文件符并非分配给文件,二是赋给由系统调用pipe生成的管道。

Shell学习从入门到精通(一) 本章重点讲解变量内容 阅读详情

相关推荐

WPS接入DeepSeek,实现AI辅助功能

总的来说,借助 WPS 中宏功能与 DeepSeek 大模型的结合,文档处理、内容创作和数据分析等任务都能更加智能化、自动化。这不仅大幅提升了工作效率,也为办公场景带来了全新的智能化办公体验。

运维老生常谈 3804

shell查找特定文件

shell 查找文件的代码,一个查找当前路径的,一个查找可多的,呵呵。 1 #!/bin/bash #简化版的查找.c文件的shell脚本 #寻找.c文件的函数(function ) findcfile() { #找到以.c结尾的文件,文件名列表存放在变量cfilelist里边 cfilelist=(ls∣grep′.c(ls | grep '.c(ls∣grep′.c’) #通过for循环显示文件路径以及文件名 for cfilename in $cfilelist do echo (pwd)/(pwd

weixin_44983369的博客 1456

carsim软件教学

第一步打开小锁(红色标注) 新手往往一看界面是灰的,界面内的各种模块打开不了,以为没激活成功 所有模块必须复制之后,进行编辑,不要直接进行修改(很重要) 2.空气动力学模型(红色标注) 这里面主要设定了簧上质量。整车的整备质量在下图模块中进行设定 空气动力学。主要涉及到空气阻力,在下面模块中进行设定,有个问题需要注意,他的空气阻力与汽车理论的空气阻力公式不一致,这一点需要注意 下面这会模块基本上用不到,涉及到一个声音和汽车的外观 下面这个模块主要涉及到发动机功率,传动比还有 tao,档位的传动比,发

weixin_43796045的博客 2550

shell 顺序.选择.循环

顺序结构顺序结构定义1.shell 程序流程控制结构三大结构 1)顺序结构 2)选择结构 3)循环结构2.顺序结构的定义 顺序结构的程序设计是最简单的一种结构,它的执行顺序是自上而下,依次执行,因此,我们只要按照解决问题的思路依次编写程序即可。顺序结构执行的流程图:顺序结果的编写流程以及注意事项1.顺序结构程序编写流程 1)编辑脚本文件,以#!/bin/sh 开头; #!/bin/sh

不远远方 2141

codesys【modbusRTU】主站

【代码】modbusRTU【codesys】

cfqq1989的博客 4370

PX4代码解析(1)

前言 做pixhawk飞控有一段时间了,但在学习过程中遇到许多困难,目前网上找不到比较完整的PX4学习笔记,我打算结合自己理解,写写自己对PX4源码的理解,不一定对,只是希望与各位大佬交流交流,同时梳理一下无人机知识。 目前打算分享以下几个内容:代码架构;通信协议;姿态解算算法,控制算法。先这样,后面想到再加。本章先来聊聊px4代码结构 一、代码整体结构 既然要聊px4代码结构,那就先把px4代码结构图放出来,因为px4源码仍然在不断更新迭代,因此老版本与新版本目录结构可能有些不同,我的代码解析参考版本为V

qq_36903625的博客 1万+

Shell脚本——流程控制语句

关键词:选择 (路在自己脚下,是否对错都需自己定夺。)shell脚本学习

qq_54591401的博客 1273

工业相机与ABB机器人Socket通信实战:手把手教你用RobotStudio 6.08搭建视觉引导工作站

本文详细介绍了工业相机与ABB机器人通过Socket通信实现视觉引导工作站的实战教程。使用RobotStudio 6.08平台,涵盖工作站搭建、坐标系标定、RAPID代码开发及TCP/IP通信配置,特别解析了欧拉角与四元数转换等关键技术难点,助力智能制造产线升级。

weixin_42531516的博客 407

查找当前目录以及子目录下以.c结尾的,且包含"hello"的文件

如上图,目录下有三个文件,一个文件夹,wyd.c和zmq.c里面有字符串hello,test文件夹下的aa.c也有hello 执行命令find ./ -name "*.c"| xargs grep "hello" -on,结果如下: 可以看到结果中显示了符合要求的文件,及该文件包含hello的行数 grep的-o参数只显示匹配的内容,-n参数是显示匹配的行数 ...

weixin_40547071的博客 3281

别再手动盘点了!教你给微信小程序仓库系统加个‘扫码枪’:完整扫码入库与查询功能实现

本文详细介绍了如何为微信小程序仓库系统添加扫码入库与查询功能,实现零硬件成本的智能仓储管理。通过优化摄像头参数、增强动态识别算法和深度整合业务逻辑,提升扫码精度和效率,同时提供混合查询方案应对复杂场景。这套方案显著提升入库效率,降低错误率,适用于各类仓储管理需求。

weixin_30844577的博客 298

Matplotlib之bar3d画3D柱状图

3D柱状图通常用于展示数据集中不同分类项的数据大小或数量。与普通的柱状图相比,3D柱状图更适合展示数据的三个维度 3D 柱状图 按行/列涂颜色 柱加阴影、描黑边 自定义座标轴名、刻度标签、范围

我走的每一步都算数 1121

Linux shell编程与实践(三)之shell程序中顺序结构

顺序 转载于:https://www.cnblogs.com/enjong/articles/8590273.html

weixin_34365635的博客 192

数学建模算法案例精讲500篇-【深度强化学习】深度确定性策略梯度(DDPG)(附MATLAB和python代码实现)

它是一种学习连续动作的无模型策略算法。它结合了DPG(确定性策略梯度)和DQN(深度Q网络)的思想。它利用DQN中的经验重放和延迟更新的目标网络,并基于DPG,可以在连续的动作空间上运行。# 用于生成带有噪声的动作def __init__(self, action_space, mu=0.0, theta = 0.15, max_sigma = 0.3, min_sigma = 0.3, decay_period = 100000):#decay_period要根据迭代次数合理设置# 均值 mu。

qq_36130719的博客 325

Shell 脚本学习

不难看出我们创建的helloworld.sh文件他的权限信息为:-rw-r–r–,对于我们现在登录的root账号也就是对应的第二个到第四个"rw-"也就是仅仅只有读写的权限没有执行的权限,我们如何解决这个问题,以上例子中,: 是一个空命令,用于执行后面的 Here 文档,<<‘EOF’ 表示开启 Here 文档,COMMENT 是 Here 文档的标识符,在这两个标识符之间的内容都会被视为注释,不会被执行。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。

qq_56440330的博客 1273

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Shell学习

Shell学习学习资料1. Shell编程范例 学习资料 搜集的一些shell学习资料 1. Shell编程范例 转载自别人: 链接: Shell编程范例(书)

Quantum_Dog的博客 424

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【Linux】Shell脚本学习总结篇

【Linux】Shell脚本学习总结篇shell学习分为下面3个部分: shell基本命令回顾 shell基本语法学习 awk/sed 工具学习 关于shell的介绍之类的在这里不做赘述!shell基本命令回顾1.1 最基础的常用命令(注:命令选项直接 man 查看,不做说明) 1.1.1 查看文件和目录的命令ls : 列出目录下的清单; cat: 连接显示文件内容 less/more: 分页显

John的博客 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

学习shell网站

无论你选择哪个资源,都要保持实践和实验的态度。通过编写实际的Shell脚本,解决实际问题,你会更好地掌握Shell编程的技能。

FlowerOf的博客 2502

Shell 脚本学习小纲 ~

想说能点进来的朋友肯定是想学习和练习shell脚本。但学习一个东西,最好是系统性从基础去学,否则会导致地基打不稳,后边遇到问题也会花费大量时间找补。接下来我根据个人经验以及统合网上的现成的资源在这里为大家梳理一下shell脚本学习的路径与新手容易犯的错误。不管是想做自动化任务,或者准备面试,希望都能对你们有用。一、Shell 脚本学习路径。

ly_Blogs的博客 947

shell脚本学习总结

看完了书《shell脚本学习指南》,顺便总结一下:

kinado的专栏 1918

shell脚本学习笔记一

又开始写学习笔记了,呵呵。。。 今年打算选择一门技术系统的学习一下。编程语言、虚拟机技术、数据库、大数据、云计算在这些种类中,我选择了shell编程。为什么选择shell呢?也没有什么具体的原因。以前接触过一些shell脚本,也写过些,后来用的少,也就不了了之,没有继续深入下去。这次继续捡起来吧,在网上下载了一本书《shell脚本学习指南》。计划把这本书系统的看看,本书共500多页,每天利用上班

ipioneer的专栏 2970

Shell脚本学习

(1)定义变量:变量=值(2)撤销变量: unset 变量(3)声明静态变量:readonly变量,注意不能 unset2、变量定义规则(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写(2)等号两侧不能有空格!(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。(4)变量的值如果有空格,需要使用双引号或单引号括起来。

小石潭记丶 1270

Shell 脚本系统学习 · 第1篇:什么是 Shell?为什么要学习 Shell?

Shell、Bash、命令行、Linux、自动化、脚本

小先森 1329

shell命令学习网站

推荐一个非常好的shell命令学习网站 http://man.linuxde.net/

u011774239的专栏 739

shell学习之路

多年以前,一直想学好一门脚本语言,那么它就是shell了,手头上有2本书,,,那么费话不多说,现在开始吧,希望有个good start and a good end.当然路过的你如果知道有更好的书(demo多点),给我留言,不胜感激!...

program is a art 114
上一篇: 方兴未艾的社会计算
下一篇: 交互式的bash shell
DeepIT
博客等级 码龄16年 27粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值