Linux-C P1 Linux基础与Vi操作

Linux-C P1 Linux基础与Vi操作

Linux基础

Unix与Linux

什么是Linux,怎么又多出了一个Unix

Unix是什么?


在知道它是什么之前,我们先来了解一下它是怎么来的
1969年,在kenthompson在AT&T贝尔实验室出生,说的是汇编语言
1973年,KenThompson和DennisRitchie教会了它C语言,让它走了出去正式面向大众。

Unix是干什么的?

首先它是一个操作系统,除了可以作为网络操作系统,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,目前主要用于工程应用和科学计算等领域

现在UNIX系统的用户日益增多,应用范围也日益扩大。无论在各种类型的微型机、小型机,还是在中、大型计算机,以及在计算机工作站甚至个人计算机上,很多都已配有UNIX系统。不仅新推出的机型配有UNIX系统,而且一些历史较久的生产厂商,也竞相将原有机型配上UNIX系统以便打开销路、争取市场。

那么Linux呢?

在这里插入图片描述
当然,Linux也是一种操作系统,但是比Unix出生的要晚。
1991年,芬兰赫尔辛基大学的学生Linux Torvals为了能在家里的PC机上使用与学校一样的操作系统,开始编写了类UNIX.

是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统,反正很好用就对了。。。

Linux的兄弟姐妹

在这里插入图片描述

Red Hat(红帽)公司(NYSE:RHT)是一家开源解决方案供应商,也是标准普尔500指数成员,是我们比较熟知的一个Linux发行版本

在这里插入图片描述

CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成,跟Red Hat好像还挺亲的

在这里插入图片描述

接下来就是我们之后一直会用的Ubuntu,Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。
从前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。
哈哈,所以我们就开始使用它吧!

Linux基本操作

在好好的玩耍之前

在快乐的玩耍之前我们首先需要一个Ubuntu系统,这个吗?去官网下或者自行百度。
然后呢?有了它之后,我们的PC一般都是windows的吧!所以我们需要一个虚拟机来运行我们的Ubuntu
在这里插入图片描述

好的,我们就下了VMware(软件安装管家可以了解一下),然后一顿操作之后我们就可以在虚拟机上运行我们的Ubunto了,好的我们可以开始玩耍了。
在这里插入图片描述
在这里插入图片描述
VMware:

命令终端

然后我们就进入到Ubunto的操作界面了!!!

好兴奋啊!我们要开始编程了吗?
还没,我们要先进入命令终端,知道怎么使用它之后。。。
因为是图像界面吗,所以可以直接点击打开
在这里插入图片描述
在这里插入图片描述
你是不是觉得这样一点都不高级,一点都不快捷啊
所以我们来点有趣的
Ctrl + Alt + T
我们就能打开一个终端了(Terminal是终端的英文容易记快捷键哦TTTTT)
在这里插入图片描述
这样我们就又打开了一个终端
接着我们可以再用用
Ctrl + Shift +T
我们就在同一终端打开了一个标签
在这里插入图片描述
好的,知道如何花式打开终端之后,我们就要开始看看如何使用终端

基本操作

在这里插入图片描述

目录处理(pwd/cd/ls)
内容
命令名称pwd
命令格式pwd [OPTION] …
命令功能用于显示当前的工作目录
OPTION-L 从环境中使用pwd,即使它包含符号链接
-P 避免所有符号链接
–help 显示该帮助并退出
–version 显示版本信息并退出

在使用中pwd的常见用法就是用来查看当前所在目录
在这里插入图片描述


内容
命令名称cd
命令格式cd [dirname]
命令功能用于切换当前目录到目标目录
dirname要切换的目标目录

cd的基本用法实例
回到家目录

cd

回到上一级目录

cd ..

回到上一目录

cd -

到指定目录

cd ./pyystd/level2

在这里插入图片描述


内容
命令名称ls
命令格式ls [OPTION] [FILE]
命令功能显示指定工作目录下的内容
OPTION-a 显示所有文件及目录
-l 除文件名称外,将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-R 若目录下有文件,则以下之文件亦皆依序列出
FILE指定目录(为空是当前目录)

ls的基本用法实例
显示当前目录内容

ls

显示以d开头的目录及目录下的所有文件

ls d*

显示所有文件目录

ls -a

若目录下有文件,则依次列出

ls -l

列出目录下文件及其详细信息

ls -r

以相反次序显示目录

ls -t

建立时间先后顺序显示

ls -R

列出指定地址里的目录

ls ./day2

在这里插入图片描述

在这里插入图片描述

查看文件内容(cat/head/tail)
内容
命令名称cat
命令格式cat [OPTION] [FILE]
命令功能
OPTION-n 由 1 开始对所有输出的行数编号
-b 和 -n 相似,只不过对于空白行不编号
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
FILE指定目录(为空是当前目录)

cat基本用法实例
显示文件内容

cat hello.c

对文件进行行编号显示

cat -n hello.c

对文件进行行编号显示,空行不标号

cat -b hello.c

当遇到有连续两行以上的空白行,就代换为一行的空白行

cat -b hello.c

在这里插入图片描述


内容
命令名称head
命令格式head [OPTION] [FILE]
命令功能连接文件并打印从头开始的指定内容到标准输出设备上
OPTION-c 打印每个文件的前c个字节
-n 打印每个文件的前n行内容
-q 不显示处理信息
-v 显示详细的处理信息
FILE指定目录(为空是当前目录)

head基本用法实例
默认显示文件前10行

head s2.c

显示文件前100字节

head -c 100 s2.c

显示文件前20行

head -n 20 s2.c

显示详细的处理信息再默认显示前10行

head -v s2.c

在这里插入图片描述


内容
命令名称tail
命令格式tail [OPTION] [FILE]
命令功能连接文件并打印从后开始的指定内容到标准输出设备上
OPTION-c 打印每个文件的后c个字节
-n 打印每个文件的后n行内容
-q 不显示处理信息
-v 显示详细的处理信息
FILE指定目录(为空是当前目录)

tail的基本用法实例

默认显示文件后10行内容

tail s2.c

显示文件后200字符

tail -c 200 s2.c

显示文件后20行

tail -n 20 s2.c

显示文件的详细信息

tail -v s2.c

在这里插入图片描述

文件处理(touch/rm/mv/cp)
内容
命令名称touch
命令格式touch [OPTION] [FILE]
命令功能创建一个文件或修改文件的属性
OPTION-a 改变档案的读取时间记录
-m 改变档案的修改时间记录
-c 假如目的档案不存在,不会建立新的档案
-f 不使用,是为了与其他 unix 系统的相容性而保留
-r 使用参考档的时间记录,与 --file 的效果一样
-d 设定时间与日期,可以使用各种不同的格式
-t 设定档案的时间记录
FILE指定目录(为空是当前目录)

touch的基本用法实例
创建文件

touch a.c

在这里插入图片描述


内容
命令名称rm
命令格式rm [OPTION] [FILE]
命令功能删除一个文件或目录
OPTION-i 删除前逐一询问确认
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r 将目录及以下之档案亦逐一删除(用于删除目录)
FILE指定目录(为空是当前目录)

rm的基本用法实例

删除文件

rm a.c

删除文件时查询

rm -i a.c

删除文件夹

rm -rf afile

在这里插入图片描述


内容
命令名称mv
命令格式mv [OPTION] 文件名 文件名 将源文件名改为目标文件名
mv [OPTION] 文件名 目录名 将文件移动到目标目录
mv [OPTION] 目录名 目录名 目标目录已存在,将源目录移动到目标目录
命令功能用来为文件或目录改名或将文件或目录移入其他位置
OPTION-i 若指定目录已有同名文件,则先询问是否覆盖旧文件
-f 在mv操作要覆盖某已有的目标文件时不给任何指示

mv的基本用法实例
将文件的文件名aaa改为bbb

mv aaa bbb

将文件aaa移到unit4目录下

mv aaa ./unit4

将目录aaa移到unit4目录下

mv ./aaa ./unit4

在这里插入图片描述


内容
命令名称cp
命令格式cp [OPTION] sourse dest
命令功能用于复制文件或目录
OPTION-a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-d 复制时保留链接
-f 覆盖已经存在的目标文件而不给出提示
-i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-l 不复制文件,只是生成链接文件
sourse源文件地址
dest目标文件地址

cp的基本用法实例
复制文件aaa到unit1目录

cp aaa ./unit1

在这里插入图片描述

复制目录aaa到unit1目录

cp -r aaa ./unit1

在这里插入图片描述

创建文件夹(mkdir)
内容
命令名称mkdir
命令格式mkdir [OPTION] dirname
命令功能建立名为dirname的子目录
OPTION-m 设置建立模式
-p 确保目录名称存在,不存在的就建一个
-v 为每个创建的文件夹打印一条消息
dirname文件夹的名称

mkdir的基本用法实例
创建文件夹

mkdir aaa

在这里插入图片描述

帮助文档(man)
内容
命令名称man
命令格式man [章节] [内容]
命令功能在线参考手册
章节
1标准用户命令
2系统调用
3库函数
4特殊文件(设备文件)的访问入口
5文件格式(配置文件的语法),指定程序的运行特性
6游戏
7杂项
8管理命令
9跟kernel有关的文件
内容需要查询帮助的内容
手册格式NAME 命令名称及功能简要说明
SYNOPSIS 用法说明,包括可用的选项
DESRIPTION 命令功能的详细说明,可能包括每一个选项的意义
OPTIONS 说明每一项的意义
FILES 此命令相关的配置文件
BUGS
EXAMPLES 使用示例
SEE ALSO 另外参照

man 的基本用法实例
查询ls参考手册

man ls

在这里插入图片描述

对了,记得按q键退出帮助查询界面哦


vim由于要讲的东西很多,我们就单独放在后面详细讲讲
不过这里我可以先查查它的参数手册

man vi

在这里插入图片描述

vi操作

vi是什么呢?
在上一节中我们已经通过man命令查看一下它的参考手册,但是还是一头雾水是不是。
现在我们就来正式介绍它
我们的vi编辑器
vi编辑器是所有Unix及Linux系统标准的编辑器,它的强大不逊色于任何最新的文本编辑器
下面是它的键盘图欣赏一下(瑟瑟发抖)
在这里插入图片描述
当然这里不会讲解所有的命令,会讲解一些常用和好用的命令,其他的大家可以自己去扩展,有机会以后补充哦(主要是有些作者其实也不太会用-


好的,好的,我们进入正题,下面的思维导图给大家理清了整个结构和我要讲解的内容,大家可以先大致了解一下vi的一些基本操作
在这里插入图片描述
可以看出在vi编辑器下,我们大致可以分为三种模式,也就是命令行模式(Command mode)底行模式(Last line mode)输入模式(Insert mode)


命令行模式(Command mode):在命令行模式下用户可以输入命令来控制屏幕光标的移动,删除字符、单词或行,移动复制某区段,也可以进入到底行模式或者输入模式
在这里插入图片描述


底行模式(Last line mode):用户可以将文件保存或退出vi,也可以设置编辑环境,如查找字符串、显示行号等。
在这里插入图片描述


输入模式(Insert mode):用户只有在这个模式下才可以进行字符串输入
在这里插入图片描述

刚刚了解了三种模式,但是我们怎么才能进入vi编辑器呢?我们又该如何在不同的模式之间进行切换呢?不同模式又该如何使用呢?
可怕的三连问可难不倒我,现在就来一一进行解答

模式切换

在这里插入图片描述

首先让我们看看该如何进入和退出vi编辑器

进入和退出Vi编辑模式

进入vi编辑器
让我们先来到熟悉的命令终端
在这里插入图片描述
进入vi编辑器

vi test1.c

在这里插入图片描述
这样 我们就进入到vi编辑器了,同时当我们进入到vi编辑器之后,我们所处的默认模式就是命令行模式
除了这么直接的进入方法之外,还可以稍微扩展一下
在命令终端输入

vi test1.c +3

在这里插入图片描述
这样在我们进入vi编辑器的同时,光标会定位到指定的位置,这种用法一般在进行改错的时候比较常用,某行出了问题可以直接跳转过去(是不是很方便啊!!!)
在这里插入图片描述

退出vi编辑器
既然已经进来了,现在就来看看怎么出去
出去方法也有好几种,看你想怎么出去咯


普通的编辑结束,退出vi
在这里插入图片描述
这样就退出到命令终端了
在这里插入图片描述


不保存编辑过的文档,退出vi
在这里插入图片描述
在这里插入图片描述


保存文档
在这里插入图片描述
在这里插入图片描述


保存文档并退出
关于保存文档有两种方法,效果都是一样的,大家可以根据爱好自行选择使用
在这里插入图片描述
在这里插入图片描述

命令行模式(或底行模式)与输入模式切换

命令行模式(底行模式)——> 输入模式
在正式介绍之前,我们先来看个表格

指令作用
a从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动
A从光标所在列最后面的地方开始新增资料
i从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动
I从光标所在列的第一个非空白字符前面开始输入资料
o在光标所在列下新增一列,并进入输入模式
O在光标所在列上方新增一列,并进入输入模式

看过之后对于进入输入模式应该有了初步了解,接下来就来详细说说
在这里插入图片描述
在命令行模式下输入a
在这里插入图片描述
在命令行模式下输入A
在这里插入图片描述


然后我们在同样的位置
在命令行模式下输入i
在这里插入图片描述
在命令行模式下输入I
在这里插入图片描述
使用这个命令是不是觉得很方便添加注释


在命令行模式下输入o
在这里插入图片描述
在命令行模式下输入O
在这里插入图片描述


好的这里我们总结一下,方便大家记忆
在这里插入图片描述

输入模式——>命令行模式(底行模式)

相对于命令行模式(底行模式)——> 输入模式,那么切换回去就相对简单了
在这里插入图片描述
只需要输入ESC(键盘左上角的那个)就能回到命令行模式
在这里插入图片描述

命令行模式与底行模式切换

在vi编辑器下,这两个模式的区别其实不大,只需要输入:,命令行模式就会切换到底行模式等待底行命令的输入
在这里插入图片描述
光标就会移动到底行
是不是很简单呢!

介绍完模式之间的切换,我们来看看各个模式都能干什么解决最后一个问题

模式操作

在这里插入图片描述
我们先通过思维导图来初步了解一下

命令行模式

在这里插入图片描述

删除
如果我们想在命令行模式对内容进行删除操作
那么就输入s,删除光标所在的字符,并进入输入模式
在这里插入图片描述
这样就完成了字符的删除以及模式的切换
在命令行模式输入S,删除光标所在的行,并进入输入模式
在这里插入图片描述

指令作用
s删除光标所在的字符,并进入输入模式
S删除光标所在的行,并进入输入模式

剪切
在介绍剪切之前需要先介绍两个简单的命令
这两个命令使用,才能更好的观察剪切命令的使用效果
为了演示效果我们假设已经复制了该行
一个是p,将缓冲区的字符黏贴到光标所在的位置
在这里插入图片描述
一个是u,取消上一次的文本编辑操作
在这里插入图片描述
我们之前复制的操作就被取消了,并在底行给出了信息

命令作用
p将缓冲区的字符黏贴到光标所在的位置
u取消上一次的文本编辑操作

介绍完他们开始正式介绍剪切
在这里插入图片描述
在命令行模式输入nx,剪切从光标所在的字符开始的n个字符
在这里插入图片描述
在命令行模式输入ncb,剪切光标所在的前n个单词
在这里插入图片描述
在命令行模式输入ncw,剪切光标所在的后n个单词
在这里插入图片描述
在命令行模式输入c$,剪切从光标所在的字符到行尾的所有字符
在这里插入图片描述
在命令行模式输入ndd,剪切自光标所在的行开始的n行,到结尾不足n行,则至结尾
在这里插入图片描述

命令作用
nx剪切从光标所在的字符开始的n个字符
ncb剪切光标所在的前n个单词
ncw剪切光标所在的后n个单词
c$剪切从光标所在的字符到行尾的所有字符
ndd剪切自光标所在的行开始的n行,到结尾不足n行,则至结尾

修改
修改的命令一共有两个,也比较简单
在这里插入图片描述
在命令行模式输入** r** 待修改字符,修改光标所在的字符
在这里插入图片描述
在命令行模式输入R,进入取代状态,直到输入ESC退出
在这里插入图片描述
这个命令的好处是一次命令能进行多字符修改

命令作用
r待修改字符,修改光标所在的字符
R进入取代状态,直到输入ESC退出

复制
复制命令与剪切命令很类似,选取内容不会消息,而是复制了一份
在这里插入图片描述
在命令行模式下输入nyb,复制光标所在的前n个单词
在这里插入图片描述
在命令行模式下输入nyw,复制光标所在的后n个单词
在这里插入图片描述

在命令行模式下输入y$,复制从光标所在的字符到行尾的所在字符
在这里插入图片描述

在命令行模式下输入nyy,复制光标自所在的行开始,向下n行
在这里插入图片描述

命令作用
nyb复制光标所在的前n个单词
nyw复制光标所在的后n个单词
y$复制从光标所在的字符到行尾的所在字符
nyy复制光标自所在的行开始,向下n行

光标移动
关于光标移动的内容有点多,这里就不一一讲解,下面给出功能列表

指令作用指令作用
0移动到光标所在行的最前面h光标向前移动一个字符
$移动到光标所在行的最后面l光标向后移动一个字符
Ctrl+d光标向下移动半页k光标向上移动一行
Ctrl+f光标向下移动一页j光标向下移动一行
H光标移动到当前屏幕的第一列第一列e移动到下一个字的最后一个字母
gg光标移动到当前屏幕的第一行第一列^移动到光标所在行的第一个非空白字符
M光标移动到当前屏幕中间行的第一列n-向上移动n行
L光标移动到当前屏幕最后行的第一列n+向下移动n行
b移动到上一个字的第一个字母nG移动到第n行
w移动到下一个字的第一个字母:n光标移动到第n行
底行模式

查找
在命令行模式下输入/ <要查找的字符>或?<要查找的字符>,查找字符
在这里插入图片描述
在这里插入图片描述
就会高亮显示我们查找的内容
在这里插入图片描述

替换
在命令行模式下输入: range s/string1/string2/gc,替换字符
在这里插入图片描述
具体的参数说明,将在后面表格给出

行号显示
在命令行模式下输入set nu或set number,显示行号
在这里插入图片描述
在命令行模式下输入set nonu或set nonumber,隐藏行号
在这里插入图片描述

分类命令作用
查找/ <要查找的字符>查找字符
?<要查找的字符>查找字符
替换range s/string1/string2/gc替换字符:range要替换的范围(%所有行,.当前行,$最末行)s:转入替换模式 string1查找的内容 string2替换成的内容g只替换第一字符c替换前询问
行号显示set nu或set number显示行号
set nonu或set nonumber隐藏行号
输入模式

输入模式就是正常程序编写的操作,这里就不多做讲解了

在这里插入图片描述

更多内容

Linux-C P2 数据类型

Linux-C P3 运算符和表达式

Linux-C P4 输入输出

Linux-C P5 控制语句

Linux-C P6 数组

Linux-C P7 指针

Linux-C P8 函数

Linux-C P9 内存管理

Linux-C P10 结构体细讲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CagePan

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

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

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

打赏作者

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

抵扣说明:

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

余额充值