简单的shell练习】的更多相关文章

如何写一个简单的shell 看完<UNIX环境高级编程>后我就一直想写一个简单的shell来作为练习,因为有事断断续续的写了好几个月,如今写了差不多来总结一下. 源代码放在了Github: https://github.com/Broglie/Oh-Shell 简单的分析 我们的shell不像bash那样复杂全面,只是实现其中的一小部分功能:命令历史,命令补全,支持IO重定向和管道.一共分成几个部分:主 函数文件,输出出错信息,解析命令等. 我们打开bash对照着做,首先bash有命令提示符,…
简单的 shell script 练习 简单范例 对谈式脚本:变量内容由使用者决定 [root@www scripts]# vi sh02.sh #!/bin/bash # Program: # User inputs his first name and last name. Program shows his full name. # History: # 2005/08/23 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/u…
一个简单的shell脚本 一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[KANO@kelvin ~]$ who2.KANO tty1 2016-02-15 01:47 (:0)3.KANO pts/0 2016-02-15 01:48 (kelvin) 当然在个人电脑上,所列出来的列表可能只有上面这么短.但是在一些大型.多用户的系统上,所列出的列表就可能很长.这个时候我们可以使用自动计算用户总数.wc是一个字数计算程序,它可…
不看笔记,长时间不用自己都忘了,还是得经常看看笔记啊. 一个简单的shell程序 shell结构 1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建shell程序的步骤 第一步:创建一个包含命令和控制结构的文件 第二步:修改这个文件的权限使它可以执行. 使用chmod u+x 第三步:执行shell sh /test/example.sh   Shell变量 变量:是shell传递数据的一种方法,用来代表每个取值的符号名 shell有两类变量:临时变量和永久变量 临时变量是…
编辑简单的 shell程序 知道了vi编辑器的使用规则之后,结合shell的使用规则,可以编辑简单的 shell程序试试手 题目如下: 1.用while语句创建一个根据输入的数值求累加和(1+2+3+....+n)的shell程序. Shell程序如下: #!/bin/bash #filename:ab echo -n "please input Number :" read NUM number=0 sum=0 while [ $number -le $NUM ] do number…
程序:实现简单的shell sed替换功能 #实现简单的shell sed替换功能,保存为file_sed.py #打开命令行输入python file_sed.py 我 Alex,回车后会把文件中的“我”全部替换为“Alex” import sys find_str=sys.argv[1] replace_str=sys.argv[2] f=open("yesterday.txt",'r',encoding='UTF-8') f_new=open("yesterday.ba…
使用已学习的各种C函数实现一个简单的交互式Shell,要求:1.给出提示符,让用户输入一行命令,识别程序名和参数并调用适当的exec函数执行程序,待执行完成后再次给出提示符.2.该程序可识别和处理以下符号:1) 简单的标准输入输出重定向:仿照例 "父子进程ls | wc -l",先dup2然后exec.2) 管道(|):Shell进程先调用pipe创建管道,然后fork出两个子进程.一个子进程关闭读端,调用dup2将写端赋给标准输出,另一个子进程关闭写端,调用dup2把读端赋给标准输入…
1.需求 程序1: 实现简单的shell sed替换功能 file1 的内容copy到file2 输入参数./sed.py  $1  $2 $1替换成$2 (把a替换成% ) 2.个人思路 open file 1 2 file1 内容 copy 到 file2 read 每一行 , if a in line: a替换% 关闭file1 file2 代码 f1 = open('yes.txt','r+',encoding='utf-8') f_new = open('yes2.txt','w',e…
把写代码过程中经常用到的一些代码段做个记录,如下代码段是关于python定义的一个简单的shell函数的代码. pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = pipe.communicate() return pipe.returncode, stdout, stderr…
# -*- coding:utf-8 -*- # Author: JACK ZHAO # 程序1: 实现简单的shell sed替换功能 import sys #判断参数个数 if len(sys.argv) != 3: print("Usage: python_sed.py 'old string' 'net string'") exit() #读取所有行至内存中 with open("yesterday","r",encoding='utf-…
grep echo 重定向与管道 tr 特殊文件:/dev/null,/dev/tty 基本命令查找 访问shell脚本的参数 简单的执行跟踪: set -x set +x…
进程的相关知识是操作系统一个重要的模块.在理解进程概念同时,还需了解如何控制进程.对于进程控制,通常分成1.进程创建  (fork函数) 2.进程等待(wait系列) 3.进程替换(exec系列) 4.进程退出(exit系列,return)四个方面.在大致熟悉进程控制之后,便可基于此 ,来模拟使用一个简单的myshell,实现简单的命令解析. 在此之前,先来简单回顾进程控制一些基本方法 进程控制 (1)进程创建 进程创建一般通过fork来实现,(关于fork,前面有本人一点小小总结:戳=>,这里…
不知不觉两周没有发文了,因为“一万美金的福特奖学金答辩”,ACM比赛,网络论文阅读和网络大作业一大堆事把时间冲散了,所以先写一篇博文补上之前一坑. 之前发了一篇关于linux 用C语言实现简单shell的博文,当时因为刚刚接触linux,只是处理了: 1)外部命令 2)pwd,cd,exit内置命令 3)输入输出重定向 并且代码相比较而言是一步一步添加的,代码相对来讲比较丑QAQ,所以在学完管道之后,相信不得不重新写代码才能实现了. 相比较之前的版本我对代码进行了相关的修改: 1)对于shell…
http://blog.csdn.net/xiaominghimi/article/details/7603000 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/shell/759.html ☞ 点击订阅 ☜ 本博客最新动态!及时将最新博文通知您! 本章节分享Shell 学习篇,那么对于Shell 简单介绍下,对于Shell来说,大家可以理解Shell 是一个命令解释器,类似于DOS下的comm…
在了解了linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了 Shell既为一种命令解释解释工具,又是一种脚本编程语言,用各种shell下的命令和一些特定的语法结构就可以组成一个Shell脚本程序,shell脚本程序是一个纯文本文件,但在执行之前不需要任何操作.我们可以通过写一些脚本来让我们更方便的对文件进行操作,以及做一些shell的测试. 1:打开终端,进入保存程序的目录,命令行输入 vi test.sh(Sh…
Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将多个Linux命令组合保存成一个脚本文件,可直接给其他人使用. 组合命令 进入一个目录,查看目录的文件,这个过程分别需要执行两条命令,分别是cd 和ls. 分开执行两个命令的形式如下: [root@lincoding usr]# cd /usr/ [root@lincoding usr]# [roo…
Linux下的,环境是 Fedora 实现了基本的内部命令功能,及比较完善的内部命令框架. 类似于MFC消息映射表的方式,写完一个内部命令,只需要向这个头文件中,导入一个头文件,再写入命令处理函数,就可以把一个内部命令插入到内部命令表中 .好歹我也是看过猴姐书的人.... 我的程序现在的缺点就是,不能执行终端的管道操作和重定向操作. 管道操作和重定向操作其实很简单.但是问题在于,管道操作是可以无上限的 比如:    ls | grep e | grep s | grep . | grep i |…
实验目的 了解bin/hadoop脚本的原理 学会使用fs shell脚本进行基本操作 学习使用hadoop shell进行简单的统计计算 实验原理 1.hadoop的shell脚本 当hadoop集群正常工作后,我们就可以使用hadoop进行我们需要的操作.我们的操作主要分为两种,第一种是使用shell命令,另一种是通过hadoop提供的javaAPI,这两种方式大家都必须掌握,今天主要是学会使用hdfs的shell脚本. 在hadoop安装目录的bin目录下有个hadoop文件,这个文件就是…
之所以有这一篇文章,是因为之前我写过的一篇文章:“解决Mac上打开txt文件乱码问题”:传送门: https://www.cnblogs.com/chester-cs/p/11784079.html 当时我们已经了解到乱码的问题是来源于文本在windows上和macos上的编码不同.前者是GB18030,后者是UTF-8.并且我们也解决了问题:使用命令行程序iconv.可是我每次想要进行文本转换的时候特别的麻烦:首先打开我的博客找到那篇文章(因为我记不住语法),然后在命令行里面键入命令,稍作修改…
需求: 1.使python具有shell中sed替换功能. #!/usr/bin/env python #_*_conding:utf-8_*_ #sys模块用于传递参数,os模块用于与系统交互. import sys,os old_file = sys.argv[1] new_file = sys.argv[2] file_path = sys.argv[3] f = open(file_path,"r") f1 = open("back","a+&qu…
下面是工作中用到的链接数据库的shell程序. #!/bin/bash ] ; then echo "prase is wrong ,please check first" exit fi#知识点: 1,$#代表了命令行的参数数量 2,-le表示小于等于,拓展 lt表示小于,gt表示大于,ge表示大于等于,eq表示等于,ne表示不等于 if [ "$1"x != "online"x ] && [ "$1"x !…
一 分析 要实现一个shell,需包含3个步骤 1)读入指令 2)指令解析 3)执行指令 1 从键盘读入指令 从键盘读入指令的几个要点: 1)调用getc函数等待并获取用户键盘输入. 2)每一行命令的结束符为'\n',getsline函数就是通过这个结束符来判断用户是否完成指令的输入. #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { ); char* prompt = &qu…
概要:分别的作用 grep:文本过滤(模式:pattern)工具,grep,egrep,fgrep,擅长过滤. sed:stream editor 文本编辑工具:(流编辑器),擅长取行.替换. awk:linux上的实现gawk,文件报告生成器:(独立的编程语言),过滤内容,擅长取列. find:linux上实时查找工具,通过便利指定路径下得文件系统完成文件查找. 三.grep 文本过滤(模式:pattern)工具,grep,egrep,fgrep 文本搜索工具,根据用户指定的模式对目标文本逐行…
概要:分别的作用 grep:文本过滤(模式:pattern)工具,grep,egrep,fgrep,擅长过滤. sed:stream editor 文本编辑工具:(流编辑器),擅长取行.替换. awk:linux上的实现gawk,文件报告生成器:(独立的编程语言),过滤内容,擅长取列. find: linux上实时查找工具,通过便利指定路径下得文件系统完成文件查找. 一.awk awk能够进行文本处理和报表生产,经常用在linux日常处理的工作中 1.语法参数格式为:awk 'pattern +…
发一波福利,操作系统的实验内容,大家可以借鉴一下,不过我的代码可能也存在一定的问题. 因为在一开始老师是一节一节课教的,当时并不知道后面还会用输入输出重定向,管道等一系列问题,我的兴趣也不在这个方面也没有预习,所以一来代码写的比较丑,二来没有对于代码进行一个合理的规划,写的也比较乱. 代码暂时实现到输入输出重定向,之后可能会加上管道处理等方面的程序. 如果让我重新写这段代码应该会规划的更好一点吧 /*author:Samsons date:2015.4.10*/ #include <stdio.…
1.模拟linnux登录shell #/bin/bashecho -n "login:" read nameecho -n "password:"read passwdif [ $name = "cht" -a $passwd = "abc" ];thenecho "the host and password is right!"else echo "input is error!"fi…
该shell脚本有如下点: bash or dash case语句的写法 脚本help写法 参数是否为空的写法 算数运算的写法 #! /bin/bash case "$1" in -h|--help|?) echo "Usage: 1st arg:pin name, 2st arg:reset time" echo "1st arg pin name:lte-reset,zigbee-reset" echo "2st arg reset…
为避免日志过大,需要按天分割日志,定时计划任务脚本如下: /data/shell/backup_yesterday_nginx_log.sh declare logs_path="/data/log/nginx";#declare need_delete_path=${logs_path}/$(date -d "7 days ago" "+%Y_%m_%d");#declare yestoday_log_path=${logs_path}/$(d…
1,重启tomcat 脚本: pid=`ps -ef|grep tomcat |grep -v grep |awk '{print $2}'` ##取tomcat的进程号,awk处理字符串 ,取一行的第2列,是tomcat进程号,grep -v grep 是去掉grep自身启动的进程号,1旁边的点`,括起来,代表是命令,取到的进程号赋给pid这个变量 if ${pid} then kill -9  ${pid} echo "tomcat stop"   ##打印一条语句出来 sh /u…
如何写一个shell文件,写一个小脚本 1.新建一个脚本文件:vi demo.sh 2.追加执行权限: chmod u+x demo.sh 3.执行脚本:./demo.sh 4.什么是脚本?把一堆命令放到一个文件里面,然后只需要执行文件就可以. 5.脚本的目的?尽可能的简化我们的操作,让效率更高. 6.test ls  检测该条命令是否成功 7.echo $? 检测上一条命令是否成功  ,打印为0 代表成功,只要不是0都是失败的. 8.test  'a'='a'    >> [[  'a' =…