摘要: 每一个在UNIX/Linux上工作的程序员可能都擅长Shell脚 本编程。但大家解决问题的方式却不尽相同,这要取决于对专业知识的掌握程度、使用命令的种类、看待问题的方式等等。对于那些处在shell脚本编程初级阶 段的程序员来说,遵循一些恰当的做法可以帮助你更快、更好的学习这些编程技巧。下面,我们就来讨论这些能帮助你学习shell脚本编程的方法吧。 阅读全文
posted @ 2012-04-02 12:31 福。oO 阅读(241) 评论(0) 推荐(0) 编辑
摘要: fork()函数用于从一个已存在进程中创建一个新进程,新进程称为子进程,原进程称为父进程,父子进程分别有各自的返回值,其中父进程的返回值是子进程的进程号,而子进程则返回0。使用fork函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间。地址空间:包括进程上下文、进程堆栈、打开的文件描述符、信号控制设定、进程优先级、进程组号等。子进程所独有的只有它的进程号,计时器等。因此,使用fork函数的代价是很大的。一般来说,在fork之后是父进程先执行还是子进程先执行是不确定的.这取决于内核所使用的调度算法。 阅读全文
posted @ 2012-04-02 10:40 福。oO 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 程序是存放在磁盘上,处于某个目录中的一个可执行文件.程序的执行实例被称为进程.进程是linux事物管理的基本单元。所有的进程均拥有自己独立的处理环境和系统资源。进程和程序的最本质的区别是程序是静态的,它是一些保存在磁盘上的指令的有序集合。进程是一个动态的概念,它是程序执行的过程,包括动态创建、调度和消亡的整个过程。进程最重要的属性是进程号(PID)和父进程号(PPID),PID惟一地标识了一个进程.一个进程创建的新进程称为子进程。相应创建了子进程的进程称为父进程。进程整个生命周期可以划分为三种状态: 1、执行态:该进程正在占用CPU运行 2、就绪态:进程已经具备执行的一切条件,正在等待... 阅读全文
posted @ 2012-04-02 10:39 福。oO 阅读(186) 评论(0) 推荐(0) 编辑
摘要: sscanf函数的高级用法 sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。 函数原型: int scanf( const char *format [,argument]... ); 其中的format可以是一个或多个: {%[*][width][{h|l|I64|L}]type|' '|'\t'|'\n'|非%符号}, 阅读全文
posted @ 2012-04-02 10:38 福。oO 阅读(359) 评论(0) 推荐(0) 编辑
摘要: FILE *fopen(const char *pathname, const char *mode) #include 注:Linux不区分二进制文件和文本文件,这一点与DOS、Windows系统中是有区分的。 阅读全文
posted @ 2012-04-02 10:37 福。oO 阅读(192) 评论(0) 推荐(0) 编辑
摘要: Linux中文件编程可以使用两种方法: 1、Linux系统调用(依赖于Linux系统) 2、C语言库函数(与系统独立,在任何系统下,使用C语言库函数操作文件的方法都是相同的) 阅读全文
posted @ 2012-04-02 10:36 福。oO 阅读(439) 评论(0) 推荐(0) 编辑
摘要: Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件)。 Linux文件类型常见的有:普通文件、目录、字符设备文件、块设备文件、符号链接文件等;现在我们进行一个简要的说明。 阅读全文
posted @ 2012-04-02 10:35 福。oO 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 信号的阻塞就是让系统暂时保留信号留待以后发送。由于另外有办法让系统忽略信号,所以一般情况下信号的阻塞只是暂时的,只是为了防止信号打断敏感的操作。 阅读全文
posted @ 2012-04-02 10:34 福。oO 阅读(352) 评论(2) 推荐(1) 编辑
摘要: “/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。 阅读全文
posted @ 2012-04-02 10:34 福。oO 阅读(171) 评论(0) 推荐(0) 编辑
摘要: shell简介 shell脚本程序就是按照一定的语法结构把若干linux命令组织在一起,使这些命令按照我们的要求完成一定功能。它可以进行类似程序的编写,并且不需要编译就能执行. 当编辑好脚本程序后,要使脚本程序可执行,需要改变其权限: #chmod +x filename 阅读全文
posted @ 2012-04-02 10:33 福。oO 阅读(397) 评论(0) 推荐(0) 编辑
摘要: Linux中,命令的stdout(标准输出)和stderr(标准错误输出)是显示屏幕,而stdin(标准输入)是键盘. 一般情况下,shell通过标准命令接收用户命令,将执行的结果送往标准终端显示输出,而将标准错误信息写到标准错误信息输出。 有时,我们会希望把输出信息输出到某个特定文件中,或从某个文件读入输入信息.这时,就要用到输入输出重定向. stdin 代码为0 使用或 stderr 代码为2 使用2或2 阅读全文
posted @ 2012-04-02 10:32 福。oO 阅读(243) 评论(0) 推荐(0) 编辑
摘要: GRUB:系统引导管理器。GRUB启动时会在 /boot/grub 中寻找一个名字为grub.conf的设置文件,如果找不到此设置文件则不进入菜单模式而直接进入命令行模式。 grub.conf是一个纯文字文件,您可以用任何一个文字编辑器来打开它。每一行代表一个设置命令,如果一行的第一个字符为井号#,则这一行为注释,您可以简单地用增加或减少注释行来改变设置。 阅读全文
posted @ 2012-04-02 10:31 福。oO 阅读(6396) 评论(0) 推荐(0) 编辑
摘要: linux采用树状结构管理磁盘,先构建顶层根目录,再将硬盘的不同分区挂载到不同的目录下。 Linux以树状结构管理所有目录、文件,其它分区挂载在某个目录上,这些目录被称为挂载点或安装点,然后通过此目录来访问这个分区上的文件。Linux引导启动时,默认使用的文件系统是根文件系统,其中一般都包括这样一些子目录:/etc/,/dev/,/usr/,/bin/, /var/等。 在Linux面世不久,就开始了对Linux文件系统进行标准化的活动,于1994年推出了名为FHS(FilesystemHierarchy Standard)的Linux文件系统层次结构标准,对根文件系统目录做了统一的规范,形成了FHS标准,FHS标准规定了linux根目录各文件夹的名称及作用,统一了linux界命名混乱的局面。 阅读全文
posted @ 2012-04-02 10:31 福。oO 阅读(187) 评论(0) 推荐(0) 编辑
摘要: Linux命令格式: #command [-options] parameter1… 例:# ls -al /root --help 大多数GNU工具都有--help选项,用来显示工具的一些信息,如:#cat –help 文件及文件夹操作命令(cd、ls、cp等) 阅读全文
posted @ 2012-04-02 10:30 福。oO 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 使用make编译软件源码包一般步骤是: #./configure (生成Makefile文件) #make clean (进行清理工作) #make (编译源文件) #make install (安装可执行文件) 阅读全文
posted @ 2012-04-02 10:29 福。oO 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 在用gcc编译程序时,加上 –g 参数,然后执行 (gdb 可执行程序名) 就进入gdb调试模式 常用指令: 1. l (list) 列出程序清单 2. r (run) 运行程序 3. b(breakpoint) 设置断点,格式: b [行号/函数名] 4. b num if i==20 设置断点的触发条件 5. condition num(断点号) i==50 改变断点的触发条件 6. info b 查看断点信息 7. clear [行号] , 清除断点 阅读全文
posted @ 2012-04-02 10:28 福。oO 阅读(244) 评论(0) 推荐(0) 编辑
摘要: gcc编译器的使用,编译分四个阶段: 预处理,完成头文件和宏定义的展开,生成*.cpp文件 gcc –E –o hello.cpp hello.c 编译,生成汇编代码,生成*.s文件 gcc –S hello.c 汇编,生成二进制目标文件,生成*.o文件 gcc –c hello.c 链接,链接相关库,生成可执行文件,没有后缀, 一般直接用这步实现编译 gcc –o hello hello.c 阅读全文
posted @ 2012-04-02 10:28 福。oO 阅读(253) 评论(0) 推荐(0) 编辑
摘要: vi 的基本操作 由编辑模式切换到插入模式 vi启动后,在输入文本之前,必须通过按i键(在光标前插入字符)或a键(在光标后追加字符)将vi切换到插入模 式 由插入模式切换到编辑模式 输入完成后,按ESCAPE键,将返回到vi编辑模式 由编辑模式进入最后一行模式 在编辑模式下,shift+冒号,使vi处于最后一行模式 阅读全文
posted @ 2012-04-02 10:27 福。oO 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 栈:后进先出 允许插入和删除的一端叫栈顶top 不允许的一端叫栈底bottom 主要操作:进栈、出栈、判断栈满和栈空 有两个现成的函数 int push(int s[],int x,int *ptop), int pop(int s[],int *py,int *ptop) 直接拿过来用就行 要压入的栈空间 要进栈的数 栈顶指针 队列:先进先出 允许插入的叫队尾rear 允许数据离开的叫队头front 主要操作:入队、出队、判断队满和队空 有两个现成的函数 int EnQueue(int *Q,int x,int *pf,int *pr) pf:队头指针 直接拿过来用就行 int DeQueue(int *Q,int *py,int *pf,int *pr) pr:队尾指针 Q:要进入的队空间 x:要进入队的数 py:要出队的数 阅读全文
posted @ 2012-04-02 08:51 福。oO 阅读(2649) 评论(0) 推荐(0) 编辑
摘要: 操作系统中对文件的操作主要包括: 打开、关闭、读、写、 定位等操作 所用到的库函数主要包括: 文件打开函数: fopen 文件关闭函数: fclose 字符读写函数: fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:freed和fwrite 格式化读写函数:fscanf和fprinf 随机读写函数: rewind 函数和fseek函数 阅读全文
posted @ 2012-04-02 08:49 福。oO 阅读(378) 评论(0) 推荐(0) 编辑