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

一个自己命令行解释器

一个自己命令行解释器 当我点开xshell运行服务器时候bash就被加载到了内存中,此后我在bash上执行所有程序都是作为bash子进程。...在bash这个进程内创建子进程,并让子进程去执行全新代码,这不就是程序替换吗? 所以我们让子进程去执行程序替换,在我们程序内执行命令,那我们不就是写了一个自己命令行解释器吗?...本文将带领各位读者通过实现一个简单命令行解释器来巩固前面所学部分知识。...如果不太懂可以去看看博主基础IO:基础IO 也就是说只要使用dup2系统调用更改fd中struct file*指向即可,当我们完善这个功能以后一个简单命令行解释器也就完成了。...start++; } } } int main() { while(1) { redirType=NON; readfile=NULL; //一个自己

1.1K10

自己一篇命令行模式文章

记得之前写过一篇设计模式文章分享,想要了解可以看下这篇文章Java之Builder模式设计实现。...分享这篇java命令行模式也要追溯到很久之前了,自己想要了解这个设计模式但是一直没有去,现在看这个设计很简单了,命令行模式就形同领导交代事情,下属接收,然后去执行,leader->employee。...没有华丽文采,还是采用易于理解风格去自己喜欢内容好了,先看下示例程序。...,仅仅输出了一句"receive leader command to invoke ";其实receiver接收命令行之后要继续接下来一系列动作了。...到这里整个命令行就写完了。 下面的示例程序,运行正确,分享这篇文章也就结束了。

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

自己封装Linux命令行万能解压命令

问题背景 Linux下经常需要解压文件,直接在命令行敲命令解压是最便捷。 但问题在于,不同压缩格式,需要用不同命令和不同参数,完全记不住啊。...似乎可以写个脚本来处理,上网一搜,果然这么现实需求早就有人想过并实现了。 看起来作者也是从别处学到,就不继续溯源了。...思路就是写个脚本来处理,如下 原文在 https://ynome.wordpress.com/2013/04/14/linux-%E9%80%9A%E7%94%A8%E8%A7%A3%E5%8E%8B/...我修改 我为了方便管理,是单独建立了一个.autoex.sh,并在.bashrc中加了 . ~/.autoex.sh 后面了解到,tar命令支持自动检测类型,于是把原脚本中tar系列命令参数,都改成了...但也有需要注意,那就是,这个脚本是靠后缀名来区分文件,要是碰到不靠谱压缩文件制作者,搞错后缀名,就可能搞不定了。 这个时候,可以用file命令查看下文件类型,再对症下药。

1.3K10

自己面试题,自己答案

这个时候,也该详解下,自己那些题目。因为题目是我自己,并不是网上摘,所以知识点比较基础,也不全面。如果大家对面试题有什么建议,欢迎指点。...在这里我想说,虽然开发上这样代码肯定会被批斗,但是面试题,考不只是开发上遇到问题,也有考一些基础知识。这道题就是其中之一。...而且,现在我也觉得还有必要知道这个知识,还没到全民 ES6 时代,抛弃 ES5 时代。...参考: 21条CSS高级技巧 css写作建议和性能优化小结 5.说下自己对模块化开发理解,以及模块化开发好处。...提高开发效率,有利团队协同开发, 避免全局变量污染,命名冲突, 方便代码复用维护等。 8.小结 面试题就是这10道,我自己解决方案也说完了。

65620

换上了自己模板

模板名字为:Yodu 有毒,优读,有读,有毒是因为这是一个代码全是我自己模板,可能会有很大问题;优读是想让自己能够更好阅读别人一些优秀文章;有读是希望更多的人能够阅读更多书籍作品来积累内含。...这个模板样子和我之前用模板几乎一致,之前那个模板是基于http://www.75team.com/大幅度修改移植,因为移植之前没有征求人家意见,所以不会发出来。...总移植别人,感受不到原作者辛苦,也感受不到完善后欣喜,于是乎,我就在想我能不能写个模板呢!...然后就开始在我发布《左雷姆右拉姆至顶至底源码》基础上开始,使用工具是sublime,测试工具360浏览器,chrome浏览器,手机安卓端Yandex浏览器和chrome浏览器。...Javascript设置: 因为加载了jquery所以这个最基本配置很简单,一个手机端菜单交互,一个搜索按钮交互,还有个对于屏幕尺寸变化触发代码 $(".sjcd").click(function

64110

Linux 定制自己Linux

# Linux 定制自己Linux # 基本介绍 通过裁剪现有Linux系统(CentOS7.6),创建属于自己min Linux小系统,可以加深我们对linux理解。...# 基本原理 启动流程介绍: 制作Linux小系统之前,再了解一下Linux启动流程: 首先Linux要通过自检,检查硬件设备有没有故障 如果有多块启动盘的话,需要在BIOS中选择启动磁盘 启动MBR...需要明确是,现在加这个硬盘在现有的Linux系统中是/dev/sdb,但是,当我们把东西全部设置好时,要把这个硬盘拔除,放在新系统上,此时,就是/dev/sda 在/dev/sdb硬盘上,将其打造成独立...Linux系统,里面的所有文件是需要拷贝进去 作为能独立运行Linux系统,内核是-定不能少,要把内核文件和initramfs文件也- -起拷到/dev/sdb.上 以上步骤完成,我们自制Linux...就完成,创建-一个新linux虛拟机,将其硬盘指向我们创建硬盘,启动即可 示意图 # 操作步骤 可以问我要操作文档

13K30

Django下重用自己app

Python包索引 (PyPI) 具有广泛包,你可以在你自己Python程序中使用。查阅一下Django Packages中已经存在可重用应用,你可以结合它们到你项目。...这意味着你可以获取已经存在Python包和Django应用并将它们融合到你自己网页项目。你只需要编写你项目的独特部分。 假设您正在开始一个新项目,需要一个像我们一直在进行投票应用程序。...你可以使用同样方法安装setuptools。 打包你应用 Python 打包 会将你应用预处理成一种特殊格式, 这样安装和使用就会变得简单。Django 自己是以非常相似的方式打包起来。...更多关于打包信息,参见Python 打包和分发项目的教程。 使用你自己包 因为,我们将polls 目录移到项目的目录之外,它不再工作了。...这个工具允许你维护多个分离Python环境,每个都具有它自己库和包命名空间。

1.2K30

一个自己springMVC?

首先,我们先看maven 依赖,没错,自己实现框架当然不用springjar包了; 并为了方便大家理解,我取名和spring原来风格多少有些类似; 首先看到annotation包,@Autowired...instanceMapping.put(beanName, clazz.newInstance());   continue;                           }   //如果自己没有起名字...; }   for (Entry entry : instanceMapping.entrySet()) {   //getDeclaredFields()获取自己声明所有字段...                field.setAccessible(true);   //自己名字   获取注解值                 String beanName...= autowired.value().trim();                   System.out.println("beanName=="+beanName);   //如果没有自己取名字

44940

一个自己springMVC

: 首先,我们先看maven 依赖,没错,自己实现框架当然不用springjar包了; 并为了方便大家理解,我取名和spring原来风格多少有些类似; 首先看到annotation包,@Autowired...instanceMapping.put(beanName, clazz.newInstance());   continue;                           }   //如果自己没有起名字...return; }   for (Entry entry : instanceMapping.entrySet()) {   //getDeclaredFields()获取自己声明所有字段...                field.setAccessible(true);   //自己名字   获取注解值                 String beanName = ...autowired.value().trim();                   System.out.println("beanName=="+beanName);   //如果没有自己取名字

1.2K140

如果你想自己Benchmark框架

简介 使用过JMH同学一定会惊叹它神奇。JMH作为一个优秀Benchmark框架带给了我们无数欢乐。作为一个有极客精神程序员,那么有没有想过去自己实现一个Benchmark框架呢?...我们知道JIT中代码是动态编译成为机器码,并且是需要一定时间。 只有JIT检测到你这是热点代码,才会对其进行优化。 我们检测代码性能,一般是指代码在稳定运行环境中情形。...因为javac编译只能做少量优化,其实大量动态优化是在JIT中做。C2相对于C1,其优化程度更深,更加激进。...Client编译和Server编译,甚至是OSR都是不同。大家在Benchmark时候一定要注意。 05 第五条军规 注意初始化对性能影响。...总结 掌握上面几条规则,相信大家也能够写出属于自己Benchmarks。 更多精彩内容 1 JVM中栈frames详解 2 Dirty cards和PLAB 3 JVM中Safepoints

65830

如何对自己代码负责

,RD将观察日志方式告知QA,QA结合自己测试过程观察抓包数据和服务器调用日志数据,如果日志能反映出一定问题后,可以联系负责对方接口功能QA同学帮忙查看,因为大部分时间环境不稳定可能因为对方正在部署...,而大部分时间都是由于下游接口在部署环境或者删除了测试数据造成,整体感觉QA同学对于RD帮助不大,同时QA同学也需要具备一定技术能力,在RD同学告知一定问题排查方式后可以尝试自己解决一些环境问题...我自己写了一个泛化RPC调用框架,可以在开发机上直连到目标服务不同环境服务进行调用,解决了因为代码合并,部署,测试数据不完整等问题,大大提高了开发测试效率。...现在团队自己写了一个脚本,可以提交linux命令分发到所有服务器去执行,这种方式好处是更符合大家用linux排查问题方式,但是如果存在服务器节点增减则需要维护这个脚本,大部分时间可能会忘掉,造成查询不到情况...代码质量进行保障,主动帮上下游同学排查自己代码功能以外问题,并及时给出反馈等。

68730

python调用自己py文件

目录 python如何调用自己py文件呢? 如果是不同目录怎么调用呢? 如果需要调用多个文件在多个目录呢?...关于__init__.py解释 关于sys.path解释 ---- python如何调用自己py文件呢?...同一个目录下直接import xx就好了,xx为自己要调用模块名字,虽然会有下划线报错,其实,没有错,仍然可以调用,之前一直都被报错吓住了 如果是不同目录怎么调用呢?...那就把需要调用那个目录添加一下,比如调用C:\xxx\a.py 那就添加一下c:\xxx路径(windows路径和linux路径符号不同\\,/,注意区别) 然后import a就行了,前面r是为了告诉...当然可以多次sys.path.append(r”C:\xxx”)来添加多个目录, 但是这样很麻烦,如果文件距离很近,比如这样就没有必要写 ?

6K40

LinuxLinux命令行git使用

Git是一个开源分布式版本控制系统,可以有效、高速地处理从很小到非常大项目版本管理。...也是Linus Torvalds雷纳斯托瓦兹为了帮助管理Linux内核开发而开发一个开放源码版本控制软件。 2. 说白了git就是一个进行项目版本管理一个软件。...) 利用*我们可以一次性将后缀为指定后缀文件进行统一性操作,例如下面我将所有后缀为.c和.h文件统一剪切到process目录下面,然后我们就可以将当前目录添加到本地仓库.git临时区域里面。...凡是在这个文件内部后缀所对应文件,都不会被上传到gitee上!...第7行modified内容表示我们刚刚修改过文件.gitignore内容 第9行Untracked代表未被管理文件,这些文件是仓库中没有的文件 2.

3.4K30

一步步打造自己linux命令行计算器

混合进制意思是,在一个表达式中同时使用多种进制,如“0x10 * 10”表示十六进制0x10乘以十进制10。 如果以上有一条你也有同感的话,那么你也应该试一下,使用命令行计算器。...命令行计算器,调用bc 只需经过简单搜索,便可以了解到,linux中原生提供了一个命令行计算器 GNU bc。 GNU bc支持高精度数字和多种数值类型(例如二进制、十进制、十六进制)输入输出。...For details type `warranty'. 1+2 3 quit zhuangqiubin@zhuangqiubin-PC:~$ echo "1+2" | bc 3 OK,get到了命令行计算器新技能了...但其实还有更好实现方式,使用python。 在命令行中,输入python,进入交互模式,即可像bc一样执行表达式,得到结果。更棒是,原生支持混合进制,不需要自己代码预处理表达式了。简单可靠。...但如果有特殊需求,也可自己拓展。 比如,当需要核对寄存器,检查某个bit时,一个个去数二进制第19位,是很费眼睛一件事。 这个时候就需要更加直观输出,可以一眼看到某个bit是0还是1。

96420

Linux命令行艺术

熟练使用命令行是一种常常被忽视或被认为难以掌握技能,但实际上,它可以提高你作为工程师灵活性以及生产力。本文是一份我在 Linux 上工作时发现一些关于命令行使用小技巧摘要。...必读 涵盖范围: * 这篇文章对刚接触命令行新手以及具有命令行使用经验的人都有用处。...其他 shell 可能很好用,但 Bash 功能强大且几乎所有情况下都是可用 ( 只学习 zsh,fish 或其他 shell 的话,在你自己电脑上会显得很方便,但在很多情况下会限制你,比如当你需要在服务器上工作时...了解语言环境对许多命令行工具微妙影响,包括排序顺序和性能。大多数 Linux 安装过程会将 LANG 或其他有关变量设置为符合本地设置。意识到当你改变语言环境时,排序结果可能会改变。...如果你想在 Bash 命令行 tab 制表符,按下 ctrl-v [Tab] 或键入 $'\t' (后者可能更好,因为你可以复制粘贴它)。 标准源代码对比及合并工具是 diff 和 patch。

6.9K72
领券