Linux操作指导专题

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

1.1命令行操作

1.1.1Shell简介

shell是用户和Linux操作系统之间的接口Linux中有多种shell其中缺省使用的是bash。

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

Linux中的shell有多种类型,其中最常用的几种:

Bourne shell(sh),

C shell(csh)

和Kornshell(ksh),三种shell各有优缺.

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

C shell是一种比Bourneshell更适于编程的shell,它的语法与C语言很相似,Linux为喜欢使用C shell的人提供了T csh,T csh是C shell的一个扩展版本,T csh包括命令行编辑可编程单词补全、拼写校正、历史命令替换、作业控制,和类似C语言的语法,它不仅和Bashshell是提示符兼容,而且还提供比Bashshell更多的提示符参数.

Kornshell集合了C shell和Bourneshell的优点并且和Bourneshell完全兼容Linux系统提供了pdkshksh的扩展,它支持任务控制可以在命令行上挂起后台执行唤醒或终止程序.

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

shell是如何工作的,在shell提示符下输入以下命令:

$ls–al

该命令可以列出当前目录下的所有文件和子目录

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

myself:x:500:500:LinuxUser:/home/myself:/bin/bash

用户使用的shell被列每行的末尾/bin/bash.

由于bash是Redhat Linux上缺省的shell,本文将主要介绍bash及其相关知识.

1.1.2Shell控制台使用方法

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

Linux是一个真正的多用户操作系统,这表示它可以同时接受多个用户登录.

Linux还允许一个用户进行多次登录,这是因为Linux和许多版本的UNIX一样提供了虚拟控制台的访问方式,允许用户在同一时间从控制台系统的控制台,是与系统直接相连的监视器和键盘进行多次登录.

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

1.2常用命令使用

1.2.1登录和退出Linux系统

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

说明:

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

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

1.2.1.1启动和登录系统

超级用户的用户名为root密码在安装系统时已设定系统启动成功后屏幕显示下面的提示

localhost login:

这时输入超级用户名"root"然后键入回车键此时用户会在屏幕上看到输入口令的提示

localhost login:root

Password:

这时需要输入口令,输入口令时口令不会在屏幕上显示出来,如果用户输入了错误的口令就,会在屏幕上看到下列信息:

Login incorrect.

这时需要重新输入当用户,正确地输入用户名和口令后就能合法地进入系统屏幕显示:

[root@loclhost/root]#

此时说明用户,已经登录到系统中,可以进行操作了这里"#"是超级用户的系统,提示符普通用户在建立了,普通用户帐号以后就可以进行登录了,不论是超级用户还是普通用户,需要退出系统时在shell提示符下键入exit命令即可,还有其他退出系统的方法,但上面一种是最安全的.

1.2.1.2.重新启动系统

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

[root@loclhost/root]#reboot

1.2.1.3.关闭系统

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

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

命令中各选项的含义为:

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

-r关机后立即重新启动

-h关机后不重新启动

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

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

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

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

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

#shutdown –r +10

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

#shutdown –h now

1.2.2文件和目录操作命令

1.2.2.1. ls命令

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

ls-a

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

ls–l

这个参数是字母L的小写不是数字1这个命令可以使用长格式显示文件内容如果需要察看更详细的文件资料就要用到ls-l这个指令

ls–F

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

1.2.2.2.cd命令

cd这个命令是用来进出目录的,它的使用方法和在dos下没什么两样,但和dos不同的是,Linux的目录对大小写是敏感的,如果大小写拼写有误,你的cd操作是成功不了的,另外cd如果直接输入cd后面不加任何东西会回到使用者自己的Home目录,假设如果是root那就是回到/root,这个功能同cd~是一样的.

1.2.2.3.mkdir /rmdir

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

mkdir work

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

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

rmdir work

将删除已存在的空目录work

1.2.2.4.cp

cp这个命令相当于dos下面的copy命令,具体用法是:

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

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

1.2.2.5.rm

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

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

rm –i test

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

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

rm –f文件名这个操作可以不经确认强制删除文件

1.2.2.6.mv

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

mv /tmp/xxx.tar /root

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

mv aaa.tar bbb.tar

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

1.2.2.7.cat

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

cat text

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

cat file1 file2

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

cat file1 file2>file3

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

1.2.2.8.more

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

more file 1

1.2.2.9.pwd

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

1.2.3用户及用户组管理命令

1.2.3.1.useradd

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

useradd +用户名

如输入以下命令

useradd newuser

系统将创建一个新用户newuser,该用户的Home目录为/home/newuser,useradd命令的参数较多常用的组合为:

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

其中:

-g指定该用户的首要组

-G指定该用户的次要组

-d指定该用户的Home目录

-p指定该用户的密码

如输入以下命令:

useradd oracle –g oinstall –G dba –d /home/oracle –p ora123

系统将创建一个用户oracle

oracle用户的首要组为oinstall,次要组为dba,Home目录为/home/oracle,密码为ora123

1.2.3.2.userdel

userdel命令用于删除一个已存在的帐号.

其用法为:

userdel+用户名

1.2.3.3.groupadd

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

groupadd+组名

如输入以下命令:

groupadd newgroup

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

1.2.3.4.groupdel

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

groupdel+组名

1.2.3.5.passwd

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

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

passwd+用户名

1.2.3.6.su

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

su-用户名

1.2.3.7.chmod

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

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

命令中各选项的含义为:

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

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

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

ID的所有用户

o表示其他(others)用户

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

2操作符号可以是

+添加某个权限

-取消某个权限

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

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

r可读

w可写

x可执行

举例:

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

chmod=rx text

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

-r-xr-xr-x 1 user group 0 Feb 10 09:42 script

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

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

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

-rwxr----- 1 user group 0 Feb 10 09:42 text

1.2.3.8.chown

chown用于更改某个文件或目录的属主和属组,这个命令也很常用,例如:

root用户把自己的一个文件拷贝给用户oracle,为了让用户oracle能够存取这个文件,root用户应该把这个文件的属主设为oracle,否则用户oracle无法存取这个文件,chown的基本用法为:

chown [用户:组] 文件

举例:

chown oracle:dba text

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

1.2.4进程及任务管理命令

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

1.2.4.1.ps

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

-e显示所有进程

-f全格式

-l长格式

举例:

a.在控制台输入ps命令得到类似如下的输出:

PID    TTY    TIME    CMD

12039  pts/0  00:00:00  bash

18710  pts/0  00:00:00  ps

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

b.在控制台输入以下命令

ps–ef

UID   PID   PPID   CS  TIME    TTY        TIME  CMD

root  100  Jan14   ?   00:00:05  init

root  210  Jan14   ?   00:00:00  [keventd]

root  310  Jan14   ?   00:00:00  [kapmd]

…………………..

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

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

ps –ef | grep oracle

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

1.2.4.2.top

top命令和ps命令的基本作用是相同的,显示系统当前的进程和其他状况,但是top是一个动态显示过程即可以通过用户按交互来不断刷新当前状态,top的命令参数并不重要简单的输入top命令即可查看系统运行状态.

top命令执行过程中可以使用交互命令,从使用角度来看熟练的掌握这些命令,比掌握选项还重要,一些这些命令都是单字母的常用的命令有:

<空格>立即刷新显示

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

m切换显示内存信息

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

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

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

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

q退出

1.2.4.3.kill

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

a.kill [-s信号] 进程号

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

b.kill-l

该命令显示信号列表

1.2.4.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.2.5磁盘及文件系统管理命令

管理文件系统其实是相当复杂的工作本文将只介绍日常维护需要的一些管理命令主要内容有挂装和卸载硬盘分区等

1.2.5.1.df

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

df –k

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

1.2.5.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.2.6软件安装命令

1.2.6.1.tar

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

常用的选项包括:

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

-t查看档案文件的内容

-x分解档案文件的内容

-f指定档案文件的名称

-v显示过程信息

-z采用压缩方式

举例:

a.tar -czf oracle.tar.gz /u01/app/oracle/etc/oratab /home/oracle

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

b.tar -tzf oracle.tar.gz

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

c.tar -xzvf oracle.tar.gz

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

1.2.6.2.rpm

rpm命令的功能有很多在这里我们只介绍如何利用rpm安装和查询已安

装的软件

a.安装

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

rpm-irpm包名

例如:

Rpm -i tomcat4.rpm

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

b.升级

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

rpm-Urpm包名

例如:

Rpm –U tomcat4.rpm

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

c.查看已安装的软件

有的时候了解系统中都已经安装了哪些软件包以及它们的用途是很有用的,RPM的查询参数就可以做到这一点,要想列出已经安装的全部软件包,可以通过以下命令:

rpm -qa

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

rpm -qa | grep 'tomcat'

该命令将列出包名中包含tomcat的软件包,此外要想找出某个特定的文件到底是属于哪个软件包的

可以输入:

rpm -qf filename

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

rpm -qi packagename

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

d.删除已安装的软件

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

rpm -e packagename

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

第2章文件查看/编辑方法介绍

2.1 cat命令介绍

cat命令的原含义为连接concatenate用于连接多个文件内容并输出到标准输出流中标准输出流默认为屏幕实际运用过程中我们常使用它来显示文件内容如果您熟悉MS-DOS下的type命令相信不难掌握cat命令该命令的常用示例如下

cat file1.txt

显示file1.txt文件的内容

cat file1.txt file2.txt

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

cat -n file1.txt

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

2.2 vi命令介绍

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

本文只介绍常用的命令

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

命令行模式:

任何时候不管用户处于何种模式只要按一下ESC键,即可使vi进入命令行模式,当在shell环境下输入vi命令启动vi编辑器时,也是处于该模式下,在该模式下用户可以输入各种合法的vi命令用于管理自己的文档此时

从键盘上输入的任何字符都被当作编辑命令来解释,若输入的字符是合法的,vi命令则vi在接受用户命令之后完成相应的动作,但需注意的是,所输入的命令并不在屏幕上显示出来,若输入的字符不是vi的合法命令,

vi会响铃报警.

文本输入模式:

在命令模式下输入:

插入命令i

附加命令a

打开命令o

修改命令c

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

末行模式:

在命令模式下用户按:键即可进入末行模式下,此时Vi会在显示窗口的最后一行通常也是屏幕的最后一行

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

2.2.1 vi的进入与退出

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

vi example.txt

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

vi +5 example.txt

退出vi时需要在末行模式中输入退出命令:q

如果在文本输入模式下,首先按ESC键进入命令模式然后输入”:”,进入末行模式,在末行模式下,可使用如下退出命令:

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

:wq  保存后退出

:x    同wq

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

2.2.2 vi中显示行号

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

2.2.3光标移动操作

     全屏幕文本编辑器中光标的移动操作,无疑是最经常使用的操作了,用户只有熟练地使用移动光标的这些命令,才能迅速准确地到达所期望的位置处进行编辑,vi中的光标移动既可以在命令模式下也可以在文本输入模式下,但操作的方法不尽相同,在文本输入模式下可直接使用键盘上的四个方向键移动光标,在命令模式下,有很多移动光标的方法,不但可以使用四个方向键来移动光标,还可以用hjkl这四个键代替四个方向键来移动光标,这样可以避免由于不同机器上的不同键盘定义所带来的矛盾,而且使用熟练后,可以手不离开字母键盘位置就能完成所有操作从而提高工作效率,以下命令均在命令行模式下完成光标移动:

h

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

l

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

则光标右移n个字符

j

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

则光标上移n个字符

k

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

0

零光标移到行首

$

光标移到行尾

H

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

L

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

M

光标移到屏幕的中间一行

nG光标移到第n行

w或W

将光标右移至下一个单词的词首

e或E

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

b或B

如果光标处于所在单词内,即非单词首,则该命令将把光标移至本单词词首

如果光标处于所在单词的词首,则该命令将把光标移到上一个单词的词首

Ctrl+G状态命令

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

:n

光标移到文件的第n行

:$

光标移到文件的最后一行

2.2.4文本插入操作

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

A.插入Insert命令

vi提供了两个插入命令i和I

a.i命令插入文本从光标所在位置前,开始并且插入过程中可以使用<Backspace>键删除错误的输入此时vi处于插入状态屏幕最下行显示--INSERT--插入字样

b.I命令

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

B.附加append命令

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

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

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

C.打开open命令

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

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

b.O命令和o命令相反

O命令是在光标所在行的上面插入一行,并将光标置于该行的行首等待输入文本

2.2.5文本修改操作

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

2.2.5.1.文本删除/移动

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

a.删除单个字符

x删除光标处的字符若在x之前加上一个数字n,则删除从光标所在位置,开始向右的n个字符X删除,光标前面的那个字符若在X之前加上一个数字n,则删除从光标,前面那个字符开始向左的n个字符,显然这两个命令是删除少量字符的快捷方法

b.删除多个字符

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

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

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

dw    删除一个单词若光标处在某个词的中间,则从光标所在位置开始删至词尾同dd命令一样可在dw之前加一个数字n表示删除n个指定的单词,如果用户不小心进行了误删除操作也不要紧,vi提供了恢复误操作的命令,并且可以将恢复的内容移动放在文本的任何地方恢复命令用np,其中n为需要恢复的次数例如使用dd命令删除了一行内容然后使用

2p    命令则被删除的内容会被重新插入两遍

通过dd命令及p命令的结合使用可以很方便的实现文本行的移动操作

2.2.5.2.文本复制命令

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

dd/yy及p命令在vi中的作用类似于Windows中图形编辑程序的剪切复制及粘贴命令

2.2.5.3.取消上一命令Undo

  也称复原命令,是非常有用的命令,它可以取消前一次的误操作或不合适的操作对文件造成的影响

使之回复到这种误操作或不合适操作被执行之前的状态,取消上一命令有两种形式在命令模式下键入字符

u和U它们的功能都是取消刚才输入的命令恢复到原来的情况,小写u和大写U在具体细节上有所不同二者的区别在于,大写U命令的功能是恢复到误操作命令前的情况,即如果插入命令后使用U命令就删除刚刚插入的内容,如果删除命令后使用U命令就相当于在光标处又插入刚刚删除的内容,这里把所有修改文本的命令都视为插入命令,也就是说U命令只能取消前一步操作如果用U命令撤消了前一步操作,当再按U键时并不是撤消再前一步的操作,而是撤消了刚才U命令执行的操作也就是又恢复到第一次使用U命令之前的状

,结果是什么都没做,而小写u命令的功能是把当前行恢复成被编辑前的状态,而不管此行被编辑了多少次

2.2.5.4.重复命令Redo

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

2.2.6文本搜索与替换操作

在进行文本编辑的时候,可以需要搜索或定位特定的单词或单词的一部分,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,$表示替换文档中的所有符合条件的字符

2.3head及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的后十行内容并在文件内容增加后自动显示新增的文件内容

注意:

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

第3章网络配置及操作

3.1网络配置命令

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

3.1.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 ,updown设置当前网卡的状态,up表示启用当前网卡,down表示关闭当前网卡

Ifconfig的常用参数说明如下:

-a查看所有网卡状态

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

-s查看统计信息

示例:

a将第一块网卡的IP地址设置为192.168.0.1

Ifconfig eth0192.168.0.1   (格式ifconfig网络设备名IP地址

b暂时关闭或启用网卡

关闭第一块网卡ifconfig eth0 down

启用第一块网卡ifconfig eth0 up

c将第一块网卡的子网掩码设置为255.255.255.0

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

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

Ifconfig eth0 192.168.0.1 netmask 255.255.255.0

d查看第一块网卡的状态

ifconfigeth0

如果要查看所有的网卡状态,则直接使用不带参数的ifconfig命令即可,ifconfig输出的状态信息是十分有用的下面我们就简单说明一下,有几个状态比较重要:

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

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

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

3.1.2route

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    使用冗余输出模式

-Afamily   指定特定的地址族,例如"inet""inet6"

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

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

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

-net  目标(target) 是一个网段

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

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

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

Del   删除一个路由表项

Add   增加一个路由表项

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

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

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

metricM  设置路由表中该项的尺度域metricfield为M

示例

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

route add- net 192.168.0.0 netmask 255.255.255.0 dev eth0

b.添加一条缺省路由

route add 0.0.0.0 gw网关地址

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

c.删除缺省路由

route del 0.0.0.0 gw网关地址

d.route命令的输出结果示例说明

输出的格式有以下几栏:

Destination  目标网段或者主机

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

Genmask  网络掩码

Flags一些可能的标记如下:

U  路由是活动的

H  目标是一个主机

G  使用网关gateway

R  reinstateroute动态路由产生的表项

D  dynamically installed by daemon or redirect

M  modified from routing daemon or redirect

!  Reject route

Metric 路由距离

Ref  路由项引用次数

Linux 内核中没有使用

Use 查找路由项的次数

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

3.2网络操作命令

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

3.2.1netstat

netstat命令的语法为:netstat [选项]

netstat的常用参数说明如下

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

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

-i  显示所有网络接口的信息格式同ifconfig–e

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

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

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

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

-v  显示正在进行的工作

3.2.2nslookup

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

nslookup [IP地址/域名]

示例:

在本机执行nslookup命令:

DefaultServer:name.tlc.com.cn

Address:192.168.1.99

>

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

3.2.3host

host命令的功能基本与nslookup相同,命令的语法为:host[选项][IP地址/域名/主机名]

host的常用参数如下

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

示例:

[root]# host yangzhuangzhuang666-com.com

yangzhuangzhuang666-com.com has address 172.19.1.228

3.2.4finger

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

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

finger的常用参数如下

-s

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

-l

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

-p

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

3.2.5Ping命令

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

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

ping的常用参数如下

-c

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

-d

设定SO_DEBUG的选项

-f

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

-I

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

-l

次数在指定次数内以最快的方式送封包数据到指定机器只有超级

用户可以使用此选项

-q

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

-r

不经由网关而直接送封包到一台机器通常是查看本机的网络接口是

否有问题

-s

字节数指定发送的数据字节数预设值是56加上8字节的ICMP

头一共是64ICMP数据字节

3.3常用网络配置文件介绍

在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)另外这些文件都支持由"#"开头的注释

3.3.1/etc/sysconfig/network网络设置

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

NETWORKING=yes

HOSTNAME=machine1

GATEWAY=210.34.6.2

FORWARD_IPV4=yes

GATEWAYDEV=

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

HOSTNAME=hostnamehostname表示服务器的主机名

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

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

GAREWAYDEV=gw-devgw-dw表示网关的设备名如

eth0等

3.3.2/etc/hostsIP地址和主机名的映射

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

例子文件

127.0.0.1  machine1  localhost.localdomain  localhost

192.168.1.100  machine7

192.168.1.101  other  pcotheralias

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

service network restart

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

3.3.3/etc/services

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

Tcpmux 1/tcp#TCPportservicemultiplexer

echo 7/tcp

echo 7/udp

discard 9/tcpsinknull

discard 9/udpsinknull

systat 11/tcpusers

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

服务的别名

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

有两个文件声明系统到哪里寻找名字信息来配置,UNIX名字解析器的库文件/etc/host.conf由版本5的libc库所使用,而/etc/nsswitch.conf由版本6使用(glibc)问题在于一些程序使用其中一个而一些使用另一个,所以将两个文件都配置正确是必要的,/etc/host.conf文件指定如何解析主机名,Linux通过解析器库来获得主机名对应的IP地址,下面是RedHat安装后缺省的"/etc/host.conf"内容:

order hosts.bind

Multion

"order"指定主机名查询顺序其参数为用逗号隔开的查找方法,支持的查找方法为bindhosts和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

3.3.5/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网内组

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

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

nameserver 192.168.0.36

nameserver 192.168.0.37

search yangzhuangzhuang666-com.com

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

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

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

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

sortlist允许将得到域名结果进行特定的排序,它的参数为网络/掩码对允许任意的排列顺序,RedHat中没有提供缺省的/etc/resolv.conf文件,它的内容是根据在安装时给出的选项动态创建的

3.3.7/etc/xinetd.conf

redhat7.1及以后版本计和以往的版本有一个明显的区别,就是用xinetd.conf代替原来的inetd.conf并且直接使用了firewall服务xinetd(eXtended InterNET services daemon)对inetd功能进行了扩展xinetd的默认配置文件,是/etc/xinetd.conf它看起来尽管和老版本的/etc/inetd.conf,完全不同其实只是以一个脚本的形式将inetd中每一行指定的服务扩展为一个/etc/xinetd.d/下的配置文件其格式为:

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;//可重用标志

......

}

3.3.8/etc/modules.conf文件

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

alias eth0 tg3

alias eth1 3c905

3.3.9/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或创建新的文件来实现

3.4常用网络操作方法

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

ftp       传输文件

telnet   登录到远程计算机上,r-使用各种远程命令

3.4.1ftp远程文件传输

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文件名列表

使用用空格分隔的或带通配符的文件名列表来指定要发送的文

件对其中的每个文件都要求用户确认是否发送

  连接远程ftp站点

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

? 显示本地帮助信息

! 转到Shell中

3.4.2telnet

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

将从远程机上得到login提示符,使用telnet命令登录的过程如下:

$telnet主机名/IP

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

示例:

#telnet192.168.1.66

Trying192.168.1.66...

Connectedto192.168.1.66.

Escapecharacteris'^]'.

RedHatLinuxrelease7.3(Valhalla)

Kernel2.4.18-3onani686

login:test

Password:

Lastlogin:MonFeb915:03:56from10.153.21.166

[test@localhosttest]$

3.4.3r-系列命令

      除ftp和telnet以外,还可以使用r-系列命令访问远程计算机和在网络上交换文件使用,r-系列命令需要特别注意因为如果用户不小心就会造成严重的,安全漏洞用户发出一个r-系列命令后远程系统检查名/etc/hosts.equiv的文件以查看用户的主机是否列在这个文件中,如果它没有找到用户的主机就检查远程机上同名用户的主目录中名为rhosts的文件,看是否包括该用户的主机如果该用户的主机包括在这两个文件中的任何一个之中,该用户执行r-系列命令就不用提供口令rlogin命令,rlogin是remotelogin远程登录的缩写该命令与telnet命令很相似,允许用户启动远程系统上的交互命令会话rlogin的一般格式是rlogin[-8EKLdx][-echar][-krealm][-lusername]host

一般最常用的格式是:

rloginhost

rsh命令

rsh是remoteshell

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

rsh[-Kdnx][-krealm][-lusername]host[command]

一般常用的格式是:

rsh host [command]

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

第4章常用使用技巧

4.1Linux下软件包的安装及卸载

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

安装/卸载/升级/查询和验证

4.1.1RPM安装操作

命令

rpm-i需要安装的包文件名

举例如下:

rpm -i example.rpm      安装example.rpm包

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

rpm -i vhexample.rpm    安装example.rpm包,并在安装过程中显示正在安装的文件信息及安装进度

4.1.2RPM查询操作

命令

rpm-q…

附加查询命令

a查询所有已经安装的包

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

i

显示安装包的信息

l

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

s

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

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

p

查询的是安装包的信息

f

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

举例如下:

rpm -qa | greptomcat4

查看tomcat4是否被安装

Rpm -qi pexample.rpm

查看example.rpm安装包的信息

rpm-qif/bin/df

查看/bin/df文件所在安装包的信息

rpm-qlf/bin/df

查看/bin/df文件所在安装包中的各个文件分别被

安装到哪个目录下

4.1.3RPM卸载操作

命令:rpm-e需要卸载的安装包

在卸载之前通常需要使用rpm-q…命令查出需要卸载的安装包名称

举例如下:

rpm -e tomcat4

卸载tomcat4软件包

4.1.4RPM升级操作

命令

rpm-U需要升级的包

举例如下:

rpm-Uvh example.rpm

升级example.rpm软件包

4.1.5RPM验证操作

命令

rpm-V需要验证的包

举例如下:

Rpm -Vf /etc/tomcat4/tomcat4.conf

输出信息类似如下

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

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

4.1.6RPM的其他附加命令

--force

强制操作如强制安装删除等

--requires

显示该包的依赖关系

--nodeps

忽略依赖关系并继续操作

4.2Linux操作系统的时钟系统

4.2.1时钟系统介绍

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

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

b.系统时间

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

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

4.2.2硬件时钟系统与系统时间的同步

/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将操作系统时间同步到硬件时钟系统时间

4.3系统信息及运行状态监控

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

/proc/cpuinfo

本机CPU的相关信息

/proc/meminfo

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

/proc/modules

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

/proc/mounts

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

  此外该目录下有一些以数字为名称的子目录,每个子目录用于维护一个正在运行的进程,而目录名即为相应的进程ID例如进入名称为1的子目录cd /proc/1,该目录下文件cmdline中的内容为该进程运行时执行的命令行,environ文件中的内容为该进程运行时的环境变量信息,stat文件中存放的时该进程运行的状态信息等,通过查看/proc目录下的文件可以获取几乎所有的系统信息及系统的运行状态信息,事实上Linux下的诸多查询系统状态信息的命令也是通过读取该目录下的文件而获取的,以下是一些用于查看系统状态信息的命令

4.3.1 df命令

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

df-k

以千字节KB,为单位显示各分区的信息

df-a

显示所有分区,包括大小为0的分区

df-T

显示分区类型EXT2或EXT3等

4.3.2 du命令

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

du-b/home

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

du-kshome

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

4.3.3top命令

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

CPU状态CPUstates包括用户进程占用比率系统进程占用比率,用户的nice优先级进程占用比率及空闲CPU资源比率等

内存状态Mem

包括内存总量使用量,空闲量等

交换分区状态Swap

包括交换分区总量使用量,空闲量等

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

执行top命令后每隔5秒

系统会自动刷新一次状态信息,如果要指定刷新间隔在启动时加入-d参数即可,例如:

top-d1 启动top并且每隔1秒刷新一次

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

空格  立即刷新显示信息

M    按内存使用量排序

N    按进程ID排序

P     按CPU使用量排序

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

?     显示帮助信息

q    退出top程序

4.3.4iostat命令

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

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

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

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

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

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

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

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

Blk_read       设备读入的总块数量

Blk_wrtn       设备写入的总块数量

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

4.4打包/压缩工具tar

tar是Linux下最常用的打包压缩工具,它在Linux中扮演类似于WinZip或WinRAR在Windows下的角色下面是该工具的常用命令参数及运用举例:

主要命令:

-c 创建包

-x 解包

-t 列出包中的内容

-r 增加文件到指定包中

-u 更新包中的文件

可选命令:

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

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

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

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

-v  显示打包/解包过程

-C  指定解包后的路径

例如:

tar-czftmp.tar.gz/tmp     将/tmp目录压缩打包存放为tmp.tar.gz

tar-xzftmp.tar.gz-C/home  将tmp.tar.gz包解到/home目录下

tar-ttmp.tar.gz           查看tmp.tar.gz包中的文件信息

4.5文件及文件内容的查找

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

4.5.1文件查找命令find

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

find要查找的路径表达式

例如:

find.-name1.txt

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

find/tmp-name1.txt

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

4.5.2文件内容查找命令grep

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

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

例如:

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

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

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

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

4.6Linux的系统服务及其配置

4.6.1服务简介

Linux系统服务是在Linux启动时自动加载并在Linux退出时自动停止的系统任务在Linux启动过程中,我们可以看得很多starting…提示信息,该信息表示正在启动系统服务,而在Linux退出时,我们也能够看到相应的

Stopping…,信息表示系统服务正在停止Linux自身有许多系统任务,如network服务用于支持网络连接等CAMS在安装过程中会自动加入,三个系统任务以保证在Linux启动时,CAMS服务自动启动而在Linux关

闭时CAMS服务也自动停止这三个服务分别时:

oracled    Oracle  数据库服务

camsd     CAMS协议处理模块服务

tomcat4   TomcatWebServer服务,用于支持CAMS 配置管理台自助服务平台

Portal服务平台及内容计费认证平台等

Linux系统的所有服务程序脚本均可以在/etc/rc.d/init.d文件夹中找到,每一项服务对应一个脚本文件,如果CAMS已经安装我们可以在该文件夹下找到oracledcamsd和tomcat4这三个文件

4.6.2启动和停止服务

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

Service camsd stop

停止camsd服务

Service oracled start

启动oracled服务

Service tomcat4 start

启动tomcat4服务

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

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

CAMS在安装过程中会自动添加相关的服务在安装的最后过程中会提示用户是否启动服务使服务生效

需要注意的是一个服务被添加后并不表示该服务在系统启动过程中会自动运行仅表示可以使用service命令来启动停止服务

A.添加服务

添加服务的步骤为:

a.将该服务的脚本文件拷入/etc/rc.d/init.d文件夹下

保证其状态为可

执行:

b.使用chkconfig命令将服务添加到服务列表中

chkconfig--addcamsd   (注意有两个”-”)

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

B.删除服务

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

chkconfig--delcamsd    (注意有两个”-”)

C.设置服务自动运行

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

chkconfig--level35camsdon      (注意有两个”-”)

上面的命令将camsd服务添加到级别为35的自启动服务列表中而下面的命令则将服务camsd从级别为3

5的自启动服务列表中删除

chkconfig--level35camsdoff   (注意有两个”-”)

如果需要查看某项服务的自启动状态信息

使用如下命令即可

chkconfig--listcamsd            (注意有两个”-”)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Running Sun丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值