Wednesday, 13 June 2007

nautilus打开terminal

进入主目录的.gnome2/nautilus-scripts目录。新建一个文件,文件名任意(这个文件名会显示在右键菜单里,最好是通俗易懂的,比如“打开终端”或“open-terminal”),文件内容如下。

引用

#!/bin/bash

#

# This script opens a gnome-terminal in the directory you select.

#

# Distributed under the terms of GNU GPL version 2 or later

#

# Install in ~/.gnome2/nautilus-scripts or ~/Nautilus/scripts

# You need to be running Nautilus 1.0.3+ to use scripts.

# When a directory is selected, go there. Otherwise go to current

# directory. If more than one directory is selected, show error.

if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then

set $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

if [ $# -eq 1 ]; then

destination="$1"

# Go to file's directory if it's a file

if [ ! -d "$destination" ]; then

destination="`dirname "$destination"`"

fi

else

zenity --error --title="Error - Open terminal here" \

--text="You can only select one directory."

exit 1

fi

else

destination="`echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed 's/^file:\/\///'`"

fi

# It's only possible to go to local directories

if [ -n "`echo "$destination" | grep '^[a-zA-Z0-9]\+:'`" ]; then

zenity --error --title="Error - Open terminal here" \

--text="Only local directories can be used."

exit 1

fi

cd "$destination"

exec x-terminal-emulator

Pasted from <http://www.oceanboo.cn/read.php/8.htm>

注销,关机,重启

新手刚刚接触Linux的时候可能处处感到不便,不过没有关系,接触新的事物都有这样的一个过程,在你用过Linux一段时间后,你就会逐渐了解Linux其实和Windows一样容易掌握。

  由于操作和使用环境的陌生,如果要完全熟悉Linux的应用我们首先要解决的问题就是对Linux常用命令的熟练掌握。本章我们就来介绍Linux的常用基本命令。

  首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中“系统管理员”拥有最高权限。

  在启动Linux后屏幕出现如下界面显示:

  ……

  Red Hat Linux release 9 (Shrike)

  Kernel 2.4.20.8 on an i686

  login:

  输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个“#”提示 符时,表明你登录成功!

  屏幕显示Linux提示符: [root@localhost root]#_

  这里需要说明的是“Red Hat Linux release 9 (Shrike)”表示当前使用的操作系统的名称及版本。“2.4.20.8”表示Linux操作系统的核心版本编号。“i686”表示该台电脑使用的CPU的等级。

  下面我们来介绍常用基本命令

一、注销,关机,重启

  注销系统的logout命令

  1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:

  [root@localhost root]#logout

  Red Hat Linuxrelease 9(Shike)

  Kernel 2.4.20.8 on an i686

  Login: ← 回到登陆的画面

  2,关机或重新启动的shutdown命令

  Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。

  参数说明如下:

  l 立即关机:-h 参数让系统立即关机。范例如下:

  [root@localhost root]#shutdown –h now ← 要求系统立即关机

  l 指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下:

  [root@localhost root]#shutdown now ← 立刻关机

  [root@localhost root]#shutdown +5 ← 5分钟后关机

  [root@localhost root]#shutdown 10:30 ← 在10:30时关机

  l 关机后自动重启:-r 参数设置关机后重新启动。范例如下:

  [root@localhost root]#shutdown -r now ← 立刻关闭系统并重启

  [root@localhost root]#shutdown -r 23:59 ← 指定在23:59时重启动

  3,重新启动计算机的reboot命令

  顾名思义,reboot命令是用来重新启动系统的。常用的参数如下:

  l -f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。

  l -I 参数:在在重新启动之前关闭所有网络接口。

  虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了

四、在后台运行程序

  用户有时的程序有可能要花费很多时间,如果将它放在前台运行,将导致无法继续做其他事情,最好的方法就是将它放在后台运行,甚至可能希望在用户注销系统后,程序还可以继续运行。让我们看看那如何实现这一目的。

  1,在后台运行程序的&、bg命令

  将程序放到后台运行的最简单方法就是在命令最后加上“&”,范例如下:

  [tony@free root]# updatedb & ← 在后台执行 locate 数据库更新命令

  [tony@free root]# bg ← 将更新操作放到后台运行

  2,前台运行的程序fg命令

  如果用户当前已有程序在后台运行,可以输入fg命令,将它从背景中移到前台运行:

  [tony@free root]# fg ← 放到前台执行的命令会显示出来

  3,在退出后让程序继续运行的nohup命令

  此命令可使用户退出系统后,程序继续运行。范例如下:

  [tony@free rony]$ nohup myserver &

  然后用户就可以退出了,当再次登录的时候,可以用ps –aux命令看到程序仍在后台中运行。

六、任务调度的系统工作

  /ect/crontab/文件是Linux系统工程的任务调度设置文件,其默认的内容如下:

  SHELL=/bin/bash ← 指定执行任务调度工作时所使用的SHELL

  PATH=/shin:/bin:/usr/sbin:/usr/bin ← 指定命令搜索的路径

  MAILTO=root ← 指定将输出结果给root用户

  HOME=/ ← 指定跟目录

七、任务调度的个人工作

  除了上述任务调度的系统工作外,一般用户则可利用crintab命令,自行设置要定期执行的工作。

  每个用户可执行crontab –e命令,编辑自己的任务调度设置文件,并在此文件加入要定期执行的工作。以下范例为tony用户编辑的任务调度设置文件:

  [tony@free rony]$ crontab –e

  执行上述命令后,即会进入VI文本编辑器自行编辑任务调度的工作。

八、删除调度工作任务

  如果不想再定期执行任务调动中的工作,则可执行crontab –r命令删除所有任务调度的工作。范例如下:

  [tony@free rony]$ crontab –r ← 删除任务调度中的工作

  [tony@free rony]$ crontab -1 ← 再查看一次任务调度中的工作

  no crontab for tony ← 已经没有任何任务调度工作

九、打包、压缩与解压缩

  由于这是每一个Linux用户都会经常用到的基本功能,因此我们将介绍最常见到的打包、压缩和解压缩程序。

  1,打包文件的tar命令

  tar命令位于/bin目录中,它能将用户所指定的文件或目录打包成一个文件,不过它并不做压缩。一般Unix上常用的压缩方式是先用tar命令将许多文件打包成一个文件,再以gzip等压缩命令压缩文件。tar命令参数繁多,以下举例常用参数作说明:

  l -c:创建一个新的tar文件;

  l -v:显示运作过程信息;

  l -f:在:指定文件名称;

  l -z:调用gzip压缩命令执行压缩;

  l -j:调用bzip2压缩命令执行压缩;

  l -t:参看压缩文件内容;

  l -x:解开tar文件。

  在此举一常用范例:

  [tony@free data]# tar cvf data.tar * ← 将目录下所有文件打包成data.tar

  [tony@free data]# tar cvf data.tar.gz * ← 将目录所有文件打包成data.tar再用gzip命令压缩

  [tony@free data]# tar tvf data.tar * ← 查看data.tar文件中包括了哪些文件

  [tony@free data]# tar xvf data.tar * ← 将data.tar解开

  2,压缩与解压缩

  tar命令本身没有压缩能力,但是可以在产生的tar文件后,立即使用其他压缩命令来压缩,省区需要输入两次命令的麻烦。

  l 使用-z参数来解开最常见的.tar.gz文件:

  [tony@free data]# tar –zxvf foo.tar.gz ←将文件解开至当前目录下

  l 使用-j参数解开tar.bz2压缩文件:

  [tony@free data]# tar –jxvf linux-2.4.20tar.bz2 ←将文件解开至当前目录下

  l 使用-Z参数指定以compress命令压缩

  [tony@free data]# tar –cZvf prcture.tar.Z*.tif 将该目录下所有.tif打包并命令压缩成.tar.Z文件

一、如何进入文字模式

  当安装Linux时,可选择自动后要进入文字模式或时图形模式。如果选择的时文字模式则可略过此说明;若是直接进入X Window的图形模式,仍可以使用下列方式,进入文字模式:

  1,在X Window中打开文字模式窗口

  在默认的GNOME窗口环境为例,在X Windows 下进入文字模式最简单的方式,就是在桌面空白处单击鼠标右键,执行“新增终端命令”,打开文字模式窗口。在文字模式窗口中可以用 Shift+Page Up和Shift+Page Dwon 键来卷动窗口内容。

  2,切换虚拟主控制台进入文字模式

  Linux主机在主控制台(console)下提供了7个虚拟主控台,在每一个虚拟主控台中可以运行各自的程序。可以在登陆X Window系统后的任何时间,按下Ctrl+Alt+Fn键来切换到其他的虚拟主控台。其中的Fn是指F1~F7的功能键。

  3,启动直接进入文字模式

  要设置启动时直接进入文字模式,可以使用任何一个文本编辑器,打开/etc/inittab文件,在文件中查找“id:5:initdefault:”这一段文字,并将其改为“id:3:initdefault:”即可。

二、etc/inittab设置错误,导致无法启动

  若修改/etc/inittab后无法正常启动,则可以在启动时采用单人模式进入系统,重新修改inittab设置文件以解决问题。

  若使用GRUB为引导装载程序时,只要在启动显示菜单画面时,按a键,并在命令行输入一下参数以进入单人模式:

  grub append > ro root=LABEL=/s ← 只要在命令行原来的语句后,加“S”即可

  使用LILO为引导装载程序时,同样在启动显示LILO菜单画面时,按Ctrl+X键,切换到文字模式的LILO登录画面,并输入以下参数即可:

  boot: linux s ← 表示系统直接讲进入单人模式

三、如何查询命令的用法

  在linux系统中,如果用户某命令的功能不大清楚,可以使用man命令查询帮助:

  [root@free root]# man shutdown ← 以man命令查询稍后要介绍的shutdown命令的用法。

  大多数命令的语法,还可以通过-h或—help参数查询。例如shutdown命令的语法可以运行shutdown –h或上述的man shutdown 命令查得。

四、避免按Ctrl+Alt+Del重新启动系统

  在linux中直接按下Ctrl+Alt+Del三个键后就会重新启动,如果不希望任何人利用这组组合键随意重新启动计算机,请用文本编辑器修改/etc/inittab文件:

  #ca::ctrlaltdel:/sbin/shut down –t3 –r now ← 在此之前加上“#”。

  存盘后重新启动计算,以后就无法用Ctrl+Alt+Del 键重新启动了。

五、文字模式下的中文信息出现乱码,怎么办

  在此版的Red Hat Linux中,若是在X Window打开文字模式窗口,以文字模式操作,则所有中文文件名、月份,甚至部分信息都可以正常的以中文显示。但在文字模式的虚拟控制台中,这些中文信息,则会变成乱码,此时请如下操作,可将此信息改成英文显示:

  [root@free root]$ LANG=C

  [root@free root]# ls –l

  运行LANG=C命令后原来以中文显示(乱码)的部分,变成英文了

  若想改回原来的设置,则只要再执行LANG=zh_CN命令即可:

  [root@free root]$ LANG=zh_CN

shell的重定向

新建一个文本文件包含所需要的脚本。举例,我会使用pico编辑器写一个脚本用来运行程序tar,带上必要的可选项可以用来解压从因特网下载下来的*.tar的文件(我好像总是记不住tar的所有参赛)。我决定把我的脚本名称叫做“untar”:

pico untar

因为在我的当前工作目录里untar文件不存在,所有pico文本编辑器自动创建这个文件,现在,我输入以下内容:

#!/bin/bash

echo this is the script file $0

echo untarring the file $1

# this calls tar with options -xvzf (extract,

# verbose, filter through gzip, input filename)

tar -xvzf $1

我使用O保存这个文件,然后X退出。

脚 本的第一行,以“#!”开始是特别的提示-它告诉shell应该用哪一个程序来解释我的脚本。在这个例子里,我使用bash shell /bin/bash。第一行必须使用“#!”开头,否则脚本不会运行(系统认为是一个文本文件)。其他以“#”开始的行是注释行只是给作者和读者使用的, 计算机将跳过这些行。

在以上脚本里,参数$0, $1, $2…是传递到脚本里面的参数。举个例子,如果我运行我的脚本名“myscript”带七个参数如下:

myscript a b c d e f g

那么,参赛$0就是myscript, $1就是a, $2就是b,$3就是c,依此类推。

脚本的第二行和第三行,echo命令输出所有在它后面同一行上的文本,然后扩展在脚本里对应的参数$0和$1。第四行和第五行是我写的注释文本,提醒我在这个脚本里要做的事情。只有最后一行是真正起作用的。

一旦脚本已经写好,我把文件属性改成对文件拥有者是“可执行”的:

chmod u+x untar

然后我的脚本就可以这样运行了:

./untar my_tar.tar.gz

Liunx脚本的确非常丰富,灵活,功能强劲,还可能有点复杂。然而,对于日常任务编写一些简单脚本,它并不需要什么特别高深的知识。你可以把一些要用到的命令放在一起,一个接一个,输入到文件里。我使用脚本很频繁是因为我太懒了,不想一次一次的输入相同的命令。

一个最简单的方法,可以把一组命令放在文本文件里然后使用source命令传递给shell让它直接运行:

source my_file

这个时候就不需要在文本第一行加上“#!”的标志了。

3.4.6 引号的含义

一般来说,以下字符对于shell有特殊的含义:

\ ' " ` < > [ ] ? | ; # $ ^ & * ( ) =

这里有四种不同的符号:反斜杠(\),单引号(‘),双引号(“),反向单引号(`)。

反斜杠(\)表示:关闭后面字符的特殊含义

单引号(‘)表示:关闭在两个单引号之间所有字符的特殊含义

双引号(“)表示:关闭在两个双引号之间所有字符的特殊含义除了$ ` \

反向单引号(`)表示:告诉shell首先运行两个反向单引号之间的命令,然后把得到的结果再传递给两个单引号之外的命令。同样的功能也可以通过“$command”命令来实现,而且可能会更方便。

举个例子,我可以创建一个奇怪的目录名叫做“*”通过使用“\”或者“’”符号:

mkdir \*

mkdir ’*’

这屏蔽了“*”对于shell的特别含义。如果没有“\”,“*”意味着当前目录下所有文件。

3.4.7 输入输出重定向

有三个最重要的输入输出流:标准输入(stdin),标准输出(stdout),标准错误(stderr)。它们对于控制台(“控制台”指的是键盘用于输入,屏幕用于输出)来说是缺省的,但是它们可以被重定向。

重定向标准输出,可以使用“>”符号,举例:

dir my_dir > filelisting.txt

将把dir命令的标准屏幕输出重定向到文本文件 filelisting.txt文件里,所以屏幕上没有任何输出。这个文件可以用来编辑(比如使用pico文本编辑器)或者合并到其他的文件里。

重定向标准错误,可以使用结构“2>”,举例:

dir my_dir 2> errorlisting.txt

以上命令将送标准输出到屏幕上,如果没有错误信息,将没有任何信息写到errorlisting.txt文件里。如果出错,则没有什么东西输出到屏幕,而文件errorlisting.txt将包含错误信息。错误信息有可能是这样的:

dir: my_dir: Permission denied

最后,我也可以把标准输出和标准错误一起输出到同一个文件里,

dir my_dir > file_and_error_listing.txt 2>&1

以上命令先重定向标准输出到文本文件里,然后再重定向标准错误到和标准输出同样的位置。它如何实现可能看起来有点古怪,但是是可行的。

在以上的例子里,如果重定向的文件已经存在,该文件会被覆盖。如果你要追加到该文件的末尾,可以使用“>>”符号,以上的例子就变成:

dir my_dir >> filelisting.txt

dir my_dir 2>> errorlisting.txt

dir my_dir >> file_and_error_listing.txt 2 > &1

如果你对“2>”感到很迷惑,这里有一个简单的办法可以帮你理解,标准流有标准的解析器:“0”代表标准输入,“1”代表标准输出,“2”代表标准错误。

dir my_dir > file.txt

是以下命令的简写方式:

dir my_dir 1 > file.txt

那么以下命令就是用来输出标准错误:

dir my_dir 2 > file.txt

还有,你还可以使用符号“|”(管道命令)把一个命令的标准输出送到另外一个命令的标准输入。在以下这个标准的例子里,dir命令的标准输出通过管道输入到命令more里(输出满屏的时候自动暂停):

dir | more

你还可以使用“tee”命令把标准输出同时写到文件和屏幕,

dir | tee filelisting.txt

tee是“T型连接器”的模拟音,在管道中的主要的用途是分流。

这个部分这样都用来讲述标准输出重定向,对于标准输入重定向不像标准输出重定向那么有用,但是它可以使用以下方式实现:

cat <>

还有一种叫做“直接插入式”的标准输出,可以通过“<<”来实现。不要管它了,看起来对我没有什么实际用处。不过,如果你真的想知道,这里有一个例子(这里“>”式第二个提示符)

cat <<>

> my_line_from_the_keyboard

> another_line_from_the_keyboard

> my_marker

除了重定向到常规文件和“过滤器”之外(如以上的例子所示),你还可以重定向到设备和其他特殊文件。看下面这些例子。

重定向到设备文件的例子。以下命令将显示文件列表到第四个文本终端:

dir > /dev/tty4

以下是一个重定向到一个特殊的FIFO(先进先出)文件的例子。该命令送信息”you are lucky”到叫做“lucky”的ICQ用户UIN 7777777 (假定你已经用你的ICQ程序连接到ICQF服务器上了)

echo message 7777777 “you are lucky” < ~/.licq/licq_fifo

以上的例子能够工作是因为在你licq目录下的文件“licq_fifo”是一个特别的FIFO序列文件。以上这个例子,对比于在图形用户界面下的ICQ程序有什么特别有用的地方吗?举个例子,你可以写一个短的脚本带上多个信息给你的那些ICQ伙伴们:

#!/bin/bash

echo Messaging UIN: $1 Message: $2 Times: $3

# The next command puts puts your licq in the status "on-line, invisible".

echo 'status *online' > ~/.licq/licq_fifo

c=0

while [ $c -le $3]

do

echo message $1 $2 > ~/.licq/licq_fifo

c=`expr $c + 1`

echo $c " "

done

echo 'status offline' > ~/.licq/licq_fifo

echo "all done"

这个例子利用了licq通信模型(FIFO文件)和简单的文件重定向功能,给你一个关于如何 “自动化”licq的主意。

3.4.8 Shell的特殊字符(metacharacters)

一般来说,这些字符对于shell有特别的含义:

\ ' " ` < > | ; ( ) [ ] ? # $ ^ & * =

以下是这些字符的含义:

\ ‘ “ 和 ‘ 主要用来注释,前面已经描述过 (参见 3.4.6)。

< 和 > 主要用来输入和输出重定向

| 是管道命令,管道左边的标准输出是管道右边的标准输入

; 用于间隔在同一命令行上的几个命令

间用于分开命令的字符和单词

完成一条命令或者一组命令

( ) 用于封装需要使用不同的shell启动的命令, 比如 ( dir )

{ } 用于封装要用当前shell启动的一组命令,比如 { dir },需要空格间隔

& 使当前命令在后台运行(有它自己独立的进程),所以下一条命令不需要等待前一条命令结束才能开始。

* 当搜索文件时,它匹配除了以“.”开头的所有文件

?当搜索文件时,它匹配任何单个字符

[ ] 当搜索文件时,它匹配任何在[]里面的单个字符

&& 是用于连接两个命令的“与操作”,

command1 && command2, 只有当command1退出状态为0时(没有错误),command2才会被执行。比如, cat file1 && cat file2 只有当file1正常显示时, file2才能被显示。

|| 是用于连接两个命令的“或操作”

command1 || command2, 只有当command1退出状态非0时(有错误),command2才会被显示。比如:cat file1 || cat file2 只有当显示file1出错时,file2才能被显示

= 指定值给变量

举例,命令me=blahblah设定值“blahblah”给变量“me”,我可以输出变量名:

echo $me

$ 预处理扩展变量名

变量可以使用“=”来设定值,也可以通过预先变量设定来设置

$0 被执行的shell脚本的名称

$# 按位置对应的命令输入参数, $1第一个参赛, $2第二个参数, $3第三个参数…直到$9

$* 扩展所有的位置参数给命令

$@ 扩展所有的位置参数给命令,但是当“$@”使用时,参数个别标注

Pasted from <http://www.blogjava.net/pdw2009/archive/2006/09/16/70061.html>

shell中的引号

shell可以识别4种不同类型的引字符号: 单引号字符’ 双引号字符” 反斜杠字符\ 反引号字符`

1. 单引号

howard@0[script]$ grep Susan phonebook

Susan Goldberg 403-212-4921

Susan Topple 212-234-2343

如果我们想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep会把Goldberg和phonebook当作需要搜索的文件

howard@0[script]$ grep ‘Susan Gold’ phonebook

Susan Goldberg 403-212-4921

当shell碰到第一个单引号时,它忽略掉其后直到右引号的所有特殊字符

2. 双引号

双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\,`

howard@0[script]$ x=*

howard@0[script]$ echo $x

hello.sh menus.sh misc.sh phonebook tshift.sh

howard@0[script]$ echo ‘$x’

$x

howard@0[script]$ echo “$x”

*

这个例子可以看出无引号、单引号和双引号之间的区别。在最后一种情况中,双引号告诉shell在引号内照样进行变量名替换,所以shell把$x替换为*,因为双引号中不做文件名替换,所以就把*作为要显示的值传递给echo。

对于第一种情况需要进一步说明,shell在给变量赋值时不进行文件名替换(这从第三种情况中也能看出来),各步骤发生的精确次序如下:

shell扫描命令行,把x的值设为星号*;

shell再次扫描命令行,碰到星号*,把它替换成当前目录下的文件清单;

shell启动执行echo命令,把文件清单作为参数传递给echo.

这个赋值的先后次序非常重要:shell先作变量替换,然后作文件名替换,最后把这行处理为参数

3. 反斜杠

反斜杠的基本作用等价于在一个字符前后加上单引号,反斜杠引用紧跟其后的字符,即\c基本上等价于’c'。但这一原则有一点例外,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用。

双引号中的反斜杠去掉字符的特殊意义。

4. 命令替换(“)

命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或者$(…)结构括起来,其中,$(…)格式受到POSIX标准支持,也利于嵌套。

howard@0[script]$ echo The date and time is `date`

The date and time is 三 6月 15 06:10:35 CST 2005

howard@0[script]$ echo Your current working directory is $(pwd)

Your current working directory is /home/howard/script

参数传递

系统变量$#,记录命令行中所键入参数的个数

系统变量$*,记录传递给程序的所有参数,在参数不确定或者参数可变的程序中,这通常很有用

系统变量$1,…,$9,${n} 记录相应位置的参数(当n大于10时,需要使用${n}格式)

shift命令,其作用是把参数位置左移。把原来$2中的内容赋给$1,以次类推,$1中的值丢失。

示例:


howard@0[script]$ cat tshift.sh


echo $# $*


shift


echo $# $*


shift


echo $# $*


shift


echo $# $*


shift


echo $# $*


shift


运行该脚本


howard@0[script]$ tshift.sh a b c d


4 a b c d


3 b c d


2 c d


1 d


0


另外,$?变量保存shell最后所指令命令的退出状态

linux 硬件

一、在Linux 系统中,对硬件判别的标识的依据;

在 LinuxSir.Org 讨论区,我们经常看到有些弟兄这样来描述自己的硬件“我的显示卡是XXX牌子的,Linux 不支持怎么办?”。其实这样描述是最差的,大家也根本没有办法提供帮助;因为Linux对硬件的识别是以为芯片组的厂商为依据的,而非硬件的品牌;因为现 在硬件厂商大多是OEM的,也就是说硬件的主芯片是他们生产不了的,但他们会从硬件主芯片厂商拿来,焊接在自己的电路板上,这就是OEM 的过程;

无论什么硬件都是以芯片组的厂商为标识的,而不是什么市场看到的这个品牌,那个品牌的;举个例子,我们在市场上看到有各种各样的显卡,其实看一下他 们的芯片,大多是ATI和 NVIDIA的,所有的ATI和NVIDIA的驱动都是ATI和NVIDIA开发出来的。所以我们提问的时候,要把硬件的芯片说出来,芯片是驱动的唯一标 识,而不是品牌!!!

所以我们要找硬件的驱动时,我们一定要根据硬件主芯片的信息来找相关的驱动;

二、在Linux中查看硬件信息的工具;

在Linux 中,并不是没有工具可以查看硬件的芯片信息,应该说Linux的工具能把硬件信息查看的更清楚;下面介绍几个常用的工具;我们最常用的工具还是lspci ;其它的工具只是了解一下;

1、lspci 列出所有PCI 设备;

lspci - list all PCI devices ,主要是有来列出机器中的PCI 设备,比如声卡、显卡、猫、网卡等,主板集成设备也能列出来;lspci 是读取 hwdata 数据库,hwdata 由软件包 hwdata 提供;大约有如下文件;

[beinan@localhost ~]# rpm -ql hwdata-0.158-1

/etc/hotplug/blacklist

/etc/pcmcia

/etc/pcmcia/config

/usr/X11R6/lib/X11/Cards

/usr/share/doc/hwdata-0.158

/usr/share/doc/hwdata-0.158/COPYING

/usr/share/doc/hwdata-0.158/LICENSE

/usr/share/hwdata

/usr/share/hwdata/CardMonitorCombos

/usr/share/hwdata/Cards

/usr/share/hwdata/MonitorsDB

/usr/share/hwdata/pci.ids

/usr/share/hwdata/pcitable

/usr/share/hwdata/upgradelist

/usr/share/hwdata/usb.ids

lspci 有两个参数是我们常用的,-b 和-v ,lspci 也会把usb接口列出来;

举例:

[root@localhost beinan]# lspci -b

00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)

00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)

00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)

00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)

00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)

00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03)

00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03)

00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03)

00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 03)

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 83)

00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 03)

00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 03)

00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03)

00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)

00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03)

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

02:09.0 CardBus bridge: Texas Instruments Texas Instruments PCIxx21/x515 Cardbus Controller

02:09.2 FireWire (IEEE 1394): Texas Instruments Texas Instruments OHCI Compliant IEEE 1394 Host Controller

02:09.3 Unknown mass storage controller: Texas Instruments Texas Instruments PCIxx21 Integrated FlashMedia Controller

02:09.4 Class 0805: Texas Instruments Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD)

分析一下这台机器中有什么设备,看主要的就行,与我们应用相关的;

00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)

00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02) 注:这是显示卡;

USB Controller 表示的是USB 接口;我们看到有三个这样的设备;我的笔记本上正好有三个USB 接口;

Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03) 注:这是声卡;

Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03) 注:这是猫;

Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 注:这是网卡,芯片是8139的;

FireWire (IEEE 1394): Texas Instruments Texas Instruments OHCI Compliant IEEE 1394 Host Controller 注:这是1394接口的信息;事实上我的笔记本也有这样的接口;

那得到这些信息有什么用处呢?如果机器中有些设备支持的不好,我们就可以根据这些信息在Google 上搜索,比如我感觉我的声卡有问题,就可以根据声卡信息相关的来搜索找解决问题的办法;根据这些信息,我们也可以到硬件芯片组的官方去找答案或者驱动;

如果想知道硬件更为详细的内容,我们可以用 lspci -v 来查看;

[root@localhost beinan]# lspci -v

比如我们可以通过 lspci -v 来查看硬件的irq中断什么的;比如网卡不好用,是不是irq 存在冲突了?如果您不知道怎么解决硬件驱动不了的情况,就要把 lspci -v 相应硬件的信息整段贴出来,这才是解决问题的唯一办法;所以学会提问也是极为重要的;

有的系统发行版本,还有lsusb 的工具,自己尝试一下吧;

2、存储设备查看和操作工具;

我们查看存储设备的工具主要有 fdisk ;parted ;cfdisk 等;最常用也是最方便的就是fdisk ;parted 就当一个补充吧,这个工具目前看来并不是太成熟;

请参考:

《Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》

《实例解说 fdisk 使用方法》

3、通过查看/proc 目录的相应文件获取一些硬件信息;

我们在查看 /etc/fstab 时,会注意到这样一行;

/dev/proc /proc proc defaults 0 0

proc 看起来象是一个文件系统,其实他并不是一个真正的文件系统 , 它是“proc - process information pseudo-filesystem”,译成中文大概的意思是“进程信息伪装文件系统”呵呵,这是我翻译的,有可能不对,请多多指正;

“The proc filesystem is a pseudo-filesystem which is used as an interface to kernel data

structures. It is commonly mounted at /proc. Most of it is read-only, but some files allow

kernel variables to be changed.”

我再来乱译一下然后再根据/proc 的内容自己理解理解。proc 文件系统做为内核kernel 数据结构的接口,把kernel 的一些信息(比如硬件信息,包括CPU 、网卡、显示卡、内存、文件系统、SCSI 设备 ....)写到 proc 文件系统中,proc被mont 到 /proc 目录;/proc 目录中有大数据大多文件是只读的,但一些数据是根据内核的变化而变化的;/proc 目录中的数据是经常变动的,对于系统中的每个进程都有一个PID;都可以在/proc 中找到;我们也可以通过 ps -aux |more 来查看进程;

我们可以通过 cat 命令来读取/proc 目录下的文件,比如cpu的信息;

[root@localhost beinan]# cat /proc/cpuinfo

详细的内容还得需要您来慢慢查看;对于 /proc 的了解也是有必要的;

4、dmesg

dmesg 是一个显示内核缓冲区系统控制信息的工具;比如系统在启动时的信息会写到/var/log/

注:dmesg 工具并不是专门用来查看硬件芯片组标识的工具,但通过这个工具能让我们知道机器中的硬件的一些参数;因为系统在启动的时候,会写一些硬件相关的日志到 /var/log/message* 或 /var/log/boot* 文件中;

如果我们用这个工具来查看一些硬件的信息;这个工具信息量太大,的确需要耐心;

[root@localhost beinan]# dmesg

[root@localhost beinan]# dmesg -c 注:清理掉缓冲区,下次开机的时候还会自动生成;

5、 hwbrowser

hwbrowser 是 您当前硬件配置的图形化浏览器 ,这个工具是图形的。可能系统在默认的情况下没有安装。需要您安装才行。在Fedora 4.0 中,如果能用yum 或apt 应该是通过如下的命令来安装;

[root@localhost beinan]# yum install hwbrowser

[root@localhost beinan]# apt install hwbrowser

[root@localhost beinan]# hwbrowser

当然您也可以通过rpmfind.net 或者freshrpms.net 上寻找rpm 包来安装

[root@localhost beinan]# rpm -ivh hwbrowser*.rpm

我建议您最好是通过软件包更新工具yum 和apt来安装,这样能自动解决依赖关系;

6、lshal 和 hal-device-manager

通过 lshal 和hal-device-manager 也能知道硬件相关信息,不过这个工具对新手操作起来是有点麻烦,但我还是得介绍一下;

[root@localhost beinan]# lshal

hwbrowser 是 lshal 的图形化界;可能系统在默认的情况下没有安装,这个工具包是Fedora 扩展包,需要您安装才行。在Fedora 4.0 中,如果能用yum 或apt 应该是通过如下的命令来安装;

[root@localhost beinan]# yum install hal-device-manager

[root@localhost beinan]# apt install hal-device-manager

[root@localhost beinan]# hal-device-manager

当然您也可以通过rpmfind.net 或者freshrpms.net 上寻找rpm 包来安装

[root@localhost beinan]# rpm -ivh hal-device-manager*.rpm

我建议您最好是通过软件包更新工具yum 和apt来安装,这样能自动解决依赖关系;

三、不同的硬件有不同的配置工具和与之相应的配置文件;

不同的硬件有不同的配置工具,也有与之相应的配置文件;比如关于显示器和显示卡的配置文件是/etc/X11/xorg.conf ,对于老的Linux版本应该是/etc/X11/X86Config 或 X86Config-4 ,xorg 或 X86的配置文件还包括鼠标、键盘等在X桌面环境下的配置和控制等;

声卡的配置文件是/etc/modprobe.conf 或 /etc/modules.conf ;

文件系统的配置文件是 /etc/fstab ;

声卡的配置工具,一般情况下是alsaconf

当然不同的发行版也有相应的硬件配置或管理 工具,比如Fedora Core 4.0 有如下的硬件配置或管理工具;

[root@localhost beinan]# system-config-mouse

[root@localhost beinan]# system-config-network-tui

[root@localhost beinan]# gnome-system-monitor

[root@localhost beinan]# system-config-network

[root@localhost beinan]# system-config-printer-gui

[root@localhost beinan]# system-config-soundcard

[root@localhost beinan]# setup

当然这些图形化的工具并不是万能的,他们的功能还是有极大的局限性;所以在硬件配置上,大多还是通过文本模式来操作的;

四、硬件驱动是由内核支持的,但驱动都存放在哪里?

硬件驱动是必须由内核支持的,无论是我们自己安装驱动,还是内核自带的驱动都是如此。硬件驱动如果是以内核模块支持的,驱动目录位于: /lib/modules/内核版本/kernel/目录 或 /lib/modules/内核版本/kernel/drivers 目录中;

[root@localhost beinan]# uname -r

2.6.11-1.1369_FC4

[root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/kernel

arch crypto drivers fs lib net sound

注:只有驱动在内核中以模块的方法支持的,或者我们自己安装的驱动,驱动才位于 /lib/modules/相应的目录;如果是直接置入内核的,不会出现在/lib/modules驱动相关的目录;

五、硬件不被系统支持怎么办?

如果一个Linux 系统不支持您的硬件,解决的办法无非是有两种,一种是下载驱动自己安装,Linux的驱动大多是开源社区开发的,厂商提供的比较少;有时也可能要重编内核,主要看驱动内部的说明文件怎么说了。因为驱动本来是要内核支持的,编译内核也极为正常;

值得注意的是:如果我们要重新编译内核,最好把硬件情况摸清楚了,比如鼠标、光驱、软驱、USB 设备;硬盘、文件系统... ... 都要仔细的查看;

请参考:

后记:

Linux 对硬件的支持目前的情况来看是要比前几年好多了,比如声卡、网卡、显示卡(非3D加速,如果是3D加速的,要下载厂商驱动,如果厂商不提供,那大多是没有 办法了,因为厂商不公开硬件的相关参数,开源社区也没有办法开发,对不对?);对于有些硬件还是需要我们来自己安装驱动或编译内核来解决;

Linux对硬件的驱动的开发,开源社区是相当积极的,但厂商很少提供非Windows的驱动,大多数的Linux的驱动都是开源社区奉献的;有人 可能会说Windows的硬件驱动最容易,但我不是这么认为,我有一声ISA接口的声卡,在windows 98 和winme 中发出怪声,在windows 2000更是没有驱动。但在Linux中却支持的非常好。 呵。。。

Linux 对硬件并不是大家原来所说的,越老越旧的硬件跑起来最好,Linux对新设备的支持,可能厂家刚放出来产品,开源社区就有人研究了。解决办法也会在开源社 区可以找到;但有些硬件厂商不会提供驱动的开发参数、信息之类的,所以开源社区有时对这样的硬件也是无奈,但这样的设备目前看来是比较少;大多硬件都支持 Linux ;

如果您遇到硬件相关的问题,不妨通过我上面所说的来找线索解决,就目前来看也没有太多的问题。只要仔细一点,细点心,学会用Google 搜索,大多问题还是能解决的。

suse 升级内核

编译内核

设置完毕,进入编译阶段。如果补丁和配置正确,下面几步不会出错,按顺序执行,等待完成即可。一般是第三步编译模块时间最长。若期间出错,回到上面配置内核清理并重新配置。

#make bzImage
#make modules
#make modules_install
#make install

[编辑]

收尾工作

至此,内核已经编译安装完成了,已经在 grub 开始菜单最下面添加了一个启动项。重启可以尝试新内核登录了。还有一些小问题需要解决。 将 /usr/src/linux 指向刚编译内核的源码目录

#rm /usr/src/linux
#ln -s /usr/src/linux-版本号 /usr/src/linux

之后重启,用 uname -r 检查内核版本。自然,记住还要重新安装显卡驱动。

[编辑]

清理工作

如果你的内核经过一段时间测试可以稳定正常工作,那么可以做一些清理工作,释放磁盘空间。

[编辑]

清理旧文件

回到内核源码目录

#make clean

删除 /lib/modules 下其他内核版本号对应的目录,即旧版本内核模块文件 删除 /boot 下其他内核版本号对应的文件

[编辑]

清理 grub 启动列表

你可能不希望失效的原来内核仍然留在开机选单上,那么

#mv /boot/grub/menu.lst.old /boot/grub/menu.lst
#rm /boot/*.old && rm /boot/grub*.old
#rm /boot/vmlinuz && rm /boot/initrd
#ln -s vmlinuz-新版本号-default vmlinuz
#ln -s initrd-新版本号-default initrd

suse 硬盘安装

其实跟安装SuSE 10.0一样,大家完全可以查看精华或者以前的帖子。

有些朋友还没有成功,就挑重点再把我的体会简要的写一下。

*需要软件

Winrar 或者 UltraISO(推荐)

SuSE 10.1 5CD (现在DVD暂时没有出,如果是DVD方法相同,本文以32位SuSE Linux为例:SUSE-Linux-10.1-GM-i386-CD1~5.iso)

Grldr

一 安装前期准备

1 在硬盘里空出5G左右的空闲硬盘空间用来安装SuSE,建议多一些。

2 在windows里某个磁盘(空闲空间在3.3G以上可以是NTFS格式)建立一个目录,比如D:\suse。用Winrar 或者UltraISO 解压iso镜像到suse目录。

3 把D:\suse\boot\i386\loader目录下的linux和initrd复制到根目录(比如D:\)

4 把Grldr复制到C盘根目录并且修改C:/boot.ini,在 我的电脑 – 属性 – 高级 – 启动和故障恢复 – 编辑 或者直接在地址栏输入C:/boot.ini。在最后一行添加C:\grldr="GRUB"

二 安装

1 重新启动,进入GRUB – Enter Command Line

2 输入 find /linux 得到解压镜像目录所在的磁盘比如(hd0,4)

3 输入 kernel (hd0,4)/linux 回车

4 输入 initrd (hd0,4)/initrd 回车

5 输入 boot 回车

6 如果正常的话进入蓝色的提示屏幕,选择语言、键盘类型、安装选项什么的,都是简单的英语,不做说明

7 选择硬盘安装,本例是hda5,这里可能有不同,选择刚才解压的文件所在的目录。然后输入/suse回车

8 开始熟悉的图形界面了

nvidia显卡驱动安装

1 下载

http://download.nvidia.com/XFree86/L...-8756-pkg1.run

2 开终端init 3

3 ./NVIDIA-Linux-x86-1.0-8756-pkg1.run -q

4 sax2 -r -m 0=nvida(0是数字,不是字符)

5 配置,打开3d

====================================================

ati显卡驱动安装

1 到http://www.ati.com下载最新驱动,本文以移动x300为例,下载好的驱动是

ati-dirvers-installer-8.24.8-x86.run

2 ./ati-dirvers-installer-8.24.8-x86.run --get-supported,会生成一个支持平台/显卡的列表

3 ./ati-driver-installer-8.23.7-i386.run --buildpkg SuSE/SUSE101-IA32 (最后一个参数根据实际平台/显卡从以上列表中选择)

4 生成类似fglrx_6_9_0_SUSE101-8.24.8-1.i386.rpm的rpm

5 rpm -ivh fglrx_6_9_0_SUSE101-8.24.8-1.i386.rpm

6 init 3

7 sax2 -r -m 0=fglrx

8 配置。此处还是无法打开3D是正常的,实际已经打开,重启运行glxgears即可测试

注意,ATI装完驱动不能直接开XGL----Thruth

开启xgl(前提是安装好驱动并打开3D加速)

1 以root登陆,开yast ,确定xgl和compiz已经安装

2 编辑/etc/X11/xorg.conf,找到如下

Section "Device"

BoardName "GeForce 6600"

BusID "5:0:0"

Driver "nvidia"

Identifier "Device[0]"

VendorName "NVidia"

Option "NoFlip" "True" #加上这一行

EndSection

然后在最后加上

Section "Extensions"

Option "Composite" "off"

EndSection

3 编辑/etc/sysconfig/displaymanager,找到DISPLAYMANAGER_XSERVER="Xorg",修改为DISPLAYMANAGER_XSERVER="Xgl"

DISPLAYMANAGER_XGL_OPTS="-accel glxbuffer -accel xvbuffer",修改为DISPLAYMANAGER_XGL_OPTS="-accel glxbuffer -accel xv:fbo"

4 运行SuSEconfig

5 运行rm /var/X11R6/bin/X

ln -s /usr/X11R6/bin/Xgl /var/X11R6/bin/X

6 运行 gnome-session-properties ,在开始程序选项卡里点添加,添加compiz -replace ,确定后再添加gnome-window-decorator

7 运行 gconf-editor ,找到apps => compiz => general => allscreens => options,双击右边ACTIVE_PLUGINS 确认

gconf

decoration

wobbly

fade

minimize

cube

rotate

zoom

scale

move

resize

place

switcher

water

在列表框,如果没有手动添加

8 注销OK

9 kde配置,复制

[Desktop Entry]

Encoding=UTF-8

Exec=compiz --replace decoration wobbly fade minimize cube rotate zoom scale move resize place switcher water & gnome-window-decorator &

GenericName[zh_CN.UTF-8]=

StartupNotify=false

Terminal=false

TerminalOptions=

Type=Application

X-KDE-autostart-after=kdesktop

另存为compiz.desktop,拷贝到/home/user/.kde/Autostart文件夹

建议重启机器吧!

添加安装源

1 开yast,添加安装源

2 如果有add on CD可以点添加,点本地iso,找到iso

3 添加http源,服务器添packman.iu-bremen.de,目录添suse/10.1,确定。中途可能会有警告,选择是就可以了

4 添加ftp源,服务器添ftp.gwdg.de,目录添pub/linux/misc/suser-guru/rpm/10.1,确定。

5 添加http源,服务器添download.opensuse.org,目录添distribution/SL-10.1/inst-source,确定。

6 添加http源,服务器添download.opensuse.org,目录添distribution/SL-10.1/non-oss-inst-source,确定。

3、4、5、6几步以及最后的确定可能需要等待较长时间,请耐心等待。

安装mplayer

1 确定楼上的安装源添加成功并开启

2 确定lame,toolame,faad2,libxine1,mad,w32codec-all,DirectFB,libdvdread,lirc,libdv已经安装,没有的就安装。

3 确定2完成后搜索mplayer,安装即可

4 此时xine也支持几乎所有媒体播放了

Chmod 权限

chmod -R 更改整个文件夹权限

要更改用户对文件的读、写和执行权限,请使用 chmod (change mode) 命令。通常,只有在具有充足的理由(例如,处理小组项目时,组员可能需要访问特定文件或目录)需要让他人访问时,再将访问权限授予他人。

使用 chmod 设置文件权限

可以使用字母 u、g 和 o作为 owner(用户)、group(组用户)和 others(其他用户)(class) 的符号代码为 chmod 指定权限。此“符号代码”便于记忆,因为符号 r、w 和 x (mode) 直接作为命令中的参数使用。

chmod 语法使用 +、- 和 = 符号。语法为:

chmod

class[±=]mode,[ ... ] filename

例如,通过在 chmod 命令中直接指定符号 rw、r 和 r,可以使用符号模式创建 rw-r--r-- 权限。u 表示“用户”,g 表示“组用户”,o 表示“其他用户”。要指定绝对权限,请在参数中使用符号 =。用逗号(不加空格)分隔各类权限:

chmod u=rw,g=r,o=r myfile

权限设置相同时,还可按以下方式合并参数:

chmod ugo=r myfile

由于对 myfile 只具有读权限,所以任何用户都不能对其进行写操作。另外,如果尝试删除 myfile,rm 命令将询问是否确实要删除该文件:

rm myfile

myfile: 444 mode? (y/n) 如果不想删除文件,请输入 n。

如果您确实要删除文件,请输入 y。

要创建 rw------- 权限并为类别 g 和 o 设置“无权限状态”,请使用 =(后无其他符号):

chmod u=rw,g=,o= filename

使用符号 + 添加权限,并再次用逗号(不带空格)分隔各类权限:

chmod u+rw,g+r,o+r filename

还可以使用 - 减少 u、g 或 o 的权限,限制以前级别“较高”的权限。例如,如果已经设置了 rwxrw-rw- 但想将其更改为 rwx------,可以输入如下内容:

$ chmod g-rw,o-rw filename

不过,除非使用前就没有权限,否则将会发现使用 + 或 - 添加或删减了一些原有的文件访问权限。运行 ll 命令对此进行检查。如果不确定,请使用 = 设置权限。

以后,如果希望自己和组员对 myfile 文件具有读写权限,请按如下方式使用 chmod:

$ chmod ug=rw,o=r myfile

使用 ll 命令后将显示如下内容:

-rw-rw-r-- 1 leslie users 154 Nov 4 10:18 myfile

下文概述了一些用于保护 myfile 文件的 chmod 命令。

设置的权限

键入的内容

仅用户本人对 myfile 文件具有读权限,任何人(包括用户)都没有写权限。将权限设置为 -r--------。

chmod u=r,g=,o= myfile

每个用户对 myfile 文件都具有读权限,但没有写权限。将权限设置为 -r--r--r。

chmod ugo=r myfile

仅用户本人对 myfile 文件具有写权限,但每个用户都具有读权限。将权限设置为 -rw-r--r--。

chmod u=rw,go=r myfile

仅用户本人和组员对 myfile 文件具有写权限,但每个用户都具有读权限。将权限设置为 -rw-rw-r--。

chmod ug=rw,o=r myfile

每个用户对 myfile 都具有读写权限。将权限设置为 -rw-rw-rw-。

chmod ugo=rw myfile

仅用户本人对 myfile 文件具有读写权限,其他用户没有任何权限。将权限设置为 -rw-------

chmod u=rw,go= myfile


指令名称 : chmod

  使用权限 : 所有使用者

  使用方式 : chmod [-cfvR] [--help] [--version] mode file...

  说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。

  把计 :

  mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

  + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

  r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

  -c : 若该档案权限确实已经更改,才显示其更改动作

  -f : 若该档案权限无法被更改也不要显示错误讯息

  -v : 显示权限变更的详细资料

  -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

  --help : 显示辅助说明

  --version : 显示版本

  范例 :将档案 file1.txt 设为所有人皆可读取 :

  chmod ugo+r file1.txt

  将档案 file1.txt 设为所有人皆可读取 :

  chmod a+r file1.txt

  将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

  chmod ug+w,o-w file1.txt file2.txt

  将 ex1.py 设定为只有该档案拥有者可以执行 :

  chmod u+x ex1.py

  将目前目录下的所有档案与子目录皆设为任何人可读取 :

  chmod -R a+r *

  此外chmod也可以用数字来表示权限如 chmod 777 file

  语法为:chmod abc file

  其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

  r=4,w=2,x=1

  若要rwx属性则4+2+1=7;

  若要rw-属性则4+2=6;

  若要r-x属性则4+1=7。

  范例:

  chmod a=rwx file

  和

  chmod 777 file

  效果相同

  chmod ug=rwx,o=x file

  和

  chmod 771 file

  效果相同

  若用chmod 4755 filename可使此程式具有root的权限

java on Linux

我在Fedora Core 3上已经成功安装了jdk(jdk-1_5_0_02-linux-i586.rpm),其它版本的Linux基本相同,过程如下:

1. 先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也行。

进入安装目录

#cd /home

#cp jdk-1_5_0_02-linux-i586.rpm /usr/local

#cd /usr/local

给所有用户添加可执行的权限

#chmod +x jdk-1_5_0_02-linux-i586.rpm.bin

#./jdk-1_5_0_02-linux-i586.rpm.bin

此时会生成文件jdk-1_5_0_02-linux-i586.rpm,同样给所有用户添加可执行的权限

#chmod +x jdk-1_5_0_02-linux-i586.rpm

安装程序

#rpm -ivh jdk-1_5_0_02-linux-i586.rpm

出现安装协议等,按接受即可。

2.设置环境变量。

#vi /etc/profile

在最后面加入

#set java environment

JAVA_HOME=/usr/java/jdk-1_5_0_02

CLASSPATH=.:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

保存退出。

要使JDK在所有的用户中使用,可以这样:

vi /etc/profile.d/java.sh

在新的java.sh中输入以下内容:

#set java environment

JAVA_HOME=/usr/java/jdk-1_5_0_02

CLASSPATH=.:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh

3.在终端使用echo命令检查环境变量设置情况。

#echo $JAVA_HOME

#echo $CLASSPATH

#echo $PATH

4.检查JDK是否安装成功。

#java -version

如果看到JVM版本及相关信息,即安装成功!





#################



java on ubuntu:


Selecting the default Java version

If you want to use Sun's Java instead of the open source GIJ (GNU Java bytecode interpreter) you need to set it as default. To list installed JVMs:

update-java-alternatives -l

To select, for example, Sun's JVM as provided in Ubuntu 6.06, run:

sudo update-java-alternatives -s java-1.5.0-sun

You should also edit /etc/jvm and move /usr/lib/jvm/java-1.5.0-sun to the top of JVMs offered.
Adding JDK 1.4 as an alternative

The Blackdown JDK 1.4 does not automatically appear as an alternative upon installation. In order to make it appear, you'll need to create a file such as /usr/lib/jvm/.java-1.4.2-sun.jinfo as described in the man page for update-java-alternatives. Note: the default install location is /usr/lib/j2se/1.4

Manual method: Run:

sudo update-alternatives --config java

and select your preference from the list.

{i} Note: You probably want to do the same with jar, javac, javadoc, javah, javap and javaws:

sudo update-alternatives --config jar

To get common java applications (installed using .deb-packages) to run under your JVM of choice, make sure you also edit the JVM configuration file:

sudo nano /etc/jvm

and add the line:

/usr/lib/j2sdk1.5-sun

Packages such as ant starts the first JVM found in this file.


vnc

Vnc:

1。分别安装server端与client端。

2server端:执行:

vncserver

然后按提示可以找到 /…../.vnc/xstartup 修改成自己喜欢的x windows

Startkde & 或者 gnome-session &

FC6用如下命令:

unset SESSION_MANAGER //this command is essential

exec /etc/X11/xinit/xinitrc or gnome-session &

startkde &

/etc/X11/xinit/xinitrc 是系统默认的x windows session

此时也会提示这是 host1 or host2

要求设置密码

3client

输入: hostip1 or hostip2

然后是密码

5、通过浏览器使用vnc

通过浏览器使用vnc,要注意端口号的变化.

假设vnc server是172.16.1.2:1的话,那么,可用浏览器访问http://172.16.1.2:5801

端口号=display number + 5800

退出VNC:先关闭Linux桌面窗口,然后在SSH窗口中运行如下格式的命令

vncserver -kill :2 #":"前有一个空格!!!!!

(把其中的"2"换成你的桌面号)关闭VNC进程,这一步一定要做。

unset [-fv] name ...

DESCRIPTION

Each variable or function specified by name shall be unset.

If -v is specified, name refers to a variable name and the shell shall unset it and remove it from the environment. Read-only variables cannot be unset.

If -f is specified, name refers to a function and the shell shall unset the function definition.

If neither -f nor -v is specified, name refers to a variable; if a variable by that name does not exist, it is unspecified whether a function by that name, if any, shall be unset.

Unsetting a variable or function that was not previously set shall not be considered an error and does not cause the shell to abort.

The unset special built-in shall support the Base Definitions volume of IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.

Note that:

VARIABLE=

is not equivalent to an unset of VARIABLE; in the example, VARIABLE is set to "" . Also, the variables that can be unset should not be misinterpreted to include the special parameters (see Special Parameters ).

Pasted from <http://www.die.net/doc/linux/man/man1/unset.1.html>

OpenOffice and MS office Fonts

MS office 的 12号字体和open office 9.5号一样大.两者的版式兼容性还是有很大区别.
转成pdf倒是没有什么问题.

Tuesday, 12 June 2007

Linux equivalent of application X

Gnome, Qt and other apps

KDE (Qt)Gnome (GTK)Other (Tk/Tcl, Wine, CLI)
File managersKonqueror, KrusaderNautilus, Gnome-CommanderRox, Midnight Commander
Office suitesKOfficeGnomeOffice (Abiword + Gnumeric)Openoffice.org, Siag Office
Text editorsKate, KWrite, KeditMousepad, GeditXedit, Emacs, vim
Image browsersKView, Gwenview, KuickshowGQView, gThumb, F-Spot, GtkSeePicasa
Graphics programsKivio, Karbon14GIMP, Sodipodi, Blender, InkscapeImagemagick
Multimedia appsVideo: Kaffeine, noatun, KMPlayer

Audio: amaroK, juK
Video: Totem, GXine, GMPlayer, VLC

Audio: Beep Media Player (bmp), Rhythmbox
Video: mplayer, xine

Audio: XMMS
CD/DVD burningK3BGnome Baker, Gnome Toaster, Serpentine (Audio CD)gcombust, XCDRoast, cdrecord, cdrdao
Internet browsersOpera, KonquerorMozilla Firefox, Mozilla Browser, Epiphany, GaleonDillo, Elinks
E-mail and newsgroups clientsKontact (KMail, KNode, aKregator), M2 (in Opera Browser)Mozilla Thunderbird, Novell Evolution, BalsaSylpheed Claws, Gnu Mail
Instant MessengersKopete (jabber, gg, icq, msn…), SkypeGaim (jabber, gg, icq, msn…), WengophoneaMSN, CenterICQ
Jabber clientsPsi, KopeteGajim, Kf, Gabber, Gossip, GaimTkabber, ekg2
P2PKMldonkey (emule, bittorrent, gnutella), Valknut (DC+), qtorrent, ktorrentaMule, Gnome BTdownloadmldonkey, LimeWire, Azureus, xMule

Other tables of equivalents

You may find at least two other tables of equivalents on the Internet. You may found our list just a brief summary of those lists. Our goal was to provide only the most popular choices. I you need more information, consult one of the following lists:

file system locations

The table below presents the popular Windows file system locations and their Linux counterparts.


Main folders location in the file system

MS WindowsGNU/Linux
RootC:\/
Home folderC:\Documents and settings\USER\My documents (XP) or C:\Users\USER (Vista)/home/USER (np. /home/zdzisiek)
Configuration filesHidden, accessible by the regedit command/etc
System filesC:\WindowsBinaries: /bin, /sbin
Libraries: /lib
Installed appsC:\Program FilesBinaries: /usr/bin, /usr/local/bin, etc
Libraries: /usr/lib, /usr/local/lib, /usr/share/lib, etc
Documentation: /usr/share/doc/, /usr/doc, etc
CDROMD:\ (or another virtual drive)/media/cdrom (or alternatively /mnt/cdrom or /cdrom)
Floppy driveA:\/media/fd0 (or alternatively /mnt/fd0 or /floppy)

Managing partitions and drives (/etc/fstab)

Just try to provide the basics only.

My photo
London, United Kingdom
twitter.com/zhengxin

Facebook & Twitter