Linux学习

什么是操作系统

  • 操作系统是一套管理计算机硬件资源控制其他程序运行并为用户提供交互操作界面的系统软件的集合。
  • 操作系统作为接口的示意图如下
    在这里插入图片描述
  • 没有安装操作系统的计算机通常被称为裸机,如果想要在裸机上运行自己所编写的程序,就必须用机器语言编写程序
  • 如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言环境,从而用高级语言开发程序
  • 操作系统的作用
  1. 直接控制各个不同的硬件进行工作
  2. 把操作硬件的方法封装成一个又一个的系统调用,以供其他程序员进行访问,这样可以简化用户的工作

Linux系统的版本

  • Linux系统有两种版本:Linux内核版本Linux发行版本
  1. Linux内核版本
    ⭕ 内核版本是系统的心脏,是管理硬件设备的核心程序
    ⭕ 内核版本对硬件设备的管理封装成了系统调用,并且包装了一些终端命令,终端命令可以调用系统调用,来间接操作硬件
  2. Linux发行版本
    ⭕ 发行版本是基于Linux内核搭建的一套应用程序,它包含桌面系统、基本图形界面操作、桌面应用程序以及一些桌面的小游戏等等
    发行版包括Linux内核
  3. Linux内核版本只有一个,而Linux发行版有很多
  4. Linux发行版的常见版本有:UbuntuRedhat 、Fedora 、openSUSE 、Linux Mint 、Debian 、Manjaro 、Mageia 、CentOS 、Arch

Linux系统下的文件和目录结构

  • 单用户操作系统和多用户操作系统
  1. 单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自占有系统的全部硬件和软件资源。例如Windows XP之前的版本都是单用户操作系统
  2. 多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户共同享用系统的全部硬件和软件资源。例如Unix和Linux操作系统
  • Linux中没有盘符的概念,用户是看不到驱动器盘符的,看到的是文件夹(即目录)
  • Linux管理目录的方式如下图所示
    在这里插入图片描述

Linux主要目录

  • /:根目录,一般只存放目录,Linux中只有一个根目录 /所有文件都在它下面
  • /bin、/usr/bin:存放可执行的二进制文件目录,如常用的指令:ls、tar、mv、cat等等
  • /boot:放置Linux系统启动时用到的一些文件,如Linux内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub等等,
  • /dev:存放Linux系统下的设备文件,访问该目录下某个文件相当于访问某个设备,常用的有挂载光驱指令:mount /dev/cdrom/mnt
  • /etc: 系统配置文件存放的目录,不建议在此目录下存放可执行文件。重要的文件配置有
  1. /etc/inittab
  2. /etc/fstab
  3. /etc/init.d
  4. /etc/X11
  5. /etc/sysconfig
  6. /etc/xinetd.d
  • /home:系统默认的用户家目录/home目录下的文件夹表示这一台计算机在同一时间下的各个用户,通常在某个用户下的文件夹属于该用户,而不属于其他用户,新增用户账号时,用户的家目录都存放在此目录下-. /lib、usr/lib、/usr/local/lib:系统使用的函数库的目录,程序执行过程中,需要调用一些额外的参数时需要函数库的协助
  • /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
  • /opt:给主机额外安装软件所摆放的目录
  • /proc:此目录的数据都在内存中,如系统核心、外部设备、网络状态等等
  1. 由于数据都存放在内存中,所以该目录下的文件不占用磁盘空间
  2. 该目录下存放的一些比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等等
  • /root:系统管理员root的家目录
  • Linux任务栏:与Windows任务栏的功能类似,只不过Linux任务栏的位置在屏幕左侧
  • 在图形界面中同一时间激活的窗口只能有一个

Linux终端命令及相关概念

  • 学习Linux终端命令的原因
    ⭕ Linux刚面世时并没有图形界面,所有的操作都是通过命令完成
    ⭕ 大量的服务器维护工作都是在远程通过SSH客户端来完成,但是SSH客户端并没有图形界面,因此所有的维护工作都需要通过命令来完成
  • 常用的Linux命令
    在这里插入图片描述
  • ctrl + shift + = :放大终端窗口的字体大小
  • ctrl + -:缩小终端窗口的字体大小
  • 终端命令格式
    command [-options] [parameter]
    其中parameter为传给命令的参数, 可以是零个、一个或者多个
  • 查询终端命令的帮助信息
  1. –help
    command --help (显示command命令的帮助信息)
  2. man
    man command (查阅command命令的使用手册,包含了绝大部分的命令、函数的详细使用说明)
    使用man时可用的操作键如下
    在这里插入图片描述

目录相关命令

ls命令
  1. ls是用户最常用的命令之一,其功能为列出当前目录的内容,类似于DOS下的dir命令
  2. Linux文件或者目录的特点
    ⭕ Linux文件或者目录名称最长可以有256个字符
    ⭕ 以 . 开头的文件为隐藏文件,需要使用**-a参数才能显示出来**
    . 代表当前目录
    . . 代表上一级目录
  3. ls常用选项
    在这里插入图片描述
    这些选项是没有先后顺序的
  4. ls通配符的使用
    在这里插入图片描述
  • 相对路径与绝对路径
  1. 相对路径在输入路径时,最前面不是 / 或者~,表示相对当前目录所在的目录位置
  2. 绝对路径在输入路径时,最前面是 / 或者~,表示从根目录或者home目录开始的具体目录位置

文件相关命令

touch命令
  1. 如果文件不存在,则创建一个空白文件
  2. 如果文件已经存在, 则修改文件的最后一次修改时间
mkdir命令
  1. 创建一个新的目录
  2. 可选项 -p(即 mkdir -p) ,可以递归创建目录
  3. 注意:新建目录的名称不能当前目录中已经存在的目录或文件同名
rm命令
  1. 使用rm命令时,文件会直接删除而不会让用户进行确认并且文件也无法恢复
    2.rm命令的可选项如下
    在这里插入图片描述
tree命令
  1. tree命令可以以树状图列出文件目录结构
  2. tree命令的可选项 -d(即 tree -d),只显示目录
cp命令
  1. cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令
  2. cp命令的可选项如下
    在这里插入图片描述
mv命令
  1. mv命令可以用来移动文件或目录,也可以给文件或目录重命名
  2. mv目录的可选项:-i(即 mv -i)覆盖文件前提示
cat命令
  1. cat命令有查看文件内容、创建文件、文件合并、追加文件内容等功能
  2. cat命令会一次显示所有的内容,适合查看内容较少的文本文件
  3. cat命令的可选项如下
    在这里插入图片描述
  4. Linux中还有一个nl 的命令和cat -b效果等价
more命令
  1. more命令可以用于分屏显示文件内容,每次只显示一页内容
  2. more命令适合查看内容较多的文本文件
  3. 使用more命令的操作键如下
    在这里插入图片描述
grep命令
  1. Linux系统中grep命令是一种强大的文本搜索工具
  2. grep命令允许对文本文件进行模式查找,所谓模式查找又称为正则表达式
  3. grep命令的可选项如下
    在这里插入图片描述
  4. 如果要搜索的内容中有空格,则需要用引号("")将要搜索的内容引起来
  5. 常用的两种模式查找
    在这里插入图片描述
echo命令
  1. echo命令会在终端中显示指定的文字
    ⭕例如 echo 123 则终端显示123
  2. echo命令通常会和重定向联合使用
重定向 >>>
  1. Linux允许将命令执行结果重定向到一个文件
  2. 本应该显示在终端上的内容 输出或者追加到指定文件中
  3. 重定向中 > 表示输出,会覆盖文件原有的内容
  4. 重定向中 >> 表示追加,会将内容追加到指定文件的末尾
管道 |
  1. Linux允许将一个命令的输出通过管道做为另一个命令的输入
  2. 常用的的管道命令有
    more:分屏显示内容
    grep:在命令执行结果的基础上查询指定的文本
    xargs:将前面管道中的输出合并成一行数据,使用空格分隔,还可以作为后面管道中的输入,通过反引号(``)执行xargs命令

远程管理命令

shutdown命令
  1. 语法格式 :shutdown 选项 时间
  2. shutdown命令可以安全关闭或者重启系统
  3. shutdown命令可选项有 -r(即 shutdown -r),表示重新启动
  4. 不指定选项和参数,默认表示1分钟之后关闭电脑
  5. 远程维护服务器时,一般不关闭系统,而应该重新启动系统
  6. 常用命令示例如下
    在这里插入图片描述
ifconfig命令
  1. ifconfig命令可以查看或者配置计算机当前的网卡配置信息
  2. 在Linux中物理网卡的名字通常以ensXX表示
  3. IP地址127.0.0.1为本地回环地址,一般用于测试本机网卡是否正常
ping命令
  1. ping命令可以检测到目标ip地址之间的网络连接是否正常数值越大速度越慢
  2. ping命令的工作原理与声纳相似
  3. 在Linux中,想要终止一个终端程序的执行绝大多数都可以使用 ctrl + c
SSH
  • 在Linux中SSH非常常用的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上
  1. SSH客户端是一种使用Secure Shell协议连接到远程计算机的软件程序
  2. SSH是目前比较可靠专为远程登录会话其他网络服务提供安全性协议
    ⭕ 可以防止信息泄露,即通过SSH协议可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗
    ⭕ 数据传输是经过压缩的,可以提高传输速度
  3. Linux系统中已经安装了SSH客户端,Windows系统中需要客户自行安装SSH客户端
  • 常见服务端口号列表
    在这里插入图片描述
    SSH服务器的默认端口号是22,如果是默认端口号,在连接的时候可以省略
  • SSH客户端的使用
    ssh [-p port] user@remote
    ⭕ user是在远程机器上的用户名,如果不指定的话默认为当前用户
    ⭕ remote是远程机器的地址,可以是IP或者域名,或者是别名
    ⭕ port是SSH Server监听的端口,如果不指定,默认为22
    ⭕使用exit可以退出当前用户的登录
scp
  1. scp就是secure copy,是一个在Linux下用来进行远程拷贝文件的命令
  2. 它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的
  3. 如果想从本地复制文件给远程服务器,使用scp命令的格式如下
    scp -P port(默认为22) 文件 用户名@remote:路径
  4. 如果想从远程服务器复制文件给本地,使用scp命令的格式如下
    scp -P port(默认为22) 用户名@remote:路径 文件
  5. 如果在Windows系统中,可以安装putty,使用pscp命令行工具或者安装FileZilla使用FTP进行文件传输,此外FTP传输的端口号为21
  • ssh免密码登录步骤
  1. 配置公钥:执行 ssh-keygen即可生成ssh钥匙
  2. 上传公钥到服务器:执行ssh-copy-id -p port user@remote,可以让远程服务器记住公钥
  3. id_rsa.pub:公钥id_rsa:私钥
  4. 免密登录采用非对称加密算法:公钥加密的内容需要用私钥解密,而私钥加密的内容需要用公钥解密
  • ssh配置别名
  1. 给ssh服务器配置别名可以简化连接ssh服务器的命令输入
  2. ~/.ssh 目录中创建文件config并在里面追加以下内容
    Host 别名名称
             HostName ip地址
             User 远程计算机用户名
             Port 22
  3. 保存之后,即可以使用 ssh 别名名称 命令实现远程登录

用户权限

  • 用户权限的基本概念
  1. 用户是Linux系统工作中的重要的一环,用户管理包括用户与组管理
  2. 在Linux系统中,每个系统都必须有一个账号,并且对于不同的系统资源拥有不同的使用权限
  3. 在Linux系统中,可以指定每一个用户针对不同的文件或者目录的不同权限
  4. 对文件/目录的权限包括 读(read,缩写为r,数字代号为4)写(write,缩写为w,数字代号为2)执行(excute,缩写为x,数字代号为1)
  • ls -l可以查看文件夹下文件的详细信息,从左到右依次是
    在这里插入图片描述
    文件的硬链接数绝大多数为1(cd 绝对路径)
    目录的硬链接数 = 1(cd 绝对路径)+ 1(cd .)+ 该目录包含的子目录数
    在这里插入图片描述
chmod命令
  1. chmod命令可以修改用户或者组文件或者目录权限
  2. 命令格式如下
    chmod +/-rwx 文件名(或者目录名)
  3. 该方式会一次性修改拥有者或者组的权限
  4. 目录如果没有可执行权限,则无法使用命令对该目录进行操作
  5. 目录如果没有可读权限,则无法使用命令查看该目录下的内容
  6. 目录如果没有可写权限,则无法使用命令修改该目录下的内容
  • 超级用户
  1. Linux系统中的root账号通常用于系统的维护和管理对系统的所有资源具有所有访问权限
  2. 不推荐直接使用root账号登录系统
  3. 在Linux安装过程中系统会自动创建一个用户账号,而这个默认的用户叫做"标准用户"
sudo命令
  1. su是substitute user的缩写,表示使用另一个用户的身份
  2. sudo命令用来以其他身份来执行命令,预设的身份为root
  3. 用户使用sudo时必须先输入密码,之后有5分钟的有效期限超过期限则必须重新输入密码
  4. 未经过授权的用户企图使用sudo,则会发出警告邮件给管理员

组管理命令

groupadd、groupdel、chgrp
  • 创建组或者删除组的终端命令都需要通过sudo以root身份来执行
  • groupadd 组名 (添加组)
  • groupdel 组名 (删除组)
  • cat /etc/group (确认组信息)
  • chgrp -R 组名 文件名或者目录名 (递归修改文件或者目录的所属组)
  • 在实际应用中,可以预先针对设置好权限,然后将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限

用户管理命令

useradd、passwd、userdel命令
  • 创建用户/设置密码/删除用户等的终端命令都需要通过sudo执行
  • 创建用户/设置密码/删除用户操作如下
    在这里插入图片描述
  • 创建用户时,如果忘记添加 -m 选项指定新用户的家目录,最简单的办法是删除用户并重新创建
  • 创建用户时,默认会创建一个和用户名同名的组名
  • 用户信息保存在 /etc/passwd 文件中
  • 查看用户信息命令
id、who、whoami命令
  1. id[用户名] (查看用户UID和GID信息)
  2. who (查看当前所有登录的用户列表)
  3. whoami (查看当前登录用户的账户名)
  • passwd文件
    /etc/passwd文件存放的是用户的信息,由6个分号组成的7个信息,分别是
  1. 用户名
  2. 密码(x,表示加密的密码)
  3. UID(用户标识)
  4. GID(组标识)
  5. 用户全名或者本地账号
  6. 家目录
  7. 登录使用的Shell,就是登录之后,使用的终端命令,Ubuntu默认是dash(dash软件在XShell中无法使用⬆⬇和backspace键,且用ls命令时目录和文件不会有颜色区别)
usermod命令
  1. usermod可以用来设置用户的主组/附加组和登录Shell
  2. 主组:通常在新建用户时指定,在etc/passwd的第4列GID对应的组
  3. 附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附近权限
  4. usermod命令格式如下(注意:设置了用户的附加组之后需要重新登录才能生效
    在这里插入图片描述
  5. 注意:默认使用useradd命令添加的用户是没有权限使用sudo以root身份执行命令的,可以使用 usermod -G sudo 用户名 命令,将用户添加到sudo附加组中
which命令
  1. /etc/passwd是用于保存用户信息的文件
  2. /usr/bin/passwd是用于修改用户密码的程序
  3. which命令可以查看执行命令所在位置
bin与sbin
  1. 在Linux中,绝大多数可执行文件都是保存在**/bin、/sbin、/usr/bin、/usr/sbin**中
  2. /bin(binary)是二进制执行文件目录,主要用于具体应用
  3. /sbin(system binary)是系统管理员专用二进制代码存放目录,主要用于系统管理
  4. /usr/bin(user command for application)是后期安装的一些软件
  5. /usr/sbin(supper user commands for application)是超级用户的一些管理程序
  6. 注意:cd 这个终端命令是内置在系统内核中的,没有独立的文件,因此用 which 命令无法找到
su切换用户命令
  1. su命令的格式:su - 用户名 (可以切换用户,并且可以切换到用户家目录否则保持位置不变
  2. su - 不接用户名,可以切换到root身份
修改文件权限
  1. chown、chgrp、chmod三个命令的作用如下
    在这里插入图片描述
  2. chown、chgrp、chmod三个命令各自的命令格式如下
    在这里插入图片描述
  3. chmod在设置权限时,可以使用拥有者/组和其他用户权限对应的数字,也可以使用例如u=rwx,g=rwx,o=rwx,其中u/g/o分别代表用户/组/其他用户

系统信息相关命令

date命令
  • date命令可以查看系统时间
cal命令
  • cal命令可以查看当前月的日历
  • cal命令的可选项: -y (查看该年整年的日历)
df、du命令
  • df命令可以显示磁盘剩余空间
  1. df目录可选项:-h以人性化的方式显示文件大小,即用单位显示
  • du命令可以显示目录下的文件大小
  1. df目录可选项:-h (以人性化的方式显示文件大小,即用单位显示)
进程信息有关命令:ps、top、kill
  • ps命令可以查看进行的详细状况
  1. ps命令的可选项(注意:ps的可选项不需要在前面加-):
    a (显示终端上的所有进程,包括其他用户的进程)
    u (显示进程的详细状态)
    x (显示没有控制终端的进程)
  2. ps默认只会显示当前用户通过终端启动的应用程序
  • top命令可以动态显示运行中的进程并且排序
  1. 要退出top指令可以直接输入q
  • kill命令可以终止指定代号的进程
  1. kill命令的格式:kill 进程代号
  2. 使用kill命令时,最好只终止由当前用户开启的进程,而不要终止root身份开启的进程,否则可能会导致系统崩溃
  3. kill命令可选项: -9 (强行终止指定代号的进程)

其他命令

find命令
  • find命令通常用来在特定的目录下搜索符合条件的文件
  • find命令的格式:find [路径] -name "条件"
  • 如果省略路径,则表示在当前文件夹下查找
  • 可以在使用find命令的使用通配符(*和$)
软链接
  • 软链接:类似于Windows下的快捷方式,在Linux中通过某个文件软链接可以快速地打开该文件
ln命令
  • ln命令创建软连接需要加上可选项 -s,即 ln -s
  • ln命令的格式:ln -s 被链接的源文件绝对路径 链接文件名
  • 注意:没有-s选项建立的是一个硬链接文件,软链接与硬链接建立的文件占用相同大小的硬盘空间,一般不会建立文件的硬链接
  • 源文件要使用绝对路径,不能使用相对路径原因:相对路径如果被移动到其他地方,其所指向的文件就无法被找到
文件的软硬链接
  • 文件软硬链接的结构示意图如下
    在这里插入图片描述
  • 在Linux中,文件名和文件的数据是分开存储的
  • 在Linux中,只有文件的硬链接数为0文件的数据才会被删除
  • 使用ls -l可以查看到一个文件的硬链接数量
tar命令
  • tar命令是Linux中最常用的备份工具此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件
  • tar命令格式如下
    在这里插入图片描述
  • tar命令的可选项如下
    在这里插入图片描述
  • 注意:可选项中的f选项必须放在要使用的选项的最后,其他的可选项顺序可随意
gzip命令
  • tar命令与gzip命令可以结合使用实现文件的打包和压缩
  • gzip命令压缩打包后的文件,其扩展名一般用.tar.gz
  • 在Linux中,最常见的压缩文件格式就是.tar.gz
  • tar命令中有一个选项 -z 可以调用gzip命令,从而可以方便地实现压缩和解压缩的功能,命令格式如下
    在这里插入图片描述
    其中-C可选项的含义是解压缩到指定目录,注意:要解压缩的目录必须存在
bzip2命令
  • tar命令与bzip2命令结合也可以实现文件的打包和压缩用法与gzip命令相同
  • 用bzip2命令压缩tar命令打包后的文件,其扩展名一般用.tar.bz2
  • 在tar命令中有一个可选项 -j 可以调用bzip2命令从而可以方便地实现压缩和解压缩的功能,命令格式如下
    在这里插入图片描述

软件安装命令

apt命令
  • apt命令是Advanced Packaging Tool,是Linux下的一款安装包管理工具
  • 使用该命令可以在终端中方便的安装 / 卸载 / 更新软件包
  • 使用apt命令的方式如下(注意:使用该命令需要用root身份
    在这里插入图片描述
软件源
  • 软件源就是提供所有软件安装包的源头(主服务器)
  • 如果希望在Linux系统中安装软件更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器来提供软件下载与安装服务
  • 镜像源就是内容是相同的(镜像),但是位置不同的服务器
wget命令
  • wget命令可以从网络上下载安装包到本地
  • wget命令的格式为:wget 下载链接(即URL)
  • wget命令的可选项如下
    在这里插入图片描述

vi编辑器

  • 要对服务器上的文件进行简单的修改,可以使用 ssh 命令远程登录到服务器上,并且使用 vi 命令可以在终端进行快速编辑
  • 常见需要修改的文件包括:源程序配置文件等等
  • vi 是Visual interface的简称,是Linux中最经典的文本编辑器
  • vi核心设计思想让程序员的手指始终保持在键盘的核心区域,就能完成所有的编辑操作
    在这里插入图片描述
  • vi编辑器的特点如下
    在这里插入图片描述
  • vi编辑器系统管理、服务器管理编辑文件时,其功能永远不是图形界面的编辑器能够比拟的
  • vimvi improved):vim是从vi发展出来的一个文本编辑器,它支持代码补全编译以及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,被称为编辑器之神
  • 在很多的Linux发行版中,会把vi直接做成vim的软链接
vi编辑器打开命令
  • vi命令的格式:vi 文件名(如果文件名不存在会新建该文件)
vi编辑器技巧
  • 把已经存在的一行代码重复 10(n) 遍
  1. 将光标移动至该行后先按esc(或者按ctrl + [也可以)退出,再按 yy9(n-1)p
  2. 如果想取消刚才的重复,按 u 即可
  3. 如果想取消刚才的取消,按 ctrl + r 即可
  4. 注意:如果退出了编辑器,则前两个操作是无效的
  • 知道某一行代码有错误,要快速定位到出错代码的位置
  1. 命令格式:vi 文件名 +行数
  2. 如果文件名后面只带上 + 而不指定行号,会直接定位到文件末尾
  3. 如果文件名后面不带上 + 和行号,会直接定位到文件开头
  • 删除交换文件
  1. 如果vi编辑器异常退出,在磁盘上可能保存有交换文件
  2. 下次再使用vi编辑该文件时,会看到类似以下屏幕信息,按下字母d删除交换文件即可(如果没有快捷键d,则需要在vi编辑器之外进行删除)
    在这里插入图片描述
  • vi的三种基本工作模式
  1. 命令模式
    ⭕ 打开文件首先进入命令模式,是使用vi编辑器的入口
    ⭕ 通过命令对文件进行常规的编辑操作,例如:定位、翻页、复制、粘贴、删除等等
    ⭕ 在其他图形编辑器下,通过快捷键或者鼠标实现的操作,都在命令模式下实现
  2. 末行模式
    执行保存、退出等操作
    ⭕ 要退出vi编辑器返回到控制台,需要在末行模式下输入命令
    末行模式是vi编辑器的出口
    ⭕ 末行模式命令如下
    在这里插入图片描述
  3. 编辑模式
    ⭕ 正常的编辑文字
  4. 三种模式的关系图如下
    在这里插入图片描述
vi编辑器常用命令
  • 重复次数
  1. 在命令模式下,先输入一个数字,再跟上一个命令,可以让该命令重复执行指定次数
  • 移动和选择
  1. 移动命令能够和编辑操作命令组合使用
  2. 上、下、左、右移动命令如下
    在这里插入图片描述
  3. 行内移动命令如下
    在这里插入图片描述
  4. 行数移动命令如下
    在这里插入图片描述
  5. 屏幕移动命令如下
    在这里插入图片描述
  6. 段落移动命令
    在这里插入图片描述
  7. 使用**%可以进行括号匹配以及切换**
  8. 某一块代码需要稍后处理时,可以先使用 m 增加一个标记,再输入标记名称(可以是任意大小写字母),这样可以在需要时通过一个单引号’+标记名称快速跳转回来
  • 选中文本
  1. vi编辑器中有三种选中可视模式可以进行选中文本
  2. 三种可视模式命令如下
    在这里插入图片描述
  3. esc可以放弃选中,返回到命令模式
  • 撤销与恢复撤销
    在这里插入图片描述
  • 编辑操作
  1. 删除文本有如下几个命令(如果使用可视模式已经选中了一段文本,那么无论使用d命令还是x命令,都可以删除选中文本
    在这里插入图片描述
    ⭕ 删除命令可以和移动命令组合,常用的组合命令如下
    在这里插入图片描述
  2. 复制文本
    ⭕ vi编辑器中有一个被复制文本的缓冲区
    ⭕ 复制命令会将选中的文字保存在缓冲区中
    ⭕ 删除命令会将删除的文字保存在缓冲区中
    ⭕ 在需要的位置,使用粘贴命令可以将缓冲区的文字插入到光标所在位置
    ⭕ 复制、粘贴的命令如下
    在这里插入图片描述
  3. 粘贴文本
    注意:vi编辑器的文本缓冲区和系统的剪贴板不是同一个,所以在其他软件中使用CTRL + c复制的内容,不能在vi编辑器中通过p命令粘贴,而需要进入编辑模式鼠标右键粘贴
    vi编辑器中删除操作本质上是剪切操作
  4. 替换文本
    ⭕ 替换文本的命令如下
    在这里插入图片描述
    R命令可以进入替换模式,替换完成后,按下esc可以回到命令模式
    ⭕ 替换命令可以不用进入编辑模式,适合对文件进行少量的修改
  • 缩排代码
    ⭕ 缩排就是选中一段代码进行统一的增加或者减少代码的缩进
    ⭕ 缩排的命令如下
    在这里插入图片描述
    在可视模式下,缩排命令只需要使用一个 > 或者一个 <
  • 查找替换文本
    常规查找文本命令:/str (查找str)
    ⭕ 查找到指定内容之后,使用 n 命令查找下一个,使用N命令查找上一个
    ⭕ 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可
    ⭕ 单词快速匹配命令如下
    在这里插入图片描述
    通过单词快速匹配,可以快速看到这个单词在其他什么位置使用过
  • 查找并替换文本
  1. 全局替换格式为 :%s/旧文本/新文本/g(注意用冒号(:)进入末行模式)
  2. 可视区域替换格式为 : s/旧文本/新文本/g(注意用冒号(:)进入末行模式)
  3. 在g后面加上c可以在替换之前进行一下确认
  • 利用可视块给多行代码增加注释步骤
  1. 光标移动要添加注释的第1行代码,按数字0来到行首
  2. 按 CTRL + v 进入可视块模式
  3. 选中要添加的代码行
  4. 输入大写 I 进入编辑模式,并在行首插入,注意一定要用大写 I
  5. 输入 # 进行注释
  6. 按esc返回到命令模式即可
  • 末行命令扩展
    在这里插入图片描述
  • 分屏命令(同时编辑和查看多个文件)
    在这里插入图片描述
  1. 分屏窗口间的操作都是基于 CTRL + w 的
  2. 分屏窗口的可用操作如下
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值