Linux基础操作
一、基本操作命令
二、基本的系统管理命令
三、Process 处理的指令
四、字串处理的指令
五、通讯用的指令
六、Vi编辑、打包程序、安装软件
七、Shell编程
1. ls
ls最常用的参数有: -a -l 。
ls -a
Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示 一般文件名外,连隐藏文件也会显示出来。
ls -l(这个参数是字母L的小写,不是数字1)
这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。例如我在某个目录下键入ls -l可能会显示如下信息(最上面两行是我自己加的):
位置1 2 3 4 5 6 7
文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名
drwx------ 2 Guest users 1024 Nov 21 21:05 Mail
-rwx--x--x 1 root root 89080 Nov 7 22:41 tar*
-rwxr-xr-x 1 root bin 5013 Aug 15 9:32 uname*
lrwxrwxrwx 1 root root 4 Nov 24 19:30 test.txt
2. cd命令
切换目录
[root@lx138.cOm ~]# echo $HOME //查看HOME录入位置
/root
[root@lx138.cOm ~]# pwd //显示当前目录
/root
[root@lx138.cOm ~]# cd Desktop/ //切换到Desktop目录
[root@lx138.cOm Desktop]#
范例2:返回上级目录
[root@lx138.cOm /opt]# cd ..
[root@lx138.cOm /]#
范例3:后退到上次目录
[root@lx138.cOm /opt]# cd /home
[root@lx138.cOm /home]# cd -
/opt
3. mkdir、rmdir命令
mkdir命令用来建立新的目录,rmdir用来删除空目录。
例如 mkdir 目录名 ; rmdir 目录名
4. cp命令
这个命令是copy作用 cp -r 源文件(source) 目的文件(target)
参数r是指连同元文件中的子目录一同拷贝。
5. rm命令
这个命令是用来删除文件或目录的,rm命令常用的参数有三个: -i,-r,-f。
比如我现在要删除一个名字为text的一个文件:
rm -i test
rm -r 目录名
这个操作可以连同这个目录下面的子目录都删除,功能上和rmdir相似。
rm -f 文件名(目录名)
这个操作可以进行强制删除。
6. mv命令
这个命令的功能是移动目录或文件,当使用该命令来移动目录时,他会连同该目录下面的子目录也一同移走。另外因为linux下面没有rename的命令,所以如果想给一个文件或目录重命名时可以用以下方法:
mv 原文件(目录)名 新的文件(目录)名
7. du,df命令
du命令可以显示目前的目录所占的磁盘空间,df命令可以显示目前磁盘剩余的磁盘空间。
如果du命令不加任何参数,那么返回的是整个磁盘的使用情况,如果后面加了目录的话,就是这个目录在磁盘上的使用情况。du,因为它给出的信息是在是太多了,df这个命令最常用的。
8. cat命令
这个命令是linux中非常重要的一个命令,它的用法如下:
cat text 显示text这个文件
cat file1 file2 依顺序显示file1,file2的内容
9. more,less命令
这是两个显示一般文本文件的指令。
如果一个文本文件太长了超过一个屏幕的画面,用cat来看实在是不理想,就可以试试more和less两个指令。more指令可以使超过一页的文件临时停留在屏幕,等你按任何的一个键以后,才继续显示。而less除了有more的功能以外,还可以用方向键往上或网下的滚动文件。
10. clear命令
这个命令是用来清除屏幕的,它不需要任何参数,和dos下面的clr具有相同的功能,如果你觉得屏幕太紊乱,就可以使用它清除屏幕上的信息。快捷键Ctrl + l也可以清屏
11. pwd命令
这个命令的作用是显示用户当前的工作路径。
12. ln命令
为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是: ln -s 源文件 目标文件
13. man命令
man实际上就是察看指令用法的help,man是manual(手册)的缩写字。
14. mount命令
装载命令,格式如下:mount -t 文件系统类型 设备名 装载目录 文件系统类型就是分区格式,Linux支持的文件系统类型有许多:
15.umonut 卸载
卸载:umonut 目录名,例如要卸载软盘,可输入命令umonut /mnt/floppy。要注意的是,在卸载光盘之前,直接按光驱面板上的弹出键是不会起作用的。
系统管理基本上可以分为两种,一种是root(系统管理员)对linux的系统管理部分,root本身的职责就是负责整个linux系统的运行稳定,增加系统安全性,校验使用者的身份,新增使用者或删除恶意的使用者,并明确每一个在机器上的使用者权限等等。另一种就是每一个使用者(包括root)对自己文件的权限管理。因为linux是多用户多任务系统,每一个使用者都有可能将其工作的内容或是一些机密性的文件放在Linux工作站上,所以对每个文件或是目录的归属和使用权,都要有非常明确的规定。下面我就按管理员和一般用户分类来介绍基本的系统管理命令。
l 管理员使用的系统管理指令
1. adduser命令
新增使用者账号的命令,如果你想新增一个叫做jack的用户,那么需在控制台下输入:
adduser jack
这样就增加了一个名字为jazk的用户,要注意这里对大小写是敏感的。另外,新增的用户是没有口令的,你还应当为用户设置口令或者是吩咐用户在第一次登录系统的时候为自己设置口令。
2. passwd命令
这个命令可以修改特定用户的口令,使用格式是:
passwd 用户名
这是,系统会提示你输入新密码,你输入第一遍后,还要输入第二遍进行确认。输入两遍相同的密码之后,系统就接受了新的密码。如果这个命令是一般用户来使用的话,那就只能改变它自己的密码。
3. find,whereis,locate命令
这三个命令都是用来查找文件的,使用格式是:
find 路径名称 -name 文件名 参数(我们这里就不讨论参数了)
whereis 文件名
locate 文件名
一般来说,find命令功能最为强大,但是对硬件的损耗也是最大的,当你使用find去查找你个文件时,你会发现硬盘等在不停的闪动,这就意味着你的硬盘可能会比别人的少用个三四年。当你使用whereis或locate去查找文件时,你会发现硬盘却是安安静静的,这是因为这两个命令是从系统的数据库中查找文件,而不是去拼命的读硬盘。所以,如果平常你只是想找一些笑文件的话,使用whereis或locate就可以了,如果你是要进行系统管理的工作,那么使用find再加上一些参数就可以满足你的要求了。
4. su命令
这个命令可以让普通用户变成具有管理员权限的超级用户(superuser),只要它知道管理员的密码就可以。多用户多任务系统的强调的重点之一就是系统的安全性,所以应避免直接使用root身份登录系统去做一些日常性的操作,因为时间一久root密码就有可能被知道而危害到系统安全。所以平常应避免用root身份登录,即使要管理系统,也请尽量使用su指令来临时管理系统,然后记住定期的更换root密码。
假如你现在是以一个普通用户的身份登录系统,现在你输入:
su
系统会要求你输入管理员的口令,当你输入正确的密码后,就可以获得全部的管理员权限,这是你就是超级用户(superuser)。但你执行完各种管理操作以后,只要输入logout或者exit就可以退回到原先的那个普通用户的状态。
su 只能切换到管理员用户权限,不使用管理员的登陆脚本和搜索路径
su - 不但能切换到管理员权限而且使用管理员登陆脚本和搜索路径
5. shutdown,halt命令
这两个命令是用来关闭linux操作系统的。
使用shutdown关闭系统的时候有以下几种格式:
shutdown (系统内置2分钟关机,并传送一些消息给正在使用的user)
shutdown -h now (下完这个指令,系统立刻关机)
shutdown -r now (下完这个指令,系统立刻重新启动,相当于reboot)
shutdown -h 20:25 (系统会在今天的20:25关机)
shutdown -h +10 (系统会在十分钟后关机)
如果在关机之前,要传送信息给正在机器上的使用者,可以加"-q"的参数,则会输出系统内置的shutdown信息给使用者,通知他们离线。
halt命令其效果和shutdown -h now是完全一样的。
6. reboot命令
用来重新启动系统的。
l 普通用户使用的系统管理指令
1. chown命令
这个命令的作用是改变文件的所有者。
2. chmod命令
这个命令用来改变目录或文件的属性,是linux中一个应当熟悉的命令。
例如,我想把一个文件test.list的属性设置为rwxr-x---,那么我只要执行:
chmod 750 test.list
1. ps
ps 是用来显示目前你的 process 或系统 processes 的状况。
以下列出比较常用的参数:
其选项说明如下:
-a 列出包括其他 users 的 process 状况。
-u 显示 user - oriented 的 process 状况 。
-x 显示包括没有 terminal 控制的 process 状况 。
-w 使用较宽的显示模式来显示 process 状况 。
我们可以经由 ps 取得目前 processes 的状况,如 pid , running state 等。
2. kill
杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。 首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:
# kill -pid
注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。
确定要杀死进程的PID或PPID
# ps -ef | grep httpd
以优雅的方式结束进程
# kill -l PID
-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。
TERM信号
给父进程发送一个TERM信号,试图杀死它和它的子进程。
# kill -TERM PPID
killall命令
killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
# killall httpd
停止和重启进程
有时候只想简单的停止和重启进程。如下:
# kill -HUP PID
该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。
绝杀 kill -9 PID
同样的 kill -s SIGKILL
这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。
如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。
1. echo
echo 是用来显示一字串在终端机上。□ echo -n 则是当显示完之後不会有跳行的动作。
2. grep/fgrep
grep 为一过滤器,它可自一个或多个档案中过滤出具有某个字串的行,或是自标准输入过滤出具有某个字串的行。
fgrep 可将欲过滤的一群字串放在某一个档案中,然後使用 fgrep 将包含有属於这一群字串的行过滤出来。
grep 与 fgrep 的用法如下:
grep [-nv] match_pattern file1 file2 ....
fgrep [-nv] -f pattern_file file1 file2 ...
-n 把所找到的行在行前加上行号列出
-v 把不包含 match_pattern 的行列出
match_pattern 所要搜寻的字串
-f 以 pattern_file 存放所要搜寻的字串
1. write
这个指令是提供使用者传送讯息给另一个使用者,使用方式:
write username [tty]
2. talk/ytalk/cytalk/ctalk
UNIX 专用的交谈程式。会将萤幕分隔开为你的区域和交谈对象的区域,同时也可和不同机器的使用者交谈。使用方式:
talk username[@host] [tty]
3. mesg
选择是否接受他人的 messege , 若为 messege no 则他人的 messege 将无法传送给你,同时他也无法干扰你的工作。使用方法:
mesg [-n|-y]
4. mail/elm
在网路上的 email 程式,可经由此程式将信件 mail 给他人。 使用方式:
mail [username]
mail -f mailboxfile
如有信件,则直接键入 mail 可以读取你的 mail .
elm 提供较 mail 更为方便的介面,而且可做线上的 alias . 你可以进入 elm使用上下左右键来选读取的信件,并可按 h 取得线上的 help 文件。
使用方式:
elm [usernmae]
elm -f mailboxfile
六、Vi编辑、打包程序、安装软件
这里我会为大家介绍Linux世界里最常用的几种工具软件,包括:vi, tar, gzip, rpm。
1. vi编辑
vi是Linux(UNIX)世界最强大的文本编辑工具,我在第一讲中提到过它,现在我把它的一些基本使用方法介绍给大家。
Vi的三种状态
n Command mode : 控制游标移动,字元或游标之删除,搬移复制某区段及进入 Insert mode 下,或者到 Last line mode 。
n Insert mode : 唯有在 Insert mode 下, 才可做文字资料输入,按Esc键可到 Command mode 。
n Last line mode : 将档案写入或离开编辑器,亦可设定编辑环境, 如寻找字串、列出行号..等。
vi 的基本操作
u 进入 vi
1. 在系统提示符号下输入 vi 及档案名称後即进入 vi 全萤幕编辑画面,且在 Command mode 下。
u 切换至 Insert mode 编辑文件:
在 Command mode 下可按 'i' 或 'a' 或 'o' 三键进入 Insert mode。
u 离开 vi 及存档:
在 Command mode 下可按 ':' 键进入 Last line mode,
:w filename (存入指定档案)
:wq (写入并离开 vi)
:q! (离开并放弃编辑的档案)
Command mode 下功能键简介
1. 进入 Insert mode
i : 插入, 从目前游标所在之处插入所输入之文字。
a : 增加, 目前游标所在之下一个字开始输入文字。
o : 从新的一行行首开始输入文字。
2. 移动游标
h、j、k、l : 分别控制游标左、下、上、右移一格。
^b : 往後一页。
^f : 往前一页。
G : 移到档案最後。
0 : 移到档案开头。
3. 删除
x : 删除一个字元。
#x : 例, 3x 表删除 3 个字元。
dd : 删除游标所在之行。
#dd : 例, 3dd 表删除自游标算起之 3 行。
4. 更改
cw : 更改游标处之字到字尾 $ 处。
c#w : 例, c3w 表更改 3 个字。
5. 取代
r : 取代游标处之字元。
R : 取代字元直到按 为止。
6. 复制
yw : 拷贝游标处之字到字尾。
p : 复制(put)到所要之处。(指令 'yw' 与 'p' 必须搭配使用。)
7. 跳至指定之行
^g : 列出行号
#G : 例, 44G 表移动游标至第 44 行行首。
Last line mode 下指令简介
注意: 使用前请先按 键确定在 Command mode 下。按 ':' 或 '/' 或 '?' 三键即可进入 Last line mode。
1. 列出行号 :set nu (可用 :set all 列出所有的选择项。)
2. 寻找字串 /word (由首至尾寻找) ?word (由尾至首寻找)
2. 打包程序
tar,gzip的使用方法
1) 压缩一组文件为tar.gz后缀。
# tar cvf backup.tar /etc
#gzip -q backup.tar
或
# tar cvfz backup.tar.gz /etc
2) 释放一个后缀为tar.gz的文件。
#gunzip backup.tar.gz
#tar xvf backup.tar
或
# tar xvfz backup.tar.gz
3) 用一个命令完成压缩
#tar cvf - /etc/ | gzip -qc > backup.tar.gz
4) 用一个命令完成释放
# gunzip -c backup.tar.gz | tar xvf –
5) 如何解开tar.Z的文件?
# tar xvfz backup.tar.Z
或
# uncompress backup.tar.Z
#tar xvf backup.tar
6) 如何解开.tgz文件?
#gunzip backup.tgz
7) 如何压缩和解压缩.bz2的包?
#bzip2 /etc/smb.conf
这将压缩文件smb.conf成smb.conf.bz2
#bunzip2 /etc/smb.conf.bz2
这将在当前目录下还原smb.conf.bz2为smb.conf
注: .bz2压缩格式不是很常用,你可以man bzip2
3. 安装软件
RPM是世界著名的Red Hat公司推出的一种软件包安装工具,全称为Redhat Package Manager。RPM的出现提供了一种全新的软件包安装方法,在方便性上甚至超过了微软的Windows。下面介绍一下RPM的基本使用方法。
1) 安装一个包
# rpm -ivh < rpm package name>
2) 升级一个包
# rpm -uvh < rpm package name>
3) 移走一个包
# rpm -e < rpm package name>
4) 安装参数
--force 即使覆盖属于其它包的文件也强迫安装
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
5) 查询一个包是否被安装
# rpm -q < rpm package name>
6) 得到被安装的包的信息
# rpm -qi < rpm package name>
7) 列出该包中有哪些文件
# rpm -ql < rpm package name>
8) 列出服务器上的一个文件属于哪一个RPM包
#rpm -qf 文件名称
9) 可综合好几个参数一起用
# rpm -qil < rpm package name>
10) 列出所有被安装的rpm package
11)更好用的yum命令
Redhat和Fedora的软件安装命令是rpm,但是用rpm安 装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,令人高兴的是,Fedora终于推出了类似于ubuntu中的apt的命令yum,令Fedora的软件安装变得简单容易
$yum localinstall wine-*
这样的话,yum会自动安装所有的依赖关系,而不用rpm一个一个的安装了,省了好多工作。
还有一个与他类似的参数:
$yum localupdate wine-*
如果有wine的新版本,而且你也下载到来本地,就可以这样本地更新wine了。)
1.列出所有可更新的软件清单
命令:yum check-update
2.安装所有更新软件
命令:yum update
3.仅安装指定的软件
命令:yum install
4.仅更新指定的软件
命令:yum update
5.列出所有可安裝的软件清单
命令:yum list
3.使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的。
安装的命令是,yum install xxx
# rpm -qa < rpm package name>
Shell不但作为命令语言交互式地解释和执行用户输入的命令,还可以用来进行程序设计,它提供了定义变量和参数的手段以及丰富的程序控制结构。
1.shell基本语法
(1)输入输出重定向
可以利用“>”和“<”来进行输入输出重定向。如:
command>file:将命令的输出结果重定向到一个文件。
command>&file:将命令的标准错误输出一起重定向到一个文件。
command>>file:将标准输出的结果追加到文件中。
command>>&file:将标准输出和标准错误输出的结构都追加到文件中。
(2)管道pipe
可以将某一个程序的输出送到另一个程序的输入,其语法如下:
command1| command2[| command3...]
也可以连同标准错误输出一起送入管道:
command1| &command2[|& command3...]
(3)前台和后台
在shell下面,一个新产生的进程可以通过用命令后面的符号“;”和“&”来分别以前台和后台的方式来执行,语法如下:
command
产生一个前台的进程,下一个命令须等该命令运行结束后才能输入。
command &
产生一个后台的进程,此进程在后台运行的同时,可以输入其他的命令。
2。shell程序的变量和参数
像高级程序设计语言一样,shell也提供说明和使用变量的功能。对shell来讲,所有变量的取值都是一个字符串,shell程序采用$var的形式来引用名为var的变量的值。
Shell有以下几种基本类型的变量:
(1)shell定义的环境变量
常用的shell环境变量有:
HOME:用于保存注册目录的完全路径名。
PATH:用于保存用冒号分隔的目录路径名,shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。
TERM:终端的类型。
UID:当前用户的标识符,取值是由数字构成的字符串。
PWD:当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。
(2)用户定义的变量
用户可以按照下面的语法规则定义自己的变量:
变量名=变量值
要注意的一点是,在定义变量时,变量名前不应加符号“$”,在引用变量的内容时则应在变量名前加“$”;在给变量赋值时,等号两边一定不能留空格,若变量中本身就包含了空格,则整个字符串都要用双引号括起来。
(3)位置参数
位置参数是在程序名之后输入的参数。位置参数之间用空格分隔,shell取第一个位置参数替换程序文件中的$1,第二个替换$2,依次类推。$0是一个特殊的变量,它的内容是当前这个shell程序的文件名,所以,$0不是一个位置参数,在显示当前所有的位置参数时是不包括$0的。
(4)预定义变量
预定义变量和环境变量相类似,也是在shell一开始时就定义了的变量,所不同的是,用户只能根据shell的定义来使用这些变量,而不能重定义它。所有预定义变量都是由$符和另一个符号组成的,常用的shell预定义变量有:
$#:位置参数的数量
$*:所有位置参数的内容
$?:命令执行后返回的状态
$$:当前进程的进程号
$!:后台运行的最后一个进程号
$0:当前执行的进程名
其中,“$?”用于检查上一个命令执行是否正确(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错)。
“$$”变量最常见的用途是用作临时文件的名字以保证临时文件不会重复。
(5)参数置换的变量
语法和功能分别如下
a. 变量=${参数-word}:如果设置了参数,则用参数的值置换变量的值,否则用word置换。即这种变量的值等于某一个参数的值,如果该参数没有设置,则变量就等于word的值。
b. 变量=${参数=word}:如果设置了参数,则用参数的值置换变量的值,否则把变量设置成word然后再用word替换参数的值。注意,位置参数不能用于这种方式,因为在shell程序中不能为位置参数赋值。
c. 变量=${参数?word}:如果设置了参数,则用参数的值置换变量的值,否则就显示word并从shell中退出,如果省略了word,则显示标准信息。这种变量要求一定等于某一个参数的值,如果该参数没有设置,就显示一个信息,然后退出,因此这种方式常用于出错指示。
d. 变量=${参数+word}:如果设置了参数,则用word置换变量,否则不进行置换。
所有这四种形式中的“参数”既可以是位置参数,也可以是另一个变量,只是用位置参数的情况比较多。
三、流控制结构
1.if then else 语句
if 条件1 #如果条件1为真
then #那么
command1 #执行命令1
elif 条件2 # 如果条件2为真
then #那么
command2 # 执行命令2
else #如果条件1和条件2都不成立
command3 执行命令3
fi #完成(if 语句一定要以fi结束)
举例说明:
if [ "13" -lt "11"] #如果13小于11
then #那么
echo "13<11" #输出"13<11"
elif["13" -lt "12"] #如果13小于12
then # 那么
echo "13<12" #输出"13<12"
else #否则
echo "13>=12" #输出"13>=12"
2.case语句
case 值 in
模式1) #如果模式1匹配
命令1 #执行命令1
;;
模式2) #如果模式2匹配
命令2 #执行命令2
;;
*) #如果以上模式都不匹配
命令3 #执行命令3
;;
esac #结束case语句
case取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至;;。模式匹配符号*表示匹配任意字符。[。。]表示类或者范围中的任意字符。
举例说明:
case $A in
1) #如果A的值为1
echo "A =1" #输出“A=1”
;;
2) #如果A的值为2
echo "A=2" #输出“A=2”
;;
[34]) #如果A的值为3或4
echo "A=3|4" #输出“A=3|4”
;;
esac #结束
3.for循环
for 变量名 in 列表
do
命令1
命令2
done
当变量值在列表里,for 循环即执行一次所有命令,使用变量名访问列表取值。命令可为任何有效的shell命令和语句。变量名为任何单词。in列表用法是可选的,如果不用它,for循环使用命令行的位置参数。in列表可以包含替换,字符串和文件名
举例说明:
for loop in 1 2 3 4 5 #在1 2 3 4 5列表中循环(5次)
do #开始执行命令
echo "hello" #执行命令
done #完成
for loop in "one two three" #当成一个元素只循环一次
do
echo $loop
done #输出 one two three 一行
for loop in one two three #三次循环
do
echo $loop
done
#输出 one
two
three
列表可以是文件,如:for loop in `cat myfile`
4.until循环
until 条件
do
命令1
命令2
done
条件可为任何测试条件,若刚开始条件就为真,则不执行循环。
5.while循环
while 命令
do
命令1
命令2
......
done
举例说明:while read LINE <myfile #每次读取myfile 中的一行
do
echo $LINE #输出每行的信息
done
6.break控制
break [n] #跳出n层循环
举例说明:
for loop in 1 2 3
done
echo ${loop}
for loop in one two three
do
echo ${loop}
//break /break 2 /continue #这三个命令替换测试
echo ${loop}+
done
done
若为break,则输出 1 one 2 one 3 one
若为break 2 则输出 1 one
若为continue 则输出1 one two three 2 one two three 3 one two three (每次输出都有换行)注意:echo ${loop}+没有执行
7.continue控制
强制进入下一次循环 如上例子