Skip navigation.

Learning linux……

Posts tagged with "Linux"

Linux的经典技巧8则

1、处理特殊的文件名
假设Linux系统中有一个文件名叫“-ee”,如果我们想对它进行操作,例如要删除它,按照一般的删除方法在命令行中输入rm -ee命令,界面会提示我们是“无效选项”(invalid option),原来由于文件名的第一个字符为“-”,Linux把文件名当作选项了,我们可以使用“--”符号来解决这个问题,输入“rm -- -ee”命令便可顺利删除名为“-ee”的文件。如果是其他特殊字符的话可以在特殊字符前加一个“”符号,或者用双引号把整个文件名括起来。

2、直接进行Linux的安装工作
在安装Linux操作系统时,可以利用该系统光盘中的一个名为“loadlin.exe”的软件,将Linux核心直接调入内存,由Linux核心代替当前操作系统来接管计算机,并进入Linux的安装界面。在安装Linux时,我们只要在运行对话框中输入“loadlin E:imagesvmlinuz root=/dev/ram initrd=E:imagesinitrd.img”这个命令就可以直接安装Linux了;其中“E:imagesvmlinuz”为Linux的核心名。

3、消除Xwindows下的死机现象
我们可以用两个常用的方法来消除这种现象:第一,用键盘上的复合键“Ctrl+Alt+Backspace”来关闭当前正在运行的任务;第二,首先按住键盘上的“Ctrl+Alt+F2”复合键,让系统切换到另一个操作台,然后登录到系统,再执行“#ps -ax/grep startx”命令,这将会列出你的Xserver的进程标识,接着在命令行中输入如下命令就能消除Xwindows下的死机现象:#kill -9 PID_Number,最后通过“Alt+F1”复合键返回到原来的平台。

4、快速关闭Linux系统
最新版本的Linux/UNIX系统借鉴了大型机的技术,采用了抗掉电的日志式文件系统,可以自动跟踪保存用户数据,自动同步刷新文件系统,用户完全可以随手关闭电源,从而达到快速关闭系统的目的。

5、巧妙使用“rm”命令
我们可以使用带“-r”参数的“rm”命令来删除一个非空目录,例如我们在命令行中输入“rm -r bbb”这样的命令,表示系统将把bbb目录中包含的所有文件和子目录全部删除掉。

6、巧妙使用“Tab”键
大家知道在Linux字符界面中输入命令时,有时需要输入很多字符,如果经常这样逐个地输入字符,比较麻烦。假设键入的字符足以确定该目录下一个惟一的文件时,我们只需按键盘上的“Tab”键就可以自动补齐该文件名的剩下部分,例如要把目录/ccc下的文件“ddddddd-1.2.3.tar.gz”解包时,当我们在命令行中键入到“tar xvfz /ccc/d”时,如果该文件是该目录下惟一以“d”打头的文件的话就可以直接按下“Tab”键,这时命令会被自动补齐为:tar xvfz /ccc/ddddddd-1.2.3.tar.gz ,从而提高了输入效率。

7、多用鼠标拷贝与粘贴来提高操作速度
Linux系统安装后,每次启动到字符界面时都会自动运行一个叫“gpm”的程序,该程序运行后就可以用鼠标来拷贝与粘贴了。具体做法是按住鼠标左键拖动使要拷贝的地方突出显示,这时突出显示的区域已经被拷贝,再按鼠标右键拷贝的内容就会被粘贴在光标所在位置了。如果我们在Xwindow下运行Linux 系统,拷贝与粘贴的操作与在Windows 9x系统下一样。

8、快速启动Linux系统
在DOS下,有一种简单快速启动Linux的方法,那就是load Linux。loadlin.exe是DOS下的可执行程序,它可以在纯DOS环境下迅速启动Linux,而且无需重启计算机,通常我们可以在光盘的 “/kernels”目录下找到这个程序。如果不知这个程序被放置于安装盘的何处,可以使用“find -name loadlin*”命令来寻找。找到之后将其复制到DOS分区中,同时还需要复制一份你所使用的Linux内核文件。可以通过Windows直接从光盘复制,也可在Linux环境下使用“mcopy”命令将文件复制到DOS分区;接着再编写一个名为“Linux.bat”的批处理文件,文件内容如下:c: loadlin c:vmlinuz root=/dev/hda1 ro(我们假设loadlin.exe和vmlinuz这两个内核文件都在c盘根目录下,“root”为Linux的根设备,而且Linux处于硬盘第一分区,所以设备名为“/dev/hda1”,“ro”意为readonly)。以后在DOS下要启动Linux时,运行“Linux.bat”就可以了

Build MPlayer & VLC on RAS 4/FC 4 - Part 8 - mpeg2dec & VLC (Over)

,

Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/mpeg2dec-0.4.1-cvs
./configure --prefix=$MB && make && make install


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/vlc-0.8.5
CPPFLAGS=-I${MB}/include LDFLAGS=-L${MB}/lib \
  ./configure --prefix=$MB  \
  --enable-mediacontrol-python-bindings \
  --disable-wxwidgets --disable-skins2 
./compile


Build MPlayer & VLC on RAS 4/FC 4 - Part 7 - ffmpeg & MPlayer

,

Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/ffmpeg_20060519
./configure --prefix=$MB  \
  --extra-cflags=-I${MB}/include --extra-ldflags=-L${MB}/lib \
  --extra-libs=-lpthread \
  --enable-gpl --enable-xvid --enable-x264 \
  --enable-mp3lame --enable-libogg --enable-vorbis --enable-theora \
  --enable-dts --enable-a52 --enable-faad --enable-faac --enable-pp \
  --enable-shared --enable-static
make && make install


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
export LD_LIBRARY_PATH=$MB/lib
 
cd $MB/src/mplayer_20060519
./configure --prefix=$MB \
  --with-codecsdir=$MB/lib/mplayer-codecs \
  --with-extraincdir=$MB/include --with-extralibdir=$MB/lib \
  --enable-iconv \
  --enable-live \
  --with-livelibdir=$MB/src/live \
  --with-toolamedir=$MB/src/toolame \
  --enable-dvdread --enable-gui
make clean && make && make install

Build MPlayer & VLC on RAS 4/FC 4 - Part 6 - live/lame/faac/faad/speex

,

Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/live
./genMakefiles linux
make 


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/lame-20060602
./configure --prefix=$MB && make && make install 


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/faac-1.24
./configure --prefix=$MB && make && make install 


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/faad2
./configure --prefix=$MB && make && make install 


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/speex-1.1.12
./configure --prefix=$MB --enable-epic-48k && make && make install

Build MPlayer & VLC on RAS 4/FC 4 - Part 5 - libmad & libdts & libdv

,

Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/libmad-0.15.1b
./configure --prefix=$MB && make && make install 


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/libdts-0.0.2
./configure --prefix=$MB && make && make install 


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/libdv-0.104
./configure --prefix=$MB && make && make install

Build MPlayer & VLC on RAS 4/FC 4 - Part 4 - Ogg & vorbis & theora

,

Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/libogg-1.1.2
./configure --prefix=$MB && make && make install 


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/libvorbis-1.1.1
./configure --prefix=$MB && make && make install 


Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/libtheora-1.0alpha6
./configure --prefix=$MB && make && make install

Build MPlayer & VLC on RAS 4/FC 4 - Part 3 - Xvid & X264

,

Bash:
#!/bin/sh
#XVID
 
cd ${MEDIA_BASE}/src/xvidcore-1.1.0
cd build/generic
./configure --prefix=${MEDIA_BASE} && make && make install 


Bash:
#!/bin/sh
#X264
 
MB=${MEDIA_BASE}
 
cd $MB/src/x264
./configure --prefix=$MB && make && make install

Build MPlayer & VLC on RAS 4/FC 4 - Part 2- LZO

,

Bash:
#!/bin/sh
 
MB=${MEDIA_BASE}
 
cd $MB/src/lzo-1.08
./configure --prefix=$MB && make && make install

Build MPlayer & VLC on RAS 4/FC 4 - Part 1

Assuming: YUM was already installed and configured on system.

Part One: Requirament & Build order & Environment setting

Requirement:
nasm - XVid

glib-devel - libdv
gtk+-devel - libdv

libungif-devel - MPlayer
libpng-devel - MPlayer
SDL-devel - MPlayer
libjpeg-devel - MPlayer
esound-devel - MPlayer
alsa-devel - MPlayer
arts-devel - MPlayer

Environment setting:
Bash:
ENV_NAME=MEDIA_BUILD
echo $IS_APP_ENVS |grep $ENV_NAME &> /dev/null
 
if [ $? -eq 1 ] ; then
  export MEDIA_BASE="/is/app/media"
  export PATH=$PATH:${MEDIA_BASE}/bin
 
  if [ -z "$LD_LIBRARY_PATH" ] ; then
    export LD_LIBRARY_PATH=${MEDIA_BASE}/lib
  else
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${MEDIA_BASE}/lib
  fi
 
  if [ -z "$PKG_CONFIG_PATH" ] ; then
    export PKG_CONFIG_PATH=${MEDIA_BASE}/lib/pkgconfig
  else
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${MEDIA_BASE}/lib/pkgconfig
  fi
  export IS_APP_ENVS="$ENV_NAME,$IS_APP_ENVS"
  echo "$ENV_NAME registered!"
fi

Build order:
lzo/lzo-1.08/lzo-1.08.tar.gz

xvid
x264
---
libogg/libogg-1.1.2/libogg-1.1.2.tar.gz
libvorbis/libvorbis-1.1.1/libvorbis-1.1.1.tar.gz
libtheora/libtheora-1.0alpha6/libtheora-1.0alpha6.tar.bz2

libmad/libmad-0.15.1b/libmad-0.15.1b.tar.gz
libdts/libdts-0.0.2/ibdts-0.0.2.tar.gz
libdv/libdv-0.104/ibdv-0.104.tar.gz
toolame/toolame-02m-beta8/toolame-02m-beta8.tar.bz2
live/live/live.2006.05.17.tar.gz
lame/lame-20060602/lame-20060602.tar.bz2
faac/faac-1.24/faac-1.24.tar.bz2
faad/faad2/faad2-20050130.tar.bz2
speex/speex-1.1.12/speex-1.1.12.tar.gz
---
ffmpeg/ffmpeg_20060519/ffmpeg_20060519.tar.bz2
MPlayer/mplayer_20060519/mplayer_20060519.tar.bz2
---
mpeg2dec/mpeg2dec-0.4.1-cvs/mpeg2dec-20050802.tar.gz
vlc/vlc-0.8.5/vlc-0.8.5.tar.gz

Linux2.6 内核的 Initrd 机制解析

Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Linux2.6 内核的 initrd 处理部分代码的分析,使读者可以对 initrd 技术有一个全面的认识。为了更好的阅读本文,要求读者对 Linux 的 VFS 以及 initrd 有一个初步的了解。
cpio-initrd 的处理流程
1. boot loader 把内核以及 initrd 文件加载到内存的特定位置。
2. 内核判断initrd的文件格式,如果是cpio格式。
3. 将initrd的内容释放到rootfs中。
4. 执行initrd中的/init文件,执行到这一点,内核的工作全部结束,完全交给/init文件处理。
cpio-initrd的制作
#假设当前目录位于准备好的initrd文件系统的根目录下
bash# find . | cpio -c -o > ../initrd.img
bash# gzip ../initrd.img

http://www-128.ibm.com/developerworks/cn/linux/l-k26initrd/index.html
December 2009
S M T W T F S
November 2009January 2010
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31