red hat 拾荒

1, 剪切和改名命令
mv filename1 filename2

2, 将用户加入sudoer组
在/etc/sudoers 中添加
username ALL=(ALL) ALL

3,查找文件名命令
利用find指令,文件目录,匹配字串
find .  -name 'gcc-*' // 查找当前目录下的以gcc-开头的文件

3, 将默认编译器设置为gcc
# rm /usr/bin/gcc
# ln -s /usr/bin/gcc-3.4 /usr/bin/gcc

4,在red hat上安装gcc
在安装盘的第二张光盘上发现:gcc-3.2.2-5.i386.rpm
安装gcc :
[root@masenger install]# rpm -ivh gcc-3.2.2-5.i386.rpm
安装期间提示缺什么包就安装什么包。

5,如何解压.tar.gz文件
tar -zxvf filename

6, DirectFB的安装
下载下面两个包并解压:
tar -xzf DirectFB-1.0.0.tar.gz
tar -xzf DirectFB-examples-1.0.0.tar.gz

安装DirectFB-1.0.0
cd /home/DirectFB-1.0.0
./configure
make
make install

安装DirectFB-examples-1.0.0

a).vi /boot/grub/grub.conf在kernel后面加上vga=0x0317把frambuffer启动,如:

#****************start*************#
title Fedora Core (2.6.9-1.667)
root (hd0,0)
kernel /vmlinuz-2.6.9-1.667 ro root=LABEL=/ rhgb quiet vga=0x0317
initrd /initrd-2.6.9-1.667.img
#****************stop**************#
#更新数据库:
b).updatedb

c).locate directfb.pc

找到directfb.pc的路径,例如我的是这样的:

/usr/local/lib/pkgconfig/directfb.pc
/home/DirectFB-1.0.0/directfb.pc
/home/DirectFB-1.0.0/directfb.pc.in

d).接着设置环境,将第3步得到的pkgconfig库目录加入环境之中:
如果没有pkg-config命令,需要安装软件,在red hat第二张光盘中搜索 find . -name 'pkg'就找到了。

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
(这样只能在当前终端可以运行,关机后还得自已运行些命令,才能运行dfb程序,如要永久性加入可这样:
如你用的是root用户,可以vi /root/.bashrc,/etc/profile或~/.bashrc中加入:
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig )

e).  ./configure
   make

f).make install

g).将指定directfb的库目录:
    vi /etc/ld.so.conf在最后一行加入:/usr/local/lib,保存退出。这样,在程序查找动态库的时候,就会到这个文件中找到directfb的.so库文件。然后运行ldconfig 如果没有该命令,就用/sbin/ldconfig,改命令更新动态库查找路径。
然后reboot重启计算机...

测试例子,编译出来的可执行文件在src下,进入cd src/ 下,运行:
./df_andi

7,跟我一起学Makefile笔记
$<和$@ 是自动化变量,$<代表所有依赖目标集(foo.c, bar.c),$@表示目标集(foo.o, bar.o)。
.PHONY: clean 声明伪目标,这样,不管有没有同名的文件,clean都是伪目标。
利用vpath关键字或者VPATH特殊变量设置搜索路径。
edit:$object 代表依赖关系,object= foo.o bar.o设置变量object,该变量在调用处被替换而非展开。
@echo liuchunlong 仅输出字串“liuchunlong”,不输出命令echo,make后加参数-n或--just-print仅打印命令而不执行命令,加入-s或--silent则全面禁止命令的显示。
-rm -f *.o 中的“-”表示不管该命令成功与否,继续执行下面的命令。
$(object)引用object变量,一般加上括号,清晰易读。
“:=”和“=”号的区别是,":="只能引用前面已经定义好的变量,不能使用后面的变量。

8, “如何”和“为什么”
“如何”是需要全面理解代码,“为什么”演示了驱动编写者需要做的选择。

9,vim + ctags + taglist
ctags 用来生成tag entry(function,parameter,etc)的tags文件。ctags的安装简单,解压后,输入./configure && make && make install就ok了。

taglist 用来生成整个工程的tag结构,并显示。
一般vim安装在/usr/share/vim/vim71/下面,doc文件下是帮助文档,plugin下是插件程序。所以,把taglist的压缩包解压后,分别放在对应的文件中即可。然后进入vim,在末行模式下输入:helptags /usr/share/vim/vim61/doc/, 然后再输入:help taglist,就可以显示taglist的帮助文档了,不过在vim71版中好像没有helptags命令,具体就得再摸索了。

10, VIM命令列表
vim三种模式:编辑模式,命令模式,末行模式。按a,o,i进入编辑模式,按esc进入命令模式,按:进入末行模式。
输入:vimtutor,进入vim修炼文档。

移动光标
上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行
下:j nj:向下移动n行
左:h nh:向左移动n列
右:l nl:向右移动n列

w:光标以单词向前移动 nw:光标向前移动n个单词 光标到单词的第一个字母上
b:与w相反
e: 光标以单词向前移动 ne:光标向前移动n个单词 光标到单词的最后一个字母上
ge: 与e相反

$:移动光标到行尾 n$:移动到第n行的行尾
0(Num):移动光标到行首
^:移动光标到行首第一个非空字符上去

f<a>:移动光标到当前行的字符a上,nf<a>移动光标到当前行的第n个a字符上
F:相反

%:移动到与制匹配的括号上去(),{},[],<>等。

nG:移动到第n行上 G:到最后一行

CTRL+G 得到当前光标在文件中的位置

向前翻页:CTRL+F
向下移动半屏:CTRL+G
向后翻页:CTRL+B

存盘:
:q! :不存盘退出
:e! :放弃修改文件内容,重新载入该文件编辑
:wq :存盘退出

dw:删除一个单词,需将光标移到单词的第一个字母上,按dw,如果光标在单词任意位置,用daw
dnw:删除n个单词
dne:也可,只是删除到单词尾
dnl:向右删除n个字母
dnh:向左删除n个字母
dnj:向下删除n行
dnk:向上删除n行
d$:删除当前光标到改行的行尾的字母
dd:删除一行
cnw[word]:将n个word改变为word
cc:改变整行
C$:改变到行尾

J: 删除换行符,将光标移到改行,按shift+j删除行尾的换行符,下一行接上来了.
u: 撤销前一次的操作
shif+u(U):撤销对该行的所有操作。

:set showmode :设置显示工作模式

o:在当前行的下面另起一行
O(shift+o):在当前行的上面另起一行

nk或nj:光标向上或向下移n行,n为数字
an!【ESC】:在行后面加n个感叹号(!)
nx:执行n次x(删除)操作

ZZ:保存当前文档并退出VIM
w:保存文件,不退出

:help :查看帮助文档,在这之中,按CTRL+] 进入超连接,按CTRL+O 返回。
:help subject :看某一主题的帮助,ZZ 退出帮助

:set number / set nonumber :显示/不显示行号
:set ruler /set noruler:显示/不显示标尺

/pattern 正方向搜索一个字符模式
?pattern 反方向搜索一个字符模式
然后按n 继续向下找

把光标放到某个单词上面,然后按×号键,表示查找这个单词
查找整个单词://<word/>

:set hlsearch 高亮显示查找到的单词
:set nohlsearch 关闭改功能

m[a-z]:在文中做标记,标记号可为a-z的26个字母,用`a可以移动到标记a处

r:替换当前字符
nr字符:替换当前n个字符

查找替换:
way1:
/【word】 :查找某个word
cw【newword】:替换为新word
n: 继续查找
.: 执行替换

way2:
:s/string1/string2/g:在一行中将string1替换为string2,g表示执行 用c表示需要确认
:num1,num2 s/string1/string2/g:在行num1至num2中间将string1替换为string2
:1,$ s/string1/string2/g:在全文中将string1替换为string2

v:进入visual 模式
【ESC】退出
V:shift+v 进入行的visual 模式
CTRL+V:进如块操作模式用o和O改变选择的边的大小。

粘贴:p,这是粘贴用x或d删除的文本
复制:
ynw:复制n个单词
yy:复制一行
ynl:复制n个字符
y$:复制当前光标至行尾处
nyy:拷贝n行
完了用p粘贴

:split:分割一个窗口
:split file.c :为另一个文件file.c分隔窗口
:nsplit file.c: 为另一个文件file.c分隔窗口,并指定其行数
CTRL+W在窗口中切换
:close:关闭当前窗口

在所有行插入相同的内容如include<,操作方法如下:
将光标移到开始插入的位置,按CTRL+V进入VISUAL模式,选择好模块后
按I(shift+i),后插入要插入的文本,按[ESC]完成。

:read file.c 将文件file.c的内容插入到当前光标所在的下面
:0read file.c 将文件file.c的内容插入到当前文件的开始处(第0行)
:nread file.c 将文件file.c的内容插入到当前文件的第n行后面
:read !cmd :将外部命令cmd的输出插如到当前光标所在的下面

:n1,n2 write temp.c 将本文件中的n1,到n2行写入temp.c这个文件中去

CTRL+L刷新屏幕
shift + < 左移一行
shift + > 右移一行

u: undo
CTRL+R: re-do
J: 合并一行
CTRL+p 自动完成功能
CTRL+g 查看当前文件全路径

q[a-z] 开始记录但前开始的操作为宏,名称可为【a-z】,然后用q终止录制宏。
用reg显示当前定义的所有的宏,用@[a-z]来在当前光标处执行宏[a-z].

11,vim
:mksession: 会话信息中保存了所有窗口的视图,外加全局变量。
:source session-file: 导入会话文件,恢复编辑环境。
wviminfo:viminfo信息中保存了命令行历史(history)、搜索字符串历史(search)、输入行历史、非空的寄存器内容(register)、文件的位置标记(mark)、最近搜索/替换的模式、缓冲区列表、全局变量等信息。
:rviminfo vim70.viminfo:读入viminfo文件

11,配置./wimrc文件

" An example for a vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2002 May 28
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"       for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM/_vimrc
"     for OpenVMS:  sys$login:.vimrc

" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
  finish
endif

" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

set autoindent  " always set autoindenting on
if has("vms")
  set nobackup  " do not keep a backup file, use versions instead
else
  set backup  " keep a backup file
endif
set history=50  " keep 50 lines of command line history
set ruler  " show the cursor position all the time
set showcmd  " display incomplete commands
set incsearch  " do incremental searching

" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
" let &guioptions = substitute(&guioptions, "t", "", "g")

" Don't use Ex mode, use Q for formatting
map Q gq

" This is an alternative that also works in block mode, but the deleted
" text is lost and it only works for putting the current register.
"vnoremap p "_dp

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=78

  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  autocmd BufReadPost *
    / if line("'/"") > 0 && line("'/"") <= line("$") |
    /   exe "normal g`/"" |
    / endif

endif " has("autocmd")

"Have the mouse enabled all the time
set mouse=a

"Set color scheme
colorscheme evening

"Turn on wild menu
set wildmenu

"Always show current position
set ruler

"Show line number
set nu

"Ignore case when searching
set ignorecase
set incsearch

"Set magic on
set magic

"Show matching brackets
set showmatch

"Highlight search things
set hlsearch

"Enable folding, i find it very useful
set nofen
set fdl=0

"""Plugin""""""""
"Ctags setting
set tags=../tags

"Taglist setting
map <F8> :Tlist<CR>

十二,Automake步骤
  1,运行autoscan,生成configure.scan和autoscan.log文件,修改configure.scan,并重命名为configure.in。
  2,运行autoheader,生成config.h.in
  3,运行aclocal,autoconf
  4,自己编写Makefile.am八股文。
  5,5.运行automake --add-missing
  6,运行./configure
  7,按需要修改config.h
  8,make

十三,vim补充1.0

d$:删除到行尾
yy:复制一行
p: 粘帖

在VIM中的命令模式下输入
:reg
显示VIM的寄存器,记录了以前复制的东西,可以记录10多次,而怎么使用呢?
在命令模式下输入"4p即可粘贴"4的内容
系统剪贴板的编号是"+,所以当从系统剪贴板中粘贴内容到VIM时,可以使用"+p来实现,也可以使用Shift+Insert键,同样,要想将VIM中的东西复制到系统剪贴板,则使用"+y

用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几页的回复却没有解决问题,今天实在受不了了又在网上找办法,竟意外地找到 了,贴出来分享一下。

如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset(粘贴)就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。
vim帮助文档里与粘贴板有关的内容如下:

vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;

要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny(注意带引号)完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
“号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
+号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p;

按ctrl+insert会将vim的内容拷贝到系统粘帖板中,shift+insert将系统粘帖板中的内容拷贝到vim中。

要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。
注意:在我这里,只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。安装vim.gnome使用apt-get install vim-gnome,然后vim自动会链接到vim.gnome。

十四,关于autoconf和automake的补充1.0
dnl:为注释的开头

VERSION="0.0.1-rc2"
AC_SUBST(VERSION) // 在Makefile.am中 @VERSION@ 将会被替换, 相当于把VERSION变量extern出来,这样就可以在makefile.am里使用了。

EXTRA_DIST : 而EXTRA_DIST = file1 file2 的目的只是:如果你有特别的文件(即不是Makefile.am管的,也不是autotools体系的东西)要保留到make dist生成的发型版中,则要用EXTRA_DIST指明,否则是不会带之的。比如你为了省事写的./reconf文件(包含libtoolize aclocal autconf autoheader 和 automake)就要用EXTRA_DIST指明保留。

if test fi : 是脚本语言

注释以m4预定义宏dnl 开头,该宏丢弃在下一个新行之前的所有文本。这些注释并不在生成的configure脚本中出现。例如,把下面给出的行作为文件`configure.in'的开头是有好处的:
dnl Process this file with autoconf to produce a configure script.

上层点的目录会有子目录,则上层目录中的Makefile.am只需写SUBDIRS = sub1 sub2 sub3即可。这里还有个关键是: 靠sub1 sub2 sub3的顺序,指定了编译顺序!! 如果sub1 sub2是库,sub3是程序要用它们,那么这样指定是正确的!

PKG_CHECK_MODULES(GNOME, libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED
              gtk+-2.0     >= $GTK_REQUIRED
              gmodule-2.0
              libglade-2.0     >= $LIBGLADE_REQUIRED
              gnome-vfs-2.0
              gnome-vfs-module-2.0)
这个命令列出了gwget需要用到的软件包及其版本。如果系统缺失,则在运行configure时会给出错误。另外,特别注意第一个参数GNOME,如果这些包都有的话,会生成GNOME_CFLAGS及GNOME_LIBS的变量,分别包含编译选项及链接的库,就象我们在命令行里用pkg-config获取软件包的编译选项及链接参数一样。GNOME_CFLAGS等同于pkg-config --cflags XXX的输出,GNOME_LIBS等同于pkg-config --libs XXX的输出。

AC_SUBST(GNOME_LIBS)
AC_SUBST(GNOME_CFLAGS)
这两个宏把PKG_CHECK_MODULES产生的变量extern出来,这样就可以在makefile.am里使用了。

CFLAGS  :C语言编译器参数。
CPPFLAGS:C预处理器参数。
LDFLAGS:  链接选项。

install-sh: install shell 是一个安装脚本,相当于windows的setup;
INSTALL:为安装帮助文件。


十五,find命令
find  .  -name "*.c" -maxdepth  1 ,仅查找当前目录的文件
find  .  -name Make* | xargs rm -f {} , 删除当前目录及其子目录下的所有文件名以Make开头的文件
xargs从标准输入中读取数据,并以空白和换行符分割每个参数(引号中的空白不作为分割符)。然后执行指定的命令(并把分解后的参数附加到命令后面)。

十六,动态库的路径问题
动态库的路径问题 为了让执行程序顺利找到动态库,有三种方法:

(1)把库拷贝到/usr/lib和/lib目录下。

(2)在LD_LIBRARY_PATH环境变量中加上库所在路径。例如动态库libhello.so在/home/ting/lib目录下,以bash为例,使用命令: $export        LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ting/lib

(3) 修改/etc/ld.so.conf文件,把库所在的路径加到文件末尾,并执行ldconfig刷新。这样,加入的目录下的所有库文件都可见。

十七,Vimgdb安装和使用
参考vim进阶手册。
进入vim后,执行:run macros/gdb_mappings.vim就可以应用快捷键了,按F7进行切换是否使用该映射的快捷键。

 

十八,vmware6使用

To release input, press ctrl+alt : 按下这个组合键后,就可以利用alt+tab进行窗口切换了。

注:按组合键的时候,左右手一手按一个,这样才快捷。

To direct inupt to this virtual machine, press ctrl+g: 按下这个键后,可以在虚拟机中输入了。

 

十九,vim中有中文乱码

突然发现vim有中文乱码,于是baidu了一下解决方法如下:

sudo gedit /etc/vim/vimrc

在文件的最后加上

let &termencoding=&encoding

set fileencodings=utf-8,gbk,ucs-bom,cp936

在网上发现,如果加上网上提供的其他的东西的话,会在每一行的末尾出现^M,所以建议按上面的方法进行修改。

 

二十,vim安装中文帮助

到http://vimcdoc.sourceforge.net/下载中文vimcdoc压缩文件,解压后,

执行,./vimcdloc.sh -i,安装,执行./vimcdoc.sh -u,卸载。

 

二十一,关于linux图形界面的基本知识   

  很多LINUX初学者分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限可能存在错误,请高手指正.       

 

  1,linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的.       

  图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样XFree只是linux   下的一个应用程序而已.不是系统的一部分,但是X的存在可以方便用户使用电脑.WINDOWS95及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形界面linux还是   linux,很多装linux的WEB服务器就根本不装X服务器.这也WINDOWS和linux的重要区别之一.       

 

  2,X是协议,不是具体的某个软件:       

  X   是协议,就像HTTP协议,IP协议一样.这个概念很多初学者甚至学习LINUX有一定时间的人都混淆,一个基于X的应用程序需要运行并显示内容时他就联接到X服务器,开始用X协议和服务器交谈.比如一个X应用程序要在屏幕上输出一个圆那么他就用X协议对X服务器说:喂!我需要在屏幕上画一个圆.X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的"画"的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由X服务器来完成的.X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱的应用程序先生,我发现鼠标被按下了,您有什么指示吗?如果X应用程序被设计成当按下鼠标左健后再在屏幕上画一个正方形的话,X应用程序就对X服务器说:请再画一个正方形,当然他会告诉服务器在什么地方用什么颜色画多大的正方形,但不关心具体怎么画--那是服务器的事情.       

  那么协议是需要具体的软件来实现的,这就是下面我要讲的:       

 

  3,X和XFree86的关系.       

  有了协议就需要具体的软件来实现这个协议.就好比我们有了交通法规就需要交警去根据法规维护交通秩序一样.Xfree86就是这样一个去根据法规实现协议的   "交警".他按照X协议的规定来完成X应用程序提交的在屏幕上显示的任务.当然不仅仅是某个特定的交警才可以去维护和实现这个法规,比如还可以由交通协管员来实现交通法规,必要的时候警察也可以介入,当然前提是他们都要懂得交通法规,也就是要懂得协议.所以实现X协议的软件也并不只有XFree86,   XFree86只是实现X协议的一个免费X服务器软件.商业上常用MOTIF,现在还有XORG,还有很多很小的由爱好者写的小的X服务器软件.甚至可以在WINDOWS上有X服务器运行,这样你可以在linux系统上运行一个X应用程序然后在另一台windows系统上显示.多么神奇.你可以用   google找到这样的X服务器软件.只不过在LINUX上最常用的是XFree86.(现在的linux发行版都用Xorg了)顺便说一句,苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因.       

  为了便于理解拿HTTP协议来比较:       

  协议是HTTP   (hyper   text   transmission   protocol)       

  实现这个协议的常用服务器有:apache   IIS   等       

  请求这些服务器传输文件的客户有:IE   ,MOZILLA   ,NETSCAPE等.       

  协议是X       

  实现这个协议的常用服务器有Xfree86   ,Xorg   ,Xnest等       

  请求这些服务器来完成显示任务的客户:所有的X应用程序.       

  只不过HTTP协议的服务器和客户端通常都在两台不同的电脑(服务器和客户机)之间来实现,所以一般人对这个比较容易理解.而X协议的服务器和客户端程序通常在同一台电脑上,因此很多用户都感到对此很难理解.既然是协议,那么肯定和平台无关的,因此可以让X应用程序显示在任何装有X服务器的远程计算机上.甚至显示在装有Xnest服务器的windows系统上.只不过在大多数情况下,X应用程序都用本机的X服务器,然后X服务器将显示结果输出到本机的显示器.这也是很多人不理解X是一种协议的原因.       

 

  4,X和X11R6又是什么关系?       

  不知道初学者有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录       

  X11R6   实际上是   X   Protocol   version   11   Release   6       

  (X协议第11版第六次发行)的意思,就是说目前用的X协议是第11版的,然后经过了6次小的修正.不同版本的X协议是不能通信的.就象我们现在IPV4和IPV6不能通信一样,不过不用担心,现在的X服务器软件和X应用程序都遵循X11R6.       

  另外XFree86   3.3.6   XFree86   4.3.6   等这些版本是实现X协议的软件XFree86的版本号.这是初学者经常高混淆的概念.       

  协议版本和实现协议的软件的版本--这两个概念的区别你分清楚了吗?       

 

  5,X服务器和WM(window   manager   窗口管理器)之间是什么关系.       

  平时大家起动图形界面是怎么启动的呢?       

  如果你是一开己就进入图形界面那就太遗憾了.应为你错过了了解X服务器起动过程的好时机.不过没关系.你打开一个XTERM输入:       

  init   3  如果不好使,就用/sbin/init 3,就行了。

  就可以安全的回到字符界面.       

  好了,等做完以下实验你就完全明白X和WM(window   manager   窗口管理器)之间是什么关系了.       

  先输入以下命令:       

  #startx       

  起动图形界面,你看到的是一个和平时使用一样的完整的图形界面操作环境.       

  你可以最大化,最小化,移动,关闭窗口等.       

  按ctrl+alt+backspace反回字符界面. 该命令应该是强制关闭X的意思。

  输入:       

  #xinit       

  再次启动图形界面,你看到了什么,你看到一个XTERM.而且不能移动.但是你可以在这个XTERM中输入命令打开X应用程序,如果我输入:       

  #mozilla       

  打开浏览器,你看到的浏览器和平时有什么不同吗?他在屏幕中间,不能移动,不能最小化,不能最大化,没有边框.       

  为什么同样一个X应用程序会有这样的不同呢?因为我们用startx起动图形界面的时候同时也启动了一个WM(即窗口管理器),如果你用KDE就起动了KDE,如果你用GNOME就起动了GNOME.但是你用xinit起动图形界面的时候却没有起动WM.       

  现在你明白窗口管理器的作用了吗?他的作用就是最大化,最小化,移动,关闭窗口等.而这些不是X服务器来负责完成的.       

  如果你用xinit起动图形界面并在xterm中输入twm,看看会有什么?       

  xterm被加上了一个边框,你可以通过这个边框移动,最大化,最小化这个xterm,twm就是XFree86中自带的窗口管理器,是一个比较简陋的最简单的窗口管理器,但是他具有窗口管理器的全部特征.       

  如果你不输入twm而输入gnome-session就可以起动GNOME       

  或者输入startkde起动KDE.       

  通过以上的实验你就可以清楚的明白他们之间的关系.       

 

  6,关于KDE和GNOME       

  KDE   和GNOME是LINUX里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单,   KDE是K   Desktop   Environment   的缩写.他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等.       

  GNOME是GNU   Network   Object   Model   Environment   的缩写.和KDE一样,也是一个功能强大的综合环境.       

  另外在其它UNIX系统中,常常使用CDE作为这样一个环境.       

  其它的小型窗口管理器有:       

  window   maker,after   step,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器.REDHAT9中有   window   maker   但是默认不安装,大家可以装来试试.只要xinit再wmaker&就可以用windowmaker了.       

  7,linux图形界面层次关系总结       

  linux本身-->X服务器<-[通过X协议交谈]->窗口管理器(综合桌面环境)-->X应用程序.

 

二十二,用vim打开目录

:e ~/dfb/Lite/ 打开目录下所有文件

在vimrc中添加以下代码,就可以利用“,fe”命令打开目录了。

" netrw setting

""""""""""""""""""""""""""""""

let g:netrw_winsize = 20

nmap <silent> <leader>fe :Sexplore!<cr>

 

二十三,Red Hat Linux忘记root密码的解决办法 

 

前几天把系统的root密码给忘了,不知道怎么解决,到网上搜了个解决办法,与大家共享。 

 

在出现系统选择界面时,在Red Hat Linux的选项上按“e”键,然后会出现三个选项,在第二项类似“ kernel /vmlinuz-2.4.20-8 ro root=LABEL=/”上按“e”键进行编辑,在“ro”或者“root”前加上“single”,然后回车返回。按“b”键启动,进入字符界面,当 出现“sh-2.05b#”时,就意味着已经进入单用户模式。现在,输入“passwd root”,就可以重新设置root密码了。设置完成后,reboot重启,用刚才设置的密码就可以进入linux系统了。

 

在最后添加上single就可以,不必放在“ro”或者“root”前。

使用这种方式的前提是使用grub引导。

 

二十四,如何关闭directfb的例子程序

   按<meta>(windows)键+c(close), 就关闭了。

 

   Since DirectFB lacks a real window manager, we added a hack to the

   window stack to allow for basic window management. While pressing

   the <Meta> (or Windows) key or alternatively <Caps-Lock> you can do

   the following:

 

     - Drag your mouse to move the focused window.

     - Drag and press <Ctrl> to resize the focused window.

     - Drag and press <Alt> to change the opacity of the focused window.

     - Press C to close the focused window.

     - Press A to lower the focused window to the bottom.

     - Press X to cycle the focus through the windows.

     - Press S to raise the lowest window to the top.

     - Press P to enable and show the mouse cursor.

     - Press E to focus the window currently under the mouse cursor,

       useful in conjunction with 'X'.

     - Press Escape to return from fullscreen mode to the desktop.

       (currently not advisable if the fullscreen app is still flipping)

 

   You might want to use the "capslock-meta" option (see directfbrc(5))

   if you don't have a <Meta> key.

 

二十五,添加sbin到shell命令的查找目录中

暂时添加:

export PATH=$PATH:/sbin 

永久添加,在/etc/bashrc中的最后一行加入:

PATH=$PATH:/sbin

 

二十六,Makefile预定义变量含义

  $*

  不包含扩展名的目标文件名称。

  $+

  所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。

  $<

  第一个依赖文件的名称。

  $?

  所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。

  $@

  目标的完整名称。

  $^

  所有的依赖文件,以空格分开,不包含重复的依赖文件。

  $%

  如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为

  mytarget.so(image.o),则 $@ 为 mytarget.so,而 $% 为 image.o。

  AR

  归档维护程序的名称,默认值为 ar。

  ARFLAGS

  归档维护程序的选项。

  AS

  汇编程序的名称,默认值为 as。

  ASFLAGS

  汇编程序的选项。

  CC

  C 编译器的名称,默认值为 cc。

  CFLAGS

  C 编译器的选项。

  CPP

  C 预编译器的名称,默认值为 $(CC) -E。

  CPPFLAGS

  C 预编译的选项。

  CXX

  C++ 编译器的名称,默认值为 g++。

  CXXFLAGS

  C++ 编译器的选项。

  FC

  FORTRAN 编译器的名称,默认值为 f77。

  FFLAGS

  FORTRAN 编译器的选项。

 

二十七,securecrt设置

 

全屏的方法:alt+enter或者 alt+v,然后按f

 

下载6.1版本以上的securecrt(csdn中有破解版下载),在option->session options->terminal中选择linux,linux系统中在/etc/profile中添加,TERM=linux,export TERM,这样就可以在远程终端securecrt中使用Fn等功能键,并且显示颜色了。

 

二十八,如何去掉或者插入^M这样的字符?

 

参见网址:

http://wiki.ubuntu.org.cn/index.php?title=Vimfaq&variant=zh-cn#.E5.A6.82.E4.BD.95.E5.8E.BB.E6.8E.89.E6.88.96.E8.80.85.E6.8F.92.E5.85.A5.5EM.E8.BF.99.E6.A0.B7.E7.9A.84.E5.AD.97.E7.AC.A6.EF.BC.9F

或者

http://linux.chinaunix.net/techdoc/desktop/2009/01/11/1057599.shtml

 

在VIM的插入模式或者命令行中用<C-V>输入^M这样的特殊字符,例如输入

:%s/<C-V><C-M>//g

实际显示是

:%s/^M//g

就可以去掉文件中所有的^M。同理,要在文件中输入^M只要按<C-V><C-M>即可。

 

这个问题往往发生在WINDOWS/DOS系统和UNIX系统之间交换文件时,因为这两类系统 对于文本的“换行”概念解释不同。所以,还有一个解决方法就是对这类文本进行 转换。vim内部就可以做这件事情。首先打开文本,然后

set fileformat=unix

再重新保存该文件复盖原文件就可以去除:^M了。

 

二十九,

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值