首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux模拟实现【简易版bash

bash),负责接收并执行用户输入的指令,本文模拟实现的就是一个 简易版命令行解释器 ---- ️正文 1、bash本质 在模拟实现前,先得了解 bash 的本质 bash 也是一个进程,并且是不断运行中的进程...证明:常显示的命令输入提示符就是 bash 不断打印输出的结果 输入指令后,bash 会创建子进程,并进行程序替换 证明:运行自己写的程序后,可以看到当前进程的 父进程 为 bash 此时可以断定神秘的...bash 就是一个运行中的进程,因为进程间具有独立性,因此可以同时存在多个 bash,这也是多用户登录 Linux 可以同时使用 bash 的重要原因 系统自带的 bash 是一个庞然大物,我们只需根据其本质...,实现一个简易版 bash 就行了 图片源自知乎《Linux内核有多少行源代码?》...模拟实现 的全部内容了,相信你在看完本文后,也能手搓出一个简易版 bash 如果你觉得本文写的还不错的话,期待留下一个小小的赞,你的支持是我分享的最大动力!

27420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    升级linux bash

    bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2009 Free Software Foundation,...There is NO WARRANTY, to the extent permitted by law. 3)Linux Bash严重漏洞修复紧急通知(2014年9月25日更新) 日前Linux官方内置...Bash中新发现一个非常严重安全漏洞,黑客可以利用该Bash漏洞完全控制目标系统并发起攻击,为了避免您Linux服务器受影响,建议您尽快完成漏洞修补,修复方法如下: 漏洞检测方法 可以使用如下命令来检查系统存在此漏洞...: env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 如果在一个含有版本号小于bash 4.3的linux或者unix系统上执行以上命令...5)漏洞存在条件 任何已知程序,只要满足以下两个条件就可以被用来通过bash漏洞导致任意命令执行: 1、程序在某一时刻使用bash作为脚本解释器处理环境变量赋值; 2、环境变量赋值字符串的提交取决于用户输入

    5.5K90

    Linux-Bash配置

    例如,文件内容为: [root@iZwz9ayvrn26ptadymu9ymZ ~]# cat /etc/issue \S Kernel \r on an \m 那么登录时显示的信息为: CentOS Linux7...2.3 ~/.bash_profile bash读取/etc/profile并执行之后,会读取用户个人配置文件,按照如下顺序查找,并读取找到的第一个: ~/.bash_profile ~/.bash_login...的输入按键含义(另起笔记学习)。...intr:发送interrupt(中断)信号给正在run的进程 quit:发送quit信号给正在run的进程 erase:向后删除字符 kill:删除目前指令行的文字 eof:End of file 结束输入...stop:停止目前屏幕输出 susp:发送terminal stop信号给正在run的程序 设定参数的命令为: stty [指令] [按键] 3.2 set set可以显示所有的变量,可以设置输出指令输入

    5.5K10

    Linux私房菜:走进bash

    本文内容精简、整理、摘抄、有感于《鸟哥的Linux私房菜 - 基础篇第四版》第十章 • 认识与学习BASHBash功能 命令编辑修复能力:history。...用户bash指令使用记录文件:~/.bash_history 命令与文件补全:tab 命令别名设定:alias 工作控制、前景和背景控制 程序化脚本:shell scripts 通配符:wildcard...u 向前删除全部指令 del 向后删除指令 ctrl + k 向后删除全部指令 ctrl + a 或 home 移动到指令串最前面 ctrl + e 或 end 移动到指令串最末尾 变量使用 在终端输入...,执行上一个指令,相当于↑ + Enter ctrl + u 提示符命令输入下可快速删除整行 ctrl + s 暂停屏幕的输出 ctrl + q 恢复屏幕的输出 特殊符号 bash特殊符号 说明 #...逻辑运算符:非,not >, >> 数据流输出重导向,前者是覆盖追加,后者是累记追加 <, << 数据流输入重导向 'xxx' 单引号确保了当前引用的肯定为字符串 "xxx" 双引号仍具有变量置换功能(

    2.5K20

    Linux&bash闯关CTF

    命令 第一步:写一个bash脚本,循环连接 ? 第二步:查看成功后的结果 ? 将上面的私钥保存为cert.cer供下一关使用。...发现一个可写目录 /run/lock 第三步:在/run/lock下创建一个bash脚本bandit24pwd.sh ? 第四步:添加执行权限等待执行 ?...第二十五关 描述 这一关的任务是利用目录下的key文件登入服务器,但是在登入的时候由于返回的不是/bin/bash无法进行操作,所以要想办法突破他。 命令 第一步:尝试登入 ?...在这时候我们可以输入v进入vi的编辑shell,然后使用 ":r "来读取其他文件。 ?...总结 这篇文章主要内容就是讲解了老外写的一片关于linux以及bash的命令使用的CTF,提供不同的场景使用不同的命令,这里肯定是不全的,不可能包含linux的所有命令以及所有情况,只能作为一个参看,能学多少学多少

    3K01

    Bash 读写文件 | Linux 中国

    安装 Bash 如果你在使用 Linux,你可能已经有了 Bash。如果没有,你可以在你的软件仓库里找到它。...在 Windows 上,有几种方法可以体验 Bash,包括微软官方支持的 Windows Subsystem for Linux(WSL)。 安装 Bash 后,打开你最喜欢的文本编辑器并准备开始。...使用 Bash 读取文件 除了是 shell 之外,Bash 还是一种脚本语言。有几种方法可以从 Bash 中读取数据。你可以创建一种数据流并解析输出, 或者你可以将数据加载到内存中。...在 Bash 中援引文件 当你在 Bash 中 “ 援引(source)” 一个文件时,你会让 Bash 读取文件的内容,期望它包含有效的数据,Bash 可以将这些数据放入它建立的数据模型中。...—— wxy) 例如,创建一个名为 example.sh 的文件,并输入以下内容: #!

    3.6K20
    领券