临江网

 找回密码
 点这里注册

QQ登录

只需一步,快速开始

搜索
热搜: 临江老照片

编辑推荐

查看: 2691|回复: 0
打印 上一主题 下一主题

LINUX新手基础技能 6-2

[复制链接]

1368

主题

0

好友

3367

积分

五品

Rank: 6Rank: 6

帖子
1397
积分
3367
注册时间
2007-5-22
跳转到指定楼层
楼主
发表于 2007-7-18 22:55:21 |只看该作者 |倒序浏览
一般地,Linux发行版提供7个虚拟屏幕,1~6号是控制台终端,第7个上面跑X-Window。红旗Linux桌面4.0只提供了2个控制台终端,第3 个跑X-Window,如果需要更多控制台终端,可以修改“/etc/inittab”,找“# Run gettys in standard runlevels”一行,下面以数字和“#”开头的6行都是控制台终端说明。以“#”开头的行在大多数配置文件里表示注释,即该行不生效。把那几个 “#”去掉,重新启动后即可获得全部6个控制台终端。

前面提到的“rxvt”,运行时会在图形界面中虚拟一个终端窗口,由于实际功效几乎完全相同,从这里起,本文档中不论是图形界面下开启的“终端”,还是控制台下登录后的终端,如没有特别说明,均以不带引号的“终端”指代。必要时则以“虚拟终端”和“控制台终端”区分。

注意,在控制台终端下登录时,“login: ”处输入帐号,“password: ”处输入口令。同样为安全起见,输入的口令不显示。控制台终端注销用命令“logout”。

在控制台终端启动的后台程序不会因为注销而终止。

3.1.10 shell

前面说过,控制台终端“算是Linux的本来面目”。也只能“算是”,因为各终端里运行的命令行程序并不是终端本身,更不是Linux本身。像X-Window一样,那个命令行程序实质上也是个外围程序,叫“shell”。

从名字看,也许你已经猜到一些东西。不错,它包含了用户界面功能,负责接收使用者输入的东西,翻译后发送给Linux内核处理。如果有输出信息,它也会把输出信息显示出来。相对DOS而言,shell就相当于“command.com”。

shell同样能进行由几个命令串成的“批处理”。与“command.com”不同,shell的功能要强大许多。一个功能稍强的shell脚本,已经具备高级语言的语法结构,因此编写shell脚本在很多情况下也被看作是编程。

一般情况下,在控制台终端登录或在图形界面下开启“终端”,默认都会启动一个shell来接待使用者。

可以在shell的命令行里启动另外一个shell。退出当前shell的通用命令是“exit”。如果当前使用的shell正是控制台登录后启动的,则“exit”等效于“logout”。

shell中启动的后台程序不会因正常退出而终止。所谓非正常退出,指强行杀掉这个shell;在图形界面下用“打叉”方式关闭终端也所强行终止一个shell。

shell有很多种,各有特色。目前使用比较广泛的是shell是“bash”,主要的Linux发行版均以其作为默认的shell。

3.1.11 运行级别

如同其他的UNIX类系统,Linux也分运行级别,不同级别有不同的功能。切换到某个运行级别的命令为“init 某”。
一般来说,Linux有7个运行级别:
6.无论何时切换到这个级别,重新启动。
5.最常用的,从登录到注销都在图形界面下操作。
4.一般的发行版没定义这个级别。红旗Linux桌面4.0把它定义为“安全模式”,切换到这里会自动启动显示设置程序。
3.除了需要在登录后手动启动图形界面外,与级别5相同。
2.与级别3相比,网络部分不启动。但是红旗Linux桌面4.0似乎没遵循这个常规。
1.单用户模式,真正的“安全模式”。只有一个控制台终端,供“root”帐号做系统维护。但是作为新手,如果你的系统坏到你必须用这个,那建议你重装。
0.无论何时切换到这个级别,关机。

3.1.12 系统服务

每个运行级别都有不同功能,主要是所运行的系统服务不同。查看某运行级别系统服务的一个方法是切换到该运行级别,在终端里运行“setup”,找“System services”一项。在终端直接执行“ntsysv”亦可。

一般情况下,运行级别3和5中,“network”(网络)、“smb”(Window$网上邻居)和“smbupdate”是要开的。

3.1.13 重新启动

前面的许多地方都提到“重新启动后”怎么怎么样。其实,很多时候重新启动只是Window$的专利。Linux下往往只需要把对应的部分重新启动即可。

UNIX类系统中许多东西并不与系统核心捆绑,比如X-Window,如果需要,随时可以重新启动。

Linux 下许多相关的东西已经被写进脚本,这些脚本主要位于“/etc/rc.d/init.d”,而且支持如此的命令格式:“脚本 start”、“脚本 restart”和“脚本 stop”,分别是启动、重起和停止。有的还支持“脚本 reload”,这是在此项功能不停止的前提下应用新的设置。

以网络部分为例,如果修改了网络设置,比如改了IP、DNS或者设置了ADSL自动拨号,这个命令用来重起网络:“/etc/rc.d/init.d/network restart”。当然前提是系统服务里开了“network”。

3.1.14 所有者、组、权限

UNIX 类系统都是公私分明的系统,什么资源谁能访问都一清二楚毫不含糊。仔细看看Linux的文件属性,它把机器上所有用户分成3类:文件所有者、与文件所有者同组的用户和其他用户,每类有分别有“可读”、“可写入”和“可执行”3个标签。对于目录而言,“可执行”就是可以访问。Linux下可执行文件不用后缀名来特别标记,只要文件的属性为该用户可执行,那么Linux就认为它可执行,不管它是二进制编码还是一个文本文件。至于执行效果,就看这个文件自己了。

3.1.15 系统目录结构

UNIX类系统是“把一切都安置到位”的系统,各类文件一般都有自己的归宿。Linux也不例外。介绍一下“/”里的目录和“/usr”里的主要目录。

/:根目录,没什么好说。
/bin:常用的系统级软件可执行文件一般都在这里。
/boot:Linux引导时所需的文件一般在这里。有人专门为它创建一个分区。
/dev:所有设备文件。UNIX类系统把所有设备都当作文件来读写,好处你可以问问专门编写驱动的人。
/etc:主要配置文件和一些功能脚本所在,地位类似Window$的注册表。
/home:所有非“root”用户的主目录都在这里。很多时候他都有自己的分区。
/initrd:尚不了解。
/lib:系统级软件的共享库,软件的主体部分放在这里,主要是动态链接文件。
/lost+found:几乎每个被格式化过的Linux分区都会有,意外后找回的文件一般在这里面。
/misc:尚不了解。
/mycomputer:红旗Linux的“专利”。
/mnt:里面的目录一般充当临时的文件系统挂载点。
/mnt/floppy:软盘一般挂在这里。
/mnt/cdrom:光盘一般挂在这里。
/opt:杂七杂八的东西塞到这里。如果你确实这么做,也给它一个分区。
/proc:内存。
/root:“root”的主目录。
/sbin:系统级软件可执行文件,多为比较猛的命令,非“root”用户很少用。
/tftpboot:可能是远程引导用的。
/tmp:系统存放套接字等临时文件的地方,缓冲的flash、图片也在这里。不算太重要,清空不会对操作系统造成影响,但是可能影响运行的程序。
/usr:一般发行版中最大的目录,绝大多数随系统安装的软件都在这里。给它一个3G的分区没坏处。

/usr/bin:一般软件的可执行文件主要放在这里。
/usr/include:GCC主要的头文件放在这里。
/usr/lib:一般软件的共享库,软件的主体部分放在这里,主要是动态链接文件。
/usr/share:也是一个公用目录,墙纸、图标都在这里,帮助页一般也在这里。
/usr/X11R6:XFree86第11版的第6个子版本。

/var:主要是变化的东西,多为日志。如果日后这个目录变得很大,也给它一个分区。

3.2 一些常见的小程序

3.2.1 只在shell命令行里跑的

“df”,查看已经挂装的文件系统空间的占用情况。“df -k”,以KB为单位显示;“df -m”,以MB为单位显示。

“fdisk”,一个功能强大的分区工具,对分区的调整能精确到扇区级别,但是不好用。只记住“fdisk -l”即可,查看分区一目了然。

“gzip”,一个高压缩比的压缩、解压工具,常与“tar”结合进行打包和备份工作。

“ls”,对目录列表。

“man”,UNIX类系统的帮助手册,使用方法为“man 你想了解的命令”。

“tar”,UNIX类系统中最常用的归档和反归档工具,原本是为磁带备份用的,把一个目录及其内部的文件拼合成一个文件。

“vi”,终端里最常用的编辑器,不难用,但是与一般习惯不相符。

3.2.2 带图形界面的

图形界面下启动程序的4种方法。“茴”字的4种写法?当然,谁也没强求,哪种方便你就用哪种:
1.桌面上有图标的,比如“MP3播放器”,操作方法“地球银都知道”。
2.桌面上没有的,比如前面讲的“rxvt”到菜单里去摸,也不难。它在菜单里的名字叫“终端”。
3.在虚拟终端的命令行里输入程序文件名,回车。当然,这时虚拟终端就被占用了,无法再做别的事情。要避免这种情况,可以在回车前加上“&”。
4.用小命令行。“开始”->“运行命令”或者,“Alt”+“F2”键,都可以启动小命令行。在小命令行里输入程序文件名,回车。

“konqueror”,一个出色的浏览器,不论是上网冲浪,还是管理本机文件。用桌面上“我的电脑”即可启动。

“ksnapshot”,屏幕抓图软件,可以只抓某个窗口。在菜单里叫做“屏幕截图程序”。

“kwrite”,比较强的文本编辑器,在编写程序或脚本时支持彩色显示。

“rxvt”,红旗Linux桌面4.0最常用的虚拟终端。在菜单里叫做“终端”。

4 安装软件
版本:2004-06-23-01

在Linux下滚打摸爬一阵子,有发现缺点什么吗?软件!
系统装好,也附带了一些软件,而且比Window$安装附带的还多。但是安装光盘毕竟容量有限,不能把所有需要的软件都包下来,更多的软件和更新的驱动程序都得另外安装。安装一个软件前最好多找找它的相关文档,也许有些已经被翻译成中文了。

4.1 Linux下常见软件包格式

Linux下的软件很多,出自不同作者之手,打包的格式也挺多。*.rpm、*.tar、*.gz、*.bz2、*.Z、*.tgz和*.tbz都是常见打包格式。

4.2 分类说明

4.2.1 *.rpm

RPM 是 Red Hat Package Manager 的缩写。由 Red Hat Linux 首先引入,现在已经被一些主要的 Linux 发行商采用。“Package”就是归档后的软件包,其中包含了属于该应用程序或程序库的文件,这有点类似于压缩文件。
除了压缩功能,这个包里还有一些控制脚本,这些脚本可以被本地的安装程序读出,执行,并存储。可以进行安装、卸载、状态检查、依赖检查等。

在以上格式的软件包中,装卸操作最简便的就是*.rpm包。一般情况下,这种格式的包用鼠标点点即可安装,没有太多需要考虑的。
桌面环境一般会提供RPM软件包管理器。红旗Linux4.0桌面的软件包管理器在“控制面板”里。可以从那里卸载软件包。

终端命令行中安装命令为“rpm -ivh 安装文件名.rpm”。安装文件名一般包括软件包名和版本号两部分。查询软件包版本为“rpm -q 软件包名”。卸载命令为“rpm -e 软件包名”。

“rpm xxxxxxxxx nodeps”,表示强行安装或卸载,一般不推荐这么做。

4.2.2 其他主要格式

4.2.2.1 初步处理

*.gz:
常见的压缩格式。“gunzip xxxxxxxxx.gz”。桌面环境往往带有图形化解压工具,用鼠标点点,不成再用命令。

*.tgz:
常见tar归档加gzip压缩格式。只解成tar归档文件用“gunzip xxxxxxxxx.tgz”,完全解开用“tar zxvf xxxxxxxxx.tgz”。桌面环境往往带有图形化解压工具,用鼠标点点,不成再用命令。

*.tbz:
常见tar归档加gzip压缩格式。完全解开用“tar jxvf xxxxxxxxx.tbz”。桌面环境往往带有图形化解压工具,用鼠标点点,不成再用命令。

*.tar:
tar归档文件,解压命令为“tar xvf xxxxxxxxx.tar”。桌面环境往往带有图形化解压工具,用鼠标点点,不成再用命令。

*.bin:
没什么好说的了,直接执行吧。

4.2.2.2 安装二进制软件包

下载的软件包,解压缩和反归档后,看看里面的说明文档,主要是那个“readme”,里面一般会安装说明。照着做。如果只是一个“xxxxxxxxx.bin”,就直接执行吧,只是注意一下,你可能需要自己把权限改为可执行。

4.2.2.3 安装源代码包

本机编译出来的软件在本机具有最好的执行效率,也能尽量减少软件冲突,源代码包的体积也比二进制包小许多,所以更多的软件都以源代码形式发布。

解压缩和反归档后,浏览一下软件包的目录,找找说明文档。如果没有特殊注意事项,就看看哪个目录里有“configure”这个文件。

从终端命令行进入有“configure”的目录,准备安装。

先做配置。执行“./configure”,这是个编译预处理脚本,它会自动检查操作系统、编译器、库等东西,生成正式的编译脚本。“configure” 有许多选项,可以用来指定编译器、所需的库等,其中一个是“ prefix=”,用来指定软件的安装位置,用法为“./configure 选项1 选项2 …… prefix=安装路径 …… 选项n”。没有特殊需要的话,只用“ prefix=”选项即可。

再编译。当然不需要你一个一个文件自己去手动编译。UNIX类系统早就有处理这些“不是人做的事情”的办法了,一个功能强大的维护工具“make”会按照“configure”生成的脚本自动处理。只需要执行“make”即可。

最后安装。命令“make install”,把软件安装到你先前指定的地方。仅仅比安装Window$软件多出编译一步。

我一般会自己写一个小的脚本,内容如下:
./configure prefix=xxxxxxxxx>../conf_log.txt 2>conf_err.txt
make>../make_log.txt 2>../make_err.txt
make install>../install_log.txt 2>../install_err.txt
init 0

第一行,配置,把配置过程中该显示的东西打到上级目录中的文件“conf_log.txt” ,错误提示进“conf_err.txt”。
第二行,编译,同样把屏幕正常显示和错误提示写入记录文件。
第三行,安装,还把屏幕正常显示和错误提示写入记录文件。
第四行,搞定就给我关机。软件大一点,或者机子旧一点,编译时间都比较长,一般晚上临睡觉做,脚本一运行我就关显示器,睡觉去,第二天看装好没有,没好就开记录文件。当然,如果不是临睡,你也可以不要关机这行,尽可以做别的事情,总之不必干等。

4.3 运行软件

4.3.1 我的软件在哪里?

估计你主要是想知道你装的软件如何启动,启动用的可执行文件在哪里。

对于RPM包,它们的可执行文件一般可以去“/bin”、“/sbin”、“/usr/bin”和“/usr/sbin”找。当然,RPM也有源代码包,文件名里往往有“src”字样,或者以“.srpm”为后缀,那个可执行文件就不在常规位置了。去“/usr/src”找吧,然后按源代码包的方式处理。命令“rpm -qpl xxxxxxxx.rpm”或“rpm -qpl xxxxxxxxx.srpm”能查看这个软件包里的各种文件会安放到系统的什么地方。在桌面环境里也可以用RPM软件包管理器查看。

其他的二进制软件包,安装在哪里就去哪里找,其可执行文件一般在软件目录下的“bin”目录里。用源代码包安装的软件也差不多。如果配置时没加“ prefix=”选项,一般“/usr/local”会被当作安装目录,可执行文件请到“/usr/local/bin”里找。

4.3.2 软件跑起来

如果可执行文件在“/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。

如果不在标准位置,文件名前面需要加上完整的路径。不过每次都这样跑就太麻烦了,一个“一劳永逸”的办法是把这个路径加入环境变量。命令“PATH=$ PATH:路径”可以把这个路径加入环境变量,但是退出这个命令行就失效了。要想永久生效,需要把这行添加到环境变量文件里。有两个文件可选: “/etc/profile”和用户主目录下的“.bash_profile”,“/etc/profile”对系统里所有用户都有效,用户主目录下的 “.bash_profile”只对这个用户有效。

“PATH=$PATH:路径1:路径2:……:路径n”,意思是可执行文件的路径包括原先设定的路径,也包括从“路径1”到“路径n”的所有路径。当用户输入一个一串字符并按回车后,shell会依次在这些路径里找对应的可执行文件并交给系统核心执行。那个“$PATH”表示原先设定的路径仍然有效,注意不要漏掉。某些软件可能还有“PATH”以外类型的环境变量需要添加,但方法与此相同,并且也需要注意“$”。

注意,与DOS/Window$不同,UNIX类系统环境变量中路径名用冒号分隔,不是分号。另外,软件越装越多,环境变量越添越多,为了避免造成混乱,建议所有语句都添加在文件结尾,按软件的安装顺序添加,格式如下():
########################################
# 软件名-版本号
PATH=$PATH:路径1:路径2:……:路径n
其他环境变量=$其他环境变量:……
########################################
在“profile”和“.bash_profile”中,“#”是注释符号,写在这里除了视觉分隔外没有任何效果。
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0 顶0 踩0

发表回复

高级模式
B Color Image Link Quote Code Smilies
验证码 换一个

回顶部