首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【Linux】shell命令行简单解释器

回顾一下,我们前面学习了进程创建,进程终止,进程等待,进程替换,通过这些内容我们可以来进行实现简单的shell命令行解释器!!!...下面我们直接来看一看如何去实现shell命令行解释器: 总体分为(整体需要循环哦): 1.输出提示符 2.输入和获取命令 3.fork创建子进程 4.内建命令 ---- 输出提示符 这里的提示字符为用户名...\n也读取到了,直接进行处理即可,清除最后一个\n lineCommand[strlen(lineCommand)-1] = 0; 获取 输入之后,我们自然需要去进行获取,我们需要分割命令行...shell运行原理 同时,在理解一下shell的运行原理:shell内部提取命令行做分析,然后调用exec. shell执行命令必须通过创建子进程,如果不创建子进程会把我们所有的shell全部替换,所以执行命令时一般磁盘上的程序必须创建子进程...没有发生改变是因为自己写的shell执行很多命令都要fork()创建子进程,让子进程执行的cd,子进程有自己的工作目录,所以更改的子进程的目录,子进程执行完毕,继续用的是父进程,既shell,并没有影响父进程

19030

Linux之模拟shell命令行解释器

前言 本文是基于前面介绍过的关于进程创建、进程终止、进程等待、进程替换等知识,尝试做的一个简单的shell命令解释器。...答:如果不创建子进程,而是让bash直接去执行进程,会将我们的bash直接替换为其他程序,shell就不能继续正常执行其他指令了(就回不到输入界面了)。...四、内建命令 我们在运行自己写的shell,输入cd ../cd path等命令时,发现路径并没有发生修改,这是为啥?...答:因为我们自己写的shell,执行很多命令都要用fork创建子进程,让子进程去执行。当子进程执行cd命令时,更改的时子进程的工作目录而与父进程无关,因此父进程的路径并不会发生修改。...status); 72 } 73 return 0; 74 } 运行: 文件tt.c 总结 以上就是今天要讲的内容,本文介绍了如何实现一个简单的shell

19820

shell 脚本做命令行工具扩展

就在我一愁莫展的时候,安全组的同事提供了一个基于企业网盘的命令行工具,可以通过命令行的方式上传下载文件,在 mac 上还有桌面端可以用。...另一方面,在服务器使用命令行也可以 SSO 免登录直接上传下载: $ bst_tool --help 当前用户:yunhai Bxxxx Secure Transmission tool....: source ~/.bash_bst 这样我就可以在命令行使用 bstxx 系列命令代替笨重的 bst_tool xxx 了 (后者仍可用),而且这套 alias 拓展了原命令的功能,使用 bstput...Shell判断文件或目录是否存在 [2]. shell 字符串包含 [3]. 那些年我用awk时踩过的坑——awk使用注意事项 [4]. shell脚本中如何使用alias [5]....Linux_shell自动输入y或yes [6]. awk使用shell变量及shell使用awk中的变量 [7]. Shell高级语法:awk配合eval实现快速变量

1.2K30

Shell特殊变量和命令行参数详解

1.shell变量基础 shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。...shell变量可分为两类:局部变量和环境变量。 局部变量只在创建它们的shell中可用;而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。...对shell变量的引用方式很多,用这些方式可以方便的获取shell变量的值,变量值的长度,变量的一个字串,变量被部分替换后的值等等。...EUID:展开为在shell启动时被初始化的当前用户的有效ID GROUPS:当前用户所属的组 HISTFILE:指定保存命令行历史的文件。默认值是~/.bash_history。...如果被复位,交互式shell退出时将不保存命令行历史 HISTSIZE:记录在命令行历史文件中的命令数。默认是500 HOME:主目录。

2.5K60

Linux shell 中的极品!高效的命令行~

ZSH代表Z Shell,它是类Unix操作系统的shell程序。ZSH是Bourne Shell的扩展版本,结合了BASH,KSH和TSH的某些功能。 Zsh功能 命令行完成。...可以在所有shell之间共享历史记录。 扩展文件匹配。 更好的变量和数组处理。 与bourne shell之类的shell兼容。 拼写更正和自动填充命令名称。 命名目录。...安装ZSH将不会修改并将其设置为默认shell。我们必须修改设置,使ZSH为默认shell。使用带有'-s'标签的" chsh "命令为用户切换默认shell。...像这样,您必须修改完成系统、密钥和常见shell选项的配置。完成后按“0”保存所有的更改。 安装现在已经完成,它将把您带到shell。...如何恢复到旧的Bash Shell 如果您想要恢复到旧shell,您必须遵循以下步骤。

2.7K20

通过 Tinker 实现 Laravel 命令行交互式 Shell

REPL 与 PsySH Laravel 自带了一个功能强大的 REPL —— Tinker,所谓 REPL,是 Read–Eval–Print-Loop 的缩写,这是一种交互式 Shell:获取用户输入并执行它们...在使用 PsySH 之前,需要通过 Composer 全局安装: composer g require psy/psysh:@stable 然后就可以在命令行执行 psysh 进入交互式 Shell...Laravel Tinker 就是基于 PsySH 实现的,与 Artisan 主要用于编写和执行 Artisan 命令不同,通过 Tinker,我们可以在命令行中实现与 Laravel 应用的各种交互...在命令行中通过 php artisan tinker 即可进入 Laravel Tinker 的交互式 Shell。...接下来要介绍的,则是 Tinker 最有用的功能了,我们可以在 Tinker Shell 中演练测试 Laravel 代码。

1.8K30

linux命令行shell脚本编程大全和鸟哥的私房菜_linux进入命令行

,R运行,S休眠,T跟踪或停止,Z僵化); %CPU:进程使用CPU时间比例; %MEM:进程使用的内存占用内存的比例; TIME+:自进程启动到目前位置的CPU时间总量; COMMAND:进程对应的命令行名称...环境变量的定位 : 登录时作为默认登录shell的启动文件为/etc/profile, 作为非登录shell的交互式shell(如在命令行敲入bash时启动),它不会访问/etc/profile文件,只会检查用户...非交互式shell使用的BASH_ENV环境变量,它可以继承父shell导出过的变量,使用当前shell的局部变量和全局变量。...创建分区 : fdisk 创建文件系统(格式化) : mkfs.vfat(格式化u盘,文件系统fat), mkfs.ext3(文件系统ext3) 七、安装软件程序 使用aptitude 管理软件包 在命令行输入...done done ## break n: 命令可以跳出内部和外部循环,n默认为1,表示跳出当前循环,如果将n设为2,break命令会停止下一级的外部循环 ## continue n: 命令允许通过命令行参数指定要继续执行哪一级循环

2.3K30
领券