1. 命令行操作及常用命令使用

    1. 命令行操作

      1. Shell简介

shell是用户和Linux操作系统之间的接口,Linux中有多种shell,缺省使用的是bash。Linux系统的shell作为操作系统的外壳为用户提供使用操作系统的接口,它是一个命令语言解释器,有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

Linux中的shell有多种类型,其中最常用的几种是Bourneshell(sh)、Cshell(csh)和Kornshell(ksh)。三种shell各有优缺点。

Bourneshell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourneshell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。Linux操作系统缺省的shell是BourneAgainshell,它是Bourneshell的扩展,简称bash。与Bourneshell完全向后兼容,并且在Bourneshell的基础上增加增强了很多特性。它还包含了很多Cshell和Kornshell中的优点,有灵活和强大的编程接口同时又有很友好的用户界面。

Cshell是一种比Bourneshell更适于编程的shell,它的语法与C语言很相似。Linux为喜欢使用Cshell的人提供了Tcsh。Tcsh是Cshell的一个扩展版本。Tcsh包括命令行编辑可编程单词补全、拼写校正、历史命令替换、作业控制和类似C语言的语法。它不仅和Bashshell是提示符兼容,而且还提供比Bashshell更多的提示符参数。Kornshell集合了Cshell和Bourneshell的优点并且和Bourneshell完全兼容Linux系统提供了pdksh(ksh)的扩展,它支持任务控制,可以在命令行上挂起、后台执行、唤醒或终止程序。

SuseLinux系统默认的shell是bash,对普通用户用>作提示符,对超级用户root用#作提示符,一旦出现了shell提示符就可以键入命令名称及命令所需要的参数。

用户在登录到Linux时由/etc/passwd文件来决定要使用哪个shell。例如该文件中含有类似如下一行:

zteiptv:x:1002:100::/home/zteiptv:/bin/bash

用户使用的shell是该行末尾的(/bin/bash)。


      1. Shell控制台使用方法

首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,我们说控制台命令就是指通过字符界面输入的可以操作系统的命令。我们现在要了解的是基于Linux操作系统的基本控制台命令。

Linux是一个真正的多用户操作系统,这表示它可以同时接受多个用户登录。Linux还允许一个用户进行多次登录,这是因为Linux和许多版本的UNIX一样提供了“虚拟控制台”的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。

虚拟控制台的选择可以通过按下Alt键和一个功能键来实现,通常使用F1-F6。例如用户登录后按一下Alt-F2键,用户又可以看到“login:”提示符,说明用户看到了第二个虚拟控制台;然后只需按Alt-F1键就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用Alt-F1到Alt-F6键来访问前六个虚拟控制台。


    1. 常用命令使用

      1. 登录和退出Linux系统

用户登录系统时为了使系统能够识别自己,必须输入用户名和密码,经系验证无误后方能进入系统。

在系统安装过程中可以创建两种帐号:超级用户帐号和普通用户帐号。Linux使用者一般为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作,如果只需要完成一些由普通用户帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。

用户登录分两步进行,第一步输入用户的登录名,系统根据该登录名来识别用户;第二步输入用户的口令,该口令是用户自己选择的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。

1.启动和登录系统

超级用户的用户名为root,密码在安装系统时需要设定。当用户正确地输入用户名和口令后就能合法地进入系统。

[root@loclhost/root]#

此时说明用户已经登录到系统中可以进行操作了。这里“#”是超级用户的系统提示符普通用户在建立了普通用户帐号以后就可以进行登录了。

不论是超级用户还是普通用户需要退出系统时,在shell提示符下键入exit命令即可。还有其他退出系统的方法但上面一种是最安全的。

2.重新启动系统

以root用户登录Linux操作系统后执行reboot命令可以重新启动linux系统:

[root@loclhost/root]#reboot

3.关闭系统

shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段,精确时间的格式是“hh:mm”,表示小时和分钟,时间段由“+”和分钟数表示。系统执行该命令后会自动进行数据同步的工作。该命令的一般格式:

shutdown[选项][时间][警告信息]

命令中各选项的含义为:

-k并不真正关机而只是发出警告信息给所有用户;

-r关机后立即重新启动;

-h关机后不重新启动;

-f快速关机重启动时跳过fsck;

-n快速关机不经过init程序;

-c取消一个已经运行的shutdown;

需要特别说明的是该命令只能由超级用户使用。

例1:系统在十分钟后关机并且马上重新启动:

#shutdown–r+10

例2:系统马上关机并且不重新启动:

#shutdown–hnow


      1. 文件和目录操作命令

1.ls命令

这个命令就相当于dos下的dir命令一样,也是Linux控制台命令中最为重要几个命令之一。ls最常用的参数有三个:-a、-l和–F。

ls-a

Linux系统上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的。而用ls–a,除了显示一般文件名外,连隐藏文件也会显示出来。

ls–l这个参数是字母L的小写不是数字1

这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料就要用到ls-l这个指令。

ls–F

在列出的文件(目录)名称后加一符号,例如可执行文件加“*”,目录则加“/”。

2.cd命令

cd这个命令是用来进出目录的,Linux的目录对大小写是敏感的,如果大小写拼写有误,你的cd操作是成功不了的。另外cd如果直接输入,cd后面不加任何东西会回到使用者自己的Home目录。假设用户是root那就是回到/root目录。

3.Mkdir、rmdir

mkdir命令用来建立新的目录,如输入如下命令:

mkdirwork

将在当前目录下新建一个work目录。

rmdir用来删除已建立的目录,如输入如下命令:

rmdirwork

将删除已存在的空目录work。

4.cp

cp这个命令是copy命令,具体用法是:

cp–r源文件(source)目的文件(target)

参数r是指连同源文件中的子目录一同拷贝。

5.rm

rm这个命令是用来删除文件的,rm命令常用的参数有三个-i、-r、-f。

比如我现在要删除一个名字为text的一个文件,输入如下命令:

rm–itest

系统会询问我们是否要删除test文件敲了“y/n”确认是否要删除test文件;

rm–r目录名

这个操作可以连同这个目录下面的子目录都删除,功能比上面讲到的rmdir更强大,不仅可能删除指定的目录,而且可以删除该目录下所有文件和子目录;

rm–f文件名

这个操作可以不经确认强制删除文件。

6.mv

mv这个命令的功能是移动目录或文件,引申的功能是给目录或文件重命名,比如:

mv/tmp/xxx.tar/root

该命令将/tmp目录下的xxx.tar文件移动到/root目录下,而:

mvaaa.tarbbb.tar

则是将当前目录下的文件aaa.tar更名为bbb.tar。

7.cat

cat这个命令是linux中非常重要的一个命令,它的功能是显示或连结一般的ascii文本文件,它的用法如下:

cattext

该命令显示text这个文件的内容:

catfile1file2

该命令依顺序显示file1、file2的内容:

catfile1file2>file3

该命令把file1、file2的内容结合起来再重定向到file3文件中。

8.more

more是显示一般文本文件的指令,如果一个文本文件太长了超过一个屏幕的画面,用cat来看实在是不理想,就可以试试more用法如下:

morefile1

9.pwd

pwd这个命令的作用是显示用户当前的工作路径,直接输入pwd即可。


      1. 用户及用户组管理命令

1.useradd

useradd命令可以创建一个新的用户帐号,其最基本用法为:

useradd用户名

如输入以下命令:

useraddnewuser

系统将创建一个新用户newuser该用户的Home目录为/home/newuser。

useradd命令的参数较多,常用的组合为:

useradd用户名-g组名–G组名-dHome目录名-p密码

其中:

-g指定该用户的首要组;

-G指定该用户的次要组;

-d指定该用户的Home目录;

-p指定该用户的密码。

如输入以下命令:

useraddoracle–goinstall–Gdba–d/home/oracle–pora123

系统将创建一个用户oracle,oracle用户的首要组为oinstall,次要组为dba,Home目录为/home/oracle,密码为ora123。

2.userdel

userdel命令用于删除一个已存在的帐号,其用法为:

userdel用户名

3.groupadd

groupadd命令可以创建一个新的用户组,其最基本用法为:

groupadd组名

如输入以下命令:

groupaddnewgroup

系统将创建一个新的用户组newgroup。

4.groupdel

groupdel命令用于删除一个已存在的用户组,其用法为:

groupdel组名

5.passwd

出于系统安全考虑,Linux系统中的每一个用户除了有其用户名外还有其对应的用户口令,用户可以随时用passwd命令改变自己的口令。该命令的一般格式为:

Passwd

输入该命令后,按系统提示依次输入密码和密码确认后,即可完成对超级用户密码的修改。此外超级用户还可以修改其他用户的口令,命令如下:

passwd用户名

6.su

su命令这个命令非常重要,它可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级用户以普通用户的身份做一些事情。普通用户使用这个命令时必须有超级用户或其他用户的口令,如要离开当前用户的身份可以键入exit命令。su命令的一般形式为:

su-用户名

7.chmod

chmod命令是非常重要的,用于改变文件或目录的访问权限,该命令有两种用法。一种是包含字母和操作符表达式的文字设定法,另一种是包含数字的数字设定法。文字设定法的用法如下:

chmod[who][+|-|=][mode]文件名

命令中各选项的含义为:

1操作对象who可以是下述字母中的任一个或者它们的组合:

u表示用户(user)即文件或目录的所有者;

g表示同组(group)用户即与文件属主有相同组ID的所有用户;

o表示其他(others)用户;

a表示所有(all)用户它是系统默认值;

2操作符号可以是:

+添加某个权限;

-取消某个权限;

=赋予给定权限,并取消其他所有权限;

3mode表示权限常用的参数有:

r可读;

w可写;

x可执行;

举例:

1.将文件script的权限设为可执行,命令如下:

chmod=rxtext

执行成功后,用ls-lscript命令查看文件属性的结果如下:

-r-xr-xr-x1usergroup0Feb1009:42script

2.将文件text的权限设为文件属主可读、可写、可执行,与文件属主同组的用户可读而其他用户不可读,命令如下:

chmodu=rwx,g=r,o=text注意,后无空格o=后有空格

执行成功后,用ls-ltext命令查看文件属性的结果如下:

-rwxr-----1usergroup0Feb1009:42text

8.chown

chown用于更改某个文件或目录的属主和属组,这个命令也很常用。例如root用户把自己的一个文件拷贝给用户oracle,为了让用户oracle能够存取这个文件。root用户应该把这个文件的属主设为oracle,否则用户oracle无法存取这个文件。chown的基本用法为:

chown[用户:组]文件

举例:

chownoracle:dbatext

该命令将text文件的属主和属组分别改为oracle和dba。


      1. 进程及任务管理命令

Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。以下将介绍一些常用的查看和控制进程的命令:

1.ps

ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以查看有哪些进程正在运行以及运行的状态、进程是否结束、进程有没有僵死,哪些进程占用了过多的资源等等。

该命令的基本用法如下:

ps[选项]

其中常用的选项有:

-e显示所有进程;

-f全格式;

-l长格式;

举例:

(1) 在控制台输入ps命令得到类似如下的输出:

PIDTTYTIMECMD

12039pts/000:00:00bash

18710pts/000:00:00ps

该命令显示当前登录用户的执行进程,显示的项目共分为四项,依次为:PID(进程ID)、TTY(终端名称)、TIME(进程执行时间)、CMD(该进程的命令行输入)。

(2) 在控制台输入以下命令:

ps–ef

UIDPIDPPIDCSTIMETTYTIMECMD

root100Jan14?00:00:05init

root210Jan14?00:00:00[keventd]

root310Jan14?00:00:00[kapmd]

…………………..

该命令将显示所有执行进程的信息,显示的项目依次为:UID执行进程的用户ID、PID(进程ID)、PPID(父进程ID)、TTY(终端名称)、STIME(进程启动时间)、TIME(进程执行时间)、CMD(该进程的命令行输入)。

该命令的输出较多,可以使用grep命令进行过虑,以方便查看,如:

ps–ef|greporacle

将只显示出包含oracle的输出行,可以查询执行进程的用户为oracle的所有进程。

2.top

top命令和ps命令的基本作用是相同的,即显示系统当前的进程和其他状况。但是top是一个动态显示过程,即可以通过用户按交互来不断刷新当前状态。

top的命令参数并不重要,简单的输入top命令即可查看系统运行状态,top命令执行过程中可以使用交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些,这些命令都是单字母的常用的命令有:

<空格>立即刷新显示;

h或者?显示帮助画面给出一些简短的命令总结说明;

m切换显示内存信息;

t切换显示进程和CPU状态信息;

c切换显示命令名称和完整命令行;

M根据驻留内存大小进行排序;

P根据CPU使用百分比大小进行排序;

q退出。

3.kill

kill命令可以用于终止后台进程,kill命令是通过向进程发送指定的信号来结束进程的。kill命令的语法格式很简单,大致有以下两种方式:

kill[-s信号]进程号

其中发出的信号既可以是信号名也可以对应数字,如kill-91234命令将终止PID(进程号)为1234的进程。

kill-l

该命令显示信号列表。

4.cron

cron命令用来实现定时任务的完成,如每日执行一次的任务进程。cron命令是不应该手工启动的,一般情况下cron命令在系统启动时就由一个shell脚本自动启动,启动后cron命令会搜索/var/spool/cron目录寻找以/etc/passwd文件中的用户名命名的crontab文件,被找到的这种文件将载入内存。例如一个用户名为user的用户它所对应的crontab文件就应该是/var/spool/cron/user。也就是说以该用户命名的crontab文件存放在/var/spool/cron目录下面。cron命令还将搜索/etc/crontab文件,这个文件是用不同的格式写成的,cron启动以后它将首先检查是否有用户设置了crontab文件,如果没有就转入休眠状态,释放系统资源。它每分钟醒过来一次查看当前是否有需要运行的命令可以使用crontab–l命令查看目前已经存在的cron任务。


      1. 磁盘及文件系统管理命令

管理文件系统其实是相当复杂的工作,这里主要介绍挂装和卸载硬盘分区等命令。

1.df

df命令可以显示目前磁盘剩余的磁盘空间,常用的参数为-k,如:

df–k

该语句将显示各分区的磁盘空间使用情况。

2.mount和umount

mount命令有很多参数,其中大多数都不会在日常工作中用到mount命令,最常见的用法如下所示:

mount[选项]设备目录

其中最常用的选项是-a,把/etc/fstab文件中列出的文件系统都挂装上。

挂装软驱和光驱的命令比较简单,直接输入以下命令即可:

Mount /mnt/cdrom

Mount /mnt/floppy

umount命令用于卸载一个文件系统,命令的格式如下:

umount [-f] directory

其中directory是准备卸载的目录名,umount命令有一个不足之处,如果文件系统正在使用中,也就是说有人在那个分区上打开了文件,就无法把这个文件系统卸载下来。这时可以使用和-f参数强制执行卸载操作。当然,这种操作可能会造成用户数据的丢失如:

Umount –f /mnt/cdrom

该命令将强制卸载挂装在/mnt/cdrom目录下的文件系统。


      1. 软件安装命令

1.tar

tar命令用于把多个文件合并于一个档案文件中,并提供分解的合并后的档案文件的功能。它独立于压缩工具,因此可以选择在合并前是否压缩。tar命令的基本用法为:

tar [选项] 文件名

常用的选项包括:

-c创建一个新的档案文件;

-t查看档案文件的内容;

-x分解档案文件的内容;

-f指定档案文件的名称;

-v显示过程信息;

-z采用压缩方式。

举例:

Tar –czf oracle.tar.gz/u01/app/oracle/etc/oratab/home/oracle

该命令将/u01/app/oracle目录下的所有文件/etc/oratab文件和/home/oracl目录下的所有文件合并到oracle.tar文件中,并采用压缩方式。

Tar –tzf oracle.tar.gz

该命令列出归档文件oracle.tar中的所有文件列表。

Tar –xzvf oracle.tar.gz

该命令将归档文件分解并解压缩到原有文件的路径中

2.rpm

rpm命令的功能有很多,在这里我们只介绍如何利用rpm安装、升级、查询、卸载的软件。

rpm安装软件包的基本语法如下:

rpm –I rpm包名

例如:

Rpm –I tomcat4.rpm

该命令将安装Tomcat软件并进行相关系统配置;

rpm升级软件包的基本语法如下:

rpm –U rpm包名

例如:

Rpm –U tomcat4.rpm

该命令将升级Tomcat软件并进行相关系统配置;

查看已安装的软件,要想列出已经安装的全部软件包,可以通过以下命令:

Rpm –qa

可以使用grep命令指定软件包的名称,或者部分名称,如下所示:

Rpm -qa|grep 'tomcat'

该命令将列出包名中包含tomcat的软件包;

此外要想找出某个特定的文件到底是属于哪个软件包的,可以输入:

Rpm –qf filename

其中filename是准备要查找其归属的文件名称。要想查出某个已经安装的软件包的功能,可以用如下命令:

Rpm –qi packagename

其中packagename是要查找其用途的软件包名称;

使用RPM删除软件包就像安装它们一样简单,大多数情况下用户只需要输入命令:

Rpm –e packagename

其中packagename是要查删除的软件包名称。


  1. 文件查看/编辑方法介绍

    1. cat命令介绍

cat命令的原含义为连接concatenate,用于连接多个文件内容并输出到标准输出流中,标准输出流默认为屏幕。实际运用过程中我们常使用它来显示文件内容,cat命令的常用示例如下:

catfile1.txt显示file1.txt文件的内容

catfile1.txtfile2.txt显示file1.txt和file2.txt文件的内容

cat-nfile1.txt显示file1.txt文件的内容同时显示行号


    1. vi命令介绍

vi是VisualInterface的简称它可以执行输出、删除、查找、替换、块操作等众多文本操作。而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。vi不是一个排版程序,不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。vi没有菜单,只有命令,且命令繁多。

Vi有三种基本工作模式:命令行模式、文本输入模式和末行模式。

命令行模式:

任何时候不管用户处于何种模式,只要按一下ESC键即可使vi进入命令行模式,当在shell环境下输入vi命令启动vi编辑器时,也是处于该模式下。在该模式下用户可以输入各种合法的vi命令,用于管理自己的文档,此时从键盘上输入的任何字符都被当作编辑命令来解释。若输入的字符是合法的,vi命令在接受用户命令之后完成相应的动作。但需注意的是所输入的命令并不在屏幕上显示出来,若输入的字符不是vi的合法命令vi会有报警提示。

文本输入模式:

在命令模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s,都可以进入文本输入模式。在该模式下,用户输入的任何字符都被vi当做文件内容保存起来,并将其显示在屏幕上,在文本输入过程中若想回到命令模式下。按ESC键即可;

末行模式:

在命令模式下用户按:键即可进入末行模式下。此时Vi会在显示窗口的最后一行。通常也是屏幕的最后一行。显示一个:作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的,如把编辑缓冲区的内容写到文件中等。末行命令执行完后vi自动回到命令模式。若在末行模式下输入命令过程中改变了主意,可按ESC键或用退格键将输入的命令全部删除之后再按一下退格键,即可使vi回到命令模式下。


      1. vi的进入与退出

在shell模式下键入vi及需要编辑的文件名,即可进入vi。例如:

viexample.txt

即可编辑example.txt文件,如果该文件存在,则编辑界面中会显示该文件的内容,并将光标定位在文件的第一行。如果文件不存在,则编辑界面中无任何内容,如果需要在进入vi编辑界面后将光标置于文件的第n行,则在vi命令后面加上+n参数即可。例如需要从example.txt文件的第5行开始显示,则使用如下命令:

vi+5example.txt

退出v时,需要在末行模式中输入退出命令q,如果在文本输入模式下首先按ESC键进入命令模式,然后输入:进入末行模式。在末行模式下可使用如下退出命令:

:q直接退出。如果在文本输入模式下修改了文档内容,则不能退出;

:wq保存后退出;

:x和wq一样;

:q!不保存内容,强制退出。


      1. vi中显示行号

在末行模式下,输入如下命令:

setnumber

可使vi在编辑界面中显示行号。此外在末行模式下可使用如下‘nu’命令(number的简写)来显示光标所在行的行号及该行的内容。


      1. 光标移动操作

全屏幕文本编辑器中光标的移动操作无疑是最经常使用的操作了。用户只有熟练地使用移动光标的这些命令才能迅速准确地到达所期望的位置处进行编辑。

vi中的光标移动既可以在命令模式下也可以在文本输入模式下,但操作的方法不尽相同,在文本输入模式下可直接使用键盘上的四个方向键移动光标。在命令模式下有很多移动光标的方法,不但可以使用四个方向键来移动光标,还可以用hjkl这四个键代替四个方向键来移动光标。这样可以避免由于不同机器上的不同键盘定义所带来的矛盾,而且使用熟练后可以手不离开字母键盘位置就能完成所有操作,从而提高工作效率。以下命令均在命令行模式下完成光标移动:

h光标左移,如果在按h命令前输入数字n,则光标左移n个字符;

l光标右移,如果在按l命令前输入数字n,则光标右移n个字符;

j光标上移,如果在按j命令前输入数字n,则光标上移n个字符;

k光标下移,如果在按k命令前输入数字n,则光标下移n个字符;

0光标移到行首;

$光标移到行尾;

H光标移到屏幕上显示的第一行,并不一定是文件头;

L光标移到屏幕上显示的最后一行,并不一定是文件尾;

M光标移到屏幕的中间一行;

nG光标移到第n行;

w或W将光标右移至下一个单词的词首;

e或E如果光标起始位置处于单词内,即非单词尾处,则该命令将把光标移到本单词词尾,如果光标起始位置处于单词尾。则该命令将把光标移动到下一个单词的词尾;

b或B如果光标处于所在单词内,即非单词首,则该命令将把光标移至本单词词首,如果光标处于所在单词的词首,则该命令将把光标移到上一个单词的词首;

Ctrl+G状态命令,显示当前编辑文档的状态,包括正在编辑的文件名是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比。此外,也可以通过以下末行模式下的命令完成光标在整个文件中的移动操作。

:n光标移到文件的第n行;

:$光标移到文件的最后一行。


      1. 文本插入操作

在命令模式下,用户输入的任何字符都被vi当作命令加以解释执行。如果用户要将输入的字符当作是文本内容时,则首先应将vi的工作模式从命令模式切换到文本输入模式。切换的方式是使用下面的命令:

1.vi提供了两个插入Insert命令i和I:

i命令,插入文本从光标所在位置前开始并且插入过程中可以使用;

<Backspace>键删除错误的输入,此时vi处于插入状态,屏幕最下行显示:

--INSERT--插入字样

I命令,该命令是将光标移到当前行的行首,然后在其前插入文本;

2.附加append命令:

vi提供了两个附加插入命令a和A:

a命令,该命令用于在光标当前所在位置之后追加新文本,新输入的文本放在光标之后在光标后的原文本将相应地向后移动光标可在一行的任何位置;

A命令,该命令与a命令不同的是A命令将把光标挪到所在行的行尾,从那里开始插入新文本,当输入A命令后光标自动移到该行的行尾;

a和A命令是把文本插入到行尾的唯一方法。

3.打开open命令:

不论是Insert命令也好还是append命令也好,所插入的内容都是从当前行中的某个位置开始的,若我们希望在某行之前或某行之后插入一些新行则应使用open命令。

vi提供了两个打开命令o和O:

1.o命令,该命令将在光标所在行的下面新开一行并将光标置于该行的行首,等待输入文本,要注意当使用<Backspace>删除字符时只能删除从插入模式开始的位置以后的字符,对于以前的字符不起作用;

2.O命令,和o命令相反O命令是在光标所在行的上面插入一行并将光标置于该行的行首等待输入文本。


      1. 文本修改操作

在命令模式下可以使用vi提供的各种有关命令对文本进行修改,包括对文本内容的删除、复制、取代和替换等。

1.文本删除/移动:

在编辑文本时经常需要删除一些不需要的文本,我们可以用<Backspace>键将输错或不需要的文本删除。但此时有一个限制就是当删到行头之后再想删上面那行的内容是不可能的。在命令模式下vi提供了许多删除命令,这些命令大多是以d开头的。

常用的有:

1.删除单个字符:

x删除光标处的字符,若在x之前加上一个数字n则删除从光标所在位置开始向右的n个字符;

X删除光标前面的那个字符,若在X之前加上一个数字n则删除从光标前面那个字符开始向左的n个字符;

显然这两个命令是删除少量字符的快捷方法。

2.删除多个字符:

dd删除光标所在的整行,在dd前可加上一个数字n表示删除当前行及其后n-1行的内容;

D或d$两命令功能一样,都是删除从光标所在处开始到行尾的内容;

d0删除从光标前一个字符开始到行首的内容;

dw删除一个单词,若光标处在某个词的中间,则从光标所在位置开始删至词尾同dd命令一样,可在dw之前加一个数字n表示删除n个指定的单词。

如果用户不小心进行了误删除操作也不要紧,vi提供了恢复误操作的命令,并且可以将恢复的内容移动放在文本的任何地方恢复命令用np,其中n为需要恢复的次数。例如使用dd命令删除了一行内容,然后使用2p命令,则被删除的内容会被重新插入两遍,通过dd命令及p命令的结合使用可以很方便的实现文本行的移动操作。

2.文本复制命令

yy复制光标所在的整行,在yy前可加上一个数字n表示复制当前行及其后n-1行的内容,文本行复制后通过使用上面介绍的p命令可以将文本行粘贴到任何地方。

3.取消上一命令Undo

Undo也称复原命令,是非常有用的命令。它可以取消前一次的误操作或不合适的操作对文件造成的影响,使之回复到这种误操作或不合适操作被执行之前的状态。取消上一命令有两种形式在命令模式下键入字符u和U,它们的功能都是取消刚才输入的命令恢复到原来的情况。小写u和大写U在具体细节上有所不同,二者的区别在于大写U命令的功能是恢复到误操作命令前的情况,即如果插入命令后使用U命令就删除刚刚插入的内容,如果删除命令后使用U命令就相当于在光标处又插入刚刚删除的内容。这里把所有修改文本的命令都视为插入命令,也就是说U命令只能取消前一步操作。如果用U命令撤消了前一步操作,当再按U键时并不是撤消再前一步的操作而是撤消了刚才U命令执行的操作,也就是又恢复到第一次使用U命令之前的状态,结果是什么都没做。而小写u命令的功能是把当前行恢复成被编辑前的状态而不管此行被编辑了多少次。

4.重复命令Redo

重复命令也是一个非常常用的命令,在文本编辑中经常会碰到需要机械地重复一些操作,这时就需要用到重复命令它可以让用户方便地再执行一次前面刚完成的某个复杂的命令。重复命令只能在命令模式下工作在该模式下按’.’键既可执行一个重复命令,其结果是依赖于光标当前位置的。


      1. 文本搜索与替换操作

在进行文本编辑的时候可以需要搜索或定位特定的单词或单词的一部分,vi编辑器有向前或向后搜索指定模式的功能。/是vi编辑器的模式搜索命令,键入/后屏幕的底部会出现一行同时一个斜扛会出现在底行的行首上,且光标被放置在斜扛之后。此时可以在光标位置键入需要搜索的模式,输入完成并按下ENTER键后编辑器将开始从光标所在的位置起向文件尾部搜索你键入的模式。如果输入的模式被找到,光标将停留在找到的模式上,在找到一个匹配的模式后如果您还需要搜索下一个匹配的模式使用命令n即可,如果需要找到上一个匹配的模式则使用N命令即可。

此外?命令也是模式搜索命令,与/的区别在于/是从光标当前所在位置向文件尾部搜索,而?命令则是由光标当前所在位置向文件头部搜索。

文本替换操作需要使用末行模式进行操作即所有文本替换操作命令均以:开头。

文本替换命令的格式为:

:s/text1/text2

用于将光标所在段落搜索到的第一个text1替换为text2;

:s/text1/text2/g

用于将光标所在段落的所有text1替换为text2;

:m,ns/text1/text2/g

用于将从m行开始至n行结束的所有搜索到的text1替换为text2,其中可以使用$表示末行即1,$表示替换文档中的所有符合条件的字符。


    1. head及tail命令介绍

当需要查看一个文本文件的头部或尾部时,head命令及tail命令可以非常方便的完成该操作。head命令用于查看一个文本文件的开头部分,而tail命令则用于显示文本文件的末尾几行。这两个命令举例如下:

Head example.txt 显示文件example.txt的前十行内容;

Head -n20 example.txt 显示文件example.txt的前二十行内容;

Tail example.txt 显示文件example.txt的后十行内容;

Tail -n20 example.txt 显示文件example.txt的后二十行内容;

Tail –f example.txt 显示文件example.txt的后十行内容并在文件内容增加后自动显示新增的文件内容。

最后一条命令非常有用,尤其在监控日志文件时可以在屏幕上一直显示新增的日志信息。


  1. 网络配置及操作

    1. 网络配置命令

Linux系统中最常用的网络配置命令包括ifconfig和route,其中ifconfig用来查看和配置网络接口,通常是网卡信息,包括网络接口设备的IP地址、掩码等。route用来管理Linux系统内核中的路由表,它最大的用途就是用来设定静态的路由表项,通常是在系统用ifconfig配置网络接口后,用它来设定主机或者一网段的IP地址应该通过什么接口发送。


      1. ifconfig

ifconfig的语法为:

ifconfig[-a][-V][-s]<interface>[[<AF>]<address>]

[[-]broadcast[<address>]]

[netmask<address>]

[up|down]

其中interface为网卡名,address为IP地址,broadcast表示设置广播地址,其后的address为广播地址的IP,netmask表示设置子网掩码,其后的address为子网掩码的IP。Up、down设置当前网卡的状态up,表示启用当前网卡,down表示关闭当前网卡。

Ifconfig的常用参数说明如下:

-a 查看所有网卡状态;

-V 查看ifconfig命令的版本信息;

-s 查看统计信息;

示例:

1.将第一块网卡的IP地址设置为192.168.0.1:

Ifconfig eth0 192.168.0.1 (格式:ifconfig 网络设备名 IP地址)

2.暂时关闭或启用网卡:

关闭第一块网卡:ifconfig eth0 down

启用第一块网卡:ifconfig eth0 up

3.将第一块网卡的子网掩码设置为255.255.255.0:

ifconfig eth0 netmask 255.255.255.0(格式:ifconfig 网络设备名 netmask子网掩码)

我们也可以同时设置IP地址和子网掩码:

ifconfigeth0192.168.0.1netmask255.255.255.0

4.查看第一块网卡的状态:

ifconfig eth0

如果要查看所有的网卡状态,则直接使用不带参数的ifconfig命令即可。ifconfig输出的几个状态比较重要:

UP/DOWN:网卡是否启动了,如果是DOWN的话,那肯定无法用的;

RXpackets中的errors包的数量如果过大说明网卡在接收时有问题;

TXpackets中的errors包的数量如果过大说明网卡在发送时有问题。


      1. route

route命令的语法为:

route[-CFvnee]

route[-v][-Afamily]add[-net|-host]target[netmaskNm][gwGw]

[metricN][mod][reinstate][[dev]If]

route[-v][-Afamily]del[-net|-host]target[gwGw][netmaskNm][metric

N][[dev]If]

route[-V][--version][-h][--help]

route的常用参数说明如下:

-v 使用冗余输出模式;

-A family 指定特定的地址族(例如"inet"、"inet6");

-n 使用数字显示的地址(例如:202.38.75.75)而不是去解释域名;

-e 使用与netstat相同的输出格式;

-ee 参数会产生很长的输出,包括内核路由表的几乎所有信息;

-net 目标target是一个网段;

-host 目标target是一个单独的主机;

-F 显示内核FIB路由表,结果可能被-e和-ee参数改变;

-C 显示内核中路由缓存信息;

del 删除一个路由表项;

add 增加一个路由表项;

Target 配置的目的网段或者主机,可以是IP或者是网络或主机名;

netmask Nm 用来指明要添加的路由表项的网络掩码;

gw Gw 任何通往目的target的IP分组都要通过这个网关

metric M 设置路由表中该项的尺度域(metric field)为M。

示例:

1.添加一条路由表项网段192.168.0.x应该从接口"eth0"走:

route add –net 192.168.0.0 netmask 255.255.255.0 dev eth0

2.添加一条缺省路由:

route add 0.0.0.0 gw 网关地址

如果没有其他匹配的路由项,就使用这个路由规则;

3.删除缺省路由:

route del 0.0.0.0 gw 网关地址

4.route命令的输出有以下几栏:

Destination 目标网段或者主机;

Gateway 网关地址如果没有设置则是"*"表示;

Genmask 网络掩码;

Flags一些可能的标记如下:

U (路由是活动的);

H (目标是一个主机);

G (使用网关gateway);

R (reinstate route动态路由产生的表项);

D (dynamically installed by daemon or redirect);

M (modified from routing daemon or redirect);

!  (reject route);

Metric 路由距离;

Ref 路由项引用次数;

Use 查找路由项的次数;

Iface 该路由表项对应的输出接口。


    1. 网络操作命令

Linux系统常用的网络操作命令包括netstat、nslookup、host、finger和ping。

netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。nslookup命令的功能是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。host命令可根据主机名查询主机的IP地址或根据主机IP地址查询主机名。finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。ping命令用于查看网络上的主机是否在工作。


      1. netstat

netstat命令的语法为:

netstat [选项]

netstat的常用参数说明如下:

-a 显示所有socket包括正在监听的;

-c 每隔1秒就重新显示一遍直到用户中断它;

-I 显示所有网络接口的信息格式同“ifconfig–e”;

-n 以网络IP地址代替名称显示出网络连接情形;

-r 显示核心路由表格式同“route–e”;

-t 显示TCP协议的连接情况;

-u 显示UDP协议的连接情况;

-v 显示正在进行的工作。

示例:

在本机使用netstat命令,其输出为如下:

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State     

tcp        0    256 10.153.89.66:ssh        10.153.21.168:1054      ESTABLISHED  

tcp        0      0 10.153.89.66:ssh        10.153.21.166:1222      ESTABLISHED  

tcp        0      0 10.153.89.66:1521       10.153.21.166:2625      ESTABLISHED  

tcp        0      0 10.153.89.66:1521       10.153.21.166:2623      ESTABLISHED  

…… 

Active UNIX domain sockets (w/o servers)

Proto RefCnt Flags       Type       State         I-Node Path

unix  9      [ ]         DGRAM                    919    /dev/log

unix  2      [ ]         STREAM     CONNECTED     50246124  

unix  3      [ ]         STREAM     CONNECTED     3914245

/tmp/.ICE-unix/dcop18694-1074144356

unix  3      [ ]         STREAM     CONNECTED     3914244  

unix  3      [ ]         STREAM     CONNECTED     3914127 /tmp/.X11-unix/X0


      1. nslookup

nslookup命令的功能是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。命令的语法为:

nslookup [IP地址/域名]

示例:

在本机执行nslookup命令:

Default Server:name.tlc.com.cn

Address:192.168.1.99

>

在符号”>”后面输入要查询的IP地址或域名并回车即可。如果要退出该命令输入exit并回车即可。


      1. host

host命令的功能基本与nslookup相同。命令的语法为:

host [选项][IP地址/域名/主机名]

host 的常用参数如下:

-a 显示所查域名或IP地址、域名或主机名的相关信息。

示例:

[root]#host zte.com.cn

zte.com.cn has address172.16.1.1


      1. finger

finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。该命令的一般格式为:

finger [选项] [使用者] [用户@主机]

finger的常用参数如下:

-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息;

-l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容;

-p 除了不显示.plan文件和.project文件以外与-l选项相同。

示例:

1.显示用户orcale的信息:

finger oracle

其显示结果为:

Login: oracle                           Name: (null)

Directory: /home/oracle                 Shell: /bin/bash

On since Fri Feb  6 16:26 (CST) on pts/1 from 10.153.21.166  33 seconds

idle

On since Wed Feb  4 20:10 (CST) on pts/2 from 10.153.21.166   1 second

idle

No mail.

No Plan.


      1. Ping命令

ping命令用于查看网络上的主机是否在工作,它向该主机发送ICMPECHO_REQUEST包。有时我们想从网络上的某台主机上下载文件,可是又不知道那台主机是否开着,就需要使用ping命令查看。该命令的一般格式为:

ping [选项] [主机名/IP地址]

ping的常用参数如下:

-c 数目 在发送指定数目的包后停止;

-d 设定SO_DEBUG的选项;

-f 大量且快速地送网络封包给一台机器看它的回应;

-I 秒数 设定间隔几秒送一个网络封包给一台机器预设值是一秒送一次;

-l 次数 在指定次数内以最快的方式送封包数据到指定机器只有超级用户可以使用此选项;

-q 不显示任何传送封包的信息只显示最后的结果;

-r 不经由网关而直接送封包到一台机器,通常是查看本机的网络接口是否有问题;

-s 字节数 指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。


    1. 常用网络配置文件介绍

在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,需要编辑这些文件来完成联网工作。系统中重要的有关网络配置文件为:

/etc/sysconfig/network

/etc/hosts

/etc/services

/etc/host.conf

/etc/nsswitch.conf

/etc/resolv.conf

/etc/xinetd.conf

/etc/modules.conf

/etc/sysconfig/network-scripts/ifcfg-ethN

这些文件都可以在系统运行时进行修改,不用启动或者停止任何守护程序,更改会立刻生效(除了/etc/sysconfig/network)。另外这些文件都支持由"#"开头的注释,每一个文

件都可以用man命令来获取它们。

      1. /etc/sysconfig/network网络设置

该文件用来指定服务器上的网络配置信息,包含了控制和网络有关的文件和守护程序的行为的参数。下面是一个例子文件:

NETWORKING=yes

HOSTNAME=machine1

GATEWAY=210.34.6.2

FORWARD_IPV4=yes

GATEWAYDEV=

其中NETWORK=yes/no表示网络是否被配置;

HOSTNAME=hostname hostname表示服务器的主机名;

GATEWAY=gw-ip gw-ip表示网络网关的IP地址;

FORWARD_IPV4=yes/no是否开启IP转发功能;

GAREWAYDEV=gw-dev gw-dw表示网关的设备名,如eth0等。

      1. /etc/hosts IP地址和主机名的映射

/etc/hosts中包含了IP地址和主机名之间的映射,还包括主机名的别名,IP地址的设计使计算机容易识别,但对于人却很难记住它们,为了解决这个问题,创建了/etc/hosts这个文件。下面是一个例子文件:

127.0.0.1 machine1 localhost.localdomain localhost

192.168.1.100 machine7

192.168.1.101 otherpc otheralias

在这个例子中,本机名是machine1,otherpc还有别名otheralias,它可以指向otheralias。一旦配置完机器的网络配置文件,应该重新启动网络以使修改生效使用下面的命令来重新启动网络:

service network restart

/etc/hosts文件通常含有主机名、localhost和系统管理员经常使用的系统别名,有时候telnet到Linux机器要等待很长时间,可以通过在"/etc/hosts"加入客户的机器的IP地址和主机名的匹配项,就可以减少登录等待时间。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址,否则,其他的主机名通常使用DNS来解决,DNS客户部分的配置在文件/etc/resolv.conf中。

      1. /etc/services

/etc/services中包含了服务名和端口号之间的映射,不少的系统程序要使用这个文件,下面是缺省的/etc/services中的前几行:

tcpmux 1/tcp                       # TCP port service multiplexer

echo 7/tcp  

echo 7/udp  

discard 9/tcp sink null  

discard 9/udp sink null  

systat 11/tcp users  

最左边一列是主机服务名,中间一列是端口号,“/”后面是端口类型,可以是TCP也可以是UDP。任何后面的列都是前面服务的别名。在这个文件中也存在着别名,它们出现在端口号后面,在上述例子中sink和null都是discard服务的别名。

      1. /etc/host.conf配置名字解析器

/etc/host.conf文件指定如何解析主机名,Linux通过解析器库来获得主机名对应的IP地址。下面是安装后缺省的"/etc/host.conf"内容:

order hosts.bind

multi on

"order" 指定主机名查询顺序,其参数为用逗号隔开的查找方法,支持的查找方法为bind、hosts和nis,分别代表DNS、/etc/hosts和NIS。这里规定先查询"/etc/hosts"文件然后再使用DNS来解析域名。

"trim" 表明当通过DNS进行地址到主机名的转换时,域名将从主机名中被裁剪掉,trim可以被多个域包含多次,对/etc/hosts和NIS查询方法不起作用,注意在/etc/hosts和NIS表中主机名是被适当地(有或没有全域名)列出的。

"multi" 指定是否"/etc/hosts"文件中指定的主机可以有多个地址,值为on表示允许,拥有多个IP地址的主机一般称为具有多个网络界面;

"nospoof" 指是否允许对该服务器进行IP地址欺骗值,为on表示不允许,IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算机来取得其它计算机的信任;

"alert" 当nospoof指令为on时,alert控制欺骗的企图是否用syslog工具进行记录,值为on表示使用,缺省值为off;

rccorder" 如果被设置为on,所有的查询将被重新排序所以在同一子网中的主机将首选被返回,缺省值为off。

      1. /etc/nsswitch.conf配置名字解析器

/etc/nsswitch.conf文件是由Sun公司开发并用于管理系统中多个配置文件查找的顺序,它比/etc/host.conf文件提供了更多的功能。/etc/nsswitch.conf中的每一行或者是注释(以#号开头)或者是一个关键字后跟冒号和一系列要试用的有顺序的方法。每一个关键字是在/etc/目录可以被/etc/nsswitch.conf控制的/etc文件的名字。下面是可以被包含的关键字:

aliases 邮件别名;

passwd 系统用户;

group 用户组;

shadow 隐蔽口令;

hosts 主机名和IP地址;

networks 网络名和号;

protocols 网络协议;

services 端口号和服务名称;

ethers 以太网号;

rpc 远程进程调用的名称和号;

netgroup 网内组。

      1. /etc/resolv.conf配置DNS客户

文件/etc/resolv.conf配置DNS客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。

下面是一个例子文件:

nameserver 192.168.0.36

nameserve r192.168.0.37

search zte.com.cn

合法的参数及其意义如下:

nameserver表明DNS服务器的IP地址。可以有很多行的nameserver,每一个带一个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。

domain声明主机的域名,很多程序用到它,如邮件系统。当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点(.)前面的内容。

search它的多个参数指明域名查询顺序,当要查询没有域名的主机,主机将在由search声明的域中分别查找。domain和search不能共存,如果同时存在后面出现的将会被使用。

sortlist允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。

      1. /etc/xinetd.conf

xinetd的默认配置文件是/etc/xinetd.conf。配置文件格式为

serviceservice-name

{

disabled=yes/no; //是否禁用

socket_type=xxx; //TCP/IPsockettype,suchasstream,dgram,raw,....

protocol=xxx; //服务使用的协议

server=xxx; //服务daemon的完整路径

server_args=xxx; //服务的参数

port=xxx; //指定服务的端口号

wait=xxx; //是否阻塞服务即单线程或多线程

user=xxx; //服务进程的uid

group=xxx; //gid

REUSE=xxx; //可重用标志

......

}

示例:

1.配置ftp服务

在/etc/xinetd.d目录下编辑vsftpd:

#default:on

#description:Thewu-ftpdFTPserverservesFTPconnections.Ituses

\

#normal,unencryptedusernamesandpasswordsforauthentication.

service ftp

{

disable=no

socket_type=stream

wait=no

user=root

server=/usr/sbin/in.ftpd

server_args=-l-a

log_on_success+=DURATION

nice=10

}

2配置telnet服务

在/etc/xinetd.d目录下编辑telnet:

#default:on

service telnet

{

disable=no

flags=REUSE

socket_type=stream

wait=no

user=root

server=/usr/sbin/in.telnetd

log_on_failure+=USERID

}

配置完成后,重新启动服务:

#/etc/rc.d/init.d/xinetd restart

      1. /etc/modules.conf文件

该配置文件定义了各种需要在启动时加载的模块的参数信息,文件格式如下:

alias eth0 tg3

alias eth13 c905

      1. /etc/sysconfig/network-scripts/ifcfg-ethN文件

系统网络设备的配置文件保存在“/etc/sysconfig/network-scripts”目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。

下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例:

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.0.66

NETMASK=255.255.255.0

GATEWAY=192.168.0.65

若希望手工修改网络地址或在新的接口上增加新的网络界面,可以通过修改对应的文件(ifcfg-ethN)或创建新的文件来实现。


    1. 常用网络操作方法

Linux提供了一组强有力的网络命令来为用户服务,这些工具能够帮助用户登录到远程计算机上、传输文件和执行远程命令等。本节介绍下列几个常用的有关网络操作的命令ftp、telnet、r-等。


      1. ftp远程文件传输

ftp命令是标准的文件传输协议的用户接口。ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII文件和二进制文件。在ftp会话过程中,用户可以通过使用ftp客户程序连接到另一台计算机上。从此用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。需要注意的是,如果用户没有那个文件的存取权限,就不能从远程系统中获得文件或向远程系统传输文件。为了使用ftp来传输文件,用户必须知道远程计算机上的合法用户名和口令,这个用户名/口令的组合用来确认ftp会话,并用来确定用户对要传输的文件可以进行什么样的访问。

ftp命令的一般格式如下:

$ftp 主机名/IP,如果没有指定主机名ftp将给出提示符等待用户输入命令;

$ftp

ftp>

此时在ftp>提示符后面输入open命令加主机名或IP地址,将试图连接指定的主机。不管使用哪一种方法,如果连接成功,需要在远程机上登录。用户如果在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。

一旦用户使用ftp在远程站点上登录成功将,得到“ftp>“提示符。现在可以自由使用ftp提供的命令,可以用help命令取得可供使用的命令清单,也可以在help命令后面指定具体的命令名称,获得这条命令的说明。

最常用的命令有:

ls 列出远程机的当前目录;

cd 在远程机上改变工作目录;

lcd 在本地机上改变工作目录;

ascii 设置文件传输方式为ASCII模式,默认情况下,ftp按ASCII模式传输文件用户也可以指定其他模式。ascii和brinary命令的功能是设置传输的模式。用ASCII模式传输文件对纯文本是非常好的,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件;

binary 设置文件传输方式为二进制模式;

close 终止当前的ftp会话;

hash 每次传输完数据缓冲区中的数据后就显示一个#号;

get(mget) 从远程机传送指定文件到本地机,get命令的一般格式为:

get 文件名

mget 命令一次获取多个远程文件,mget命令的一般格式为:

mget 文件名列表;

使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送;

put(mput) 从本地机传送指定文件到远程机,put命令的一般格式为:

put 文件名

mput 命令一次发送多个本地文件mput命令的一般格式为:

mput 文件名列表;

使用用空格分隔的或带通配符的文件名列表来指定要发送的文件,对其中的每个文件都要求用户确认是否发送;

open 连接远程ftp站点;

quit 断开与远程机的连接并退出ftp;

? 显示本地帮助信息;

! 转到Shell中;

示例:

使用ftp传输文件过程如下:

[root@localhost root]# ftp 192.168.1.66

Connected to 192.168.1.66 (192.168.1.66).

220 localhost.localdomain FTP server (Version wu-2.6.2-5) ready.

Name (192.168.1.66:root): test

331 Password required for test.

Password:

230 User oracle logged in.  Access restrictions apply.


      1. telnet

用户使用telnet命令进行远程登录,该命令允许用户使用telnet协议在远程计算机之间进行通信,用户可以通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。为了通过telnet登录到远程计算机上,必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑,要限制来宾的操作权限,因此这种情况下能使用的功能是很少的。当允许远程用户登录时,系统通常把这些用户放在一个受限制的shell中,以防系统被怀有恶意的或不小心的用户破坏。用户还可以使用telnet从远程站点登录到自己的计算机上,检查电子邮件、编辑文件和运行程序,就像在本地登录一样。但是用户只能使用基于终端的环境而不是XWndows环境,telnet只为普通终端提供终端仿真,而不支持XWndow等图形环境。

telnet命令的一般形式为:

telnet 主机名/IP

其中“主机名/IP”是要连接的远程机的主机名或IP地址。如果这一命令执行成功将从远程机上得到login:提示符。

使用telnet命令登录的过程如下:

$telnet 主机名/IP

一旦telnet成功地连接到远程系统上,就显示登录信息并提示用户输人用户名和口令。如果用户名和口令输入正确,就能成功登录并在远程系统上工作。在telnet提示符后面可以输入很多命令,用来控制telnet会话过程,在telnet联机帮助手册中对这些命令有详细的说明。

示例:

#telnet 192.168.1.66

Trying 192.168.1.66...

Connected to 192.168.1.66.

Escapecharacteris'^]'.

login: test

Password:

Last login: Mon Feb 9 15:03:56 from 10.153.21.166


      1. r-系列命令

除ftp和telnet以外,还可以使用r-系列命令访问远程计算机和在网络上交换文件。使用r-系列命令需要特别注意,因为如果用户不小心就会造成严重的安全漏洞。用户发出一个r-系列命令后,远程系统检查名为/etc/hosts.equiv的文件,以查看用户的主机是否列在这个文件中。如果它没有找到用户的主机就检查远程机上同名用户的主目录中名为.rhosts的文件,看是否包括该用户的主机如果该用户的主机包括在这两个文件中的任何一个之中,该用户执行r-系列命令就不用提供口令。

rlogin命令:

rlogin是“remote login”(远程登录)的缩写。该命令与telnet命令很相似,允许用户启动远程系统上的交互命令会话。rlogin的一般格式是:

rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host  

一般最常用的格式是:

rlogin host

rsh命令:

rsh是“remote shell”(远程shell)的缩写。该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令。如果用户没有给出要执行的命令,rsh就用rlogin命令使用户登录到远程机上,rsh命令的一般格式是:

rsh [-Kdnx] [-k realm] [-l username] host [command]  

一般常用的格式是:

rsh host [command]

command可以是从shell提示符下键入的任何Linux命令。


  1. 常用使用技巧

    1. Linux下软件包的安装及卸载

在Linux操作系统下,几乎所有的软件均通过RPM进行安装卸载及管理等操作。RPM的全称为Redhat Package Manager,是由Redhat公司提出的用于管理Linux下软件包的软件。Linux安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM完成安装。RPM有五种操作模式分别为安装、卸载、升级、查询和验证。


      1. RPM安装操作

命令:

rpm –I 需要安装的包文件名

举例如下:

rpm-I example.rpm 安装example.rpm包;

rpm -iv example.rpm 安装example.rpm包并在安装过程中显示正在安装的文件信息;

rpm –ivh example.rpm 安装example.rpm包并在安装过程中显示正在安装的文件信息及安装进度。


      1. RPM查询操作

命令:

rpm –q xxx

附加查询命令:

a 查询所有已经安装的包。

以下两个附加命令用于查询安装包的信息:

i 显示安装包的信息;

l 显示安装包中的所有文件被安装到哪些目录下;

s 显示安装版中的所有文件状态及被安装到哪些目录下。

以下两个附加命令用于指定需要查询的是安装包还是已安装后的文件:

p 查询的是安装包的信息;

f 查询的是已安装的某文件信息。

举例如下:

rpm -qa|grep tomcat4 查看tomcat4是否被安装;

rpm –qip example.rpm 查看example.rpm安装包的信息;

rpm -qif /bin/df 查看/bin/df文件所在安装包的信息;

rpm –qlf /bin/df 查看/bin/df文件所在安装包中的各个文件分别被安装到哪个目录下;


      1. RPM卸载操作

命令:

rpm –e 需要卸载的安装包;

在卸载之前通常需要使用”rpm –q xx”命令查出需要卸载的安装包名称。

举例如下:

rpm –et omcat4 卸载tomcat4软件包


      1. RPM升级操作

命令:

rpm –U 需要升级的包

举例如下:

rpm –Uvh example.rpm 升级example.rpm软件包


      1. RPM验证操作

命令:

rpm –V 需要验证的包

举例如下

rpm –Vf /etc/tomcat4/tomcat4.conf

输出信息类似如下:

S.5 ....T c /etc/tomcat4/tomcat4.conf

其中,S表示文件大小修改过,T表示文件日期修改过。


      1. RPM的其他附加命令

--force 强制操作如强制安装删除等;

--requires 显示该包的依赖关系;

--nodeps 忽略依赖关系并继续操作。


    1. Linux操作系统的时钟系统

      1. 时钟系统介绍

对于Linux操作系统,主要有两种时钟系统:

1.硬件时钟系统:该时钟系统的运行独立于任何系统控制程序,在CPU内部运行,既使系统断电,该时钟系统仍然保持运行。此时钟系统常常被称为实时时钟系统RTC、BIOS时钟系统或CMOS时钟系统。

2.系统时间:该时间为Linux内核的时钟系统所维护,并且被定时中断程序所驱动。该时间仅当Linux系统运行过程中有意义,该系统时间表示为以UTC(通用协调时间 Universal Time Coordinated)计算。自1970年1月1日0时0分0秒起至当前时刻所经过的秒数(该数字不是整数以小数方式表示精度)。

在Linux系统中,真正起作用的是系统时间。硬件时钟系统的唯一作用是在Linux系统没有运行时,保持时间的运行。当Linux操作系统启动时系统会自动将硬件时钟系统的时间同步到Linux系统时间,并且在之后的整个Linux运行过程中不再使用该硬件时钟系统。而在Linux操作系统关闭时,系统会自动将当前的Linux系统时间同步到硬件时钟系统所维护的时间。


      1. 硬件时钟系统与系统时间的同步

/sbin/hwclock用于同步硬件时钟系统的时间与Linux操作系统时间。

查看当前硬件时钟系统时间的命令为:

/sbin/hwclock --show

将硬件时钟系统时间同步到Linux操作系统时间的命令为:

/sbin/hwclock --hctosys

将Linux操作系统时间同步到硬件时钟系统时间的命令为:

/sbin/hwclock --systohc

如果观察系统启动/关闭时执行的初始化脚本”/etc/rc.d/rc.sysinit”,可以发现系统启动过程中,自动调用“/sbin/hwclock –hctosys”将硬件时钟系统时间同步到操作系统时间;而在系统关闭过程中,自动调用“/sbin/hwclock –systohc”将操作系统时间同步到硬件时钟系统时间。


    1. 系统信息及运行状态监控

Linux的文件系统中,有一个特殊目录“/proc”,该目录下列出的文件并非保存在磁盘上,而是内存中的一个映像。在该目录下可以找到许多有意思的东西,例如:

/proc/cpuinfo 本机CPU的相关信息

/proc/meminfo 本机内存及交换分区的使用信息

/proc/modules 本机已安装的硬件模块信息

/proc/mounts 本机已挂载mount上的设备信息

此外,该目录下有一些以数字为名称的子目录,每个子目录用于维护一个正在运行的进程,而目录名即为相应的进程ID。例如进入名称为“1”的子目录:

cd /proc/1

该目录下,文件cmdline中的内容为该进程运行时执行的命令行,environ文件中的内容为该进程运行时的环境变量信息,stat文件中存放的时该进程运行的状态信息等。

通过查看/proc目录下的文件,可以获取几乎所有的系统信息及系统的运行状态信息。事实上,Linux下的诸多查询系统状态信息的命令,也是通过读取该目录下的文件而获取的。

以下是一些用于查看系统状态信息的命令。


      1. df命令

用于查看Linux文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。如:

df –k 以千字节KB为单位显示各分区的信息;

df –a 显示所有分区包括大小为0的分区;

df –T 显示分区类型;


      1. du命令

用于查看文件或文件夹的大小,如:

du –b /home 以字节为单位显示/home文件夹下各个子文件夹的大小;

du –ks /home以千字节KB为单位显示/home文件夹的总大小


      1. top命令

用于实时查看系统状态信息。运行该命令后屏幕上会显示如下信息:

CPU状态(CPU states):包括用户进程占用比率、系统进程占用比率、用户的nice优先级进程占用比率及空闲CPU资源比率等;

内存状态(Mem);包括内存总量、使用量、空闲量等;

交换分区状态(Swap);包括交换分区总量、使用量、空闲量等;

每个进程的状态:包括进程ID、用户名、优先级、CPU和内存使用量,以及运行该进程时执行的命令行;

执行top命令后,每隔5秒,系统会自动刷新一次状态信息。如果要指定刷新间隔,在启动时加入-d参数即可。例如:

top –d 1 启动top并且每隔1秒刷新一次

进入top,后按下如下按钮会有相应功能:

空格 立即刷新显示信息;

M 按内存使用量排序;

N 按进程ID排序;

P 按CPU使用量排序;

c 扩展命令行信息,显示完整的命令行;

? 显示帮助信息;

q 退出top程序。


      1. iostat命令

统计并输出CPU使用信息及特定设备或分区的IO信息。

iostat –c 仅显示CPU使用情况统计信息;

iostat –d 仅显示设备/分区使用情况统计信息;

iostat –d 2 统计设备/分区使用情况并每隔2秒刷新一次;

显示的IO统计信息中各部分说明如下:

tps 设备每秒收到的IO传送请求数;

Blk_read/s 设备每秒读入的块数量;

Blk_wrtn/s 设备每秒写入的块数量;

Blk_read 设备读入的总块数量;

Blk_wrtn 设备写入的总块数量;

显示的CPU统计信息,各部分的含义同top。


    1. 打包/压缩工具tar

tar是Linux下最常用的打包、压缩工具,它在Linux中扮演类似于WinZip或

WinRAR在Windows下的角色。下面是该工具的常用命令参数及运用举例。

主要命令:

-c 创建包;

-x 解包‘

-t 列出包中的内容;

-r 增加文件到指定包中;

-u 更新包中的文件。

可选命令:

-j 创建或解开包时使用bzip2进行压缩或解压;

-z 创建或解开包时使用gzip进行压缩或解压;

-Z 创建或解开包时使用compress进行压缩或解压;

-f 后面跟指定的包文件名;

-v 显示打包/解包过程;

-C 指定解包后的路径。

例如:

tar –czf tmp.tar.gz /tmp 将/tmp目录压缩打包,存放为tmp.tar.gz;

tar –xzf tmp.tar.gz -C /home将tmp.tar.gz包解到/home目录下;

tar –t tmp.tar.gz 查看tmp.tar.gz包中的文件信息;


    1. 文件及文件内容的查找

Linux下提供完善的文件及文件内容查找命令,分别介绍如下。


      1. 文件查找命令find

find命令用于查找文件系统中的指定文件,其命令格式为:

find 要查找的路径 表达式

例如

find . -name1.txt 在当前目录及其子目录下查找文件1.txt;

find /tmp -name1.txt 在/tmp目录及其子目录下查找文件1.txt;


      1. 文件内容查找命令grep

grep命令用于查找指定的模式匹配,格式为:

grep [命令选项] 要查找的匹配模式 [要查找的文件]

例如:

grep cams test.txt 在test.txt文件中查找cams字符串;

grep –r cams /root/cams 在/root/cams目录及其子目录下的所有文件中查找cams字符串;

grep命令除了能够查找文件外,还能够将任意输出流重定向到grep进行查找:

ps- ef|grep ora 查找进程名中包含ora的所有进程信息;


    1. Linux的系统服务及其配置

      1. 服务简介

Linux系统服务是在Linux启动时自动加载,并在Linux退出时自动停止的系统任务。在Linux启动过程中,我们可以看得很多“starting…”提示信息,该信息表示正在启动系统服务。而在Linux退出时我们也能够看到相应的“Stopping…”信息,表示系统服务正在停止。Linux自身有许多系统任务,如network服务用于支持网络连接等。


      1. 启动和停止服务

service命令用于启动及停止某个服务,例如:

service zte stop 停止zte服务

service oracle start 启动oracled服务

service tomcat4 start 启动tomcat4服务

CAMS引入的三个服务间有依赖关系,即zte服务和tomcat4服务依赖与oracled服务,在oracled服务启动前不能启动zte服务和tomcat4服务,而在oracled服务停止前必须先停止zte服务和tomcat4服务。


      1. 服务的添加删除自动运行及状态

CAMS在安装过程中会自动添加相关的服务,在安装的最后过程中会提示用户是否启动服务使服务生效。需要注意的是一个服务被添加后并不表示该服务在系统启动过程中会自动运行,仅表示可以使用service命令来启动、停止服务:

添加服务的步骤为:

  1. 将该服务的脚本文件拷入“/etc/rc.d/init.d”文件夹下保证其状态为可执行;
  2. 使用chkconfig命令将服务添加到服务列表中:

chkconfig --add zte

将服务添加以后,该服务即可以使用service来启动/停止了。

删除服务:

如果要删除某项服务将上述命令的add改为del即可:

chkconfig --del zte

3.设置服务自动运行

Linux运行有7种运行级别,分别使用0-6来表示,控制台界面运行级别为3,图形界面运行级别为5。要使某服务在系统启动时自动运行,使用chkconfig将该服务添加到相应级别的自启动服务列表中即可:

chkconfig --evel 35 zte on

上面的命令将zte服务添加到级别为3、5的自启动服务列表中,而下面的命令则将服务zte从级别为3、5的自启动服务列表中删除:

chkconfig –level 35 zte off

如果需要查看某项服务的自启动状态信息,使用如下命令即可:

chkconfig –list zte

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐