手把手教大家Linux入门

一口Linux
关注

语法:

grep [option] string filename

补充说明:grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。

-A<显示行数>:除了显示匹配 pattern 的那一行外,显示该行之后的内容
-B<显示行数>:除了显示匹配 pattern 的那一行外,显示该行之前的内容
-C<显示行数>:除了显示匹配 pattern 的那一行外,显示该行前、后的内容
-c:统计匹配的行数
-e:同时匹配多个pattern
-i:忽略字符的大小写
-n:显示匹配的行号
-o:只显示匹配的字符串
-v:显示没有匹配pattern的那一行,相当于反向匹配
-w:匹配整个单词

举例:

1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

grep test *file

2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi  

3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。

查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:

grep -v test *test*

grep应用非常频繁,经常还会和正则表达式一起使用,常用的正则表达式:

.:任意单个字符
*:任意字符多次
[]:指定范围,如[0-9]、[a-z]、[A-Z]、[0-9a-zA-Z]
^:行首
$:行尾
^$:空行

举例假定如下文件:

9)wc计数

功能:Linux wc命令用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

wc [选项] 文件名

l 统计多少行w 统计多少单词c 统计多少个字符

语法

wc [-clw][--help][--version][文件...]

参数:

-c或--bytes或--chars 只显示Bytes数。
-l或--lines 显示行数。
-w或--words 只显示字数。
--help 在线帮助。
--version 显示版本信息。

实例

在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:

wc testfile
8) tar文件压缩解压

tar命令可以为linux的文件和目录创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

语法

tar[必要参数][选择参数][文件]

常用命令参数:

-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性

常见解压/压缩命令tar

解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)

.gz

解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

.tar.gz 和 .tgz

解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

.bz2

解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩:bzip2 -z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

.bz

解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知

.tar.bz

解压:tar jxvf FileName.tar.bz
压缩:未知

.Z

解压:uncompress FileName.Z
压缩:compress FileName

.tar.Z

解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

.zip

解压:unzip FileName.zip
压缩:zip FileName.zip DirName

.rar

解压:rar x FileName.rar
压缩:rar a FileName.rar DirName

举例:

实例1:将文件log2021全部打包成tar包

命令:

tar -cvf log.tar log2021.log          仅打包,不压缩!
tar -zcvf log.tar.gz log2021.log       打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2021.log     打包后,以 bzip2 压缩

实例2:查阅上述 tar包内有哪些文件

说明:

由于我们使用 gzip 压缩的log.tar.gz,所以要查阅log.tar.gz包内的文件时,就得要加上 z 这个参数了。

实例3:将tar 包解压缩

命令:

tar -zxvf /opt/soft/test/log.tar.gz

六、shell的特殊字符

1) 通配符* ? * :通配0个或多个字符
* ? :通配任意单个字符
* [s] :通配某个范围内的任意一个字符

举例:

2) 一行执行多条命令

一行执行多条命令:在命令与命令之间用“;”隔开

cd ; ls
3)  输出重定向:>,>> >  :将一个命令的输出放入文件中
>> :输出重定向但不会把源文件覆盖,在原文件末尾追加

举例:将ls的输出结果输出给test.txt

当前目录没有操作权限cd .. 退回上一级目录

修改文件夹权限为方便起见,我们将test的权限全部打开

用“>”的输出结果如下:

然后再用“>>”做测试其结果如下

4) 输入重定向:<

下面再实现以下输入重定向:

5) 管道符:|

管道符“|”:将一个进程的输出作为另一个进程的输入

输入命令 :

ls -l /etc | cat

显示的结果如上图所示。

6) 其他:%,$,~ % :作业控制,提示符等
$ : 取某一列的值,取变量值等

七、用户及进程

1、日期时间进程查看

a) date: 显示日期时间

b) cal :显示日历

2、ps进程查询

功能:ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

语法

ps [options] [--help]

ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义:

-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
 D: 无法中断的休眠状态 (通常 IO 的进程)
 R: 正在执行中
 S: 静止状态
 T: 暂停执行
 Z: 不存在但暂时无法消除
 W: 没有足够的记忆体分页可分配
 <: 高优先序的行程
 N: 低优先序的行程
 L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

实例

显示所有进程信息,连同命令行

查找指定进程init:

显示指定用户信息

3、sudo用户管理

终端的命令行最右边的字符

$  普通用户
# 管理员用户

有很多命令需要管理员权限才能使用,可以输入命令前加sudo,也可以直接切换到管理员再执行。

切换到管理员root

切换用户

su 用户名  :切换账户

4、电源管理 a) shutdown

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

功能说明:系统关机指令。

语  法:shutdown [-efFhknr][-t 秒数][时间][警告信息]

补充说明:shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。

参数:

-c  当执行”shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令。
-f  重新启动时不执行fsck。
-F  重新启动时执行fsck。
-h  将系统关机。
-k  只是送出信息给所有用户,但不会实际关机。
-n  不调用init程序进行关机,而由shutdown自己进行。
-r  shutdown之后重新启动。
-t<秒数>  送出警告信息和删除信息之间要延迟多少秒。
[时间]  设置多久时间后执行shutdown指令。
[警告信息]  要传送给所有登入用户的信息。
b) reboot

功能说明:重新开机。

语  法:

dreboot [-dfinw]

补充说明:执行reboot指令可让系统停止运作,并重新开机。

参数:

-d  重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有”-n”参数的效果。
 -f  强制重新开机,不调用shutdown指令的功能。
 -i  在重开机之前,先关闭所有网络界面。
 -n  重开机之前不检查是否有未结束的程序。
 -w  仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
c) halt

功能说明:关闭系统。

语法:

halt [-dfinpw]

补充说明:halt会先检测系统的runlevel。若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。

参数:

-d  不要在wtmp中记录。
 -f  不论目前的runlevel为何,不调用shutdown即强制关闭系统。
 -i  在halt之前,关闭全部的网络界面。
 -n  halt前,不用先执行sync。
 -p  halt之后,执行poweroff。
 -w  仅在wtmp中记录,而不实际结束系统。
4、用户管理补充 (1)用户密码要求

用户的密码要求有6~8个字符,其中至少要包含2个字母、1个数字或特殊字符,而且不能与用户名相同,还要不同于以前的密码,至少要有三个字符不同与以前的密码。

(2)passwd修改密码命令输入命令 passwd
输入原密码 ****
输入新密码
确认新密码

注意:在输入密码过程中机器是没有任何动作的

(3)查找用户

id

查看用户ID(用户名)及其所属组ID(组名)

user

查看已经登陆到当前系统中的用户,只显示出用户名。

who

查看用户的详细信息

who am i

查看当前用户自己的信息

whoanmi

查看当前用户自己的用户名

八、相关信息查询

产看磁盘信息

1. du

显示磁盘使用摘要信息

du 以Block为单位方式显示
-k  以k字节方式显示
-m 以m字节方式显示
-s 显示当前目录下的内容总的占用磁盘的大小,以Block为单位
以Block单位显示的数字是以k字节方式显示的数字的2倍,1k字节=2个Block
2. df

显示整个文件系统的空间使用磁盘情况

-k 以k字节方式显示

九、网络配置

1、ping

查看当前机器与另一台机器的联通情况ping 主机名称或者主机的IP:向ping后面的主机发送数据包,若被ping的主机有回复则表示连通的。

语法:

ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]

补充说明:执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

参数:

-d   使用Socket的SO_DEBUG功能。
 -c<完成次数>   设置完成要求回应的次数。
 -f   极限检测。
 -i<间隔秒数>   指定收发信息的间隔时间。
 -I<网络界面>   使用指定的网络界面送出数据包。
 -l<前置载入>   设置在送出要求信息之前,先行发出的数据包。
 -n   只输出数值。
 -p<范本样式>   设置填满数据包的范本样式。
 -q   不显示指令执行过程,开头和结尾的相关信息除外。
 -r   忽略普通的Routing Table,直接将数据包送到远端主机上。
 -R   记录路由过程。
 -s<数据包大小>   设置数据包的大小。
 -t<存活数值>   设置存活数值TTL的大小。
 -v   详细显示指令的执行过程。

2、ifconfig

查看和配置当前机器的网络参数信息

语  法:

ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]

补充说明:ifconfig可设置网络设备的状态,或是显示目前的设置。

参数:

add<地址>   设置网络设备IPv6的IP地址。
 del<地址>   删除网络设备IPv6的IP地址。
 down   关闭指定的网络设备。
 <hw<网络设备类型><硬件地址>   设置网络设备的类型与硬件地址。
 io_addr<I/O地址>   设置网络设备的I/O地址。
 irq<IRQ地址>   设置网络设备的IRQ。
 media<网络媒介类型>   设置网络设备的媒介类型。
 mem_start<内存地址>   设置网络设备在主内存所占用的起始地址。
 metric<数目>   指定在计算数据包的转送次数时,所要加上的数目。
 mtu<字节>   设置网络设备的MTU。
 netmask<子网掩码>   设置网络设备的子网掩码。
 tunnel<地址>   建立IPv4与IPv6之间的隧道通信地址。
 up   启动指定的网络设备。
 -broadcast<地址>   将要送往指定地址的数据包当成广播数据包来处理。
 -pointopoint<地址>   与指定地址的网络设备建立直接连线,此模式具有保密功能。
 -promisc   关闭或启动指定网络设备的promiscuous模式。
 [IP地址]   指定网络设备的IP地址。
 [网络设备]   指定网络设备的名称。

举例

ifconfig -a // 显示产看当前机器的IP、Netmask、Gateway等网络信息
ifconfig eth0 up(down) //激活与关闭某个网络适配器
ifconfig eth0 [ip address] netmask [address] //设置IP和子网掩码

十、Linux应用程序的安装与卸载基础

1、Linux安装包

Linux安装包的通常是tar的格式,同时也支持自己定义的格式。在redhat中软件安装包的格式通常是rpm在Ubuntu中软件安装包的格式通常是deb

2、 安装包命名通用规则

在Linux中常用的命名格式是:

软件名称版本号-修订版本号体系架构.扩展名
3、安装包的离线安装及卸载 dpkg
dpkg  -i   安装
dpkg     -p   卸载

源文件安装的过程:

配置configure  >>  编译make  >>  安装 make  install
4、在线安装及卸载

安装 :

apt-get install

卸载 :

apt-get remove -purge  

十一、VIM编译工具

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具。

连 vim 的官方网站 自己也说 vim 是一个程序开发工具而不是文字处理软件。

1、vim优势: a)所有Unix Like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在;b)很多软件的编辑接口都会主动调用vic)vi具有程序编辑能力,可以主动以字体颜色辨别语法的正确性,方便程序设计;d)程序简单编辑速度快。2、vi的模式:

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。这三种模式的作用分别是:

1)命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

2)输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符

ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
3)底行命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。

简单的说,我们可以将这三个模式想成底下的图标来表示:

3. vim cheat sheet

下图就是赫赫有名的vim cheat sheet,一图包含了大部分常用的vim命令,建议保存

4. 举例

如果你想要使用 vim 来建立一个名为 peng.c 的文件时,输入下面命令:

peng@ubuntu:~$ vim peng.c

按下 i 进入输入模式(也称为编辑模式),开始编辑文字

在一般模式之中,只要按下 i, o, a 等字符就可以进入输入模式了!

在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。

这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

按下 ESC 按钮回到一般模式

好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!

在一般模式中按下 :wq 储存后离开 vi

OK,我们要存档了,存盘并离开的指令很简单,输入 :wq 即可保存离开!

OK! 这样我们就成功创建了一个peng.c 的文件。

5. 快捷键说明 移动光标的方法操作含义h 或 向左箭头键(←)光标向左移动一个字符j 或 向下箭头键(↓)光标向下移动一个字符k 或 向上箭头键(↑)光标向上移动一个字符l 或 向右箭头键(→)光标向右移动一个字符

如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!

快捷键含义[Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)[Ctrl] + [b]屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)[Ctrl] + [d]屏幕『向下』移动半页[Ctrl] + [u]屏幕『向上』移动半页+光标移动到非空格符的下一行-光标移动到非空格符的上一行n那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20则光标会向后面移动 20 个字符距离。0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)$ 或功能键[End]移动到这一行的最后面字符处(常用)H光标移动到这个屏幕的最上方那一行的第一个字符M光标移动到这个屏幕的中央那一行的第一个字符L光标移动到这个屏幕的最下方那一行的第一个字符G移动到这个档案的最后一行(常用)nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)gg移动到这个档案的第一行,相当于 1G 啊!(常用)nn 为数字。光标向下移动 n 行(常用)搜索替换快捷键含义/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)?word向光标之上寻找一个字符串名称为 word 的字符串。n这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。

使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!

快捷键含义:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。(常用):1,$s/word1/word2/g 或 :%s/word1/word2/g从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用):1,$s/word1/word2/gc 或 :%s/word1/word2/gc从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)删除、复制与贴上快捷键含义x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。dd删除游标所在的那一整行(常用)nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)d1G删除光标所在到第一行的所有数据dG删除光标所在到最后一行的所有数据d$删除游标所在处,到该行的最后一个字符d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符yy复制游标所在的那一行(常用)nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)y1G复制游标所在行到第一行的所有数据yG复制游标所在行到最后一行的所有数据y0复制光标所在的那个字符到该行行首的所有数据y$复制光标所在的那个字符到该行行尾的所有数据p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用)J将光标所在行与下一行的数据结合成同一行c重复删除多个数据,例如向下删除 10 行,[ 10cj ]u复原前一个动作。(常用).重复前一个动作的意思。如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了!(常用)[Ctrl]+r重做上一个动作。(常用)

这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!

一般模式切换到编辑模式的可用的按钮说明

进入输入或取代的编辑模式

快捷键含义i, I进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。(常用)a, A进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)o, O进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为在目前光标所在的下一行处输入新的一行;O 为在目前光标所在的上一行处输入新的一行!(常用)r, R进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)[Esc]退出编辑模式,回到一般模式中(常用)

上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入。

一般模式切换到指令行模式的可用的按钮说明

指令行的储存、离开等指令

快捷键含义:w将编辑的数据写入硬盘档案中(常用):w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!:q离开 vi (常用):q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)ZZ这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)ZQ不保存,强制退出。效果等同于 :q!。:w [filename]将编辑的数据储存成另一个档案(类似另存新档):r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。:! command暂时离开 vi 到指令行模式下执行 command 的显示结果!例如:『:! ls /home』即可在 vi 当中查看 /home 底下以 ls 输出的档案信息!

vim 环境的变更

快捷键含义:set nu显示行号,设定之后,会在每一行的前缀显示该行的行号(常用):set nonu与 set nu 相反,为取消行号!

这些基础知识都是必须掌握的知识点,学会以后,就可以进入到下一步Linux下的C程序开发的学习了!


声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存