【总结篇】Linux中常用命令+网络+防火墙+权限+vim编辑等
目录一:Linux介绍使用LInux优点二:Linux的系统目录结构三:网络管理查看centos的网络获取IP地址关于centos7获取IP地址的方法主要有两种修改网卡的配置文件重启网络服务四:Linux命令基础命令shutdown 命令(关机)reboot 命令 (重启)poweroff命令系统命令查看CentOS的版本号查看内核版本网络/防火墙命令network 网络firewalld 防火墙
目录
一:Linux介绍
- Linux是一套免费的类Unix操作系统
- Linux是一套免费使用和自由传播的类Unix操作系统,可以任意修改其源代码。【有限度】
使用LInux优点
- 稳定:运行一年以上而不曾宕机、不必关机是很平常的事情
- 免费/少许费用:linux是基于GPL(GUN项目)授权下的产物,开源。稳定,不像微软需要不断更新系统,缴纳高额费用
- 安全性、漏洞的快虚修补:由于linux的免费开源属性,让linux拥有大量的用户,因此获得最新的安全信息共享相对简单些
- 多任务、多用户:linux系统可以多人同时上线工作,资源分配比较公平。而windows的单人多任务想必就不稳定
二:Linux的系统目录结构
以下是对这些目录的解释:
- /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。
- /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev : dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
- /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- /home: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
- /root: 该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin: s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /selinux: 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
- /srv: 该目录存放一些服务启动之后需要提取的数据。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
- /tmp: 这个目录是用来存放一些临时文件的。
- /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
- /usr/bin: 系统用户使用的应用程序。
- /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src:内核源代码默认的放置目录。
- /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。 /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。 /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。 值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。 /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
三:网络管理
查看centos的网络
开启网卡命令
ifup ens33
关闭网卡命令
ifdow ens33
获取IP地址
关于centos7获取IP地址的方法主要有两种
1.动态获取IP地址命令(推荐)
ip addr
2.静态获取IP地址
ifconfig
修改网卡的配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
动态获取IP修改
bootproto=dhcpzz
onboot=yes
静态获取IP修改
bootproto=static
onboot=yes
重启网络服务
systemctl restart network
四:Linux命令
基础命令
shutdown 命令(关机)
shutdown -h now 立即关机
shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。
shutdown –h 20:25 系统会在今天20:25关机
shutdown –h +10 十分钟后关机
shutdown –r now 系统立马重启 === reboot
shutdown –r +10 系统十分钟后重启
reboot 就是重启,等同于 shutdown –r now
halt 关闭系统,等同于shutdown –h now 和 poweroff
init 0 关闭系统
reboot 命令 (重启)
reboot #重新启动正在运行的Linux操作系统
shutdown -r now #系统立马重启
shutdown -r 19:45 #19:45 系统会在今天20:25关机
shutdown –r +10 系统十分钟后重启
poweroff命令
用来关闭计算机操作系统并且切断系统电源
系统命令
查看CentOS的版本号
cat /etc/centos-release
查看内核版本
uname -r 显示系统内核版本
uname -m 显示系统位数
网络/防火墙命令
network 网络
ifconfig # 查看ip
cat /etc/sysconfig/network-scripts/ifcfg-ens33 #查看ip
ifup ens33 # 启动网卡
ifdown ens33 # 关闭网卡
firewalld 防火墙
systemctl status firewalld #查看防火墙状态
systemctl stop firewalld #关闭防火墙状态
systemctl start firewalld #启动防火墙状态
systemctl disable firewalld #禁用防火墙状态(下次启动系统式不启动)
systemctl enable firewalld #启用防火墙状态(下次启动系统式自动启动)
五:Linux系统中文件和文件夹操作命令
帮助命令 *** --help
ls命令(查看目录的所有文件或目录)
ls命令用来显示目标列表,在Linux中是使用率较高的命令。
语法:
ls(选项/-a/-A)(参数/:目录:指定要显示列表的目录,也可以是具体的文件)
ls --help #帮助显示所有选择
常用的ls命令
ls # 列出目录下的所有文件或文件夹
ls -a # 列出所有档案及目录
ls -A $ 列出除影藏文件“.”和“..”以外的所有文件列表
ls -l 等于ll # 列出详细信息
cd命令(切换目录)
cd命令用来切换工作目录至dirname。
其中dirName表示法可为绝对路径或相对路径。
若目录名称省 略,则变换至使用者的home directory(也就是刚login时所在的目录)。
~ 也表示为home directory的意思
. 则是表示目前所在的目录,
.. 则表示目前目录位置的上一层目录。
cd /opt/xx/xx 切换到指定路径文件下
cd .. #返回上一级目录
cd ../.. #向上返回两级目录
cd ~ # 进入当前登录用户的home
pwd命令(查看当前路径)
pwd命令以绝对路径的方式显示用户当前工作目录
pwd #得知您目前所在的工作目录的绝对路径名称
mkdir命令(创建目录)
如果在目录名的前面没有加任何路径名,则在 当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指 定的目录
mkdir 目录名 #在当前目录下创建文件
mkdir 目录名1 目录名2 #在当前目录下同时创建多个文件
mkdir 目录名1/目录名2 #指定目录下创建文件(目录名已经存在)
mkdir -p 目录名1/目录名2 #创建多级文件(目录1可不存在)
rmdir 命令 (删除空目录)
rmdir命令用来删除空目录
rmdir 目录 #(目录必须是空的)
touch命令 (创建文件)
touch命令有两个功能
1.用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来
touch 文件名 # 如果文件已存在,则更新文件的修改时间
2.用来创建新的空文件
touch 文件名 #创建单个文件
touch 文件名1 文件名2 文件名... # 创建多个文件
> (创建文件方式2)
> 文件名 # 如果文件名不存在则创建文件,如果存在则覆盖
date > a.log # 把系统日期写入到a.log中
echo hello >a.log # 覆盖型的方式把hello写入到a.log中
echo hello >>a.log # 追加的方式把hello写入到a.log中,
cat命令 (查看文件信息)
cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容
cat 文件名 #把文件的所有内容输出到屏幕上
head命令查看文件信息
head 文件名 #查看文件信息
cat参数看下图
cat --help
mv命令
作用划分:移动,重命名
1.mv移动文件
mv a.log 目录路径 # 把a.log 剪切到目录路径
mv 源目录 目标目录 # 把源目录 剪切到目录目录
2.mv重命名文件
在当前目录下改名
mv 源文件名 新文件名 #改名
移动并改名
mv 源文件名 /目标路径/新文件名 #移动改名
cp命令(复制)
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。
它可以将单个源文件复 制成一个指定文件名的具体的文件或一个已经存在的目录下。
cp命令还支持同时复制多个文件,当一次 复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
语法
cp --help
复制文件
cp 文件 目标路径 #将指定文件复制到指定文件夹下
cp 目标/指定路径下目标 目标路径
复制目录
cp -rf 目录1 目录2 #将目录1复制到目录2中
rm命令(删除目录或文件)
rm命令可以删除一个目录中的一个或多个文件或目录
也可以将某个目录及其下属的所有文件及其 子目录均删除掉
rm --help # 帮助
-d: #直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f: #强制删除文件或目录;
-i: #删除已有文件或目录之前先询问用户;
-r或-R: #递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root: #不对根目录进行递归操作;
-v: #显示指令的详细执行过程。
删除文件
确认的方式删除 y 删除 n 取消删除
rm 文件名 #指定文件名单删
rm 文件名1 文件名2 文件名3 #批删
rm -rf 文件或目录 # 级联删除 没有提示
free命令
检查当前可用的内存和交换分区
- Mem 行(第二行)是内存的使用情况。
- Swap 行(第三行)是交换空间的使用情况。
- total 列显示系统总的可用物理内存和交换空间大小。
- used 列显示已经被使用的物理内存和交换空间。
- free 列显示还有多少物理内存和交换空间可用使用。
- shared 列显示被共享使用的物理内存大小。
- buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
- available列显示还可以被应用程序使用的物理内存大小。
ps命令
作用:用来检查进程信息 格式:ps [参数] -e 显示所有进程 -f 显示UID,PPIP,C,STIME 信息
ps -ef #列出系统所有进程
ps -ef | grep ping # #列出系统中ping 的进程(过滤)
kill (杀死)
kill -9 进程号 例如 kill -9 4386
ln命令(连接)
ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种(默认的连接类型是硬连接。如果
要创建符号连接必须使用"-s"选项 )
硬链接:通过文件系统的inode来产生新档名,而不是产生新档案。
ln 文件名(存在) 新文件名(不存在) # 创建硬连接
软链接:看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录
ln -s a.log b.log # 创建软连接
tar命令
tar命令可以为linux的文件和目录创建档案
1.1压缩
tar -zcvf 目标文件名.tar.gz 源文件或目标(要压缩的文件)
- z : gzip指令进行压缩
- c : create创建新的压缩文件
- v : 显示压缩的过程
- f : 最后形成文件
1.2解压缩
tar -zxvf 目标文件名.tar.gz #默认解压当前目录
tar -zxvf 目标文件名.tar.gz -C /目录名 #解压到指定目录(-C)下
六:Linux系统中系统账号操作命令
useradd命令(添加用户)
useradd命令用于Linux中创建的新的系统用户(保存在 /etc/passwd 文本文件中 )
useradd 用户名
一般步骤:useradd建立用户帐号再用passwd设定帐号的密码,可用userdel删除帐号
passwd命令(设置密码)
passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系
统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码
选项:
- -d:删除密码,仅有系统管理者才能使用
- -f:强制执行
- -k:设置只有在密码过期失效后,方能更新
- -l:锁住密码
- -s:列出密码的相关信息,仅有系统管理者才能使用
- -u:解开已上锁的帐号
passwd 用名名
查看系统中的所有用户
所有的用户信息统一保存到/etc/passwd/文件中
cat /ect/passwd
对上图命令出现的信息做解释 [ 创建一个用户就会自动创建一个同名的用户组 ]
- root:x:0:0:root:/root:/bin/bash用户名:口令:用户表示符:组表示符:注释性描述:主目录:登陆Shell
- 用户名:(代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里)
- 口令:一些系统中,存放着加密后的用户口令字,虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”
- 用户标识号:是一个整数,系统内部用它来标识用户)/(一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500)
- 组标识号:(字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。 )
- 注释性描述:(字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux 系统中,这个 字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做fifinger命令的输出。
- 主目录:(也就是用户的起始工作目录。它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置)
- 系统中有一类用户称为伪用户(pseudo users)。
- 这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。
groupadd命令创建用户组
创建一个用户就会自动创建一个同名的用户组
groupadd 组名
所有的组统一存在一个文件中 /ect/group
usermod命令(修改用户信息)
usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上(进程中存在的)的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序
usermod命令修改用户所属的组
usermod -g 组名 用户名
groups查看指定用户所属组
groups 用户名
锁定用户
usermod -L #锁定无法登陆
解锁
usermod -u #让用户正常使用
创建用户并制定组
useradd -g 组名 用户名 # useradd -g group2 zhaoliu
注意:创建用户必须设置密码,否则报鉴定故障,(切换用户密码不能为空)
删除用户
userdel -rf 用户
-r 删除主目录
-f 强制删除
[ERROR]删除用户时这里大家可能会报一个错误
userdel: user xiaocui1 is currently used by process 10097 翻译:Userdel:用户xiaocui1当前被进程10097使用 原因:被删用户的进程被占用.大部分原因是你操作删除之前切换了该用户使用,所以导致进程被占用 解决方式:按住CTRL+D(exiut)登出到根用户,解决当前进程再进行删除,便可以删除了
删除组
groupdel 组名 # groupdel group 删除空组(组中不能有成员)
groupdel -f 组名 # groupdel -f groupName 强制删除组- (不删除组中成员)
su命令(切换用户)
su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码
su 用户名 #切换到指定用户
管理员->普通用户不需要输入密码
普通用户->管理员需输入密码
who命令
who命令是显示目前登录系统的用户信息
-H或--heading:显示各栏位的标题信息列;
-i或-u或--idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
-m:此参数的效果和指定"am i"字符串相同;
-q或--count:只显示登入系统的帐号名称和总人数;
-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
-w或-T或--mesg或--message或--writable:显示用户的信息状态栏;
--help:在线帮助;
--version:显示版本信息。
七:Linux系统中文件权限操作命令
chown命令(授权)
chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。
chown 需要超级用户 root 的权限才能执行此命令。
只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。
参数
- -c或——changes:效果类似“-v”参数,但仅回报更改的部分;
- -f或--quite或——silent:不显示错误信息;
- -h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
- -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
- -v或——version:显示指令执行过程;
- -dereference:效果和“-h”参数相同;
- --help:在线帮助;
- --reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有 者与所属群组相同;
- --version:显示版本信息。
语法
chown -R 用户:用户组 目录/文件名 #修改指定文件目录下所属的用户组 + 分组
chown 用户组 文件名 #一个惨代表修改用户组
chgep命令
chgrp命令用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。
其中,组名可以是用户组的id,也可以是用户组的组名
chgrp 用户名 文件名 #修改文件所属的用户组
chmod命令(权限)
用来修改某个目录或文件的访问权限
语法
chmod [-cfvR] [--help] [--version] [who] [+ | - | =] [mode] 文件名
例子
chmod 权限 文件名
权限范围的表示法如下:
- u User,即文件或目录的拥有者;
- g Group,即文件或目录的所属群组;
- o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
- a All,即全部的用户,包含拥有者,所属群组以及其他用户;
- r 读取权限,数字代号为“4”;
- w 写入权限,数字代号为“2”;
- x 执行或切换权限,数字代号为“1”;
- - 不具任何权限,数字代号为“0”;
- s 特殊功能说明:变更文件或目录的权限。
命令中各选项的含义为
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
操作对象who可是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
+ 添加某个权限。 - 取消某个权限。 = 赋予给定权限并取消其他所有权限(如果有的话)。
设置 mode 所表示的权限可用下述字母的任意组合:
r 可读。 w 可写。 x 可执行。 X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。 s 在文件执行时把进程的属主或组ID置为该文件的文件属主。 方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。 t 保存程序的文本到交换设备上。 u 与文件属主拥有一样的权限。 g 与和文件属主同组的用户拥有一样的权限。 o 与其他用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
r 代表读,w 代表写,x 代表执行, 如果可读,权限是二进制的100,十进制是4; 如果可写,权限是二进制的010,十进制是2; 如果可运行,权限是二进制的001,十进制是1;
具备多个权限,就把相应的 4、2、1 相加就可以了:
若要 rwx 则 4+2+1=7 若要 rw- 则 4+2=6 若要 r-x 则 4+1=5 若要 r-- 则 =4 若要 -wx 则 2+1=3 若要 -w- 则 =2 若要 --x 则 =1 若要 --- 则 =0
chmod命令实例
所有人皆可读取
chmod ugo+r 文件名
chmod a+r 1.txt
将文件 文件1与文件2 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w 文件1 文件2
将 1.py 设定为只有该文件拥有者可以执行 :
chmod u+x 1.py
将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 :
chmod 777 file
语法为:
chmod abc file
linux中chmod权限的用法
chmod ABC file #A、B、C各为一个数字,分别表示User、Group、及Other的权限
A、B、C这三个数字如果各自转换成由“0”、“1”组成的二进制数,则二进制数的每一位分别代表一个角色的读、写、运行的权限。比如User组的权限A:
如果可读、可写、可运行,就表示为二进制的111,转换成十进制就是7。 如果可读、可写、不可运行,就表示为二进制的110,转换成十进制就是6。 如果可读、不可写、可运行,就表示为二进制的101,转换成十进制就是5。
为不同的角色分配不同的权限,放在一起,就出现 777、677这样的数字了。
你也可以用 chmod u+x file 的方式为User组添加运行权限。
八:Linux文本编辑vi/vim
为什么要学习Linux文本编辑
我们在进行linux系统操作的时候,会经常涉及一些配置文件的编写和修改等操作等.这就需要我们掌握linux的文本编辑命令!这点非常重要!
常见的文本编辑器(vi 和vim)
vi 和vim都是vim 多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指指令,而且还有一些新的特性在里面。
vim编辑器的模式
什么是vim?
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
vim 的官方网站 welcome home : vim online
vim键盘图
最常见的经典版vim键盘图
对应的简体中文版
vi/vim 的使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。 (此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。)
以下是常用的几个命令
-
i 切换到输入模式,以输入字符。
-
x 删除当前光标所在处的字符。
-
: 切换到底线命令模式,以在最底一行输入命令。
故:若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令
输入模式
在命令模式下按下 i 就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
-
q 退出程序
-
w 保存文件
按ESC键可随时退出底线命令模式。
vi/vim的三种命令模式汇总
vi/vim命令模式汇总
-
i:在光标所在字符前开始插入
-
a:在光标所在字符后开始插入
-
o:在光标所在行的下面另起一新行插入
-
s:删除光标所在的字符并开始插入
-
I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
-
:在光标所在你行的行尾开始插入
-
O:在光标所在行的上面另起一行开始插入
-
S:删除光标所在行并开始插入
vim实例操作:(创建一个txt文档,进行编辑保存退出)
vim 文件名 #文件可存在可不存在 ,不存在自行创建新文档
整体过程:vim 文件名 回车 到命令模式 命令命令 i o a等控制光标位置进入输入模式 ,进行字符输入 按ESC退出输入模式重新进入命令模式 底层输入: (分号) 即可输入底层命令 这里是 :wq 退出并保存文件
vi/vim常用按键
除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。
全部删除:按esc键后,先按gg(到达顶部),然后dG 全部复制:按esc键后,先按gg,然后ggyG**一般模式可用的光标移动、复制粘贴、搜索替换等 单行复制:按esc键后, 然后yy 单行删除:按esc键后, 然后dd 粘贴:按esc键后, 然后p
查找
/xxx # / 表示向下 查找到之后命令模式下继续输入n则是查找下一个匹配处,输入 N 反方向查找 gd #本命令查找与光标所在单词相匹配的单词
快速移动光标
c-f (即 ctrl 键与 f 键一同按下) 本命令即 page down c-b (即 ctrl 键与 b 键一同按下, 后同) 本命令即 page up '' 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置 ' 此命令相当好使, 它移动光标到上一次的修改行 ` 此命令相当强大, 它移动光标到上一次的修改点
拷贝、删除、黏贴
yw 表示拷贝从当前光标到光标所在单词结尾的内容 dw 表示删除从当前光标到光标所在单词结尾的内容 (从光标位开始删到该删除结尾) y0 表示拷贝从当前光标到光标所在行首的内容 (从光标位开始复制到该单词开头) d0 表示删除从当前光标到光标所在行首的内容 y$ 表示拷贝从当前光标到光标所在行尾的内容 d$ 表示删除从当前光标到光标所在行尾的内容 yfa 表示拷贝从当前光标到光标后面的第一个a字符之间的内容 dfa 表示删除从当前光标到光标后面的第一个a字符之间的内容yy 表示拷贝光标所在行 dd 表示删除光标所在行 D 表示删除从当前光标到光标所在行尾的内容
数字与命令
5fx 表示查找光标后第5个x字符 5w(e) 移动光标到下五个单词 5yy 表示拷贝光标以下 5 行 5dd 表示删除光标以下 5 行 y2fa 表示拷贝从当前光标到光标后面的第二个a字符之间的内容 :12,24y 表示拷贝第12行到第24行之间的内容 :12,y 表示拷贝第12行到光标所在行之间的内容 :,24y 表示拷贝光标所在行到第24行之间的内容 删除类似
替换
:s/aa/bb/g 将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb :%s/aa/bb/g 将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb :12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb :12,23s/^/#/ 将从12行到23行的行首加入 # 字符 :%s= *$== 将所有行尾多余的空格删除 :g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除
Thanks!!
Linux系统中Tomcat下载+安装+测试【一看就会】_萌小崔的博客-CSDN博客
Linux系统中(自动/手动)安装jdk的两种方式+如何配置jdk环境变量_萌小崔的博客-CSDN博客
Linux系统发行版ContOS7演示安装MySQL+配置MySQL+Navicat连接Linux的mysq测试【一看就会】_萌小崔的博客-CSDN博客
如何Linux系统中修改Tomcat服务器的端口号【详细教程】_萌小崔的博客-CSDN博客
更多推荐
所有评论(0)