分享
 
 
 

linux的基本操作

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

经过前面三个专题的学习,我们的linux系统终于能够使用了。下面,就由我来讲解如何对这个系统进行基本的操作。首先的问题,当然是我们如何进入它了:)。

1、用户的登录、注销与关机

摁下电源开关,屏幕上刷刷闪过一串串启动内容的文字提示,是不是感觉有点兴奋?如果这是你的linux第一次启动,那么在服务启动的一串绿色的"[OK]",突然出现一个红色的false,仔细一看好象是一个叫httpd的服务。不要害怕,这个问题我们在以后的学习中会得到解决。最后,系统显示:

linux login:

作为系统管理员,第一次进入系统当然要以超级用户的身份进入,和NT中Administrators身份对应的linux帐号是root(这也是一般类UNIX系统中常见的系统管理员身份)。在login:后面输入“root”,然后回车,系统提示:

Password:

输入当初在安装的时候选择的系统管理员密码。你也许会奇怪,系统为什么不显示“*”号来提示你已经输入,好象什么也没有输入,光标还在原处闪烁。其实,你已经输入了你的密码,之所以采用这种不回显的技术,也是出于安全考虑——减少周围的人知道您密码位数的概率,而降低您密码被很快破解的可能性。按照你心里想的输入密码,然后直接回车,OK,成功登录,系统提示:

[root@linux /root]#

符号“@”前面的自然是你的帐号身份,之后的是主机名,可能根据你的主机的名称不同而不同。/root是你的主目录,它既是你的个人配置文件所在的地方,也是你每次登录后所在的目录,是你受到系统保护的私人领地——当然,前提是只有你自己拥有root权限:)。

和NT不同的是,作为多用户多任务操作系统,linux在同一台主机的本地就提供了6个虚拟控制台,分别为tty1至tty6。虚拟控制提供了linux在字符模式下同时运行几个程序的方法,实现了多任务处理。这六个虚拟控制台可以通过组合键Alt+F1,Alt+F2,……,Alt+F6来进行切换。每一个控制台都可以看作一个完全和独立的工作站。系统启动的缺省控制台为tty1。从一个控制台切换到新的虚拟控制台以后,linux也会先显示登录提示符,就象第一次登录一样。在装入另一个命令解释器之前,也会询问用户名和口令。所以,我们可以在不同的控制台以不同的用户身份登录,更方便了用特定的身份执行特定的操作。当用户从一个虚拟控制台切换到一个新的虚拟控制台以后,在原来那个控制台运行的程序将继续运行。

我们可以来做个小小的实验,在第一个登录的控制台(tty1)输入命令ping 127.0.0.1,这时可以看见类似windows下ping本地的输出,紧接着Alt+F2切换到第二个虚拟控制台,登录以后,使用命令ps aux|grep ping(关于这个命令,将在第五个专题的进程管理中详细说明,它的功能是显示运行中的程序中包含ping串的部分),我们可以看见两行输出,一行表示ping在运行中,一行表示你的这个查询在查询的时候也在运行:)。然后我们再用Alt+F1切换到第一个虚拟控制台,可以看见ping命令还在不停的输出——在你离开这一会,它都已经刷了好几屏了,用Ctrl+D来结束它吧。非常清楚,ping命令在我们离开控制台一的时候也并没有被挂起,而一直在执行中。

在同一个控制台中,我们不用先注销也是可以改变我们的系统身份的,这可以用命令su实现。使用方法是:

[root@linux /root]#su username

命令行中的username是你给su的参数,例如你想改变自己的身份为bluewind(前提是您已经添加了这个系统用户,操作方法可以参考《搞清linux的用户和组-基础篇》),那么你可以使用su bluewind命令。如果你是从root身份su的话,不用输入password。而从其它身份则系统会提示输入密码的。简单的敲入su不带任何参数的话,缺省的认为你想成为root用户身份。

用户退出登录有两种方法,一种是exit命令——这个命令一般的系统都会提供,一种是logout——有些系统如果提供了exit就不再提供这个命令了,例如redhat 7.0。执行的结果是回到上次转换身份前的用户状态。例如,你先用root登录,再su为bluewind,然后你执行exit,就回到了root身份,再执行exit,连root也退出了,回到登录提示符的状态。

通过telnet登录系统和通过本地虚拟控制台登录很相似,只是出于安全性考虑,系统不允许直接用root身份通过telnet登录,你可以先用一个普通身份登录以后再su成root——如果有必要的话。

linux提供了三种关掉系统的方式:shutdown、halt和reboot。这三个命令在一般情况下只有系统的超级用户(一般都是指root,但不全是)才可以执行。输入没有参数的shutdown命令,2分钟之后即可关闭系统。在这段时间,linux将提示所有已经登录系统的用户。如果需要设定等待的时间,可以使用如下的选项:

○now:立即。

○+mins:在指定的分钟之后

○hh:ss:在指定的时间。

在关掉系统之前,系统会自动产生一个/etc/nologin文件,用于说明系统即将关闭,用户不能登录进入。在这段时间中,只有系统管理员可以进入。如果你需要获得有关shutdown命令的更详细的帮助,可以使用man shutdown命令。

halt命令相当于shutdown -h now ,表示立刻关机。

reboot命令相当于shutown -r now ,表示立刻重起。

2、Shell的使用

如果你熟悉DOS的话,你可以用dos中的command.com程序来帮助理解shell。它可以被认为是一种简化的shell。shell是用户和linux之间的接口,用户输入的每个命令都是由shell先解释,然后再传给linux内核的。有些命令是shell内建的,就好象dos的内部命令,例如显示当前工作路径命令pwd就是bash内部的;其它命令如同dos的外部命令是自己单独的程序。

shell的另外一个重要特性就是,它自身就是一个解释型程序设计语言。shell程序设计支持在高级语言里能够见到的绝大多数程序控制结构,关于这个,能够单独写一本书^_^。我们还是回到正题,不过我们可以知道,shell命令完全可以完成在dos中象bat程序一样的功能,而且更强、更方便、更随和——随便写一个命令列表的文本文件,指定一个shell执行它或者把它的属性改为可执行后直接运行就可以了。

shell在用户成功的登录系统后启动,并始终作为与系统内核交互的手段,直至退出系统。

◆常用的shell

在linux系统里,可以使用多种不同类型的shell。一般来说,在/etc目录下会有个shells文件,该文件是目前系统中可用的shell类型列表。一般包括如下几行:

/bin/bash

/bin/sh

/bin/ash

/bin/bsh

/bin/tcsh

/bin/csh

而最常用的主要是Bourne shell(sh),C shell(csh)和Bourne Again Shell(bash)三种。

sh是UNIX最初使用的shell,并且在每一种UNIX上都可以使用。它在编程方面非常优秀,但和用户的交互却比较逊。

csh更多的考虑了界面的友好性,但普遍的认为C Shell的编程接口不如sh。由于它的编程语法和c比较相近,所以它还是被许多C程序员所使用。

bash是sh的扩展,并与sh完全兼容,并在吸取c和kon shell的优点的基础上对sh增加了和增强了很多特性。它是大多数linux系统中默认的shell。下面我们将主要介绍bash的简单使用。

bash的环境变量的设置主要是在/etc/profile文件里,每个用户还可以在自己的主目录(刚登录系统后的当前路径)中的.bash_profile文件中定义自己的个人环境变量。注意,以点“.”开头的文件在linux中是隐藏文件,使用ls的-a参数才能看见它们的存在。

我们比较关心的可能是这样的一行

PATH="$PATH:/usr/X11R6/bin:/usr/sbin/:./"

通过下边的export语句,这一句就象dos中设置path路径一样,所不同的主要有以下三点:

a、形式上用冒号分隔各个路径单元,不象dos是用分号分隔;

b、内容上可以使用$PATH代替这个赋值等式前的路径设置(注意,linux是区分大小写的);

c、效果上这个路径决定了bash查找的绝对范围,不要认为bash会象dos自动先查找当前路径,除非你在PATH中进行了设置。

你可以使用echo $PATH来显示自己的当前PATH设置。

关于bash更详细的帮助可以通过man bash命令获得。

修改用户缺省shell设置可以参考 《搞清linux的用户和组-基础篇》 的有关内容。

3、文件系统与目录树

在dos-windows体系中,每个磁盘或硬盘分区有独立的根目录,并且用唯一的驱动器标识符表示,如A:,C:等。

而linux的文件系统则不一样,它采用了一种虚拟文件系统技术,使不同的磁盘和分区组合成一个整体。单个磁盘或硬盘分区构成单独的文件系统(可以是fat、NTFS等等格式的),有其各自的目录树结构。但是,在操作系统能够使用这些文件系统之前,必须通过称为“挂装”的操作将单独的文件系统附加到虚拟文件系统的某一个子目录上——也就是说这个子目录就是实际文件系统的根,通过访问这个子目录来访问该分区或磁盘。如此操作,最终可使所有的文件系统结合成一个无缝的统一整体,组织到一个大的树型目录结构中。该目录树的顶部是一个单独的根目录,名为root,用/表示。根目录下是一些标准的子目录和文件。

在文件系统模型中,仍然体现了linux的设计哲学,即将不同的文件系统组合成一个有机的整体,进而为用户提供一致的文件系统结构。

对大多数Linux发行版本而言,文件系统的目录树布局遵循FSSTND标准,这有利于编写或移植软件,同时也有利于进行系统管理和维护。

完整的目录树可划分为小的部分,这些小部分又可以单独的存放在自己的磁盘或者分区上。这样相对稳定的部分和经常变化的部分可以单独放在不同的分区里,从而方便了备份和系统管理。目录树的主要部分有root(/)、/usr、/var、/home等等。下面是一个典型的linux目录结构如下:

/ 根目录

/bin 存放必要的命令

/boot 存放内核以及启动所需的文件等

/dev 存放设备文件

/etc 存放系统的配置文件

/home 用户文件的主目录,用户数据存放在其主目录中

/lib 存放必要的运行库

/mnt 存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下。

/proc 存放存储进程和系统信息

/root 超级用户的主目录

/sbin 存放系统管理程序

/tmp 存放临时文件的目录

/usr 包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档。

/var 包含系统产生的经常变化的文件,例如打印机、邮件、新闻等假脱机目录、日志文件、格式化后的手册页以及一些应用程序的数据文件等等。建议单独的放在一个分区。

典型的/usr目录如下:

/X11R6 存放X window系统

/bin 存放增加的用户程序

/dict 存放字典

/doc 存放追加的文档

/etc 存放设置文件

/games 存放游戏和教学文件

/include 存放C开发工具的头文件

/info 存放GNU信息文件

/lib 存放库文件

/local 存放本地产生的增加的应用程序

/man 存放在线帮助文件

/sbin 存放增加的管理程序

/share 存放结构独立的数据

/src 存放程序的源代码

由于/usr中的文件不和特定的计算机相关,也不会在通常使用中修改,因此可以通过网络共享这个目录(文件系统),这样,当管理员安装了新的软件之后,所有共享这一文件系统的计算机均可以使用新的软件

4、目录操作和文件操作

在介绍文件的操作之前,我们先了解一下文件的类型。目录树包括以下文件类型:

a、普通文件:包括文档文件、数据文件、程序、shell脚本等我们常接触到的文件。

b、目录文件:目录文件包含着一个该目录下的文件和本身以及上一级的链表。这是由操作系统维护的文件。它至少包括两个记录,一个是它自身(“.”),一个是它的上一级目录(“..”)。注意,根目录的上一级目录还是它自身。

c、设备文件:和所有UNIX一样,linux把所有设备都作为一个文件来处理,包括IO设备。

d、进程通信文件:即所谓的先进先出文件,主要是为进程间通信用的。

我们一般登入系统后,当前的工作目录都是自己的主目录,想看看主目录里有什么东东?你可以使用ls命令试试。输出就如同dir /w一样^_^。要查看隐含文件使用命令行:

ls -a

可以看见多了不少以点(“.”)开头的隐藏文件。如果还想进一步查看文件的详细信息,那就查看长格式的输出吧,使用

ls -l

当然,我们完全可以组合使用多参数,有两种方法:

ls -a -l 或者 ls -al

都可以得到该目录下所有文件的详细列表,比dos下dir的输出还详细——只不过文件的名却在右边。如果文件太多,一屏显示不下怎么办呢?ls命令并没有提供dir的/p开关的功能,不过按照UNIX系统设计的积木原则,我们可以用命令的组合获得我们需要的任何功能。象这次我们可以使用输出重定向,使用通道,对于下面这个命令,你应该不会觉得别扭吧?

la -l | more

这和dos下的管道一模一样嘛:),还不只这个,连改变当前目录的cd命令,也是和dos中的用法一样,看来dos还是没有完全抛弃UNIX的影响。

cd命令的用法和dos中相似,不同的是cd和后边的目录(包括代表上一级目录的..)之间必须有空格隔开。多出几次错误信息你就会记得这一点了,呵呵。记住:

cd.. ------wrong

cd .. or cd / ------right

查看当前的路径的命令是pwd,如前所说的,它是bash的内部命令,cd也是。它存在价值在于你不用时刻面对着一个可能非常长的路径,当然你觉得有必要,也可以通过对bash的适当配置使得它的提示符类似于dos模式。

建立和删除的目录命令也很容易从字面上理解,建立目录使用mkdir,删除空目录用rmdir。注意,你建立目录、删除目录的操作,都需要相应的权限。

要想做到dos下的deltree的功能,需要使用文件的删除命令rm的递归删除参数-r或-R。这个命令的基本格式是

rm [-option] filename

例如要删除/tmp/newtemp所有文件和子目录,可以使用如下命令:

rm -r /tmp/newtemp

这样的话,系统会一个一个文件问你是否需要删除,如果你可以确信这个目录下的所有东西都没有保留的价值的话,你可以加上一个-f的参数,表示强制删除,不再询问,如:

rm -rf /tmp/newtemp (还记得我们使用多个参数的两种方法么?)

注意,在linux中没有类似undelete的命令,不要随意使用带-f、-r、-R参数的rm命令哦:)

文件的拷贝使用cp命令,使用的格式如下:

cp [-option] soursefile targetfile

注意,和dos中的copy不同的是:

· soursefile和targetfile不能相同;

· cp需要使用递归选项-r来完成带文件的目录的拷贝;

· cp可以使用-u开关来保留文档的最新版本。当使用-u选项时,如果目标文件存在且最后修改时间比源文件晚,则不覆盖。

我们常用的还有重命名操作命令,或者说移动文件命令,mv,格式如下:

mv [-option] source target

mv有个非常有用的选项 -b,表示给被覆盖的文件产生一个备份。

cat命令用于把所给的文件以所给顺序在标准输出上输出。格式如下:

cat [-ption] [file]

如果没有设置参数file,则把从标准输入中读入的文件从标准输出上输出。如果file以一个减号来代替,则cat仍然从标准输入上读入数据。例如:

cat - file1 - >file2

这个命令表示先从标准输入读入数据,直到输入结束字符Ctrl+d,接下来从文件file1中输入,接着又从键盘输入直到输入结束字符,把这些结构都输出到file2文件中。实际上做了个在file1前后均加了一段文字然后存成了file2文件的操作。

用这个命令还可以把多个文件连接在一起。例如:

cat *.txt > outall.txt

表示把所有的txt后缀的文件按照字母顺序连接起来,然后再写到outall.txt文件里。

如果[file]选项是二进制文件,而又不是把它输出到一个文件而是标准输出的话,由于终端可能要对不可打印字符进行处理,可能会出现乱码。可以使用-v选项来解决这个问题。这个选项把不可打印字符(从ASCII码的000到037的字符)用^和ASCII码从100到137的字符组合来表示。

还有三个用来显示文件的命令,它们分别是head、tail、more。

head [-option] [file] 是用来显示文件的前面一部分的。可以使用-num选项来显示前num行,也可以使用选项-c num使head输出前num个字节。其它的使用和cat相似。

tail [-option] [file] 是和head对应的显示文件后一部分的命令。选项和head命令一样。

more命令就是前面我们曾经借助它进行分页显示的命令,它也可以直接用来分页显示文本文档。命令格式和前面几个命令一样。在显示完一页后,more会提示用户输入:如果输入空格键或是f,则显示下一页;如果输出n加空格键,则用来显示后面的n 行;回车键用来显示下一行。

这几个命令都是网络管理比较常用的查看日志文件的工具,可以用man命令获得它们更详细的帮助。

还有几个显示二进制文件的命令,例如od、mn和strings,你也可以通过man获得帮助。

在linux中还可以为文件增加链接。例如目录的两个链接“.”和“..”。在目录中,每一对文件名与索引节点号称为一个链接(link)。同一个索引节点可以和多个文件名创建链接。实际上这种硬链接是直接创建了与文件(在这是目录文件)的索引节点(i-node)号相联系的链接。我们也可以为文件创造多个链接,这使用命令:

ln [-option] sourse [target]

如果不使用target参数的话,则在当前目录中是创建一个同名的链接文件;如果用ln产生几个文件的连接,则target必须为一个目录。只有超级用户才能产生目录间的硬链接。

这一个功能非常有用。除了我们可以在主目录方便访问我们经常访问的文件,而且我们可以为重要的文件或目录建立多个链接,提供“防删除”的功能,避免以为删除造成严重后果。这样做的原理是,如果一个文件(或目录)的索引节点有一个以上的链接,删除操作只能破坏其一,索引节点本身的其他链接仍然不受影响。当然,如果对只有一个链接的文件发出删除命令,索引节点、文件数据块与目录的连接都会被释放,文件也真正删除。

上面的链接说的都是硬链接,和索引节点号直接相关的链接。我们知道,每一个文件系统(如一个硬盘分区)都有自己的索引节点数组,因此索引节点号只有在同一个文件系统中才是唯一的,这意味着,固定链接只能用在一个文件系统的内部。

而符号链接(symbolic link,又常被称为软链接)则没有这个限制,它和windows系统中的快捷方式非常相似,它可以用在不同的文件系统之中。因此,在两个文件之间建立链接,如果要求保证可移植性,应尽量使用符号链接。可以使用 ln -s 来产生符号链接。

· 文件、目录的属性

涉及到文件的属性,就不可避免的关联到用户管理,关于这个内容,请先参考专题五中的用户管理部分,再来阅读这一部分。linux下,每一个文件、每一个目录都必须有一个属主,并针对拥有文件的用户自己、用户所在组、其它所有帐号(组)分别设定读、写、执行三种权限。例如,我(假定是usergroup组的username帐户的拥有者)使用如下命令建立一个新的文件

touch mytestfile

然后我们使用ls -l mytestfile这一命令来查看这个文件的权限状态(关于ls命令,可以前面已有错误,可以查阅本站的命令查询),可以得到如下的屏幕输出显示:

-rw-rw-r-- 1 username usergroup 0 Feb 6 21:37 mytestfile

输出分为7个部分,分别表示文件权限属性、硬连接个数、文件所有者帐户、文件所属组、文件大小、文件创建时间、文件名称。

· 使用chown命令修改文件的主人

当你新建立一个文件的时候,文件的所有者当然就是你了。这一事实只有超级用户(比如说root)才可以通过chown命令改变(例如 chown otheruser mytestfile,把mytestfile文件的属主改为otheruser)。普通用户不能把自己的文件“送”给别人,不然你把有特殊目的的程序给了root怎么办?:)

chown命令的用法比较简单。这里我先假设你现在拥有超

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有