转:Linux控制台具有强大而灵活的功能。如果过了相当一段时间您还要用很多时间去查看命令的提示,那么您应该花费一些时间复习一下那些您将不断用到的常见命令,来更好地熟悉这个环境。
本部分将介绍各种不同的shell和一些最基本的Linux命令。Linux中的所有管理任务都可以在控制台中完成。许多情况下,使用控制台比使用图形化的程序更快捷,而且还可能实现额外的功能。不仅如此,所有的控制台任务都可以写到脚本中,这样就可以自动执行。为了真正地驾驭您的Linux环境,您将希望掌握如何在控制台中工作。如果您曾经使用过DOS/Windows,本文将引导您开始使用Linux控制台。
进入控制台
如果您的系统引导进入文本模式(为了降低服务开销,服务器通常是这样配置的),那么您在以文本形式登录后就已经在控制台中了。在典型的Linux系统中,通过组合键Ctrl Alt (F1-F6)您可以切换到另外的控制台。每一个控制台是系统中一个完全独立的会话,不同的用户可以同时使用。
这一多控制台的特点与Windows中的多桌面不同。在Linux中,每一个控制台可以分别由完全不同的用户来控制。例如,您可能在控制台1中以root身份登录,而在控制台2中以joeuser身份登录。两个控制台在各自的用户空间中运行不同的程序。与此类似,不同的用户可以远程登录到同一个Windows系统中。就这一点来说,Linux更像是主机而不是简单的服务器或工作站。
如果您是在图形模式下,那么您可以打开一个终端(terminal)以进入控制台窗口。通常在桌面的任务条上会有终端的按钮。您也可以从上下文菜单(在桌面上单击右键)打开终端。
命令在控制台中可以使用的命令很多。其中有一些实际上只在编写脚本时才会用到。这里介绍一些您最可能用到的命令。不要忘记,所有的命令和选项都区分大小写。-R与-r不同,会去执行不同的操作。控制台命令几乎全都是小写的。
cd使用我们所熟悉的cd命令可以在目录间切换。一定注意的是在Linux中用的是正斜杠(/),而不是您所熟悉的反斜杠(\)。反斜杠也用到了,但只是用来说明命令需要换行继续,这样可以提高比较长的命令的可读性。
ls命令用于列出一个目录下的所有文件。可以使用许多不同的开关更改列表的表示形式:
列出文件
cp使用cp命令来复制文件。这个命令与DOS下的copy命令基本一样。基本的开关如下:
复制文件
使用复制命令创建链接
用cp命令可以创建指向一个文件或者整个文件结构的硬链接。使用-l开关来指明操作是链接复制。所有的目录仍作为目录创建,但所有的文件会被设置为硬链接。
cp-lR/data/accounting/payroll/data/management/hr
上面的命令将把整个目录结构及其下面的文件从/data/accounting/payroll复制到/data/management/hr/payroll。目录结构下的所有文件将被设置为硬链接。这样使一个文件在同一个文件系统中可以具备不同的视图。这也是有用的安全技术,使得在不同的目录下对同一文件有不同的访问权限。
mv使用mv命令来移动和重命名文件。这个命令的工作方式基本上与DOS中的move命令一样,不过它可以移动整个目录结构及所有文件。
cat使用cat命令来查看文件的内容。它相当于DOS中的type命令。它将把文件的内容转储到另一个文件、屏幕或者其他命令。cat是concatenate的简写,还可以将一系列的文件合并为一个大文件。
more使用命令more可以以分页的方式查看文件。它基本上与DOS中的more命令相同。
less命令也是用来查看文件,但是它支持上下滚屏以及在文档中进行文本搜索。
vi有一些人可能会说vi表示“virtuallyimpossible”。它是Unix中的一个历史悠久的文本编辑器。vi并不真正直观,但是现在几乎所有的类Unix环境中都有vi。对于Linux中安装的版本有一个内置的教程,一旦您熟悉了vi,只需几次击键就可以完成不可思议的任务。说实话,没有任何编辑器能够取代vi来编辑密码和配置文件。
man使用man命令来查看命令的文档。man是manual的缩写。几乎每一个命令都有相应的文档。要深入了解man,请输入以下命令:
manman
infoinfo命令与man命令类似,不过它提供了超链接文本,可以更方便地浏览文档。
哪个shell?
DOS/Windows与Linux的最重要的区别之一是Linux的命令shell是与操作系统相分离的一层。不同的shell环境影响您具备不同的功能,比如可编辑的命令行和历史命令回查等。shell还决定了脚本中函数的语法。在DOS/Windows中,编写脚本程序只有一种情况,那就是使用效率低下的.BAT文件。它的确可以完成很多功能,但除了完成那些基本的任务,复杂些的任务就需要脚本编写者具有极强的创造性。在Linux中,脚本中可以有循环,不仅可以执行基本的条件语句,很多在编程语言中才有的功能它都具备。如果您擅长编写.BAT文件,那么shell脚本更会使您大展才华。
默认的shell是每个用户帐号的一个参数。Linux中典型的默认shell是/bin/bash,不过也可以用其他的shell。每个shell的man文档实际上都非常好,都对各种shell及其使用进行了详细的说明。仅仅阅读下面的解释是不够的,应该从下面列出的shell中选择一个,去查看它的man文档。
bashbashshell是Bourneshell的一个免费版本,它是最早的Unixshell,包括许多附加的特点。Bash有可编辑的命令行,可以回查历史命令,支持tab键补齐以使用户避免输入长的文件名。
cshCshell使用的是“类C”语法,借鉴了Bourneshell的许多特点,只是内部shell命令集有所不同。
kshKornshell的语法与Bourneshell相同,同时具备了Cshell的易用特点。许多安装脚本都使用ksh,即使您不把它作为您的主shell,您也应该在系统中安装它。
tcshTCshell是Cshell的一个增强版本,与Cshell完全兼容。
zshZshell是Kornshell的一个增强版本,具备bashshell的许多特色。
Shell规则
您只需在控制台中执行相应的命令就可以随时切换shell。只要在文件顶部放置一个井号(#!)指向需要的shell,脚本就可以指定想要运行的shell。当脚本运行的时候,不管用户所处的shell环境是什么,它都会在正确的shell环境中运行。下面例子中的这行代码指出脚本需要在Cshell下运行:
#!/bin/csh
给我做链接,这样就更安全!
Linux文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。不过,在Linux中,链接可以如同原始文件一样来对待。链接可以与普通的文件一样被执行、编辑和访问。对系统中的其他应用程序而言,链接就是它所对应的原始文件。当您通过链接对文件进行编辑时,您编辑的实际上是原始文件。链接不是副本。有两种类型的链接:硬链接和符号链接。
硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。
符号链接是一个指针,指向文件在文件系统中的位置。符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。符号链接只是指明了原始文件的位置,用户需要对原始文件的位置有访问权限才可以使用链接。如果原始文件被删除,所有指向它的符号链接也就都被破坏了。它们会指向文件系统中并不存在的一个位置。两种链接都可以通过命令ln来创建。ln默认创建的是硬链接。使用-s开关可以创建符号链接。
#CreateahardlinkfromMyFileinthecurrent
#directoryto/YourDir/MyFile
lnMyFile/YourDir
#Createasymbolic(soft)linkfromMyFilein
#thecurrentdirectoryto/YourDir/YourFile
ln-sMyFile/YourDir/Yourfile
在上面的例子中,MyFile、/YourDir/MyFile和/YourDir/Yourfile会被看成是同一个文件。
走出您的shell
对Linux管理来说,必须学习在控制台环境下工作。虽然有一些工具可以让您避免使用控制台,但是您会受到那些工具的很多限制。进入控制台很简单,使用man和info命令访问命令文档也很方便。
Linux备份策略研究
Linux备份策略研究
Linux备份策略研究
Linux备份策略研究
Linux备份策略研究
Linux备份策略研究
Linux备份策略研究
Linux备份策略研究
Linux备份策略研究
Linux备份策略研究
阅读(321) | 评论(0) | 转发(0) |