Linux
文章平均质量分 70
arcslee
这个作者很懒,什么都没留下…
展开
-
Linux 多线程
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望这些经验可以帮助读者们能更好更快的熟悉 Linux 平台的多线程编程。我们假设读转载 2014-04-14 15:18:27 · 648 阅读 · 0 评论 -
手把手教你把Vim改装成一个IDE编程环境
手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5原创 2013-04-18 17:22:49 · 506 阅读 · 0 评论 -
vim 替换命令
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。:s/vivian/sky/ 替换当前行第一个 vivian 为 sky:s/vivian/sky/g 替换当前行所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个原创 2013-04-18 17:22:46 · 610 阅读 · 0 评论 -
Linux下DIR,dirent,stat等结构体详解
最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。首先说说DIR这一结构体,以下为DIR结构体的定义:struct __dirstream { void *__fd; char *__data; int __entry_data; char *__ptr;原创 2013-04-18 17:22:39 · 526 阅读 · 0 评论 -
linux windows 各种远程
多时候我们维护服务器的时候由于受到软件限制必须要用到远程桌面,下面我们就来看一下如何在Windows和Linux上互相访问远程桌面。一、从Linux上访问Windows远程桌面1.首先需要开启Windows上的远程桌面打开控制面板0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700原创 2013-04-18 17:22:19 · 451 阅读 · 0 评论 -
七个有效的文本编辑习惯
如果你要花大量的时间键入文本, 写程序或编写HTML脚本, 你可以通过有效地使用一个好的编辑器来替你节省时间. 本文将引导你如果快速地完成你的编辑工作, 并且减少你的错误. 本文将以开放源码软件Vim(Vi IMproved)为例向你展示如何进行有效的编辑, 但这里提到的原则对其它的编辑器也是一样, 选择合适的编辑器是进行高效的编辑的第一步, 关于哪个编辑器最好的争论已经数不胜数, 本文不打原创 2013-04-18 17:22:00 · 520 阅读 · 0 评论 -
关于bash 中 if 语法结构的广泛误解
我打赌正在看这篇文章的你, 超过99%的可能性你对这个问题的理解是错的. 或者至少是有偏差的.我深信这是一种教育法上的广泛错误, 那就是告诉大家说:if [ condition ]then ...fi这是bash中条件语句的"语法".任 何人, 或者说几乎任何人, 都会在这种描述下自然地认为: [ 和 ] 是这种语法结构本身的一部分, 并且, 老老实实地在自己的脚本中总是这样使用if 语原创 2013-04-18 17:21:55 · 491 阅读 · 0 评论 -
UNIX 技巧: UNIX 高手的另外 10 个习惯
让我们面对现实吧:坏习惯很难改变。但是您已经熟悉的习惯可能更难克服。有时,重新审视某些事情可能让您遇到“啊哈,我没想到它能做到这一点!”的时刻。在 Michael Stutz 的优秀文章“UNIX 高手的 10 个习惯”的基础上,本文将提供另外 10 个 UNIX 命令行命令、工具和技术,可以使您成为更高效的 UNIX 命令行高手。您应当采纳的其他 10 个好习惯包括:使用文件名自动完成功能 (f原创 2013-04-18 17:21:45 · 404 阅读 · 0 评论 -
Linux命令行下的快捷键
Ctrl + a 切换到命令行开始 这个操作跟Home实现的结果一样的,但Home在某些unix环境下无法使用,便可以使用这个组合;在Linux下的vim,这个也是有效的;另外,在windows的许多文件编辑器里,这个也是有效的。 Ctrl + e 切换到命令行末尾 这个操作跟END实现的结果一样的,但End键在某些unix环境下无法使用,便可以使用这个组合;在Linux下的vim,这个也是原创 2013-04-18 17:21:35 · 499 阅读 · 0 评论 -
UNIX网络编程之旅-配置unp.h头文件环境
于是我把第三版的源代码编译实现了这个过程,算是一种个性化的开发环境的搭建吧,顺便把过程记录下来,以便自己以后查阅。首先去网上找到源代码包unpv.13e.tar.gz 一找一大堆解压缩到你的某个目录,unpv13e里面大致有这些目录├── aclocal.m4 ├── advio ├── bcast ├── config.guess ├── config.h ├── config.h.in ├──原创 2013-04-18 17:20:16 · 468 阅读 · 0 评论 -
ubuntu 12.04如何禁用guest用户 [
ubuntu 12.04默认会有一个guest用户,使用GUEST用户可以无需密码访问Ubuntu机器。通过可以方法可以禁用guest用户:gksudo gedit /etc/lightdm/lightdm.conf复制代码添加allow-guest=false复制代码保存并退出。之后你的 lightdm.conf可能和下面的内容差不多:[SeatDefaults]user-sessio原创 2013-04-18 17:23:22 · 802 阅读 · 0 评论 -
解决ubuntu下pdf乱码问题
解决ubuntu下pdf乱码问题 两行命令即可解决ubuntu下pdf文件的乱码问题。sudo apt-get install poppler-datasudo mv /etc/fonts/conf.d/49-sansserif.conf /etc/fonts/conf.d/49-sansserif.conf.backup原创 2013-04-18 17:23:36 · 558 阅读 · 0 评论 -
内存泄露检测工具比较
1. ccmalloc-Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。 2. Dmalloc-Debug Malloc Library.3. Electric Fence-Linux分发版中由Bruce Perens编写的malloc()调试库。 4. Leaky-Linux下检测内存泄漏的程序。转载 2013-05-08 16:44:18 · 903 阅读 · 0 评论 -
pthread_cond_wait 与 pthread_cond_signal 用法(惊群效应)
pthread_mutex_t qlock;pthread_cond_t qready;/************pthread_cond_wait()的使用方法**********/pthread_mutex_lock(&qlock); /*lock*///等待某资源,并以qready作为条件通知我们pthread_cond_wait(&qready, &qlock); /*blo转载 2014-04-14 13:43:30 · 3138 阅读 · 0 评论 -
Shell 变量
Shell 变量1、创建子进程的时候,环境变量拷贝一份到子进程的内存栈空间,因此子进程里对环境变量的修改,并不影响父进程内存栈空间的值;2、常用内置变量$? —— 上一个命令的返回值$# —— 传递给shell脚本的命令行位置参数的个数$0 —— 调用的shell脚本的名称$n —— 第n个位置参数的值,n从1开始,如 $1, $转载 2013-07-29 16:40:45 · 539 阅读 · 0 评论 -
screen命令
你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断转载 2013-07-29 16:52:42 · 624 阅读 · 0 评论 -
线程与进程
一.定义关于进程、轻量级进程、线程、用户线程、内核线程的定义,这个很容易找到,但是看完之后你可以说你懂了,但实际上你真的明白了么?在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;而线程是程序执行的最小单元。一个进程的组成实体可以分为两大部分:线程集合和资源集合。进程中的线程是动态的对象;代表了进程指令的执行。资源,包括地址空间、打开的文件、用户信息等等,由进程内的线程共转载 2013-06-28 13:51:52 · 762 阅读 · 0 评论 -
Linux运维常用命令
1.删除0字节文件find -type f -size 0 -exec rm -rf {} \;2.查看进程按内存从大到小排列ps -e -o "%C : %p : %z : %a"|sort -k5 -nr3.按cpu利用率从大到小排列ps -e -o "%C : %p : %z : %a"|sort -nr4.打印说cache里的UR转载 2013-07-13 08:15:00 · 873 阅读 · 0 评论 -
使用gdb调试多线程程序总结
一直对GDB多线程调试接触不多,最近因为工作有了一些接触,简单作点记录吧。 先介绍一下GDB多线程调试的基本命令。 info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。 thread ID 切换当前调试的线程为指定ID的线程。 break thread_test.c:123 thread all在转载 2013-06-21 17:26:25 · 506 阅读 · 0 评论 -
使用Gnu gprof进行Linux平台下的程序分析
Gprof功能:打印出程序运行中各个函数消耗的时间,可以帮助程序员找出众多函数中耗时最多的函数。产生程序运行时候的函数调用关系,包括调用次数,可以帮助程序员分析程序的运行流程。有了函数的调用关系,这会让开发人员大大提高工作效率,不用费心地去一点点找出程序的运行流程,这对小程序来说可能效果不是很明显,但对于有几万,几十万代码量的工程来说,效率是毋庸置疑的!而且这个功能对于维护旧代码或者是分析Op转载 2013-05-29 15:52:57 · 610 阅读 · 0 评论 -
Shell中的数组
一、数组和字符串Array[3] = "a b c" echo $Array[1] 输出b,str=“a b c” Array = ($str) echo${Array[1]},同样输出b,要注意: Array = ($str)中的右值的括号不能缺上面这个就是我们常说的把字符串放到一个数组中,也可以理解为动态数组,比C和C++简单多了计算字符串长度可用的三种方法:echo “转载 2013-05-12 23:23:27 · 537 阅读 · 0 评论 -
chroot
chroot用于改变根目录,用处有很多,比如测试安装程序、调试程序等等。由于是以指定的路径为根目录,一些命令不会真正的伤害到系统。改变根目录之后,环境变量的不变,但是注意这个时候所以变量指定的路径都是以指定的目录为根目录。如/bin路径已经不是系统真正的路径,而是指定目录下的bin。这样运行shell就不会成功,解决办法是把实际根目录下的bin目录copy到指定目录,同时还要copy一原创 2013-05-09 17:07:14 · 551 阅读 · 0 评论 -
LINUX 硬链接与软链接的区别
对于一个文件来说,有唯一的索引接点(inode)与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 ...都可以看着文件来处理的啊。 连接有软连接和硬连接(hard link)之分的,软连接(symbolic link)又叫符号连接。符号连接相当于Windows下原创 2013-04-18 17:23:34 · 504 阅读 · 0 评论 -
自己总结的一些vim的用法
1,如何在文档中插入另一个文档:r 2,如何把编辑的文档转换成html:TOhtml3,如何调用外部程序,并把输出的结果定向到一个新的文档中:split +enew | r ! 4,如何在文档中用一个单词替换不同的单词(一次替换多个字符串):%s/word1/|word2/|word3/newword/g #全文替换:s/word1/|word2/|word3/newword/g原创 2013-04-18 17:23:24 · 676 阅读 · 0 评论 -
理解linux time命令的输出(What do ‘real’, ‘user’ and ‘sys’ mean?)
Linux中time命令,我们经常用来计算某个程序的运行耗时,用户态cpu耗时,系统态cpu耗时。 例如: $ time fooreal 0m0.003suser 0m0.000ssys 0m0.004s$ 那么这三个时间都具体代表什么意思呢? [1] real : 表示foo程序整个的运行耗时,可以理解为foo运行开始时刻你看了一下手表,foo运行结束原创 2013-04-18 17:23:09 · 611 阅读 · 0 评论 -
scp – 安全复制
scp [-1245BCpqrv] [-c cipher] [F ssh_config] [-I identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:] file1 […] [[suer@]host2:]file2说明Scp在主机间复制文件。他使用 ssh(1)作为数据传输。而且用同样认证和安原创 2013-04-18 17:22:25 · 638 阅读 · 0 评论 -
千万千万不要运行的命令
转自:http://blog.chinaunix.net/u/31/showart_659601.htmlgaleki post in 一般 Tips翻译 & 修改自: http://news.softpedia.com/news/Malicious-Commands-You-Should-NOT-Run-in-Ubuntu-72133.shtml警告:文中列出的命令绝对不可以运行,即使你觉得很原创 2013-04-18 17:21:40 · 559 阅读 · 0 评论 -
【转】vim 插件 pyclewn
:help pyclewn 在前面的文章中介绍了使用vimgdb在vim中调试程序,这种方法允许在终端中的vim,以及图形化的gvim中调试你的程序。不过它的局限也是很明显的:首先,它需要给vim的源代码打补丁并重新编译vim;另外,它只能在Linux下使用,不能在windows上进行gdb调试。 要想在vim中调试,除了使用vimgdb外,还可以使用clewn和pyclewn,这两个工具原创 2013-04-18 17:21:17 · 1228 阅读 · 0 评论 -
linux下vim ctags taglist配置
习惯了在windows下用sourceInsight编程的人,当然也希望在linux的字符终端下也能有一样酷的软件,这里要介绍给大家的是如题所示的三款软件:vim , ctag 和Taglist 。 很多时候我们需要在多个源程序之间实现函数、宏定义、外部变量等的跳转查询,甚至有时候需要到内核或库源代码里窥视他们真面目,我们也需要有列出程序内部所使用的各个函数、变量、宏等等信息的工原创 2013-04-18 17:21:10 · 778 阅读 · 0 评论 -
Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
对所有用户有效在/etc/profile增加以下内容。只对当前用户有效在Home目录下的.bashrc或.bash_profile里增加下面的内容:(注意:等号前面不要加空格,否则可能出现 command not found)#在PATH中找到可执行文件程序的路径。export PATH =$PATH:$HOME/bin#gcc找到头文件的路径C_INCLUDE_P转载 2013-04-26 14:34:15 · 645 阅读 · 0 评论 -
ulimit
1)、使用ulimit -a命令可以查看ulimit设置,使用命令可以直接设置ulimit属性,但是如果需要设置永久生效,可以按照如下方式:vi /etc/security/limits.conf # 添加如下的行 * soft noproc 11000 * hard noproc11000 * soft nofile 4100 * hard nofile 4100转载 2013-04-25 15:31:53 · 651 阅读 · 0 评论 -
exit、return、_exit、_Exit这几个函数的区别
1、exit函数和return函数的主要区别是:1)exit用于在程序运行的过程中随时结束程序,其参数是返回给OS的。也可以这么讲:exit函数是退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。main函数结束时也会隐式地调用exit函数,exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭转载 2013-04-25 15:25:07 · 642 阅读 · 0 评论 -
linux系统查看系统性能命令详解
一般我们查看系统性能主要是在以下几个方面1.用户使用CPU情况 展现为 %user2.系统使用CPU情况 展现为 %sys3.wio或iowait 展现为 %iowait 进程由于等待磁盘IO而使CPU处于空闲状态的比率4.CPU的空闲率5.CPU上下文的交换的比率,也有说明为CPU上下文的切换。即内存和寄存器中数据的切换6.nice 这个还不是很明白是啥意思7转载 2013-04-24 18:22:28 · 635 阅读 · 0 评论 -
linux命令之调试工具strace
1《linux的strace命令(详解).txt》 新浪电子书可下载2man strace一个基本上通用的 完整的用法:strace -o output.txt -T -tt -e trace=all -p 28979上面的含义是 跟踪28979进程的所有系统调用(-e trace=all),并统计系统调用的花费时间,以及开始时间(并以可视化的时分秒格式显示),最后将记录结果存转载 2013-04-24 16:30:43 · 544 阅读 · 0 评论 -
Linux下用于查看系统当前登录用户信息的4种方法
作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动。有些时候,你甚至需要知道他(她)们正在做什么。本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法。1. 使用w命令查看登录用户正在使用的进程信息w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:用户名称用户的机器名称或tty原创 2013-04-18 17:22:28 · 436 阅读 · 0 评论 -
查看TCP网络连接情况
查看TCP网络连接情况 命令:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' www.2cto.com 返回结果示例:Cmd代码 LAST_ACK 5 SYN_RECV 30 ESTABLISHED 15 FIN_WAIT1 51 FIN_WAIT2 5 TIME_WAIT 10 其中的原创 2013-04-18 17:22:31 · 740 阅读 · 0 评论 -
Linux下查看内存
前言:在Linux上不像在Windows上看内存那样方便,而且还有Swap这个新的概念,所以知道如何来看Linux内存还是有一定意义的.在Linux下查看内存我们一般用command free[root@nonamelinux ~]# freetotal used free shared buffers cachedMem: 386024 377116 8908 0 21280 15546原创 2013-04-18 17:19:38 · 463 阅读 · 0 评论 -
su root 和su - root 的区别
前几天,在一次项目中,犯了一个很低级的错误,但是没弄明白是什么问题。情况是这样的,我们在做灾备,重启系统化,以root用户权限,通过 su oracle ,进去后,oracle的rac 无法正常启动,我没细看,一直在找其他的原因,最后经过同事提醒,说应该执行 su - oracle。果然如他所说,进去后正常启动。 今天忽然想起,又仔细查看了资料,做个笔记,备忘。也提醒自己注意细节。原创 2013-04-18 17:22:36 · 444 阅读 · 0 评论 -
windows 远程ubuntu
为了解决windows远程桌面访问ubuntu12.04 之一中提到的Vnc远程桌面的缺点,我们采用第二种方法xrdp,该方法支持多用户登录并远程桌面。1、首先参考windows远程桌面访问ubuntu12.04 之一 提到的安装GNOME桌面方法;2、进入GNOME界面,在左上角进入系统-》首选项-》桌面共享进行如下设置。0 && image.height>0){if(image.width>=原创 2013-04-18 17:22:12 · 632 阅读 · 0 评论 -
linux下的失误
find ./ -size +50M | grep "XXX" | xargs rm ,本来是用于自动搜索当前文件夹下大于50M的文件,寻找匹配关键字XXX并删除的,结果单独执行find命令后查看大于50M文件的路径后,结果直接用向上的方向键找出刚才执行的find命令 在后面没加grep,只是加上xargs rm,用户文件夹下凡是50M以上的文件都被删除了,硬盘瞬间空出11G,不过还好没在根目录下原创 2013-04-18 17:21:37 · 493 阅读 · 0 评论