Linux基本命令的使用(2)

针对于VirtualBox或VMware虚拟机,Centos操作系统或 Ubuntu操作系统

目录

1、cp、ls、mv、chmod、rm、find、gzip、tar等命令(综合)

2、“;”、“&”、“||”、“&&”的使用

3、vi 或 vim 命令

4、vi 命令编辑一个shell程序并执行 


1、cp、ls、mv、chmod、rm、find、gzip、tar等命令(综合)

(1)在20181422a目录下建立文件kk.c

cd /home/yuwenbin/20181422/20181422a

touch kk.c

【结果记录】

图 1-1 建立新文件kk.c

(2)查看文件kk.c的属性

ls - tail kk.c

【结果记录】

图1-2 查看kk.c文件的属性

(3)把kk.c更名为aa.c

ls

mv kk.c aa.c

ls

【结果记录】

Linux基本命令的使用(2)_第1张图片 图 1-3 更换文件名称

(4)把文件夹20181422a下的文件aa.c拷贝到20181422目录下,文件取名为kk.c

cp -r 20181422a/ aa.c

ls

【结果记录】

图 1-4 将aa.c从目录20181422a拷贝到20181422目录下
图 1-5 拷贝文件并取名为kk.c

(5)用符号模式修改文件 kk.c 的权限,使得文件所有者为可读、可写、可执行,对组内 人及其他人可读、不可写、不可执行。用命令 ls 查看修改结果。

chmod 744 kk.c

图 1-6 修改权限,使文件kk.c所有者可读、可写、可执行,组内及其他人可读、不可写、不可执行

【结果记录】

图 1-7 用ls -l查看kk.c的属性

(6)删除文件与文件夹

rm aa.c

ls

rm -r 20181422a

ls

【结果记录】

图 1-8 删除aa.c文件
图 1-9 删除20181422a目录

(7)新建一个Linux_d目录,并设置它的权限为666

mkdir -p Linux_d

图 1-10 新建一个目录

chmod 666 Linux_d 

图 1-11 修改权限为666

(8)在指定的目录中搜索文件,利用find命令搜索含有通配符的文件*.c

Linux基本命令的使用(2)_第2张图片

Linux基本命令的使用(2)_第3张图片 图 1-12 用find命令找到所有以“*.c”为后缀的文件

(9)在根目录下用find查找.c文件

同上

(10)用gzip压缩文件/home/stu1/20181422/kk.c,再对压缩文件进行解压

sudo gzip kk.c

ls

图 1-13 压缩kk.c文件

sudo gunzip kk.c

ls

图 1-14 解压缩kk.c.gz压缩包

(11)用tar命令打包当前目录

sudo tar -cvf data.tar *

图 1-15 打包当前目录中的所有文件

【分析】

本题目中涉及到了多个命令,可以说是一个集合,而且在运用这些命令时也有很多需要注意的点以及参数的区分,所以对此游客进行网络查询以获得更多的参数信息,我大概总结了一下上述题目中的要点和注意点,如下表所示:

命令

所需参数

注意点

touch

/

该命令在某些情况下是无法进行的,需要借助sudo,超级用户状态下才能新建文件

mkdir

-p

使用该参数是为了确认新建的目录不存在的情况,如果存在则创建失败

cp

-r

若给出的源文件是一个目录文件,此时将复制该目录西下所有的子目录和文件

ls

-a

现实所有文件及其目录(.开头的隐藏文件也会列出)

-l

除文件名称外,也会将文件型态、权限、拥有者、文件大小等资讯详细列出

-tail

列出目录或文件的详细信息和属性等

mv

/

重命名文件

chmod

/

改变文件权限,即改变可读状态、可写状态、可执行状态

rm

/

删除文件

-r

删除目录

find

-name

找出所有符合的文件

gzip

/

压缩文件,且文件名称后面多出“.gz”的扩展名

gunzip

/

解压文件,复归其貌

tar

-cvf

将当前目录下的文件打包成data.tar

2、“;”、“&”、“||”、“&&”的使用

(1)用;实现多个命令date、echo、who 的顺序执行

date;echo "Hello! Linux";who;

【结果记录】

图 2-1 ;实现多个命令的执行

(2)用&实现多个命令date、echo、who的并发执行。多次执行,以观察并发执行的结果

 date & echo "Hello! Linux"& who

Linux基本命令的使用(2)_第4张图片 图 2-2 用&实现命令的并发执行

(3)用OR||和AND&&操作实现查看文件,创建文件和显示创建结果

ls sample || touch sample && echo "文件sample已经被创建"

图 2-3 用||创建文件

(4)用&&操作实现查看文件、删除文件并显示结果

图 2-4 用&&删除文件

【分析】

从上述四个小题中可以知道命令的顺序执行、并发执行都是可以用“;”、“&”、“||”、“&&”来操作的,那么执行了以后也可以知道结果和它们的用途,所以下面是我对于这个方法的总结:

方法

命令按顺序从左至右依次执行,如果某个命令执行出错了,直接跳到了下一个命令继续执行,那么这个过程中可能会出现问题,还是要注意一下的。

&

命令是同时进行的,所以显示的时候会出现不一样的布局,这是因为并发执行的时候,每个命令执行完成的时间不同。

||

忽略第一个有效命令的所有命令。如果第一个命令就成功了,那后面的都被忽略;如果第一个命令失败,则继续执行第二个,如果第二个成功了,那后面的命令就被忽略;以此类推……简单来说,就是有一个条件为真,那么其他的就不用考虑了。

&&

这个和编程语言的功能很相似,短路效果,如果某个命令执行错误,那么后面的命令全部被忽略,也就是有一个条件为假,那么其他的也就不用考虑了。

3、vi 或 vim 命令

 

(1)打开终端,在终端输入命令,然后按i键,进入插入状态

vi aboutlinux20181422

图 3-1 输入该命令

(2)输入以下文本内容

(此处文本内容可自拟)

【结果记录】

Linux基本命令的使用(2)_第5张图片 图 3-2 在插入状态下输入文本内容

(3)发出命令显示行号

:set nu  (非编辑状态下)

【结果记录】

Linux基本命令的使用(2)_第6张图片 图 3-3 用: set nu 命令显示行号

(4)保存文件,不退出

:w  (非编辑状态下)

【结果记录】

Linux基本命令的使用(2)_第7张图片 图 3-4 保存,不退出

(5)删除一句 “It is this kernel that forms the base around which a Linux operating system is developed.”。

D(大写d,必须大写,且在非编辑状态下)

【结果记录】

Linux基本命令的使用(2)_第8张图片 图 3-5 删除句子后的段落

(6)查找单词“Finland”。

/Finland  (非编辑状态下)

【结果记录】

Linux基本命令的使用(2)_第9张图片 图 3-6 查找指定单词

(7)复制第二行的内容到文档的最后

光标移到行号为1的地方,第一段开头,在非编辑的状态下按下

yy

然后光标移到第二段的最后一行,按下

p

【结果记录】

Linux基本命令的使用(2)_第10张图片 图 3-7 复制行后的结果

(8)删除第三行的内容(利用dd)

光标移到第三段开头,按下

dd

【结果记录】 

Linux基本命令的使用(2)_第11张图片 图 3-8 删除第三行后的结果

(9)恢复被删除的一行内容

u  (非编辑状态下)

【结果记录】

Linux基本命令的使用(2)_第12张图片 图 3-9 恢复被删除内容,可见左下角

(10)查找所有的“MInix”并全部改为“MINIX”。

:%s/Minix/MINIX/g

【结果记录】

Linux基本命令的使用(2)_第13张图片 图 3-10 修改全部制定单词

(11)保存并退出

指令为“:wq”

【分析】

这道题目对于用vi编辑器做了很详细的指令教程,之前对于vi编辑器的练习很少,这一次确实是一个非常好的机会,我也有了一个较为深刻的印象,但是由于其中的指令较多,还是需要多进行练习。同样的我也整理了一个表格为了自己更好的理解,如下表:

作用

指令

详细解释

打开一个编辑器

vi [name]

新建编辑

进入插入状态

i

可以输入文字等

进入命令模式

esc

命令模式下可对内容进行操作

显示行号

:set nu

使输入的内容显示行号

保存文件

:w

保存文件但不退出 vi

:w file

将修改另外保存到 file中,不退出 vi

:w!

强制保存,不退出 vi

:wq

保存文件并退出 vi

:wq!

强制保存文件,并退出

vi q:

不保存文件,退出 vi

:q!

不保存文件,强制退出 vi

删除

x:

删除光标所在字符

dw:

删除光标所在单词

dd:

删除当前行

ndd:

删除当前光标所在行开始的 n 行

D:

删除从光标所在处到行尾

查找

/单词

正向查找单词

n

向下查找

N

向上查找

复制

yy:

复制光标所在行

p:

粘贴复制的内容到光标所在行的下一行

删除

dd

删除光标所在行

恢复

u

恢复被删除的一行内容,取消当前一个动作

修改

:%s/原单词/替换单词/g

查找所有的被替换单词并全部改为替换单词

4、vi 命令编辑一个shell程序并执行 

(1)新建并编辑一个shell程序hello.sh

vi hello.sh

图 4-1 新建并编辑

【结果记录】

#!/bin/sh
echo "Mr.$USER,TODAY is:"

echo &date "+%B%d%A"

echo "Wish you a lucky day ! "

Linux基本命令的使用(2)_第14张图片 图 4-2 编辑内容

(2)执行hello.sh

【结果记录】

Linux基本命令的使用(2)_第15张图片 图 4-3 用bash执行文件

Linux基本命令的使用(2)_第16张图片 图  4-4 用sh执行文件

Linux基本命令的使用(2)_第17张图片 图 4-5 用. 执行文件

Linux基本命令的使用(2)_第18张图片 图 4-6 用source执行文件

图 4-7 直接用[./文件名]不行,解决方案↓

Linux基本命令的使用(2)_第19张图片 图 4-8 赋予用户可执行权限方可用./

(3)思考什么是shell程序,如何执行shell程序?

答:shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。即是一种命令语言,又是一种程序设计语言。shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。可以用指令“bash”、“sh”、“. ”、“source”、“./”来执行文件。

【分析】

根据指导书中的代码来看,和我之前学过的C语言和Java语言都有点像,一段程序就是输出日期和两句话,如何学习用vi编辑器来编写一个shell程序还需要多进行练习,而且我在做题目的思考题时在网上查询了很多种执行程序的方法,所以下面我就对此做一个总结和整理,作为我学习的痕迹和理解。

首先是一个权限问题,可以看到图7-2-5中我写好程序后,想和.c文件一样运行时,发现没有权限,所以用chmod u+x,表示增加用户的可执行权限,u代表user,+代表增加,x代表可执行,所以这样我就可以使用“./”来执行该程序了。

执行方式

作用

① bash

② sh

打开一个子shell来读取并执行FileName中的命令。该filename文件可以无执行权限。

shell是提供与内核沟通借口的命令解释器程序,但是shell是统称,sh全称为Bourne shell,bash全称为Bourne Again shell。两者都是shell的一种,其中bash命令是是sh命令的超集,大多数sh脚本都可以在bash下运行。Linux系统中预设默认使用的就是bash。

③ .

↑两者等效↓

④ source

在当前bash环境下读取并执行FileName中的命令,该filename文件可以无“执行权限”。source和.的效果是一样,通常用“.”替代,二者通常用于重新执行刚修改的初始化文件。

source的程序主体是bash,脚本中国的$0变量的值是bash,而且由于作用于当前bash环境,脚本中set的变量将直接起效。

⑤ ./

需要给用户赋予执行权限后,方可使用,使用方法与执行.c文件是相同 的。

你可能感兴趣的:(Linux操作系统,linux,运维,服务器)