Linux
文章平均质量分 77
lostyears
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux应用程序安装与管理
一、Linux应用程序与命令的关系1.基本命令是Linux系统中不可缺少的组成部分2.命令保存在/bin和/sbin目录中3.应用程序保存在/usr/bin和/usr/sbin目录中4.命令的作用是完成对Linux系统本身的管理工作,应用程序则完成与Linux系统管理相对独立的任务5.命令只能以命令行的形式运行,命令格式中包括命令字、命令选项和命令参数6.应用程序可以是转载 2012-03-10 16:59:16 · 926 阅读 · 0 评论 -
git 服务器+git linux客户端搭建
最近团队中在开发一些项目,由于代码经常改动,搞得头大,就想找个代码管理工具。查了一些资料,最后选择使用Git管理代码,下面将搭建的过程记录下来与各位同仁分享。(亲测可以使用)一、准备工作服务器1:IP:192.168.18.228, 操作系统:centos 7,角色:git server 服务器2:IP:192.168.18.229,操作系统:centos 7,角色:git c转载 2016-09-28 17:17:07 · 622 阅读 · 0 评论 -
Linux C语言头文件搜索路径
本文介绍在linux中头文件的搜索路径,也就是说你通过include指定的头文件,linux下的gcc编译器它是怎么找到它的呢。在此之前,先了解一个基本概念。头文件是一种文本文件,使用文本编辑器将代码编写好之后,以扩展名.h保存就行了。头文件中一般放一些重复使用的代码,例如函数声明、变量声明、常数定义、宏的定义等等。当使用#include语句将头文件引用时,相当于将头文件中所有内容,复制到转载 2016-05-05 17:24:34 · 792 阅读 · 0 评论 -
linux下查看和添加PATH环境变量
linux下查看和添加PATH环境变量来自:http://apps.hi.baidu.com/share/detail/32942984$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。 编辑你的 PATH 声明,其格式为: PATH=$PATH::::------:转载 2016-05-05 17:12:10 · 660 阅读 · 0 评论 -
Linux系统中“动态库”和“静态库”那点事儿
今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻。在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情。 在Linux操作系统中,普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式。ELF(Executable and Linking Format,可执行连接格式)是UNIX系统实验室(USL)作为应用程序二进制接转载 2016-05-05 17:10:52 · 719 阅读 · 0 评论 -
libevent入门
花了两天的时间在libevent上,想总结下,就以写简单tutorial的方式吧,貌似没有一篇简单的说明,让人马上就能上手用的。首先给出官方文档吧: http://libevent.org ,首页有个Programming with Libevent,里面是一节一节的介绍libevent,但是感觉信息量太大了,而且还是英文的-。-(当然,如果想好好用libevent,看看还是很有必要的转载 2016-04-08 17:40:17 · 578 阅读 · 0 评论 -
linux网络编程:并发服务器的模型
这篇博客主要是参考了http://renwen0524.blog.163.com/blog/static/7301945520116116016141/,这篇博客把linux网络编程的并发服务器的模型整理得很详细了,这里我是在此基础上加上了一些我自己的理解。对于进行套接字编程,选择一个号的服务器模型是非常重要的,为了实现并发的服务,有以下几种方法可以做到:1、并发服务器模型之一:预转载 2016-04-08 15:32:20 · 656 阅读 · 0 评论 -
Linux下安装Git
Ubuntu12.04中默认没有安装Git。需要自行安装。1. 安装Git1.1 Ubuntu12.04下可以使用apt-get方式安装,也可以下载源代码安装【1】,我们这里使用apt-git安装。但由于直接使用 sudo apt-get install git 安装的版本较老,因此我们参考【2】中给出的PPA源。sudo add-apt-repository pp转载 2016-04-12 09:48:00 · 522 阅读 · 0 评论 -
Linux下autoconf和automake使用
转自:http://hi.baidu.com/liuyanqiong/blog/item/0a6f0ad9d28e1d3d32fa1c7b.html 作为Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将介绍转载 2015-08-04 10:55:12 · 661 阅读 · 0 评论 -
gdb调试
GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能:1 在程序中设置断点,当程序运行到断点处暂停2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来3 单步执行4 运行时修改变量的值5 跟踪路径6 线程切换等等 下面以以下程序为例当我们要使用GDB进行程序的转载 2017-01-23 11:03:56 · 809 阅读 · 0 评论 -
makefile研究(1)
以前在windows上学习单片机、ARM的时候都是用IDE去管理编译代码,很多时候都不知道各个程序之间是怎么编译成可执行文件的,只要点下鼠标就可以了。虽然自己也有学习linux以及uboot 但都是看看改改程序。对于makefile认识也是单文件小工程的。认为makefile就是个编译工具,没必要深究。随着阅读的代码量的增多,发现,对于理解一些源码框架比如u-boot、inux 、andriod,转载 2014-04-13 21:05:09 · 1054 阅读 · 0 评论 -
后台开发知识点总结(一、Linux和OS)
偶然在知乎上看到想要从事linux后台开发需要的能力集锦,总结的挺全面的,鉴于自己贫弱的记忆力,还是在这里总结一下供以后查看,顺便检验一下自己。 1、 命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验 在《TCP/IP》协议一书中,经常使用到netstat和tcpdump这两个命令,netstat常用于显示各种网络信...转载 2018-02-11 13:56:03 · 2565 阅读 · 0 评论 -
linux C/C++服务器后台开发面试题总结
一、编程语言1.根据熟悉的语言,谈谈两种语言的区别?主要浅谈下C/C++和PHP语言的区别:1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互联网开发公司的主流web后台开发语言,主要框架为mvc模型,如smarty,yaf,升级的PHP7速度较快,对服务器的压力要小很多,在新浪微博已经有应用,对比很明显。2)C/C++开发语言,C语言更偏向硬件底层...转载 2018-02-12 09:33:57 · 1128 阅读 · 0 评论 -
Linux后台研发超实用命令总结
作者 码龙喵 转载请注明出处1.概述计算机领域水太深了,不可能什么都记住,所以只需要理解并记住核心的原理,其他的交给网络,用的时候查一下就可以了。因此整理了平时工作中自己觉得好用的命令。2.系统相关查看手册命令man只查看当前下一级目录占用大小du --max-depth=1 -h查看某个进程是否在运行转载 2018-01-05 09:56:04 · 328 阅读 · 0 评论 -
如何使用工具调试linux服务程序
1、使用valgrind检测内存泄漏、内存读写出错等信息,但会使程序性能下降,须带-g调试信息,须安装使用,官网使用向导:http://valgrind.org/docs/manual/quick-start.html#quick-start.intro2、使用gperftools检测函数占用cpu时间及比例,不带-g,须安装使用,下载地址:(还须安装libunwind)h原创 2017-09-20 14:06:52 · 482 阅读 · 0 评论 -
一个 Linux 上分析死锁的简单方法
简介死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊转载 2017-09-20 14:02:48 · 482 阅读 · 0 评论 -
Linux strace命令
简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。输出参数含义root@ubuntu:/usr# strac转载 2017-09-20 11:26:07 · 417 阅读 · 0 评论 -
Makefile常用万能模板(包括静态链接库、动态链接库、可执行文件)
本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefile。 这些makefile都很简单,一般都是一看就会用,用法也很容易,只需要把它们拷贝到你的代码的同一目录下,然后就可以用 make 来生成目标文件了。 下面是三个makefile的源代码:1、生成可执行文件的makefile转载 2017-06-14 09:36:16 · 759 阅读 · 0 评论 -
centos添加环境变量
在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信息时时,则会提示命令不存在的错误,下面我们详细介绍一下在linux下将php和mysql加入到环境变量中的方法(假设php和mysql分别安装在/usr/local/webserver/php/和/usr/l转载 2017-05-09 13:43:45 · 543 阅读 · 0 评论 -
在Linux里设置环境变量的方法(export PATH)
一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置环境变量:1、直接用export命令:#export PATH=$PATH:/opt/au1200_rm/build_tools转载 2013-02-21 14:30:22 · 867 阅读 · 0 评论 -
信号(Signal)与槽(Slot)-Qt中的典型机制
因为下一篇关于Boost的文章会涉及到事件处理的问题,里面用的是信号和槽的机制,先拿Qt里的这个机制预研一下。诶,Boost这是够厉害的,什么先进就包含什么!要知道我以前一直以为这是Qt的专利呢。当然,这也是大多数厉害的开源软件库的高人之处,像Qt这种GUI库也包含了很多数据库,字符处理等内容,多学学吧! signal/slot是Qt对象以及其派生类对象之间的一种高效通信接口,它是Q转载 2014-06-08 10:04:30 · 825 阅读 · 0 评论 -
makefile 笔记(中)
17. gcc的-M和-MM会列出一个源文件对其他文件的依赖关系,所不同的是-MM不会列出对于系统头文件的依赖关系// screen content begin$gcc -MM foo.cfoo.o: foo.c foo.h// screen content end说下sed,比如:sed 's,\(.*\)\.o[:]*,objs/\1.o:,g'上述属于sed的其中原创 2013-04-20 18:56:04 · 7695 阅读 · 5 评论 -
sed命令详解
转载:http://blog.chinaunix.net/u/22677/showart_1076318.html1.简介sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空转载 2013-04-16 22:30:28 · 778 阅读 · 0 评论 -
makefile 笔记(上)
0. Makefile是一个指示make命令如何为我们工作的命令文件1. make 不带命令,则以Makefile文件中定义的第一个目标为运行目标(默认目标)2. @echo "Hello" 与 echo "Hello",区别是多了个@,这一符号告诉make,在运行时不要将这一行的命令显示出来3. 生成目标的命令行前必须至少有一个TAB4. 目标如果有先决条件,则先原创 2013-04-13 18:27:24 · 1338 阅读 · 0 评论 -
putty详细使用说明
在windows下操作linux命令的小工具,非常好。偶然发现,储存资料备用。PuTTY 是一个跨平台的远程登录工具,包含了一组程序,包括:PuTTY (Telnet 和 SSH 客户端)PSCP (SCP 客户端, 命令行下通过 SSH 拷贝文件,类似于 Unix/Linux 下的 scp 命令)PSFTP (SFTP 的命令行客户端,类似于 FTP 的文件传输,只不过使用的是 SS转载 2013-03-23 15:46:00 · 4922 阅读 · 0 评论 -
Linux创建静态库和动态库
第1步:编辑得到举例的程序--hello.h、hello.c和main.c;hello.h为该函数库的头文件。hello.c是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。main.c为测试库文件的主程序,在主程序中调用了公用函数hello。 第2步:将hello.c编译成.o文件;无论静态库,还是动态库,都是由.o文件创建的转载 2013-01-08 19:23:45 · 723 阅读 · 0 评论 -
Linux SSH命令大全
rm -rf mydir /* 删除mydir目录 */cd mydir /* 进入mydir目录 */cd – /* 回上一级目录 */cd ~ /* 回根目录 */mv tools tool /* 把tools目录改名为tool */ln -s tool bac/* 给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了转载 2012-03-10 17:25:03 · 1052 阅读 · 0 评论 -
Linux下软件安装初探
对于多数linux用户,从安装到使用linux,所遇到的烦恼与困难可能远超过你的想象。从开始选择linux套件,就令你烦恼究竟选哪一套好呢?而安装系统的过程更是困难重重。等到有了一个较象样的linux环境,接下来令人头痛的是linux应用程序如何获得?linux的应用软件究竟如何安装?如何才能删除那些不要的软件呢?其实你可以做得更简单,用得更容易。依据安装软件的经验,大体上可以归纳出“三类两法转载 2012-03-10 17:13:05 · 811 阅读 · 0 评论 -
ssh: connect to host localhost port 22: Connection refused
命令:ssh localhost错误信息:ssh: connect to host localhost port 22: Connection refused 错误原因:1.sshd 未安装2.sshd 未启动3.防火墙 解决方法:1.确定安装sshd: sudo apt-get install openssh-server转载 2013-05-04 10:34:55 · 6736 阅读 · 0 评论 -
每个开发人员都应该知道的8个Linux命令
每个开发人员到了他们职业人生的某个阶段的时候,将会发现自己要寻找有关Linux的信息。我并不是这方面的专家。但是掌握了以下8个命令,我几乎可以得到我任何需要的东西。 注意:以下的命令都有很多扩展的文档,博客里提出的知识我最常用的命令,用法。如果你不了解Linux命令,这个帖子会给你一点指导。 我们以一些文本举例。假设我们有2个文件,里面有订单关于第三方的放置地点和发送回应。转载 2013-02-21 14:41:34 · 644 阅读 · 0 评论 -
Linux静态库和动态库学习总结
一、废话之前由于工作需要,要封装一个Linux加密解密转换的动态库,这个之前只做过Windows下面的,Linux下面还真没有做过,之后做了整一个晚上才算做好,不过其中也学到了不少东西,包括Linux下的动态库和静态库,MakeFile等等。之前就已经写了一个练习,之后怕又忘了,总结一下备忘,以后也好查。很大部分内容都是收集的一些东西还有自己学习的体会,有什么错误或者问题请直接提出转载 2014-04-13 21:15:05 · 899 阅读 · 0 评论 -
makefile研究(2)
一直想写一个很全很好移植的Makefile模板,我觉得一个完整makefile 应该包含如下内容。 1、可以编译成 动态库.a 静态库.so 或者是直接编译成可执行文件。2、编译可执行文件可以指定宏 ,自有添加头文件,指定链接的各种库3、要能过自动生成依赖关系,能准确地捕捉到任何依赖文件的改动。4、如果是嵌入式系统应该还要指定链接脚本(这里暂不考虑)转载 2014-04-13 21:06:27 · 1054 阅读 · 0 评论 -
makefile研究(3)
前面讲了Makefile 的简单语法和简单的应用模板,但在实际项目应用中比这个肯定复杂很多,但是我想说他的Makefile应用模式都是大同小异,只是代码量和工程复杂度大写而已。我觉得一个完整的工程目录应该这样:1、工程文件结构目录应该要非常清晰,并且模块化,各个模块下的Makefile 独立2、可以分别单独编译各个单独模块成.a 或.so3、在顶层目录下可以一次性生转载 2014-04-13 21:07:31 · 2384 阅读 · 0 评论 -
在Ubuntu下安装配置Samba服务
一.为什么要用Samba? Samba的主要任务就是实现Linux系统和Windows系统之间的资源共享。我们现在是要在Linux下配置Samba,让Windows的用户可以访问你 配置好之后的PC。二.需要的软件? 我是在ubuntu上实现的,所以我只需在配置好ubuntu的更新源之后,在终端中使用一下两句命令,就可以安装Samba的软件包 $sudo ap转载 2013-09-01 14:54:08 · 871 阅读 · 0 评论 -
makefile 笔记(下)
22. 建一个名为huge的项目,组织架构如下图,引入了静态库的build,其中ar -crs:ar是用来管理档案文件的,在嵌入式系统中主要是用来对静态库进行管理的,c用于创建一个档案文件,r表示向档案文件中增加文件,t用于显示档案文件中存在哪些文件.PHONY: all cleanMKDIR = mkdirRM = rmRMFLAGS = -frCC = gc原创 2013-05-04 17:08:51 · 1873 阅读 · 0 评论 -
linux 动态链接库加载实例
////////////////////////////////////////////////////////////////////////////////////////// str_out.h#ifndef STR_OUT_H#define STR_OUT_Hextern "C" void str_out(const char* str); #endif//////转载 2013-05-08 22:49:02 · 3777 阅读 · 0 评论 -
linux 查看 *.a *.so 符号表(zt)
objdump -tT libName.so | grep symbel symbolNamenm -D libName.so | grep symbel symbolName很多非常熟悉windows 进程依赖那个dll,使用depends,linux使用ldd命令。查看函数windows使用dumpbin,linux使用objdump -tT libCavi转载 2013-05-08 22:27:56 · 1350 阅读 · 0 评论 -
控制linux动态链接库(so, standard object)导出函数
参考:http://www.lampchina.net/article/htmls/201006/Mjg4MDMy.html注意:参考文献中有一些函数是不能编译通过的。编译环境:gcc 4.4.3在windows中,我们可以指定__declspec(dllexport)定义来控制导出函数,在linux下,我们也有类似的控制参数。在GCC帮助文档 -fvisibili转载 2013-05-21 17:04:03 · 1075 阅读 · 0 评论
分享