自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 用python开发一个自己的shell(上)

我很好奇 shell(比如 bash、cash等)内部的工作原理,所以我用 Python 实现了yosh(Your Own Shell)来满足自己的好奇心。我在本文中阐释的概念同样适用于其他语言。Step 0: 项目结构在这个项目中,我使用了下面的结构:yosh_project 是项目根文件夹(你也可以用 yosh 来命名)。yosh 是包文件夹,__init__.py

2016-08-31 15:30:39 2885

原创 linux中如何写一个运行在终端里私人的英语字典(翻译)

首先给大家介绍一个翻译的网站,我经常使用的,海词词典(http://dict.cn/ ),接下来我就使用海词词典来进行脚本的编写,编写脚本的方法有很多,可以用shell,python,这里我使用shell来进行编写,python的源代码我也会提供出来,供大家选择修改。首先大家可以看一下效果:1.那么我是如何实现的呢,看一下源代码:(是不是感觉源代码非常简单)这里有一个curl,我们可以

2016-08-30 17:00:48 1548

转载 linux sed命令详解

简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 

2016-08-30 15:46:22 267

原创 shell脚本学习12——文件包含

像其他语言一样,Shell 也可以包含外部脚本,将外部脚本的内容合并到当前脚本。Shell 中包含脚本可以使用:. filename或source filename两种方式的效果相同,简单起见,一般使用点号(.),但是注意点号(.)和文件名中间有一空格。例如,创建两个脚本,一个是被调用脚本 subscript.sh,内容如下:

2016-08-30 12:52:24 388

原创 shell脚本学习11——输入输出重定向

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。输出重定向命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。命令输出重定向的语法为:$ command > file这样,输出到显示器的内容就可以被重定向到文件。

2016-08-30 12:50:12 2369

原创 shell脚本学习10——函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,Shell 也支持函数。Shell 函数必须先定义后使用。Shell 函数的定义格式如下:function_name () { list of commands [ return value ]}如果你愿意,也可以在函数名前加上关键字 function:fu

2016-08-30 12:40:42 1178

原创 shell脚本学习9——循环指令:for、while、until

1、for循环与其他编程语言类似,Shell支持for循环。for循环一般格式为:for 变量 in 列表do command1 command2 ... commandNdone列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。in 列表是可选的,如果不用它,for 循环使用命令

2016-08-30 12:29:01 1451

原创 shell脚本学习8——分支语句:if else和case esac

1、if语句if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:if ... fi 语句;if ... else ... fi 语句;if ... elif ... else ... fi 语句。1) if ... else 语句if ... else 语句的语法:if [ expression ]then

2016-08-30 11:52:08 1352

原创 shell脚本学习7——显示指令:echo和printf

1、echo指令echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。命令格式:echo arg您可以使用echo实现更复杂的输出格式控制。显示转义字符echo "\"It is a test\""结果将是:"It is a test"双引号也可以省略。显示变量name="OK"echo "$

2016-08-30 11:48:01 3379

原创 shell脚本学习6——数组

Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。定义数组在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:    array_name

2016-08-30 11:46:26 448

原创 shell脚本学习5——字符串和注释

1、shell注释以“#”开头的行就是注释,会被解释器忽略。sh里没有多行注释,只能每一行加一个#号。只能像这样:纯文本复制#--------------------------------------------# 这是一个自动打ipa的脚本,基于webfrogs的ipa-build书写:# https://github.com/webfrogs/xcode_

2016-08-30 11:38:24 608

原创 shell脚本学习4——shell运算符

Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加:#!/bin/bashval=`expr 2 + 2`echo "Total v

2016-08-30 11:36:45 419

原创 shell脚本学习3——Shell替换

Shell替换:Shell变量替换,命令替换,转义字符如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。举个例子:#!/bin/basha=10echo -e "Value of a is $a \n"运行结果:Value of a is 10这里 -e 表示对转义字符进行替换。如果不

2016-08-30 11:23:01 440

原创 shell脚本学习2——变量

Shell支持自定义变量。定义变量定义变量时,变量名不加美元符号($),如:variableName="value"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help

2016-08-30 11:13:41 561

原创 shell脚本语言学习1——第一个shell脚本

打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。输入一些代码:#!/bin/bashecho "Hello World !"“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于向窗口输出文本。

2016-08-30 11:08:47 1009

原创 shell脚本语言学习0——概括

1、shell简介:Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Unix/Linux系统内核的一

2016-08-30 10:54:00 740

原创 linux系统调用、库函数和内核函数关系与区别

看系统调用,还有库函数,以前一直不明白,总是以为 系统调用跟库函数是一样的,但是今天才知道是不一样的。库函数也就是我们通常所说的应用编程接口API,它其实就是一个函数定义,比如常见read()、write()等函数说明了如何获得一个给定的服务,但是系统调用是通过软中断向内核发出一个明确的请求,再者系统调用是在内核完成的,而用户态的函数是在函数库完成的。系统调用发生在内核空间,因此如

2016-08-25 10:33:17 2029

转载 python+Django的web开发实例

一、创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置。也就是通过自动生成代码来建立一个Django项目--一个Django项目的设置集,包含了数据库配置、Django详细选项设置和应用 特性配置,具体操作步骤如下所示。1.新建Django项目选择sqlite数据库2.创建网站模块app3.测试新建的模块是否正常Vali

2016-08-23 15:58:41 77743 2

原创 window下配置Python+ Django + Eclipse环境

一、配置开发环境我的开发环境是:Python2.6.7 + Django1.6.2 + Eclipse1、安装Python2、安装Eclipse的Python插件PyDev如上两步如何操作请点击此进行了解 3、安装Django—Python,用来开发web网站 下载地址:https://www.djangoproject.com/download/下载完成后解压,在do

2016-08-23 15:51:00 974

转载 Arduino+GPRS 远程数据采集系统

【爱好者】Arduino+GPRS 的环境监控方案 原文地址:http://www.geek-workshop.com/thread-3829-1-1.html设备前台界面:http://www.lewei50.com/home/gatewaystatus/361#576本实采用的硬件,除了一个串口模块以外(约200元),其他均可

2016-08-22 20:15:35 11446

转载 qt入门 layout布局

开发一个图形界面应用程序,界面的布局影响到界面的美观。在设计一个界面之前,应该考虑到开发的界面可能给不用的用户使用,而用户的屏幕大小、纵横比例、分辨率可能不同,界面还可能是可缩放的,程序应该可以适应这些变化。        前面的程序中都是使用setGeometry()方法定位控件的位置,这个方法比较笨拙。试想如果控件很多,布局这些控件需要编写大量的代码。幸运的是,QT提供了更好的方法布局控件

2016-08-18 14:48:19 1797

原创 mysql 外键说明与实例

一,什么是foreign key,及其完整性个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强。关于完整性,关连性我举个例子,大家就会明白了。有二张表,一张是用户表,一张是订单表:1,如果我删除了用户表里的用户,那么订单表里面根这个用户有关的数据,就成了无头数据了,不完整了。

2016-08-18 12:35:32 831

原创 Linux下(8086)寄存器详解

开始读Linux内核相关书籍时,我却越来越觉得为了搞清楚Linux内核相关设计和运行原理,自己那点自学来的汇编知识不但不够,还大大的需要补充。本文是我今日对微处理器寄存器学习总结所得,主要是翻译自《Intel 微处理器英文第7版》,阅读的过程中我参考了网上可以下载到的该书第六版的中文版和一篇关于寄存器在Visual Stdio 编译器中惯用方法的文章《汇编-32位寄存器的功能及其使用之整理篇》一文

2016-08-16 15:25:35 2223

转载 Linux驱动静态加载和动态加载详解

说明:这是我最近给单位写的一篇文档,没有什么复杂的东东,对刚接触linuxdriver的朋友或许有点帮助。文档本来是针对我们自己的产品的,有些地方(路径、mknod、动态分配主设备号等)本来应该改改,因为懒惰也没去改。在LINUX下加载驱动程序可以采用动态和静态两种方式。静态加载就是把驱动程序直接编译到内核里,系统启动后可以直接调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重

2016-08-08 20:06:09 10030 1

原创 Linux内核面试问题汇总

1) Linux中主要有哪几种内核锁?Linux的同步机制从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随Linux从单处理器到对称多处理器的过渡;伴随着从非抢占内核到抢占内核的过度。Linux的锁机制越来越有效,也越来越复杂。Linux的内核锁主要是自旋锁和信号量。自旋锁最多只能被一个可执行线程持有,如果一个

2016-08-08 19:56:20 4776

原创 linux下mysql基本命令

1、显示数据库 show databases;2、选择数据库use 数据库名;3、显示数据库中的表show tables;4、显示数据表的结构 describe 表名; 5、显示表中记录 SELECT * FROM 表名 6、建库 create databse 库名; 7、建表

2016-08-08 11:34:54 360

转载 IBM Bluemix-如何部署Java Web项目-如何添加MySQL服务

摘要:本文主要介绍了IBM Bluemix,并详细说明了如何部署Java Web项目,如何添加MySQL服务。最后,提出了自己的一些看法。BluxMix账号注册登陆:https://apps.admin.ibmcloud.com/manage/trial/bluemix.html?cm_mmc=CMDeveloperGCG-_-Bluemix-_-CSDN-_-onlineeventQ2

2016-08-03 16:22:41 2128

转载 文本转语音服务项目

转载出处http://blog.csdn.net/evankaka          摘要:Text to Speech 服务提供的应用程序编程接口 (API) 使用 IBM 的语音合成功能将文本转换成音频信号。此服务提供了具象状态传输 (REST) 接口,支持将各种语言、口音和语音的文本合成自然语音。此服务目前可将英语或西班牙语的书面文本合成男声(英语和西班牙语)或女声(仅限

2016-08-03 15:35:47 2574

转载 基于 IBM Bluemix 开发微信公共账号应用

基于 IBM Bluemix 开发微信公共账号应用IBM 最近发布了 Bluemix,这是一个基于开放标准的平台即服务 (PaaS) 环境,用于在云中构建、运行和管理 Web 和移动应用程序。而微信公共平台的账号已经达到了 200 多万,因此如果能利用 Bluemix 开发微信公共平台应用,笔者认为将为广大的微信开发者学习、部署、测试、直至形成商业应用带来福音,所以笔者通过

2016-08-02 20:40:48 1017

转载 索引内部实现原理

强烈建议参阅链接:http://www.linezing.com/blog/?p=798#nav-1说白了,索引问题就是一个查找问题。。。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样

2016-08-02 12:38:01 3327

车牌识别字符模板

车牌识别字符模板有:数字,字母和各省份字符

2016-07-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除