unix/linux学习篇
文章平均质量分 78
ctreewang
这个作者很懒,什么都没留下…
展开
-
unix/linux 常用命令
<br />unix密令是一种多命令行及多行命令,这大大提高了系统的使用的灵活性,命令间用;分割如<br /># pwd;ls -l 此命令的作用是 先显示当前用户所在目录,然后再做ls -l命令,显示当前目录下的内容。<br /> <br />vim的保存文件和退出命令 <br />命令<br />简单说明<br />:w<br />保存编辑后的文件内容,但不退出vim编辑器。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中。<br />:w!<br />强制写文件,即强制覆盖原有文件原创 2011-05-05 17:37:00 · 978 阅读 · 0 评论 -
unix/linux 常用命令
<br />unix密令是一种多命令行及多行命令,这大大提高了系统的使用的灵活性,命令间用;分割如<br /># pwd;ls -l 此命令的作用是 先显示当前用户所在目录,然后再做ls -l命令,显示当前目录下的内容。<br /> <br />vim的保存文件和退出命令 <br />命令<br />简单说明<br />:w<br />保存编辑后的文件内容,但不退出vim编辑器。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中。<br />:w!<br />强制写文件,即强制覆盖原有文件原创 2011-05-05 17:37:00 · 1216 阅读 · 0 评论 -
利用secureCrt 上传下载文件至linux
打开一个连接配置上传下载目录:选择某个session 标签,如上图中,我选择的是192.168.0.198这个session标签。点鼠标右键,弹出菜单,选择session option,如下图,设置上传和下载目录我这里设置的是E:\templinux\download。和E:\t原创 2011-07-14 14:51:55 · 1021 阅读 · 0 评论 -
linux的tail命令学习与使用
查看文件内容的特殊方法 相信最基本的cat和less,more你已经很熟悉了,如果有特殊的要求呢:1. 如果你只想看文件的前5行,可以使用head命令,如:head -5 /etc/passwd2. 如果你想查看文件的后10行,可以使用tail命令,如:tail -10 /et转载 2011-07-28 09:56:59 · 2786 阅读 · 0 评论 -
linux之cp命令grep命令学习
cp命令就是在linux下对文件复制的一个命令,功能很强大啊。其命令格式如下cp (复制档案或目录) cp [-adfilprsu] (source) (destination)cp [options] source1 source2 source3 …. directory参原创 2011-07-27 21:07:10 · 3728 阅读 · 0 评论 -
mpc.pl和 mwc.pl 学习。
mpc.pl 就是一个Project Creator ,mpc.pl这个脚本可以生成支持GNU Make或MS NMake的Makefile,也可以生成支持VC的dsp或者vcproj文件。这里我只简单介绍一下如何生成Makefile,其他的大家可以去看文档:-) mp原创 2011-07-27 20:19:53 · 4900 阅读 · 2 评论 -
利用mpc.pl和mwc.pl 和make工具对源程序编译运行
昨天,接到辅导老师的一个任务,就是将前几天做的程序放到linux下进行编译,使其能在linux环境下跑下来,难倒我了,说实在我真没接触过,baidu和google了,步骤都是非常的不详细,我也不知道怎么做,昨天我的辅导老师在我的电脑下演示了一下,然后我自己有动手模拟了一遍,总要知原创 2011-07-28 09:45:36 · 3944 阅读 · 0 评论 -
unix发展历史及你必须要会的Shell 命令
1. Unix 历史============= 我们学习一样知识, 都应该先了解它的历史. 因为从历史当中, 我们能明白为什么现状是这样, 并且, 了解历史后, 在学习过程中会有许多顿悟, 然后很快的掌握它. unix 历史表: a. 1970原创 2011-09-08 11:04:50 · 3735 阅读 · 4 评论 -
Linux平台Makefile文件的编写基础篇
目的: 基本掌握了 make的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, fi转载 2011-09-08 15:16:01 · 938 阅读 · 0 评论 -
linux:vi 替换命令
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivia转载 2011-09-16 15:06:44 · 766 阅读 · 0 评论 -
教会你如何编写makefile文件
最近一直在学习makefile是如何编写的。 当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷。linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件。原创 2011-09-19 20:47:35 · 41932 阅读 · 3 评论 -
Linux下安装、配置ACE
最近打算开始学习Linux下的C++程序开发,经过几天的搜索,发现ACE这套框架不错,最主要的是能够跨平台。不过在安装的过程中还是走了不少的弯路,在此记录下来。一、下载安装包下载地址:[url]http://download.dre.vanderbilt.edu/[/ur转载 2011-09-21 10:47:35 · 1507 阅读 · 0 评论 -
UNIX 系统家族树的详细历史(图)
下面的图表显示今天的主要版本的Unix和类Unix操作系统的历史和发展道路。从此幅图可以清晰看到unix的家族史,其中让我注意一历史系统:SVR4,4.4BSD,FreeBSD,Linux,MAC OS X,Solaris.了解unix历史,让我们明白unix本身,产原创 2011-10-16 15:44:53 · 8046 阅读 · 0 评论 -
unix环境高级编程-4.15-link,unlink,remove和rename函数
如上节所述,任何一个文件可以有多个目录项指向其i节点。创建一个指向现有文件的链接的方法是使用link函数。#include int link(const char* existingpath,const char* new path);若成功返回0,出错则返回-1;int link (const char *oldname, const char *newname) [F原创 2011-10-22 18:11:00 · 6445 阅读 · 1 评论 -
进程同步的几种机制
多进程的系统中避免不了进程间的相互关系。本讲将介绍进程间的两种主要关系——同步与互斥,然后着重讲解解决进程同步的几种机制。 进程互斥是进程之间发生的一种间接性作用,一般是程序不希望的。通常的情况是两个或两个以上的进程需要同时访问某个共享变量。我们一般将发生能够问共享变量的程序段称为临界区。两个进程不能同时进入临界区,否则就会导致数据的不一致,产生与时间有关的错误。解决互斥问题应该满原创 2011-10-21 23:54:30 · 13679 阅读 · 0 评论 -
Linux下的多进程编程初步(转载)
最近在学习linux环境高级编程,多进程编程算是编程中的最重要的一个部分了,本文让我学习和明白了很多,所以转载过来。让更多想多线程编程的人学习。只有顶到首页才能让更多的人学习。文章摘要: 多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。本文我们将介绍在Linux下编写多进程和多线程原创 2011-10-24 00:11:17 · 52316 阅读 · 14 评论 -
Linux下的多线程编程(转载)
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用原创 2011-10-24 09:01:40 · 4485 阅读 · 0 评论 -
UNIX网络编程初步
1.1 客户端程序和服务端程序 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 网络程序是先有服务器程序启动,等待客户端的程序运行并建立连接.一般的来说是服务端的程序 在一个端口上监听,直到有一个客户端的程序发来了请求. 1.2 常用的命令 由于网络程序是有两个部分组成,所以在调试的时候比较麻烦,为此我们有必要知道一些常用的网络命令转载 2011-10-24 09:45:41 · 1667 阅读 · 0 评论 -
unix环境高级编程-4.17-sylmink和readlink函数
本节将介绍symlink和readlink函数的一些基本原理。symlink函数用来创建一个符号链接#includeint symlink(const char* a c t u a l p a t h,const char* sympath);查看GNU C文档int symlink (const char *oldname, const char *newname) [F原创 2011-10-24 22:41:35 · 3858 阅读 · 0 评论 -
unix环境高级编程-4.16-符号链接
符号链接是指向一个文件的间接指针。他与上一节所诉的硬链接不同。硬链接直接指向文件的i节点。引入符号链接的原因是为了避开硬链接的一些限制。硬链接通常要求链接和文件位于同一文件系统中。只有超级用户才能创建指向目录的硬链接。对符号链接以及他指向何种对象并无任何文件系统限制。任何用户都可以创建指向目录的符号链接。符号链接一般用于将一个文件或这个目录结构移动到系统中的另一个位置。 当使用原创 2011-10-24 22:24:33 · 2166 阅读 · 0 评论 -
unix环境高级编程-4.18-文件时间
在unix系统中,每个文件要保持三个时间字段,他们的意义分别如下:字段说明例子ls选项st_atimest_mtimest_time文件数据的最后访问时间文件按数据的最后修改时间i节点状体的最后更改时间readwritechmo,chown-u默认-c注意st_mti原创 2011-10-25 19:51:25 · 1187 阅读 · 0 评论 -
unix环境高级编程-4.8-utime函数
上一节,我们描述了对文件操作的三种时间,这一节主要讲述utime函数,既对一个文件的访问和修改时间。#include int utime(const char* pathname,const struct utimbuf *times);成功返回0,失败返回-1;此函数所使用的数据结构struct utimbuf{ time_t actime ;/*access原创 2011-10-25 21:54:14 · 3640 阅读 · 0 评论 -
unix环境高级编程-mkdir和rmdir函数
4.20 mkdir和rmdir函数#include int mkdir(const char* path,mode_t mode);成功返回0,失败-1.此函数创建了一个新的空目录。其中.和..目录项制动创建的。所指定的文件访问的文件访问权限mode由进程的文件模式创建屏蔽字的修改。查看GNU Cint mkdir (const char *filename, mod原创 2011-10-26 21:27:33 · 5396 阅读 · 0 评论 -
unix环境高级编程-4.21-读目录
本节主要讲述了对unix系统对读目录的讲述。首先了解一下了解一下下面的函数#include DIR* opendir(const char* pathname); 成功返回指针,错误返回null;struct dirent *readdir(DIR *dp);//成功返回其指针,若在目录结尾或出错则返回null;void rewinddir(原创 2011-10-27 21:47:01 · 1360 阅读 · 0 评论 -
unix环境高级编程-chdir、fchdir和getcwd函数。
每个进程都有一个当前的工作目录,此目录是搜索所有相对路径的起点。进程通过调用chdir或fcdir函数可以更改当前工作目录。进程通过调用chdir或者fchdir函数可以更改当前工作目录。 #includeint chdir(const char* pathname);int fchdir(int filedes); 这两个函数分别用文件名和文件描述符来制定新的工作目录原创 2011-10-27 22:39:47 · 4137 阅读 · 0 评论 -
C语言编译全过程
编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)1.转载 2011-11-19 16:47:51 · 1400 阅读 · 1 评论 -
unix环境高级编程-undefined reference to 'pthread_create'问题解决
笔者一直在学习unix环境高级编程。第十一章为线程编程。第一个程序就是打印线程ID。程序如下:#include "apue.h"#include pthread_t ntid;void printids(const char* s){ pid_t pid; pthread_t tid; pid=getpid();//得到当前原创 2011-11-18 19:36:30 · 8235 阅读 · 2 评论 -
unix环境高级编程-5.2~3标准I/O库。
5.1引言I/O对于操作系统是一个非常重要的。无论是各种类型的数据库。5.2 流和FILE对象第三章,我们可以回忆到I/O函数都是文件描述符的。即是打开一个文件,返回一个文件描述符。然后对文件描述符进行后续的I/O操作。而对于标准的I/O库,操作则围绕流进行的!当用标准I/O库打开或创建一个文件的时候,我们已经是用一个流与一个文件相关联。标准io文件流可用于单字节和多字节字符集。流原创 2011-10-31 22:56:16 · 1475 阅读 · 0 评论 -
linux:vi 替换命令
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n,$s/vivian/sky/ 替换第 n 行开始到转载 2011-11-22 10:15:03 · 1075 阅读 · 0 评论 -
深入浅出---unix多进程编程之wait()和waitpid()函数
Wait和waipid函数 当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个一步事件,所以这种信号也是内核系那个父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。现在要知道调用wait或waitpid的进程可能会发生什么情况: 如果其所有子进程都在运行,则阻塞原创 2011-11-21 23:43:57 · 37918 阅读 · 15 评论 -
fork两次如何避免僵尸进程
曾经觉得费解,温故知新一下:/*g++ -o New0001 New0001.cpp */#include #include #include #include int main(void){ pid_t pid; if ((pid = fork()) { fprintf(stderr,"Fork error!/n");转载 2011-11-22 20:53:23 · 1493 阅读 · 0 评论 -
深入浅出--UNIX多进程编程之fork()函数
0前言上周都在看都在学习unix环境高级编程的第八章——进程控制。也就是这一章中,让我理解了unix中一些进程的原理。下面我就主要按照进程中最重要的三个函数来进行讲解。让大家通过阅读这一篇文章彻底明白进程这点事。希望对大家有所帮助。1进程环境 在学习进程之前,一定要了解一下unix的进程环境。系统如何对进程终止,和一个程序启动终止,程序运行的原理等,这些都有原创 2011-11-21 11:58:36 · 18249 阅读 · 14 评论 -
unix环境高级编程-5.4-缓冲
提到缓冲这个概念,大家都知道非常熟悉不过了,我们在写程序的时候,比如java,C++都会涉及到一些缓冲的概念,那么到底缓冲有什么好的作用的。 其实缓冲在unix的操作系统里,就是为了减少read和write的调用次数。在第三章中,对不同缓冲区的长度设置,执行IO所要的cpu时间量是不一样的。他也对每个io流自动的进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/原创 2011-11-01 00:13:49 · 2204 阅读 · 0 评论 -
unix环境高级编程-5.7-每行一次I/O
下面两个函数提供每次输入一行的功能 #includechar *fgets(char * restrict buf,int n,FILE* restrict fp);char* gets(char* buf); 两个返回值:若成功返回buf,若已达到文件结尾或出错则返回NULL;char * fgets (char *s, int count, FILE *stream原创 2011-11-06 19:00:13 · 918 阅读 · 0 评论 -
unix环境高级编程-5.6-读和写流
一旦打开了一个流,则可在三种不同的类型的非格式化I/O,中进行选择,对其进行读、写操作:(1)每次一个字符的I/O.一次读或写一个字符。则标准的io函数处理所有缓冲。(2)每次一行的IO,如果想要一次读或写遗憾,则使用fgets和fputs函数。每行都以一个换行符终止。当调用fgets,要说明最大处理行长。(3)直接IO,fread和fwrite函数支持这种类型的IO,每次io操作读或原创 2011-11-06 16:23:51 · 1032 阅读 · 0 评论 -
unix环境高级编程-5.8-标准I/O的效率。
使用上一节所述的函数。我们能对标准的I/O的效率有所了解。请看下面的程序#include "apue.h"int main(void){ int c; while((c=getc(stdin))!=EOF) { if(putc(c,stdout)==EOF) err_sys("output error"); if(ferror(stdin)) err_sys原创 2011-11-06 21:57:29 · 1161 阅读 · 0 评论 -
unix网络编程之利用select 实现群发的功能
首先 运行在linux 运行gcc -g -o select select.c/ *******select.c*********// *******Using select() for I/O multiplexing */#include #include #include #include #include #include #include #include /* po原创 2011-11-29 22:51:02 · 2710 阅读 · 1 评论 -
unix网络编程值setsockopt函数
http://topic.csdn.net/t/20041126/20/3592436.html写出我在网络编程中的一点心得体会,希望对他(^_^也对大家)有帮助: 1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用 closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReu转载 2011-11-29 23:32:26 · 1859 阅读 · 0 评论 -
unix环境高级编程-5.9-二进制I/O
上一节,我们知道对于读或者写都是一个一个字节,或者一行行的。getc和putc是通过字节来处理。fputs和fgets是一行的,但是遇到null就停止了。下面介绍fread和fwrite函数原型:#includesize_t fread(void* restrict ptr,size_t size,size_t nobj,FILE* restrict fp);size_t原创 2011-11-08 22:43:11 · 1109 阅读 · 0 评论 -
UNIX上C++程序设计守则(信号和线程)
UNIX上C++程序设计守则(信号和线程)摘自桃源谷的blog: http://www.cppblog.com/lymonsUnix跟Windows等那些”对于开发者易于使用”的OS比起来,在信号和线程的利用方面有诸多的限制。但是即使不知道这些知识就做构架设计和实现的情况也随处可见。这个就是那些经常不能再现的bug的温床吧。因此,我想分成几回来写一些准则来防止陷入到这些圈套里。准则转载 2011-12-03 02:08:07 · 3190 阅读 · 0 评论