随笔分类 - 03.1 Linux
摘要:交互式shell和非交互式shell、登录shell和非登录shell的区别。首先,这是两个不同的维度来划分的,一个是是否交互式,另一个是是否登录。交互式shell和非交互式shell(interactive shell and non-interactive shell)交互式模式就是在终端上执行...
阅读全文
摘要:今天在检查home目录时发现有一个名为“\”的文件,觉得很奇怪,从来没见过,就准备用Vim打开看看,很自然地输入命令查看一下,结果居然打不开。ubuntu@ubuntu:~$ vi \> ubuntu@ubuntu:~$ 稍微思考了一下就明白了,不是打不开,问题出在这个文件名“ \ ”上面。 反斜线符号“ \ ”在Bash中被解释为转义字符,用于去除一个单个字符的特殊意义,它保留了跟随在之后的字符的字面值,除了换行符。如果在反斜线之后一个换行字符立即出现,转义字符使行得以继续,遇到命令很长时使用反斜线很有效;反斜线从输入流中被移除并有效地忽略。例一: ubuntu@ubuntu:~$..
阅读全文
摘要:摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。但不同操作系统的动态库由 于格式不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植到Linux上的方法和经验。推荐linux动态库的创建请阅读:《Linux静态/动态链接库的创建和使用》文章来源:http://www.cnblogs.com/chio/archive/2008/11/13/1333119.html1、引言
阅读全文
摘要:GTK的安装过程比较繁琐,以前也安装过,但没有记录下来,Google一下记录下来备用。利用此方法成功在ubuntu12.04下安装GTK 2.24.101、安装gcc/g++/gdb/make 等基本编程工具sudo apt-get install build-essential2、安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件sudo apt-get install gnome-core-devel 3、用于在编译GTK程序时自动找出头文件及库文件位置sudo apt-get install pkg-config4、安装 devhelp GTK文档查看程序
阅读全文
摘要:为了熟悉更多Linux 的英语词汇,希望把Ubuntu 的界面换成英文的。使用System->Administration->Language Suport( 系统-> 管理-> 语言支持) ,将Default Language 改成English(United States) 。由于使用iBus 输入法,即使不安装一些中文输入包,也影响不大。(参照:[Howto] 英文环境下使用 ibus 输入中文,不需要 scim 和中文支持)重启系统之后系统变成英文的了,但是显示中文文件名、Firefox 里面的中文网页时候,字体全部变成了Bitmap 的wqy ,看起来很丑很费
阅读全文
摘要:昨天在XP下用grub4dos安装了ubuntu12.04LTS,总体上还算比较顺利,中途有碰到两个异常问题,解决了记录一下。问题一:安装过程中读取ISO镜像文件时,卡在"checking battery state"这一部分停止不动。解决方法: 1. 在停止的界面按下Ctrl+Alt+F1 2. 输入命令 sudo /etc/init.d/lightdm restart问题二:安装过程中以及安装完成后屏幕花屏。解决方法: 【安装过程中】 1. 安装时按任一键,将出现选单“就是有试用和安装”那个界面 2. 选语言后,光标移到“试用和安装”,按F6【其他选项】,再按ESC跳出
阅读全文
摘要:Rio,Linux 重度用户说说我的理解吧。Unix 的 file 只是一个表现形式,其本质有两点:统一的名字空间 (unified namespace):表现形式是文件系统 (filesystem) 的路径;统一的访问接口 (unified interface):表现形式是 read/write 等标准函数。统一的名字空间保证了系统内各种资源都能用相同的方法发现;统一的访问接口保证了这些资源都能以相似的方法进行操作。通过这两点进而实现了以最小代价对系统内类型迥异的各种资源的调用。这样做的缺点也是很明显的,因为要兼顾不同资源类型的不同属性,所以访问操作通常被定义为了最基础最原始的字符串读写。显
阅读全文
摘要:1. 用户态和内核态的概念区别究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子: 1)例子 C代码 1 void testfork() 2 { 3 if(0 == fork()) 4 { 5 6 printf(“create new process success!\n”); 7 8 } 9 10 printf(“testfork ok\n”); 11 12 } 这段代...
阅读全文
摘要:最近在捣鼓LFS,开始要制作工具链,没听过这个东东,还有一些附属概念,于是GOOGLE了下总结一点。。维基百科在软件工程中,工具链(英语:toolchain)是一系列用于制作软件的工具。 这些工具一般一个接一个地运用,一件工具的输出输入至下一件工具,但广义上可以单单是指多个相关的工具。工具链一般包括用来编辑源代码的文本编辑器;生成可执行文件的编译器及链接器;连接操作系统的库;以及除错器。例子有GNU toolchain。工具链是集成开发环境的近义词。工具链是在每一个大型开放源码项目(包括Linux内核本身)背后默默支撑的力量。它们由一组必要的工具和软件构成,用于编译和调试从最小的工具软件到你可
阅读全文
摘要:这两天闲着都在捣鼓VIM了,感觉有点不务正业了,不得不说VIM里面要学习的东西太多了,学习曲线无比陡峭。知识点多了有点乱,特地发个博梳理一下,都是我自己在学习过程中积累的一些,可能有点杂,凑合着看吧,轻拍,欢迎提问一起探讨。一、vim介绍与常用命令 这个就不说了吧,自行google,贴一张VI/VIM键盘图,要学习的拿去当桌面吧,哈哈。 二、vim各版本区别 ubuntu下预装的版本是vim.tiny,这个更靠近纯vi了,不能使用小键盘和方向键,在编辑模式下,移动光标会变成A B C D等字符并换行。 解决方法两个; 1.vim缺省是vi兼容模式,设置成不兼容模式就好了: ...
阅读全文
摘要:本文来自IBMDW http://www.ibm.com/developerworks/cn/linux/l-vimdiff/源程序文件(通常是纯文本文件)比较和合并工具一直是软件开发过程中比较重要的组成部分。现在市场上很多功能很强大的专用比较和合并工具,比如 BeyondCompare;很多IDE 或者软件配置管理系统,比如Eclipse, Rational ClearCase都提供了内建的功能来支持文件的比较和合并。当远程工作在Unix/Linux平台上的时候,恐怕最简单而且到处存在的就是命令行工具,比如diff。可惜diff的功能有限,使用起来也不是很方便。作为命令行的比较工具,我们仍然
阅读全文
摘要:Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思,面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的api,采用这样的方式有很多种原因:1. 双缓冲技术的实现。2. 可移植性。3. 底层调用本身的一些性能方面的缺陷。4. 让api也可以有了级别和专门的工作面向。 1、系统调用 系统调用提供的函数如open, close, read, write, ioctl等,需包含头文件unistd.h.以write为例:其函数原型为 si..
阅读全文