
Linux
yongh701
这家伙很聪明,什么都没有留下
展开
-
【Linux】后台进程的挂载与卸载
利用putty等shell软件打开一个Linux进程,如果我想我关闭掉putty等ssh shell终端之后,其继续运行,就会产生一种烦恼。比如像php的服务器等,如果你关闭一个ssh shell终端之后Sessions连接,这个Linux进行会同时被关闭,好像Linux被关机一样,客户端再也无法链接。Linux常常被作为服务器使用的,这样会令人非常懊恼。因此,我们需要利用到Linux的后台进程挂原创 2017-10-28 18:27:58 · 4642 阅读 · 0 评论 -
【Linux】管道模拟,线程并发拷贝程序
大连某211大学的李教授继续延续一贯的光辉传统,依旧让每一届所带的本科班写线程并发的拷贝程序。而且越来越多要求,在我读本科的时候,允许用多种语言完成这个程序,然后开始规定只允许在Linux编程。现在还加上必须在管道的基础上,完成这个程序。而且,这个管道还不能直接调用Linux系统中已经封装好的管道,是需要自己根据Linux管道的机制,写成的管道,大致上如下所示:我早已经在《【Linux原创 2016-12-26 11:33:30 · 5396 阅读 · 16 评论 -
【Linux】利用文件标识符进行文件的读写
Linux的文件标识符,和Windows的就是文件名不同,它相当于文件的一个指针。在Linux的C语言中,除了用通用的《【C】文件读写问题》(点击打开链接)中介绍过的fopen等C语言通用操作文件以外,其Linux应用请参考《【Linux】利用C语言文件流复制单一文件》(点击打开链接),还能用文件标识符还来操作文件。这也是Linux中C语言,最底层,最原始控制文件的方式,其函数open,read,原创 2016-12-24 20:47:48 · 6267 阅读 · 0 评论 -
【Linux】利用fork()创建多个线程
在《【Linux】fork()》(点击打开链接)只是简单交代了如同利用fork()创建子线程的方法,实际是更应该说将一个程序一分为二的方法。还有很多事情隐藏在其中值得细致思考。由于fork()结构的特殊性,如果要用fork()创建多个线程,并不像pthread_create()那样轻松,而且最关键的一点,是你利用for循环和fork()创建出来的多线程,会不明不白地多出N条线程。这主要是由于对fo原创 2016-12-19 17:35:37 · 5458 阅读 · 0 评论 -
【Linux】利用管道在进程通讯拷贝文件
其实Linux-C拷贝文件根本不用这么折腾,具体参见《【Linux】利用C语言文件流复制单一文件》(点击打开链接),这个程序也没有什么卵用,直接一个cp好了,主要是借这个程序说明《【Linux】管道的Helloworld》(点击打开链接)的原理。程序代码如下:#include #include #include //管道所在的头文件 #include //用来测定字体长度strle原创 2016-12-19 09:51:31 · 2431 阅读 · 1 评论 -
【Linux】fork()
fork()是LinuxC中一个基本函数,他存在于头文件之中,用于创造一个子进程。说白了,就是将本程序一分为二,互补影响地执行。直接贴一段简单的程序说明fork()的使用:#include #include int main(){ int count=0; pid_t fpid=fork(); if(fpid<0){ printf原创 2016-12-16 10:54:01 · 1641 阅读 · 0 评论 -
【Linux】利用man命令来查看头文件与函数说明
利用Linux-C编程的时候,要查询某一个函数所处的头文件,或者怎么用,不需要某度一下,只需要用man命令+函数名,则能够打印该函数的所有说明,当然这个函数必须是Linux-C本身就有的函数。如下图,这是fork()函数的全部说明,通过这个说明,就不用某度一下了,当然前提是你的英文水平要过关。不过一般我们基本上是通过这个man命令了解这个函数所处的头文件而已。之后,看完如果觉得原创 2016-12-16 09:33:58 · 8505 阅读 · 1 评论 -
【Linux】管道的Helloworld
Linux的管道传输数据的一种方式,但注意并是唯一方式。数据传输的方式,你可以用简单的全局变量传递数据,文件传递数据等等,但这种管道传输的方式,你要看得懂,还算是略为常用。你可以理解为,两个电话的人,听筒与话筒,而数据则在无线电中传输一样。Linux管道的用法算是比较复杂,至少远比全局变量传递数据复杂,先贴一个不带其它概念的管道,helloworld级别的程序:#include #i原创 2016-12-15 10:24:14 · 1197 阅读 · 0 评论 -
【CentOS】JDK1.7的安装与配置
在CentOS 7 Minimal中安装JDK1.7其实很简单。从Java的官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载Linux64位,rpm版的JDK1.7,rpm之于Linux的地位,犹如exe至于windows的地位,能够直接用,其余一些交给系统自己完成就原创 2016-08-18 16:03:35 · 2003 阅读 · 0 评论 -
【CentOS】CentOS7的安装,网络的开启和VMware Tools的安装
一、CentOS的下载打开CentOS的官网:https://www.centos.org/download/。选择最小镜像的CentOS Minimal进行下载。CentOS的完整版有7G多,没必须下载一个这样的庞然大物,许多功能可以等到我们需要的时候再进行安装。下载之后得到一个CentOS-7-x86_64-Minimal-1511.iso。这就是CentOS的镜像文件。或许随原创 2016-08-12 17:43:39 · 15052 阅读 · 3 评论 -
【Linux】线程并发拷贝程序
据说大连某211高校的李教授越来越重口,不仅延续要求他所带的每一个本科班,都要写一份线程并发拷贝程序的传统,而且还开始规定不能用Java语言写作,导致我之前写的《【Java】线程并发拷贝程序》(点击打开链接)作废。所有李教授旗下的学生,必须在毫无图形界面的Linux系统,用里面vi去写作。这更让莘莘学子们感觉本来头来就不光明的天空更加黑暗起来。更重要的是,若干年过去了,网上对其的研究与资料,依原创 2015-12-25 16:30:40 · 8858 阅读 · 9 评论 -
【Linux】C语言实现文件夹拷贝
在《【Linux】利用C语言文件流复制单一文件》(点击打开链接)讲述了如何用C语言拷贝文件,但是这只能拷贝单一文件。如果你要用LinuxC拷贝整个文件夹,同样要像《【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作》(点击打开链接)一样,先用《【Linux】遍历某一目录,判断文件与文件夹,main参数》(点击打开链接)的方法遍历整个文件目录,之后再一个一个实现文件拷原创 2015-12-25 15:19:25 · 27277 阅读 · 15 评论 -
【Linux】让Apache中php的url不再区分大小写
Linux中的服务器Apache服务器默认是区分大小写的,如果你没有完全匹配好php的url是打不开的,测试的时候输入url是不方便,而且对于搜索引擎也不友好。如何解决这个问题呢?也就是说让用户输入大写时,也跳转到小写的URL页面。尽量减少大写造成的影响。具体解决方案如下,以Ubuntu,用《【Linux】在Ubuntu中布置LAMP环境》(点击打开链接)安装的LAMP为例,Debian等其它系统原创 2015-12-24 16:24:42 · 6591 阅读 · 0 评论 -
【Linux】遍历某一目录,判断文件与文件夹,main参数
LINUX下遍历目录的核心头文件是#include ,方法一般是这样的:打开目录->读取->关闭目录。相关函数有:DIR *opendir(const char *dirname);struct dirent *readdir(DIR *dirp);int closedir(DIR *dirp);注意到,在读取的时候,是返回一个叫dirent的结构体,其定义是这样的:struct dirent原创 2015-12-24 11:36:14 · 4314 阅读 · 0 评论 -
【Linux】用Winscp远程访问无图形界面的Linux系统
学会远程访问Linux系统很重要,尤其是无图形界面的服务器Linux系统,这一点尤为重要,只会利用《【Linux】在Ubuntu12.04安装VMware Tools》(点击打开链接)与《【Linux】在Debian安装VMware Tools》(点击打开链接),用VMware Tools在宿主机与虚拟机中传输文件远远不够,下面以Ubuntu为例,介绍一种在Windows下用Winscp远程访原创 2015-12-23 17:21:25 · 4750 阅读 · 0 评论 -
【Linux】纯C环境下字符串的处理
在LinuxC下,是没有string这个头文件的,比如如下代码:#include#includeint main(){ string A="aaa"; string B="bbb"; return 0;}由于纯C的环境下,连字符串的概念都没有,以上的代码是直接过不了编译的。而对于string.h这个头文件,虽然有,但同样是不带string字符串变量的声明,如下的代码原创 2015-12-23 11:45:55 · 3102 阅读 · 4 评论 -
【Linux】bool的使用
一些你认为理所当然的东西,在LinuxC中不是说用就用,例如bool布尔型由于其C语言标准古老,就像如下一段,利用函数返回值判断是否正数,很平常的代码:#includebool is_positive(int num){ if(num>0){ return true; } else{ return false; }}int main(){ int num=1; if(原创 2015-12-23 09:44:25 · 12709 阅读 · 0 评论 -
【Linux】利用C语言文件流复制单一文件
LinuxC下的复制单一文件与其它语言的没有区别,对于文件操作皆要用到文件流、文件流的缓冲区的概念,可能这就是操作系统中的共性吧!网上对于LinuxC如何复制文件,往往直接用到system("cp 源文件 目标文件"),如此“不负责任”的解决方案,要是别人规定不能用shell脚本呢,必须从C语言的根本解决问题呢?如下图,用过Linux下的人都知道如何用终端命令复制文件,这里答了等于没答:原创 2015-12-19 10:10:23 · 6134 阅读 · 0 评论 -
【Linux】线程互斥
线程最大的特性就是可以一个代码,多个线程同时执行,从而极大地提升程序的运行速度。然而,在线程并发的同时要注意,互斥的情况,比如如下的一个模拟一个最近话题的抢票程序,显然设定的三个线程仅能有一个线程得到票,否则票会撕烂,其实,这个程序在《【Java】利用synchronized(this)完成线程的临界区》(点击打开链接)已经详细说过了,只是这次的编程环境编程了LinuxC。如下的线程互斥的程序原创 2015-12-17 17:05:51 · 1383 阅读 · 0 评论 -
【Linux】线程
LinuxC的线程与WindowsC的线程有一点的区别,由于线程涉及到操作系统,因此,所调用的库与部分语法有所不同,是很正常的。不过思想是一样的,什么是线程,我在很久之前的文章《【Java】线程并发、互斥与同步》(点击打开链接)已经写过。下面主要用一个小例子,来说明Linux中线程的使用,如下图,就是一个简单的3,2,1倒数,每隔一秒i自减,输出i就这么简单。具体程序如下:#i原创 2015-12-17 11:03:11 · 745 阅读 · 0 评论 -
【Linux】vi/vim的使用
vi/vim这个代码编辑器得到很多Linux程序猿的推送,自Linux/Unix出现以来,一直得到部分程序猿的推送。如果你用惯各类IDE,或者windows下的编辑器,将会非常不习惯这个东东,然而你也必须要懂,因为遇到一些无图形界面的服务器,你不得不利用vi/vim去编辑Linux的部分文件,下面说说vi/vim的使用。首先呢,如果这个Linux有图形界面,比如Ubuntu12.04,按Ctr原创 2015-12-16 11:47:00 · 5219 阅读 · 0 评论 -
【Linux】makefile文件
一些Linux程序不提供程序,看似只是提供一大堆源代码,比如.c,.cpp的文件一大堆,但往往在目录中有一个makefile文件,或者把这个makefile文件惯例性地藏在build文件夹。就是提供所谓的编译版。使用Windows编写c,c++,习惯性地在release,debug等文件夹寻找.exe的程序员可能不知道怎么对待这样的Linux编译版。其实很简单,进入到makefile文件的原创 2015-08-12 14:56:03 · 1367 阅读 · 0 评论 -
【Linux】将终端的命令输出保存为txt文本文件
本来这不是一个问题,因为Linux中的终端很方便,可以直接复制粘贴的。之后开一个gedit文本编辑器,把复制到的内容粘贴就可以的。不像windows的cmd控制台,需要先右键标题栏,选择编辑->全选/标记,在右键标题栏,选择复制,这么复制。cmd搞不好,鼠标不小心一点,还可能把鼠标的一抖,辛辛苦苦标记的东西就消失了。当然,以上仅仅是是Linux存在图形界面的情况,如原创 2015-07-21 16:23:44 · 34604 阅读 · 0 评论 -
【Linux】设置环境变量
在Windows中设置环境变量是很简单的事情。如下图,只要右键我的电脑->高级系统设置->环境变量,选择Path之后,点击“编辑”就可以输入你要添加的内容。可以把一些希望直接运行的命令行命令添加上去。比如java,就要把jdk下的bin目录搞上去等。然而,在Linux中就没有这么简单了。以Ubuntu为例,设置环境变量的方式有两种,一种是通过Ctrl+Alt+T打开终端,然后输原创 2015-06-26 11:07:31 · 1704 阅读 · 0 评论 -
【Linux】关于IP直达文件hosts
hosts文件经常听到,改hosts什么的,但这个文件的真实作用是什么呢?网上对于这个文件解释永远是那种太长不看的理论。让我看的头昏眼花。一、hosts的基本理论其实hosts文件在任何一个系统都有,这个hosts在任何系统都没有后缀名,是一个相当于系统全局变量的东西,在Linux的路径是/etc/hosts,安卓同理root后在/system/etc/hosts,IOS在iF原创 2015-05-09 10:46:53 · 3915 阅读 · 0 评论 -
【Linux】关于路由跟踪指令traceroute
本文所有命令实施的大前提是:你现在能够上网。稍有计算机常识的人都知道ping命令,是用来检查自己的主机是否与目标地址接通,自己的主机与目标地址的通讯包通讯速率,所谓的通讯包也就是那些什么TCP/IP,UDP包,这里说得通俗一点,比如,就拿这个IT网站csdn来测试一下,则得到如下效果:但是路由跟踪指令traceroute,在windows则是tracert,对于非计算机网络内行,就原创 2015-05-09 09:46:08 · 137794 阅读 · 10 评论 -
【Linux】在Ubuntu中部署JSP的开发环境,Eclipse+Mysql+JDBC
这东西在Linux的配置跟Windows的差不多。Windows的JSP开发环境,在《【Javaweb】前台开发环境的配置Myeclipse6.5+JDK1.6+Tomcat6.0+SVN1.8》(点击打开链接),后台环境配置好,《【Mysql】Mysql的安装、部署与图形化》(点击打开链接)两篇文章中已经讲过,那么在Linux中到底是如何配置呢?首先像《【Linux】在Debian配置JDK原创 2015-04-19 10:35:05 · 3805 阅读 · 0 评论 -
【Linux】在Ubuntu12.04中写C语言与Helloworld
Ubuntu12.04自带C的环境,比Windows开发一个C爽多了,此C就是大名鼎鼎学计算机都要学的C语言。尤其当年的C语言,下个VC6蛋疼的要死,然后又卡卡的,提示的错误又是英文的,非常不爽。在Ubuntu写C的流程是这样的。1、按Ctrl+Alt+R开终端,输入:gedit helloworld.c新建一个.c文件。2、之后直接打开一个记事本界面让你写。就一个No原创 2015-04-19 08:54:37 · 5168 阅读 · 1 评论 -
【Linux】在Ubuntu中图形化LAMP的开发环境
按照《【Linux】在Ubuntu中布置LAMP环境》(点击打开链接)搞好LAMP的环境之后,就可以利用gredit文本编辑器去写php,然后利用终端去查询mysql里面的内容,但是,这种环境还挺粗糙的,没有开发的IDE,查询数据库还要输入一大堆命令,不适合php的开发。此时你可以安装Aptana作为php开发的IDE,这款工具在《【HTML】一款不错的前端开发IDE——Aptana Stud原创 2015-04-19 07:59:06 · 1970 阅读 · 0 评论 -
【Linux】在Ubuntu中布置LAMP环境
据说搞好LAMP也就是Linux+Apache+Mysql+php就已经相当于一个中级php程序猿的水平,当然你的php要得会才行,之后就是搞好各种框架。其实这东西,并不神秘,非常简单。甚至比Windows还简单,各种变量都自动帮你搞好了。你的畏惧主要来自于你的无知。建议先通过phpnow1.5.6在Windows一键搭好php环境,然后通过Mysql_Gui_Tools图形化Mysql,把p原创 2015-04-12 22:07:35 · 1592 阅读 · 0 评论 -
【Linux】在Ubuntu中安装Eclipse与Helloworld
在Ubuntu中安装Eclipse之前,必须先如同《【Linux】在Debian配置JDK1.7,与Linux Java Helloworld》(点击打开链接)现在Ubuntu中装好JDK1.7,整个安装过程甚至比Debian的还要简单,安装的过程中,活用好把文件拖进终端,这样就不用输入这么长的路径。Ubuntu与Debian唯一的区别,就是执行命令你通通在前面补个sudo就对了,表示以root用原创 2015-04-12 10:31:31 · 11136 阅读 · 1 评论 -
【Linux】在Ubuntu12.04安装VMware Tools
因为同是Linux系统,而且与Debian同源,因此在Ubuntu12.04安装VMware Tools与《【Linux】在Debian安装VMware Tools》(点击打开链接)大同小异,但是在Ubuntu安装VMware Tools更加便捷快速。1、首先在主机的虚拟机中菜单选择“虚拟机”->“安装VMware工具”2、之后Ubuntu会弹出一个已经加载好的光盘设备。直接对光盘原创 2015-04-11 22:58:20 · 2964 阅读 · 0 评论 -
【Linux】Ubuntu12.04的下载与安装
Ubuntu现在官方主推的系统是14.04的64-bit,这东西在虚拟机划出1G内存给它也很卡,因此还是选择经典版本Ubuntu12.04。直接打开Ubuntu选择性下载页http://www.ubuntu.com/download/alternative-downloads(点击打开链接)翻到BT下载的部分,找到Ubuntu 12.04.5 Desktop (32-bit),这东西就是不错的原创 2015-04-11 22:16:14 · 13096 阅读 · 1 评论 -
【Linux】在Debian配置JDK1.7,与Linux Java Helloworld
其实JAVA的原生平台是Linux的,只是它可以跨平台运行而已。在Linux中甚至就有了原生的JDK,但是这些JDK难免不完整,因此最好自己配置一个JDK1,7,为以后的Tomcat,安卓等做好准备。下面以JDK1.7在Debian的配置为例子,讲解在Linux中如何配置JDK。1、首先,与在Windows配置JDK一样,打开Java的官网(点击打开链接)同意了协议之后,下载Linux版的JD原创 2015-04-06 13:43:28 · 4707 阅读 · 0 评论 -
【Linux】在Debian安装VMware Tools
在Linux安装一个东西,不像Windows那样不停点下一步一下步,就能够完成安装,尤其像VMware Tools这些驱动级别的安装,你不得不费一番心思,才能弄好。Linux安装东西最大的一个特点就是使用终端不停地敲命令。下面边以VMware Tools的在Debian7安装,边讲解Linux的基本使用。使用的虚拟机是VMware9.0相信熟悉Windows的朋友,刚像我一样,装完Linu原创 2015-04-04 21:55:21 · 24678 阅读 · 0 评论 -
【Linux】Debian的下载、安装、图形化界面,多图杀猫
Linux的版本众多,同时相对于非专业用户少见。不像Windows系统那样大众,稍微有些知识都知道,配置低一点的机器就选择Windows XP Professional SP3,搞Asp的用Windows 2003 Enterprise SP2,高大上一点就直接上Windows2008与2012,普通的机器就上Win7 32位系统,超过4G内存就上Win7x64,Wini7属下的版本虽然多,也根本原创 2015-04-04 15:48:55 · 27946 阅读 · 2 评论