学习python了,看完这篇文章,你的Linux基础就差不多了http://www.360doc.com/content/18/1117/00/99071_795395052.shtml
前言 这篇文章基于传智播客的2016年的gitbook资料和视频资料,同时也融合了2018年的视频和课件资料中的一些内容,即以2016年的资料为蓝本,2018年的资料为辅助编写的。 提醒:本文稍微过长,请细读,如有想获得python学习资料的童鞋可以关注小编,转发此文,然后私信小编“资料”即可。 一、Linux介绍 1、操作系统的发展 打开今日头条,查看更多精彩图片
2、Linux的不同版本 <1>Linux内核版本:内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。 <2>Linux发行版本:也被叫做 GNU, 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。 二、文件和目录 1、Windows和Linux文件系统区别 在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符: 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示: 在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录): 就比如我们用的Ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面:
2、用户目录 位于/home/user,称之为用户工作目录或家目录,表示方式:
3、相对路径和绝对路径 绝对路径:从/目录开始描述的路径为绝对路径,如:/home 相对路径:从当前位置开始描述的路径为相对路径,如:../../ .和.. :每个目录下都有.和..(可用ls -a查看);. 表示当前目录;.. 表示上一级目录,即父目录;根目录下的.和..都表示当前目录 4、文件权限 文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。 在 Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。 <1>访问用户 通过设定权限可以从以下三种访问方式限制访问权限: 只允许用户自己访问(所有者) 所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。 允许一个预先指定的用户组中的用户访问(用户组) 用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。 允许系统中的任何用户访问(其他用户) 用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类。 <2>访问权限 用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限: 读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。 写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。 可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。 注意:通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。 <3>示例说明:利用ls -lh查看 第1个字母代表文件的类型:“d” 代表文件夹、“-” 代表普通文件、“c” 代表硬件字符设备、“b” 代表硬件块设备、“s”表示管道文件、“l” 代表软链接文件。 后 9 个字母分别代表三组权限:文件所有者、用户者、其他用户拥有的权限。 handy@ubuntu:~$ ls -ltotal 44drwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Desktopdrwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Documentsdrwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Downloads-rw-r--r-- 1 handy handy 8980 Aug 29 06:39 examples.desktopdrwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Musicdrwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Picturesdrwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Publicdrwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Templatesdrwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Videoshandy@ubuntu:~$ ls -lhtotal 44Kdrwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Desktopdrwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Documentsdrwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Downloads-rw-r--r-- 1 handy handy 8.8K Aug 29 06:39 examples.desktopdrwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Musicdrwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Picturesdrwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Publicdrwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Templatesdrwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Videoshandy@ubuntu:~$
每一个用户都有它自身的读、写和执行权限。 第一组权限控制访问自己的文件权限,即所有者权限。 第二组权限控制用户组访问其中一个用户的文件的权限。 第三组权限控制其他所有用户访问一个用户的文件的权限。 这三组权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有9种类型的权限组。 三、常用基本命令 Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。Linux 发行版本最少的命令也有 200 多个,这里只介绍比较重要和使用频率最多的命令。 1、命令使用方法 Linux命令格式: command [-options] [parameter1] … 命令 选项 参数 说明: command: 命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个. 2、查看帮助文档 <1>--help 一般是linux命令自带的帮助信息,如:ls --help <2>man man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明 该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。 例:man ls ; man 2 printf man中各个section意义如下: 1: Standard commands(标准命令) 2: System calls(系统调用,如open,write) 3: Library functions(库函数,如printf,fopen) 4:Special devices(设备文件的说明,/dev下各种设备) 5: File formats(文件格式,如passwd) 6:Games and toys(游戏和娱乐) 7:Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量) 8: Administrative Commands(管理员命令,如ifconfig) man是按照手册的章节号的顺序进行搜索的。 man设置了如下的功能键: 例如: 3、自动补全 在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令 4、历史命令 当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来。 四、文件、磁盘管理的常用命令 <1>查看文件信息:ls ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。 Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用-a参数才能显示。 ls常用参数 ls -l 与DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。 <2>输出重定向命令:> Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。 如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 ) 注意: >输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。 <3>分屏显示:more 查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。 more 示例 <4>管道:| 管道:一个命令的输出可以通过管道做为另一个命令的输入。 管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。 管道示例 <5>清屏:clear clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。 <6>切换工作目录: cd 在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感。 cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。 cd 示例 注意:如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 “ / ”。<7>显示当前路径:pwd 使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。 <8>创建目录:mkdir 通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。 示例 需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。<补>创建文件:touch 命令格式:touch 文件名 如果文件不存在,可以创建一个空白文件。 如果文件存在,可以修改文件的末次修改日期。 <9>删除目录:rmdir 可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。 <10>删除文件:rm 可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。 常用参数 注意递归删除文件夹要加-r,而删除文件可以不加。 示例 <11>建立链接文件:ln Linux链接文件类似于Windows下的快捷方式。 链接文件分为软链接(有-s)和硬链接。 软链接:软链接不占用磁盘空间,源文件删除则软链接失效,源文件要用绝对路径。ln -s 源文件 链接文件 硬链接:硬链接只能链接普通文件,不能链接目录,相当于文件“小名”,日常是不用的,只有文件的硬链接数(用ls -l查看)为0时,文件才被真正删除。 ln 源文件 链接文件 硬链接示例及软链接的tree示意 文件软硬链接示意图
<12>查看或者合并文件内容:cat 对应英文是concatenate,用于查看文件内容(适合内容较少的,较多的用more)、创建文件、文件合并、追加文件内容等。 常用参数
示例 <13>文本搜索:grep Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。 grep一般格式为:grep [-选项] ‘搜索内容串’文件名 在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。 常用选项 grep搜索内容串可以是正则表达式,也就是模式查找。 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 grep常用正则表达式 grep示例 <14>查找文件:find find支持文件名的正则表达式查找,按文件修改时间查找,按文件大小查找,按文件权限查找,按文件类型查找等,查找到以后还支持直接对查找到的文件使用命令,功能非常强大。 典型的find命令的写法是:find 查找路径 查找的标准 查找到之后的动作。 比如: find /home -type d -ls,意思是: 找出/home/下所有的目录,并显示目录的详细信息。 后继命令(查找到之后的动作): -print: 显示-ls:类似ls -l的形式显示每一个文件的详细-quit:查找到一个就退出-delete:删除匹配到的行-ok COMMAND {} :每一次操作都需要用户确认,{}表示引用找到的文件,是占位符,对于(find等输出的一个列表的内容)依次循环每一个;是表示 -exec 命令终结的的符号。-exec COMMAND {} :每次操作无需确认
常用用法 <15>拷贝文件:cp cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。 常用选项 <16>移动文件:mv 用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。 常用选项 <17>归档管理:tar 计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。 tar使用格式tar [选项] 打包文件名 文件 tar命令很特殊,其选项前面可以使用“-”,也可以不使用。 常用选项 注意:除了f需要放在参数的最后,其它参数的顺序任意。
<18>文件压缩解压:gzip tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。 gzip使用格式:gzip [选项] 被压缩文件 常用选项:-d解压、-r压缩所有子目录 tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。
<19>文件压缩解压:bzip2 tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。 tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz2。 在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。
<20>文件压缩解压:zip、unzip 通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
<21>查看命令位置:which bin 和 sbin 示例 五、用户、权限管理的常用命令 用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。 Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。 在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。 在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统。 <1>查看当前用户:whoami whoami命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。 由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。 <2>查看登录用户:who who命令用于查看当前所有登录系统的用户信息。 常用选项 示例 <3>退出登录账户: exit
<4>切换用户:su 可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录: 示例 注意:如果是ubuntu平台,需要在命令前加sudo,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加sudo即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。 su用法 Ubuntu下示例 <5>添加、删除组账号:groupadd、groupdel groupadd 组名 新建组账号 groupdel 组名 删除组账号 cat /etc/group 查看用户组信息 示例 <6>修改用户所在组:usermod
<7>添加用户账号:useradd 在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。 useradd命令的使用格式如下: useradd [选项及参数] 新建用户名 创建用户、设置密码、删除用户、确认用户信息 useradd示例 注意:
<8>设置用户密码:passwd 在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。 passwd示例 <9>删除用户:userdel userdel命令用法 <补>查看用户UID和GID:id 命令格式:id 用户名 passwd文件说明 id示例 <10>修改文件权限:chmod chmod 修改文件权限有两种使用格式:字母法与数字法。 字母法:chmod u/g/o/a +/-/= rwx 文件 ugoa +-= rwx chmod o+w file 给文件file的其它用户增加写权限: chmod u-r file 给文件file的拥有者减去读的权限: chmod g=x file设置文件file的同组用户的权限为可执行,同时去除读、写权限: 数字法:“rwx” 这些权限也可以用数字来代替 chmod数字表示法 例如,chmod 777 file:所有用户拥有读、写、执行权限 注意要递归修改权限的话,需要加上-R。 chmod示例 以下是对修改文件的属主、属组、权限的总结:<11>修改文件所有者:chown 命令格式:chown 用户名 文件名|目录名 <12>修改文件所属组:chgrp 命令格时:chgrp 组名 文件名|目录名 注意要递归修改的话,需要加上-R。 chown、chgrp示例 修改文件的命令总结 六、系统、远程管理的常用命令<1>查看当前日历:cal cal(calendar)命令用于查看当前日历,-y显示整年日历: cal示例 <2>显示或设置时间:date 设置时间格式(需要管理员权限):date [MMDDhhmm[[CC]YY][.ss]] +format CC为年前两位yy为年的后两位,前两位的MM为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。 显示时间格式(date '+%y,%m,%d,%H,%M,%S'): date示例 <3>查看进程信息:ps 进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。 ps(process status)命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下: 注意:ps默认只会显示当前用户通过终端启动的应用程序。 ps示例 <4>动态显示进程:top top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d来指定显示信息更新的时间间隔。 在top命令执行后,可以按下按键得到对显示的结果进行排序: top示例 <5>终止进程:kill kill命令指定进程号的进程,需要配合 ps 使用。 使用格式:kill [-signal] pid 信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。 kill示例 有些进程不能直接杀死,这时候我们需要加一个参数-9,“ -9 ” 代表强制结束。<6>关机重启:reboot、shutdown、init shutdown命令格式:shutdown -选项 时间 shutdown可以 安全关闭 或 重新启动系统 注意:
<7>检测磁盘空间:df df(disk free)命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。 df常用选项 df示例 <8>检测目录所占磁盘空间:du du(disk usage)命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。 du命令的使用格式如下: du [选项] 目录或文件名 du常用选项 du示例 <9>查看或配置网卡信息:ifconfig 如果,我们只是敲:ifconfig,它会显示所有网卡的信息: 可以通过管道快速查看IP地址:ifconfig | grep 'inet'。 提示:一台计算机中可能有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以ensXX表示。127.0.0.1被称为本地回环/环回地址,一般用来测试本机网卡是否正常。<10>测试远程主机连通性:ping
提示:在Linux中,要想终止一个终端程序的执行,绝大多数都可以使用ctrl c。 <补>SSH基础 通过ssh客户端可以连接到安装了ssh服务器的远程机器上。
1)域名 和 端口号 域名:由一串用点分隔的名字组成,是IP地址的别名,方便用户记忆,例如www.baidu.com。 IP地址:通过IP地址找到网络上的计算机。 端口号:通过端口号找到计算机上运行的应用程序。
常见服务器端口号 2)SSH服务器的安装配置
# Authentication:LoginGraceTime 120PermitRootLogin yesStrictModes yes
sudo ufw disable #关闭防火墙sudo ufw enable #开启防火墙sudo ufw status #查看防火墙状态
3)SSH客户端的简单使用
4)Windows下SSH客户端软件的安装和使用 提示:建议从官网下载。 PuTTy:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html XShell:http://www.netsarang.com/download/main.html PuTTy XShell 5)SSH高级使用
免密码登陆: 配置别名: 每次都输入ssh -p port user@remote,时间久了会觉得很麻烦,特别是当user, remote和port都得输入,而且还不好记忆,而** 配置别名 **可以让我们进一步偷懒,譬如用:ssh mac来替代上面这么一长串,那么就在~/.ssh/config里面追加以下内容: Host mac HostName ip地址 User itheima Port 22
保存之后,即可用ssh mac实现远程登录了,scp同样可以使用 提示:touch config 之后 gedit config或者vi config,然后就可以追加了。 <补>远程拷贝文件:scp scp 就是 secure copy,是一个在Linux下来进行远程拷贝文件的命令。 它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的-P。 # 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径scp -P port 01.py user@remote:Desktop/01.py# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.pyscp -P port user@remote:Desktop/01.py 01.py# 加上 -r 选项可以传送文件夹# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktopscp -r demo user@remote:Desktop# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹scp -r user@remote:Desktop demo
scp常用选项 注意:
anonymous_enable=NO #不允许匿名用户登陆local_enable=YES #允许本机登陆local_root=/home/handy/ftp #指定ftp上传下载目录 ####一般使用FileZilla时只需要更改###write_enable=YES #允许上传文件到ftp服务器!!!###################################chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list #允许vsftpd.chroot_list文件中的用户登陆ftp服务器
七、Ubuntu软件安装的常用命令<1>安装/卸载软件:apt apt是advanced packaging tool的缩写,是Linux下的一款安装包管理工具,可以在终端中安装/卸载/更新软件包。 apt常用命令 提示:apt的安装命令其实不用记忆,在终端中如果没有这个命令,系统会提示安装。<2>配置软件源 如果希望在Ubuntu中安装软件更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务。 提示:更换服务器之后,需要一个相对比较长时间的更新过程,需要耐心等待。更新完成后,再安装软件就会从新设置的服务器下载安装了。
八、vi编辑器的常用命令 <1> vi简介 在工作中,要对 服务器 上的文件进行 简单 的修改,可以使用 ssh 远程登录到服务器上,并且使用 vi 进行快速的编辑即可 常见需要修改的文件包括:源程序、配置文件,例如 ssh 的配置文件 ~/.ssh/config
在很多 Linux 发行版中,直接把 vi 做成 vim 的软连接 vi vi 是 Visual interface 的简称,是 Linux 中 最经典 的文本编辑器 vi 的核心设计思想 —— 让程序员的手指始终保持在键盘的核心区域,就能完成所有的编辑操作 vi 的特点:没有图形界面 的 功能强大 的编辑器、只能是编辑 文本内容,不能对字体、段落进行排版、不支持鼠标操作、没有菜单、只有命令、vi 编辑器在 系统管理、服务器管理 编辑文件时,其功能永远不是图形界面的编辑器能比拟的。 vim vim = vi improved vim 是从 vi 发展出来的一个文本编辑器,支持 代码补全、编译 及 错误跳转 等方便编程的功能特别丰富,在程序员中被广泛使用,被称为 编辑器之神 <2> 打开和新建文件 $ vi 文件名
<3>打开文件并且定位行 在日常工作中,有可能会遇到 打开一个文件,并定位到指定行 的情况 例如:在开发时,知道某一行代码有错误,可以 快速定位 到出错代码的位置 ,这个时候,可以使用以下命令打开文件 $ vi 文件名 +行数
提示:如果只带上 + 而不指定行号,会直接定位到文件末尾,如果不带+号,那么会直接定位到文件开头。 <4>异常处理 如果 vi 异常退出,在磁盘上可能会保存有 交换文件 下次再使用 vi 编辑该文件时,会看到以下屏幕信息,按下字母 d 可以 删除交换文件 即可,之前的异常退出涉及的修改消失。 提示:按下键盘时,注意输入法为英文状态。 <5> vi 的三种工作模式 vi 有三种基本工作模式:
末行模式命令: 命令 英文 功能 w write 保存 q quit 退出,如果没有保存,不允许退出 q! quit 强行退出,不保存退出 wq write & quit 保存并退出 x 保存并退出 <6> 常用命令 命令学习线路图
1. 移动(基本)
1) 上、下、左、右 命令 功能 手指 h 向左 食指 j 向下 食指 k 向上 中指 l 向右 无名指 移动光标 2) 行内移动 命令 英文 功能 w word 向后移动一个单词 b back 向前移动一个单词 0 行首 ^ 行首,第一个不是空白字符的位置 $ 行尾 3) 行数移动 命令 英文 功能 gg go 文件顶部 G go 文件末尾 数字gg go 移动到 数字 对应行数 数字G go 移动到 数字 对应行数 :数字 移动到 数字 对应行数 4) 屏幕移动 命令 英文 功能 Ctrl + b back 向上翻页 Ctrl + f forward 向下翻页 H Head 屏幕顶部 M Middle 屏幕中间 L Low 屏幕底部 2. 移动(程序) 1) 段落移动
命令 功能 { 上一段 } 下一段 2) 括号切换
命令 功能 % 括号匹配及切换 3) 标记
命令 英文 功能 mx mark 添加标记 x,x 是 a~z 或者 A~Z 之间的任意一个字母 'x 直接定位到标记 x 所在位置 3. 选中文本(可视模式)
命令 模式 功能 v 可视模式 从光标位置开始按照正常模式选择文本 V 可视行模式 选中光标经过的完整行 Ctrl + v 可视块模式 垂直方向选中文本 注意:可视模式下,可以和 移动命令 连用,例如:ggVG 能够选中所有内容 4. 撤销和恢复撤销
命令 英文 功能 u undo 撤销上次命令 CTRL + r redo 恢复撤销的命令 5. 删除文本
6. 复制、粘贴
命令 英文 功能 y(移动命令) copy 复制 yy copy 复制一行,可以 nyy 复制多行 p paste 粘贴 提示
注意
7. 替换
8. 缩排和重复执行
9. 查找 常规查找
单词快速匹配
10. 查找并替换
:%s///g
1) 全局替换
:%s/旧文本/新文本/g
2) 可视区域替换
:s/旧文本/新文本/g
3) 确认替换
:%s/旧文本/新文本/gc
11. 插入命令
命令 英文 功能 常用 i insert 在当前字符前插入文本 常用 I insert 在行首插入文本 较常用 a append 在当前字符后添加文本 A append 在行末添加文本 较常用 o 在当前行后面插入一空行 常用 O 在当前行前面插入一空行 常用 插入命令
演练 1 —— 编辑命令和数字连用
要实现这个效果可以在 命令模式 下
演练 2 —— 利用 可视块 给多行代码增加注释
要实现这个效果可以在 命令模式 下
12. 分屏命令
末行命令扩展 末行命令 主要是针对文件进行操作的:保存、退出、保存&退出、搜索&替换、另存、新建、浏览文件
分屏命令
命令 英文 功能 :sp [文件名] split 横向增加分屏 :vsp [文件名] vertical split 纵向增加分屏 1) 切换分屏窗口
命令 英文 功能 w window 切换到下一个窗口 r reverse 互换窗口 c close 关闭当前窗口,但是不能关闭最后一个窗口 q quit 退出当前窗口,如果是最后一个窗口,则关闭 vi o other 关闭其他窗口 2) 调整窗口大小
13. 常用命令速查图 vimrc
/etc/vim/vimrc~/.vimrc
Tips: 终端中的字体大小更改:放大是ctrl shift +,缩小是ctrl -。 终端中退出某个程序:往往是q,可能是ctrl c或是ctrl d。 以新标签页的形式打开一个终端:ctrl alt T。 |