linux笔记6--shell相关
文章目录
- 1. 查看当前的shell类型
- 2. ps -f命令
- 3. 父子shell
- 4. 分号在命令里的作用
- 问题:
- 环境变量echo:
- 5. sleep和jobs
- sleep:
- jobs:
- 例子:
- &:
- 6. 外部命令和内建命令
- 图解外部命令
- type命令
- 7. history命令
- 8. alias命令
- 9. 推荐
1. 查看当前的shell类型
命令:cat /etc/passwd
由此可见,该系统终端的shell为bash
注:
① Debian -> dash linux中的dash shell是什么
Ubuntu -> bash
这里dash可以执行成功是因为Ubuntu也属于Debian
② 其它shell
③ shell的默认使用方式可以更改
④ ls -lF /bin/bash 执行后会发现这里实际上有一个软件 2022 /bin/bash*
(bash本质上是一个软件,也是一个终端)
2. ps -f命令
显示进程列表及其详细信息。
3. 父子shell
① shell分为父shell和子shell
② 父shell -> 子shell 的过程类似于(ps -f 可以很清楚地看到它们之间的关系):
孩子a
父亲a 儿子b
爷爷a 儿子b 孙子c
以Ubuntu为例,bash一次相当于要一个小孩,再bash一次再要一个小孩
③ PPID指的是当前进程父亲的PID,或者说它是基于谁创建的
一个窗口运行了三个终端(3个bash),输入了三个exit才彻底退出
父子shell是相对的。即PID=3536的bash是PID=3543的bash的父shell,PID=3543的bash同时又是PID=3551的bash的父shell。
4. 分号在命令里的作用
作用:分隔多个命令,使它们依次执行。跟’ | '作用一样
① 命令1 空格 分号 空格 命令2 空格 分号 空格 命令3 分号前后的空格表示分隔不同的命令
② 括号 命令1 空格 分号 空格 命令2 空格 分号 空格 命令3 括号 带括号意味着创建一个子shell去执行
例如:
①②的异同:
相同点:执行结果一样
不同点:1> ①没有生成一个子shell执行,②生成了一个子shell执行。2> ①的执行结果成为进程列表,②的不是。
问题:
问:为什么ls ; pwd ; cd / 执行完以后切换到了根目录,而(ls ; pwd ; cd / )却没有?
答:在第一个命令中,cd/ 意味着 cd 命令后跟着一个参数 /,表示切换到根目录。而在第二个命令中,(ls ; pwd ; cd/) 在括号内,这意味着括号内的命令将在子shell中执行。当子shell执行完毕后,不会影响当前shell的状态,所以在执行完 (ls ; pwd ; cd/) 后,你还停留在原来的目录,而不会切换到根目录。
问:(ls ; pwd ; cd / )既然生成了一个子shell执行,为什么ps -f 看不到这个进程?
答:在Unix-like系统中,ps -f 命令用于显示进程列表及其详细信息。当你在子shell中执行命令时,子shell本身会成为一个新的进程,但是它不会显示在外部shell的进程列表中,因为外部shell不直接管理子shell的执行。因此,虽然第二个例子中生成了一个子shell,但它不会被ps -f命令显示出来,因为ps -f只显示外部shell及其直接创建的进程列表。
问:什么叫进程列表?
答:进程列表指的是当前正在运行的所有进程的清单或列表。在操作系统中,每个正在运行的程序都是一个进程,这些进程可能是用户启动的应用程序、系统服务或操作系统本身的一部分。进程列表通常包含每个进程的标识符、状态、内存使用情况等信息,可以通过特定的系统命令或工具来查看。
问:为什么ls ; pwd ; cd / 生成的结果叫进程列表,(ls ; pwd ; cd / )生成的不叫?
答:第一个例子中,我们可能会将一系列命令看作一个整体,因为它们按顺序执行,就像列表中的项目一样。这种情况下,我们将这些命令的执行结果称为进程列表。而第二个例子中,命令被放在括号内,括号将这些命令分组在一个子shell中执行。这些命令的执行不会直接影响到外部的环境,所以我们不太倾向将它们称为进程列表。
环境变量echo:
命令:echo $BASH_SUBSHELL—检测有没有创建子shell执行。
例如:
5. sleep和jobs
sleep:
① sleep + 数字 --让终端休眠__秒后执行(倒计时)
② sleep + 数字& --让终端休眠__秒后执行,且这个过程在后台
③ man sleep 查看sleep说明文档
问:为什么要用sleep?
答:因为有时候我们需要程序在执行某些操作后暂停一段时间,或者在循环中添加一个延迟以控制程序的执行速度。
jobs:
① jobs – 看看谁在搞休眠
② jobs -l – 在jobs的基础上多显示了PID
例子:

&:
‘&’ – 把某个操作挂载后台执行,我们可以在当前页面做别的事情。例如:Windows解压压缩包时,我们点完解压之后,通常会把那个页面最小化(放在后台),然后去干别的事情。linux中输入(tar -zxvf … ; tar -zxvf … ; cp … )&就可以让解压操作在后台执行。
6. 外部命令和内建命令
如图所示,输入ps -f 查看进程信息时,ps -f 也算一个进程(Windows任务管理器查看进程时,任务管理器本身也算一个进程),像ps -f 这种必须单独创建一个进程,在外部看内部的命令叫作外部命令;像cd这种不单独创建进程的,我们叫非外部命令(别名:内建命令)。
图解外部命令
外部命令:站在一个更高的层次看shell里的东西,站在外边看里边的东西看的更清楚。
type命令
type + 命令名称:判断一个命令是外部命令还是内部命令
输出结果:命令名称 is /usr/bin/命令名称 – 外部命令
输出结果:命令名称 is a shell builtin – 内建命令
例如:
7. history命令
① history命令–可以查看我们之前运行的所有命令(显示条数有上限)。它也是内建命令
② 执行history -> 显示:序号 + 命令 -> 输入!+序号,即可执行序号对应命令
③ !!:执行上一个命令
!$:执行上一个命令
例如:
④ less .bash_history:以文件形式查看之前的命令
8. alias命令
① alias命令–作用:起别名。好处:可以让我们缩写
② alias -p:显示全部已定义的别名
进一步理解alias:此处执行ll 时本质上是执行ls -alF;此处执行ls本质上是执行ls --color=auto(自动高亮)。补充:ls =‘ls --color=auto’ 是Ubuntu特有的,mac上就没有。
③ 创建属于自己的别名:alias 别名 = ’ 原来的命令’
缺点:一旦退出当前的shell,就不可以使用了
例如:
注意:等号前后不要加空格
9. 推荐
frank的linux课教程 以上笔记全部来源于此
-----------------------------------未完待续...------------------------
---------------------------出现问题欢迎批评指正啊 ---------------------
相关文章:
linux笔记6--shell相关
文章目录 1. 查看当前的shell类型2. ps -f命令3. 父子shell4. 分号在命令里的作用问题:环境变量echo: 5. sleep和jobssleep:jobs:例子:&: 6. 外部命令和内建命令图解外部命令type命令 7. history命令8. alias命令9. 推荐 1. 查看当前的sh…...
链表-线性表的链式表示
链表-线性表的链式表示 #mermaid-svg-ozpXrKnNCyYdqHvN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ozpXrKnNCyYdqHvN .error-icon{fill:#552222;}#mermaid-svg-ozpXrKnNCyYdqHvN .error-text{fill:#552222;stro…...
GNU/Linux - 时区设置
CST China Standard Time 北京时间/中国标准时间 在时区划分上,属东八区,比协调世界时早 8 小时,记为 UTC8 GMT Greenwich Mean Time 格林威治标准时间 是指位于英国伦敦郊区的格林尼治天文台的标准时间,因为本初子午线被定…...
红队攻防渗透技术实战流程:云安全之云原生安全:内核漏洞和版本漏洞
红队云攻防实战 1. 云原生安全 -Docker安全-容器逃逸-版本漏洞1.1 容器逃逸-版本漏洞-runC容器逃逸1.2 实战案例-版本漏洞-runC容器逃逸1.3 容器逃逸-版本漏洞-containerd逃逸1.4 实战案例-版本漏洞-containerd逃逸1.5 Docker安全-容器逃逸-CDK自动化1.6 Docker安全-容器逃逸-c…...
spring状态机实战
一、什么是状态机 状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型,是一种概念性机器,它能采取某种操作来响应一个外部事件。这种操作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。状态…...
Ubuntu系统上安装NVIDIA驱动【笔记】
Ubuntu上安装NVIDIA驱动,您可以按照以下步骤操作: 首先,您需要配置软件源(根据情况配置,否则影响更新和下载速度)。 接下来,您可以按照上一条回答中的步骤来安装新的NVIDIA驱动。首先ÿ…...
生成式AI导论2024-李宏毅
生成式AI导论2024-李宏毅 第0讲: 课程说明第1讲:生成式AI是什么第2講:今日的生成式人工智慧厲害在哪裡?從「工具」變為「工具人」 第0讲: 课程说明 生成式AI的入门课程 第1讲:生成式AI是什么 生成式人…...
跨平台之用VisualStudio开发APK嵌入OpenCV(三)
本篇将包含以下内容: 1.使用 Visual Studio 2019 开发一个 Android 的 App 2.导入前篇 C 编译好的 so 动态库 3.一些入门必须的其它设置 作为入门,我们直接使用真机进行调试,一方面运行速度远高于模拟器,另一方面模拟器使用的…...
渗透测试框架之CobaltStrike,Metasploit域名上线隐藏IP
概述 为什么要隐藏IP 在拿下了目标机之后,目标机在内网里面,使用msf或者CS时,用自己的VPS做服务器的话,导致很容易被溯源。 域名上线原理 当我们访问域名时会经过域名解析 域名解析就是域名到IP地址的转换过程,那么…...
vue.js对接海康威视摄像头web开发包
一、登录海康开放平台下载web开发包,下载需要先登录海康账号,没有的需先注册一个。 这里的appkey、ip、port、secret 和cameraIndexCodeasd是自己去申请的 appkey: "****", ip: "****", port: **, secret: "****", //必填…...
Selenium中使用的三种等待
文章目录 1.前言2.在selenium中常见的等待操作一般有3个 1.前言 在使用selenium时很多元素在使用的时候都需要加载,如果不等待加载结束直接使用就会报错,功能不能继续。一般解决的办法就是使用等待操作。 2.在selenium中常见的等待操作一般有3个 slee…...
推荐一款媒体影音嗅探神器—Chrome扩展插件(猫抓cat-catch)
目录 1.1、前言1.2、下载地址1.3、github Releases 版本说明1.4、安装步骤1.5、猫抓插件常规设置1.5.1、设置抓取文件的类型1.5.2、设置抓取文件的后缀名 1.1、前言 我们在日常上网的过程中,很多音频、视频网站下载资源都非常不方便,要么需要安装客户端&…...
LLaMA-Factory 微调训练
LLaMA-Factory 微调训练 该框架功能,标注-微调-导出-合并-部署,一整条流程都有,而且训练时消耗的gpu算力也会小一些 一,安装(推荐在linux中训练,win可以用wsldocker) git clone https://githu…...
阿里云ECS服务器怎么设置时区
在自己部署在阿里云服务器上的应用中,控制台打印的日志时间和本地不一致,于是决定修改阿里云服务器的时区为Asia/Shanghai。 具体操作如下: 第一步:连接服务器 通过finalshell等连接工具通过公网IP连接到服务器。 第二步&#…...
【698协议】帧校验算法
698协议,帧校验算法 帧格式 帧校验范围 校验算法 #include "fcs16.h" /* * u16 represents an unsigned 16-bit number. Adjust the typedef for * your hardware. * Drew D. Perkins at Carnegie Mellon University. * Code liberally borrowed from M…...
FileZilla“服务器发回了不可路由的地址,使用服务器地址代替
问题:在宝塔创建的FTP无法使用,提示“服务器回应不可路由的地址。使用服务器地址代替 第一种解决办法:由于宝塔把FTP被动模式端口范围设置成了39000-40000,所以只需要把阿里云服务器上相应的端口范围开放即可。 第二种解决办法&am…...
【路径规划】基于遗传算法GA实现最短距离 多起点多终点多旅行商问题求解附Matlab代码
基于遗传算法GA实现最短距离 多起点多终点多旅行商问题求解 研究背景:研究步骤:研究方法和技术路线:代码研究背景: 多起点多终点多旅行商问题是旅行商问题(TSP)的一个扩展,该问题要求确定多个旅行商从各自的起点出发,分别经过一系列目标点最终回到各自的终点,使得总路…...
计算机毕业设计 | springboot+vue房屋租赁管理系统(附源码)
1,绪论 1.1 课题来源 随着社会的不断发展以及大家生活水平的提高,越来越多的年轻人选择在大城市发展。在大城市发展就意味着要在外面有一处安身的地方。在租房的过程中,大家也面临着各种各样的问题,比如需要费时费力去现场看房&…...
重大活动网络安全保障建设及运营指南
在当今高度数字化的社会中,各类重大活动如会议、展览、赛事及庆典等正面临着日益复杂和严峻的网络安全威胁。这些威胁不限于网络入侵或数据泄露,更涉及到对基础设施、关键信息系统和公众舆论的复杂攻击,需要国际社会的密切合作和长期关注。因…...
基于信号分解方法的机械故障诊断方法存在的问题
一方面,由于结构共振、测试噪声的干扰,为了确保分解精度,需要给定准确的参数初值(例如,瞬时频率)。研究人员通常认为零部件特征频率与通过传动比和驱动转速计算的理论值基本吻合,并基于理论值设置参数初值。事实上&…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...



















