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

简单模拟实现shell(Linux)

目录​​​​​​​ 前言 展示效果 实现代码 前言 该代码模拟了shell实现,也就是解析类似于“ls -a -l"命令,当我们启动我们自己写shell可执行程序时,我们输入"ls"命令,也可以展示出在...shell中输入"ls"时同样效果,一下为展示效果 展示效果 当我们在系统shell下输入"ls"时,会显示 以下代码是我自主模拟实现shell程序执行"ls"命令时情况 是不是很类似呢...,感兴趣同学可以看看以下代码,自己也模仿模仿哦ε=ε=ε=(~ ̄▽ ̄)~ 实现代码 #include #include #include <unistd.h.../0.shell或者软件,只要启动了,使用者不去终止,就始终不能停止,因此要一个死循环 while (1) { //1.打印类似于shell命令行前 [xkjtx@locathost...shell@] 信息 printf("[xkjtx@locatehost myshell]# ");//不要换行,否则就不像shell了,用fflush去刷新缓冲区,避免没有'\n'而导致不输出

16110

Linux shell ${}简单用法

Linux shell ${}简单用法 [转]http://linux.chinaunix.net/techdoc/develop/2007/05/05/956956.shtml 为了完整起见,我这里再用一些例子加以说明...${ } 一些特异功能: 假设我们定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 我们可以用 ${ } 分别替换获得不同值: ${file#*/}:拿掉第一条.../ 及其左边字符串:dir1/dir2/dir3/my.file.txt ${file##*/}:拿掉最后一条 / 及其左边字符串:my.file.txt ${file#*.}...及其左边字符串:txt ${file%/*}:拿掉最后条 / 及其右边字符串:/dir1/dir2/dir3 ${file%%/*}:拿掉第一条 / 及其右边字符串:(空值) ${file%...${file:0:5}:提取最左边 5 个字节:/dir1 ${file:5:5}:提取第 5 个字节右边连续 5 个字节:/dir2 我们也可以对变量值里字符串作替换: ${file/dir

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

    Linux shell 实现HTTP服务

    解决思路 (1)编写一个shell脚本,检查 mysql 状态,然后输出结果,例如状态正常时,返回状态码200及正确信息,否则返回状态码503及错误信息 (2)实现一个HTTP服务,有请求连接后,调用上面的检查脚本...,返回检查结果 (3)HAProxy 访问这个HTTP服务,根据返回结果信息来判断这个 mysql 是否可用 如何方便快速实现一个可以调用shell脚本HTTP服务呢?...比较通用方案就是 xinetd xinetd 是 Linux 守护进程,全称为 extended interent daemon,扩展网络守护进程 xinetd 可以打开一个端口,等待连接,你可以告诉...状态信息 xinetd 配置案例 下面实现一个简单 xinetd 示例,开放 9200 端口,返回一个测试脚本输出内容 如果机器上还没有 xinetd,先安装一下,centos7 下可以使用命令...可以正确输出脚本执行内容,完成示例 github 分享了自己是如何使用 HAProxy 感知 Mysql ,有兴趣朋友可以仔细看一下,文章地址 http://githubengineering.com

    2.4K40

    Linux Shell命令自动补全实现

    背景介绍 最近在完成一个由linux shell脚本编写工具时,发现在实现多个功能时,冗长多个参数不仅难记而且大小写混杂,虽然“悉心”地写了完备'-h'帮助文档,但是为了实现其中一个功能,仍然需要输入多个冗长字符串来定位某个大选项下小选项所对应功能...实现思路 在 linux shell 下本身有着体验极佳命令补全功能,即[Tab][Tab]。现通过自定义该程序命令补全脚本实现命令补全。...重点说明 执行shell 函数,函数中生成COMPREPLY作为候选补全结果 compgen(筛选命令) 用来筛选生成匹配单词候选补全结果 [root@localhost ~]# help compgen...COMP_CWORD 类型为整数,当前输入单词在COMP_WORDS中索引 COMPREPLY 类型为数组,候选补全结果 COMP_WORDBREAKS 类型为字符串,表示单词之间分隔符 COMP_LINE...类型为字符串,表示当前命令行输入字符 COMP_POINT 类型为整数,表示光标在当前命令行哪个位置 实例 注:本示例只针对实际应用场景做了简单实现,做个思路引子。

    5.8K31

    40 个简单又有效 Linux Shell 脚本示例

    Linux 提供了各种功能强大 shell,包括 Bash、Zsh、Tcsh 和 Ksh。这些外壳最令人惊讶特性之一是其可编程性。...创建简单而有效 Linux shell 脚本来处理日常工作非常容易。 1、Hello World 程序员经常通过学习 hello world 程序来学习新语言。...23、从 Bash 脚本创建目录 使用 shell 脚本运行系统命令能力使开发人员工作效率大大提高。下面的简单示例将向您展示如何在 shell 脚本中创建目录。 #!...29、从 Shell 脚本发送邮件 从 bash 脚本发送电子邮件非常简单。下面的简单示例将演示一种从 bash 应用程序执行此操作方法。 #!...下面的简单 shell 脚本将向您展示如何做到这一点。 #!

    30910

    Linuxshell命令行简单解释器

    回顾一下,我们前面学习了进程创建,进程终止,进程等待,进程替换,通过这些内容我们可以来进行实现简单shell命令行解释器!!!...下面我们直接来看一看如何去实现shell命令行解释器: 总体分为(整体需要循环哦): 1.输出提示符 2.输入和获取命令 3.fork创建子进程 4.内建命令 ---- 输出提示符 这里提示字符为用户名...shell运行原理 同时,在理解一下shell运行原理:shell内部提取命令行做分析,然后调用exec. shell执行命令必须通过创建子进程,如果不创建子进程会把我们所有的shell全部替换,所以执行命令时一般磁盘上程序必须创建子进程...没有发生改变是因为自己写shell执行很多命令都要fork()创建子进程,让子进程执行cd,子进程有自己工作目录,所以更改子进程目录,子进程执行完毕,继续用是父进程,既shell,并没有影响父进程...本质就是执行系统接口,我们可以调用一个系统接口chdir,可解决上述问题: 简易shell——代码实现 #include #include #include

    22330

    Linux日志轮循实现shell

    Linux系统中,日志使用非常频繁,那么对日志就需要一定策略管理,包括存放目录设计,log文件命名规则,历史log文件存放,log目录容量限制,另外还有日志轮循。...日志轮循就是,将过期log文件以新文件名存放,创建一个新log文件供应用使用,同时合理管理存储历史log文件个数。 用shell脚本实现日志轮循功能: 01....里面包含各个变量是日志轮循各种属性,有轮循频率,保存历史log文件个数,需要进行轮循日志目录,是否进入当前日志目录子目录进行轮循,日志目录存储容量大小限制,日志文件权限。 02....shell笔记 01. 函数两种返回方式:echo 和return。echo值可以通过ret=echo $(fun arg1 arg2)来得到,return值存于$?中,ret=$?...得到,是函数退出状态,只可以是0~256整数,并且函数在return后退出。 02. grep -w 内容中有"/"则视作两个单词。

    1.7K50

    一种简单使用Linux shell生成UUID方法

    Linux本身有一个生成随机数设备,也就是/dev/random或者/dev/urandom。通过读取这个随机数设备我们就不需要安装任何加密库就能得到随机数了,也能用它生成UUID字符串。...这里我所说UUID是一种类似的随机字符串,并没有完全按照UUID标准实现,但是只要修改一下也是可以轻松实现。...生成UUID 先来看看生成所使用shell命令 cat /dev/urandom | od -x | head -1 | awk '{print $2$3"-"$4$5"-"$6$7"-"$8$9}'...[生成格式化UUID字符串] 总结 这行命令能够在mac OS和Linux系统上运行,不同平台之间可能输出格式有所不同,只要awk命令部分稍加修改就可以。...即使在嵌入式系统中也能正常使用,因为这四个命令默认是busybox自带。对于空间紧张嵌入式系统来说,这个方法既简单又安全,几乎不占用额外存储空间。

    3K40

    Linux Shell(二)——Shell环境配置

    ,可以使用history命令查看: history 参数 n:列出最近n条命令 -c:删除目前shell全部命令 -raw fileName:将目前shell命令写入指定文件中,若未指定文件则写入...5.2 login shell与non-login shell区别? login shell和non-login shell是两种shell登录方式,它们登录后加载环境配置文件有所不同。...5.2.1 login shell 在获取bash前需要进行一套完整登录过程,这个登录过程就称为login shell。所谓“完整登录过程”指需要输入用户名和密码。...5.2.2 non-login shell 获取bash不需要输入密码登录过程称为non-login shell。...~/.bash_profile:用户个人环境变量(login shell才会读) 当/etc/profile中环境变量加载完毕后就会加载本文件,本文件中定义了当前用户环境变量。

    12.1K50

    Linux】模拟实现一个shell

    这里的话就简单讲一下吧,shell简单点来说,就是一个你老板一个秘书,这里老板也能够看作是内核,你想要让你老板有什么行为的话,你报告换句话说就是你得将你命令行代码给到你老板秘书,也就是shell...2、shell实现概括 对于shell实现来说,每一次命令行输入,都会对应着有着一段运行结果。...按照这样方法的话,我就能够奠定了我们实现shell主要实现方向。...这样的话能够实现简单内建命令。那我们该怎么去执行内建命令之外命令呢?当然是使用进程替换!...shell指令完全自我实现了,其中当然也会有很多不足地方,但是基本上内容都已经实现

    11310

    Linux——shell

    什么是shellshell是系统用户界面,提供了用户与内核进行交互操作一种接口(命令解释器) 。它接收用户输入命令并把它送入内核去执行。起着用户与系统之间进行交互作用。 ?...shell功能: 命令行解释 命令多种执行顺序 通配符 命令补全、别名机制、命令历史 I/O重定向 管道 命令替换(` ` 或$( ) ) shell编程语言 shell可以执行——内部命令、外部命令...shell命令分为: 内部(内置)命令 内部命令是shell本身包含一些命令,这些内部命令代码是整个shell代码一个组成部分; 内部命令执行是shell通过执行自己代码中相应部分来完成...外部(外置)命令 外部命令代码则存放在一些二进制可执行文件或者shell脚本中; 外部命令执行时,shell会在文件系统中指定一些目录去搜索相应文件,然后调入内存执行。...也可以通过ls命令查看这些shell详细信息 #ls –al /bin/sh lrwxrwxrwx 1 root root  4 10月 8  2017  /bin/sh->bash Shell搜索目录名字都保存在一个

    10.7K30
    领券