vim编辑器(超详细!)
Posted code华华
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim编辑器(超详细!)相关的知识,希望对你有一定的参考价值。
vim编辑器
vim,被称为编辑器之神,拥有陡峭的学习曲线,一旦掌握,编写代码即可脱离鼠标,双手只需在键盘上飞舞,一行行代码随之出现,增删改查,轻松自如!
大一时我学了vim,掌握之后,如今我编写代码离不开vim。程序员难免要和服务器打交道,而大部分服务器都是linux,在linux上面部署服务,难免需要用到vim去编辑文件,作为程序员,掌握vim很有必要~同时各大IDE:vscode、pycharm等都可安装vim插件,用vim编写代码。
下面是我学习vim时,做的笔记(超级详细!),欢迎取用~
一.三种工作模式
- 命令模式
- 打开文件首先进入的模式是命令模式。
- 命令模式,顾名思义,就是专用于敲命令的模式,只能通过键盘输入各种命令。
- 这些命令可以实现各种功能,如:删除,定位,翻页,复制,粘贴…
- 末行模式
- 执行保存和退出等操作。
- 末行模式是vim的出口。
- 编辑模式
- 正常编辑文字的模式。
二.常用命令
- 重复次数
- 在命令模式下,先输入一个数字,再跟上一个命令,可以让命令重复执行一定次数
- 移动和选择
- vim 之所以快,关键在于能够快速定位到要编辑的代码行
- 编辑操作
- delete 、copy、paste、replace、缩排
- 撤销和重复
- 查找和替换
- 编辑
notes: When you insert sequence you need close Chinese mode
2.1 移动(基本)
- 上 下 左 右
命令 | 功能 | 手指 |
---|---|---|
h | 向左 | 食指 |
j | 向下 | 食指 |
k | 向上 | 中指 |
l | 向右 | 无名指 |
2.行内移动
命令 | 英文 | 功能 |
---|---|---|
w | word | 向后移动一个单词 |
b | back | 向前移动一个单词 |
0 | 行首 | |
^ | 行首,第一个不是空白字符的位置 | |
$ | 行尾 |
3.行数移动
命令 | 英文 | 功能 |
---|---|---|
gg | go | 文件顶部 |
G | GO | 文件末尾 |
数字gg | go | 移动到数字对应行数 |
数字G | GO | 移动到数字对应行数 |
:数字 | 移动到数字对应行数 |
- 屏幕移动
命令 | 英文 | 功能 |
---|---|---|
ctrl+b | back | 向上翻页 |
ctrl+f | forward | 向下翻页 |
H | Head | 屏幕顶部 |
M | Middle | 屏幕中间 |
L | Low | 屏幕底部 |
- 段落移动
- vim中用空行来分隔段落
- 程序开发时,** 功能相关的代码写在一起,之间没有空行
命令 | 功能 |
---|---|
上一段 | |
下一段 |
- 括号切换
命令 | 功能 |
---|---|
% | 括号匹配和切换 |
- 标记
- 为什么会有标记呢?:在开发时,某块代码需要稍后处理 ,例如:编辑,查看。
- 使用m增加一个标记,这样就可以在需要时快速跳转回来或者执行其他操作
- 标记名称:可以是a-z或A-Z之间任意一个字符。标记行如果被删除,标记也会被删除
命令 | 功能 |
---|---|
mx | 添加标记x |
‘x | 直接定位到x所在位置 |
2.2 选中文本(可视模式)
用处:为复制文本做准备
命令 | 模式 | 功能 |
---|---|---|
v | 可视模式 | 从光标开始按照正常模式选择文本 |
V | 可视行模式 | 选中光标经过的完整行 |
Ctrl+v | 可视块模式 | 垂直方向选中文本 |
- 全选:ggVG
3.1 撤销和恢复撤销
命令 | 单词 | 功能 |
---|---|---|
u | undo | 撤销上次命令 |
ctrl+r | redo | 恢复撤销的命令 |
3.2 删除文本
命令 | 英文 | 功能 |
---|---|---|
x | cut | 删除光标所在字符 |
d(移动命令) | delete | 删除移动命令对应的内容 |
dd | delete | 删除光标坐在行,ndd可以删除多行 |
D | delete | 删除至行尾 |
3.3 复制、粘贴
vim中有一个被复制文本的缓冲区
- 复制
命令会将选中的文字保存在缓冲区
- 删除
命令删除的文字会被保存在缓冲区
- 在需要的位置,使用粘贴 命令会把缓冲区的文字插入到光标所在位置
- 复制
命令 | 英文 | 功能 |
---|---|---|
y(移动命令) | copy | 复制 |
yy | copy | 复制一行,可以nyy复制n行 |
p | paste | 粘贴 |
4.1 替换
命令 | 英文 | 功能 | 工作模式 |
---|---|---|---|
r | replace | 替换当前字符 | 命令模式 |
R | replace | 替换当前光标后的字符 | 替换模式 |
- R
命令可以进入
替换模式 ,替换完成之后,按下esc键回到
命令模式 - 替换命令 的作用就是不进入编辑模式,对文本进行轻量级改动
4.2 缩进
命令 | 功能 |
---|---|
<< | 向右增加缩进 |
>> | 向左减少缩进 |
. | 重复上次命令 |
一次缩进是4个空格
4.3 查找
命令 | 功能 |
---|---|
/str | 查找str |
- 查找到指定内容后,使用next查找下一个出现的位置:
- n :查找下一个
- N:查找上一个
单词快速匹配
命令 | 功能 |
---|---|
* | 向后查找当前光标所在单词 |
# | 向前查找当前光标所在单词 |
4.4 查找并替换
全局模式:
-
需要在末行模式下执行
-
命令格式:
:%s/被替换/替换/g
可视区域替换:
- 先选中要替换文字的区域
- 命令格式:
:s/被替换/替换/g
确认替换
-
在替换之前 会有提示
-
命令格式:
:%s/被替换/替换/gc
提示:
- y
- n
- a -all 替换所有
- q -quit 推出替换
- l -last 替换最后一个
5.1 插入命令
命令 | 英文 | 功能 | 常用 |
---|---|---|---|
i | insert | 在当前字符前插入文本 | 常用 |
I | insert | 在行首插入文本 | 较常用 |
a | append | 在当前字符后添加文本 | |
A | append | 在行尾添加文本 | 较常用 |
o | 在当前行后面添加一空行 | 常用 | |
O | 在上前行前面添加一空行 | 常用 |
5.2 末行命令
命令 | 英文 | 功能 |
---|---|---|
:w | write | 保存 |
:w 文件名 | 保存为新的文件 | |
:q | quit | 退出,如果没有保存,不允许退出 |
:q! | quit | 强制退出 |
:wq | 保存并退出 | |
:x | 保存并退出 | |
:e . | edit | 打开内置的文件浏览器,浏览当前目录下的文件 |
:n 文件名 | new | 新建文件 |
- 实际开发中,会用**w ** 阶段性备份代码
5.3 分屏命令
-
使用分屏命令可以同时编辑和查看多个文件
命令 英文 功能 :sp[文件名] split 横向增加分屏 :vsp[文件名] vertical split 纵向增加分屏 -
切换分屏窗口
分屏窗口都是基于
ctrl+w
这个快捷键的,w即window
按完这两个键之后松掉,就按下面的键实现功能命令 英文 功能 w window 切换到下一个窗口 r reverse 互换窗口 c close 关闭当前窗口,但是不关闭最后一个窗口 q quit 退出当前窗口,如果是最后一个窗口,即关闭vim o other 关闭其他窗口
获取完整原创笔记markdown文件:公粽号:为你作画,回复vim
谢谢阅读~
Linux新手快速入门(万字超详细)
Linux系统新手入门
文章目录
- Linux系统新手入门
- 前言
- 一、Linux的文件和目录结构
- 二、 VIM编译器
- 三、网络配置
- 四、系统管理
- 五、帮助命令
- 5.1 获取帮助信息
- 5.2 文件目录类
- 5.2.1 pwd 显示当前工作目录的绝对路径
- 5.2.2 ls 列出目录的内容
- 5.2.3 cd 切换目录
- 5.2.4 mkdir 创建一个新的目录
- 5.2.5 rmdir 删除一个空的目录
- 5.2.6 touch 创建空文件
- 5.2.7 cp复制文件或目录
- 5.2.8 rm 删除文件或目录
- 5.2.9 mv 移动文件与目录或重命名
- 5.2.10 cat 查看文件内容
- 5.2.11 more 文件内容分屏查看器
- 5.2.12 less 分屏显示文件内容
- 5.2.13 echo
- 5.2.14 head 显示文件头部内容
- 5.2.15 tail 输出文件尾部内容
- 5.2.16 > 输出重定向和 >> 追加
- 5.2.17 ln 软链接
- 5.2.18 history 查看已经执行过历史命令
- 5.3 时间日期类
- 5.4 用户管理命令
- 5.5 用户组管理命令
- 5.6 文件权限类
- 5.7 搜索查找类
- 5.8 压缩和解压类
- 5.9 磁盘查看和分区类
- 5.10 进程管理
- 5.11 crontab 系统定时任务
- 6、软件包管理
- 7、克隆虚拟机
- 总结
前言
Linux是一套免费使用和自由传播的类Unix操作系统,是一个POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统
一、Linux的文件和目录结构
1.1 Linux的文件
1.2 Linux的目录结构
目录 | 数据 |
---|---|
/root/ | 根用户(超级用户)的主目录 |
/lib/ | 系统开机所需要最基本的动态连接共享库 |
/bin/ | 存放着最经常使用的命令 |
/sbin/ | 存放的是系统管理员使用的系统管理程序 |
/home/ | 存放普通用户主目录 |
/mnt/ | 该目录中通常包括系统引导后被挂载的文件系统的挂载点 |
/boot/ | 包括内核和其它系统启动期间使用的文件 |
/etc/ | 所有的系统管理所需要的配置文件和子目录 |
/usr/ | 用户的很多应用程序和文件都放在这个目录下 |
/proc/ | 一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息 |
/srv/ | 该目录存放一些服务启动之后需要提起的数据 |
/tmp/ | 存放临时文件 |
二、 VIM编译器
2.1 了解VIM编译器
vim 是一个功能强大的多模式编辑器, 是 Linux/UNIX 上最常用的文本编辑器, 它的作用是建立、编辑、显示文本文件。Vim 没有菜单,只有命令
2.2 一般模式
在一般模式中我们可以进行复制、粘贴、删除等动作,但是不可以进行编辑文件内容,需要进入编辑模式才可以进行文本编辑
语法 | 功能描述 |
---|---|
yy | 复制光标当前行 |
y 数字 y | 复制一段(从第几行到第几行) |
p | 箭头移动到目的行粘贴 |
u | 撤销上一步 |
dd | 删除光标当前行 |
d 数字 d | 删除光标(含)后多少行 |
x | 剪切一个字母,相当于 del |
X | 剪切一个字母,相当于 Backspace |
yw | 复制一个词 |
dw | 删除一个词 |
shift+6 (^) | 移动到行头 |
shift+4 ($) | 移动到行尾 |
1+shift+g | 移动到页头,数字 |
shift+g | 移动到页尾 |
数字+shift+g | 移动到目标行 |
2.3 编辑模式
当我们要退出这个编辑模式的时候我们要按下[ESC]按键才可以退出
按键 | 功能 |
---|---|
a | 当前光标后 |
A | 光标所在行最后 |
i | 当前光标前 |
I | 光标所在行最前 |
o | 当前光标行的下一行 |
O | 当前光标行的上一行 |
2.4 指令模式
命令 | 功能 |
---|---|
:w | 保存 |
:q | 退出 |
:! | 强制退出 |
:wq! | 保存修改并退出 |
三、网络配置
3.1 配置网络ip地址
查看当前网络ip
ifconfig
测试网络之间的连通性
ping www.baidu.com
修改ip地址
1)、查看IP配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens(XX)
2)、修改以下值
#确保ONBOOT=yes
#确保BOOTPROTO="static"
#以下字段没有的话要直接添加
#IP 地址
IPADDR=192.168.xxx.xxx (添加自己想要的ip地址)
#网关
GATEWAY=192.168.1.2
#域名解析器
DNS1=192.168.1.2
3)、编辑结束之后,按下esc,输入:wq就可以保存退出了
4)、执行以下命令重启网络
service network restart
5)、然后再次输入ip a再次查看修改成功与否
3.2 配置主机名
1)查看当前服务器主机名称
hostname
2)编辑hostname文件
vi /etc/hostname
四、系统管理
4.2 systemctl
基本语法
systemctl start | stop | restart | status 服务名
案例
systemctl start firewalld (启动防火墙服务)
systemctl stop firewalld (停止防火墙服务)
4.3 设置后台服务的自启配置
基本语法
systemctl list-unit-files (功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)
案例
systemctl enable firewalld.service (开启防火墙服务的自动启动)
systemctl disable firewalld.service (关闭防火墙服务的自动启动)
4.4 关机重启命令
选项 | 功能 |
---|---|
sync | 将数据由内存同步到硬盘中 |
halt | 停机,关闭系统,但不断电 |
poweroff | 关机,断电 |
reboot | 重启 |
shutdown [选项] 时间 | now/时间 |
五、帮助命令
5.1 获取帮助信息
1)基本语法
man[命令或配置文件]
案例
man ls
2)基本语法
help命令 获取shell内置命令的帮助信息
案例
help cd
3)常用快捷键
常用快捷键 | 功能 |
---|---|
ctrl + c | 停止进程 |
ctrl+l | 清屏,等同于 clear;彻底清屏是:reset |
tab 键 | 提示(更重要的是可以防止敲错) |
上下键 | 查找执行过的命令 |
5.2 文件目录类
5.2.1 pwd 显示当前工作目录的绝对路径
基本语法:
pwd (功能描述:显示当前工作目录的绝对路径)
案例
pwd /root
5.2.2 ls 列出目录的内容
基本语法:
ls [选项] [目录或是文件]
选项 | 功能 |
---|---|
-a | 全部的文件,连同隐藏档 |
-l | 长数据串列出,包含文件的属性与权限等等数据 |
5.2.3 cd 切换目录
基本语法:
cd[参数]
参数 | 功能 |
---|---|
cd 绝对路径 | 切换路径 |
cd相对路径 | 切换路径 |
cd~ 或者 cd | 回到自己的家目录 |
cd- | 回到上一次目录 |
cd… | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
5.2.4 mkdir 创建一个新的目录
基本语法:
mkdir [选项] 要创建的目录
选项 | 功能 |
---|---|
-p | 创建多层目录 |
案例
mkdir book (创建一个目录)
mkdir -p book/story/xiyangyang (创建一个多级目录)
5.2.5 rmdir 删除一个空的目录
基本语法:
rmdir 要删除的空目录
案例
rmdir book/story/xiyangyang
5.2.6 touch 创建空文件
基本语法:
touch 文件名称
案例
touch book/story/xiyangyang.txt
5.2.7 cp复制文件或目录
基本语法:
cp[选项] XXX YYY (复制XXX文件到YYY)
选项 | 功能 |
---|---|
-r | 递归复制整个文件夹 |
案例
cp book/story/xiyangyang.txt book/huitailang (复制文件)
cp -r book/huitailang/ ./ (递归复制整个文件夹)
5.2.8 rm 删除文件或目录
基本语法
rm [选项] deleteFile (功能描述:递归删除目录中所有内容)
选项 | 功能 |
---|---|
-r | 递归删除目录中所有内容 |
-f | 强制执行删除操作,而不提示用于进行确认 |
v | 显示指令的详细执行过程 |
案例
rm -rf xiyangyang/
5.2.9 mv 移动文件与目录或重命名
基本语法:
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
案例
mv book/story/xiyangyang.txt book/story/langyangyang.txt (重命名)
5.2.10 cat 查看文件内容
基本语法
cat [选项] 要查看的文件
选项 | 功能描述 |
---|---|
-n | 显示所有行的行号,包括空行 |
5.2.11 more 文件内容分屏查看器
基本语法:
more 要查看的文件
操作 | 功能说明 |
---|---|
空白键 | 代表向下翻一页 |
enter | 代表向下翻一行 |
q | 代表立刻离开 more ,不再显示该文件内容 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
- | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
案例
more smartd.conf
5.2.12 less 分屏显示文件内容
基本语法
less 要查看的文件
操作 | 功能说明 |
---|---|
空白键 | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/字串 | 向下搜寻『字串』的功能;n :向下查找;N :向上查找 |
?字串 | 向上搜寻『字串』的功能;n :向上查找;N :向下查找; |
q | 离开 less 这个程序 |
案例
less smartd.conf
5.2.13 echo
基本语法:
echo [选项] [输出内容]
选项 | 功能说明 |
---|---|
-e | 支持反斜线控制的字符转换 |
控制字符 | 作用 |
---|---|
\\ | 输出\\本身 |
\\n | 换行符 |
\\t | 制表符 |
案例
echo -e “hello\\tworld”
5.2.14 head 显示文件头部内容
基本语法
head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
选项 | 功能 |
---|---|
-n<行数> | 指定显示头部内容的行数 |
案例
head -n 2 smartd.conf
5.2.15 tail 输出文件尾部内容
基本语法:
tail 文件 (功能描述:查看文件尾部10行内容)
tail -n 5 文件 (功能描述:查看文件尾部5行内容,5可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新)
选项 | 功能 |
---|---|
-n<行数> | 输出文件尾部 n 行内容 |
-f | 显示文件最新追加的内容,监视文件变化 |
案例
tail -n 1 smartd.conf (查看文件尾 1 行内容)
tail -f houge.txt (实时追踪该档的所有更新)
5.2.16 > 输出重定向和 >> 追加
语法 | 功能 |
---|---|
ls -l > 文件 | 列表的内容写入文件 a.txt 中(覆盖写) |
ls -al >> 文件 | 列表的内容追加到文件 aa.txt 的末尾 |
cat 文件 1 > 文件 2 | 将文件 1 的内容覆盖到文件 2 |
echo “内容” >> 文件 | 采用 echo 将 内容“”追加到文件中 |
5.2.17 ln 软链接
基本语法:
ln -s [原文件或目录] [软链接名]
删除软链接: rm -rf 软链接名,而不是 rm -rf 软链接名/
如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉
查询:通过 ll 就可以查看,列表属性第 1 位是l ,尾部会有位置指向
5.2.18 history 查看已经执行过历史命令
基本语法:
history (功能描述:查看已经执行过历史命令)
案例:
history
5.3 时间日期类
基本语法:
date [OPTION]… [+FORMAT]
选项 | 功能 |
---|---|
-d<时间字符串> | 显示指定的“时间字符串”表示的时间,而非当前时间 |
-s<日期时间> | 设置系统日期时间 |
5.3.1 date显示当前时间
基本语法
选项 | 功能描述 |
---|---|
date | 显示当前时间 |
date +%Y | 显示当前年份 |
date +%m | 显示当前月份 |
date +%d | 显示当前是哪一天 |
date “+%Y-%m-%d %H:%M:%S” | 显示年月日时分秒 |
案例
#显示当前时间年月日
date +%Y%m%d
#显示当前时间年月日时分秒
date "+%Y-%m-%d %H:%M:%S"
5.3.2 date 显示非当前时间
基本语法
选项 | 功能描述 |
---|---|
date -d ‘1 days ago’ | 显示前一天时间 |
date -d ‘- 1 days ago’ | 显示明天时间 |
案例
#显示前一天
date -d '1 days ago '
#显示明天时间
date -d '-1 days ago '
5.3.3 date 设置系统时间
基本语法:
date -s 字符串时间
案例
#设置系统当前时间
date -s "2017-06-19 20:52:18"
5.3.4 cal 查看日历
基本语法:
cal [选项] (功能描述:不加选项,显示本月日历)
选项 | 功能 |
---|---|
具体某一年 | 显示这一年的日历 |
案例
#查看2022年的日历
cal 2022
5.4 用户管理命令
5.4.1 useradd 添加新用户
基本语法
useradd 用户名 (功能描述:添加新用户)
useradd -g 组名 用户名 (功能描述:添加新用户到某个组)
案例
#添加一个新用户
useradd xiyangyang
5.4.2 passwd 设置用户密码
基本语法:
passwd 用户名 (功能描述:设置用户密码)
案例
#设置用户的密码
passwd 123456789
5.4.3 id 查看用户是否存在
基本语法:
id 用户名
案例
#查看用户名是否存在
id xiyangyang
5.4.4 cat /etc/passwd 查看创建了哪些用户
cat /etc/passwd
5.4.5 su 切换用户
基本语法:
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)
5.4.6 userdel 删除用户
基本语法:
userdel 用户名 (功能描述:删除用户但保存用户主目录)
userdel -r 用户名 (功能描述:用户和用户主目录,都删除)
-r (功能:删除用户的同时,删除与用户相关的所有文件)
案例
#删除用户但保存用户主目录
userdel xiyangyang
#删除用户和用户主目录,都删除
useradd huitailang
5.4.7 who 查看登录用户信息
基本信息:
whoami (功能描述:显示自身用户名称)
who am i (功能描述:显示登录用户的用户名以及登陆时间)
5.4.8 sudo 设置普通用户具有 root 权限
5.4.9 usermod 修改用户
基本语法:
usermod -g 用户组 用户名
-g (功能描述:修改用户的初始登录组,给定的组必须存在。默认组 id 是 1)
案例
#将用户加入到用户组
usermod -g root zhubajie
5.5 用户组管理命令
5.5.1 groupadd 新增组
基本语法
groupadd 组名
案例
#添加一个feiyangyang组
groupadd feiyangyang
5.5.2 groupdel 删除组
基本语法
groupdel 组名
案例
#删除feiyangyang组
groupdel feiyangyang
5.5.3 groupmod 修改组
基本语法
groupmod -n 新组名 旧组名
-n 指定工作组的新组名
案例
#修改manyangyang组名为nuanyangyang
groupmod -n nuanyangyang manyangyang
5.5.4 cat /etc/group 查看创建了哪些组
基本操作
cat /etc/group
5.6 文件权限类
5.6.1 文件属性
如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示
权限说明
段 | 符号 | 面向群体 | 说明 |
---|---|---|---|
第一段 | rwx | 该文件的拥有者 | 该拥有者对这个文件具有读,写,执行的权限 |
第二段 | r-x | 该文件的拥有者 | 该拥有者对这个文件只具有读和执行的权限 |
第三段 | r-x | 除了拥有者和拥有组之外的用户和组 | 其他人对这个文件有读和执行的权限 |
5.6.2 chmod 改变权限
访问权限分为读(read)、写(write)、执行(execute)三种
分为文件所有者(user)、文件所属组(group)、其他人(other)三个主体
属性介绍
文字法
选项 | 对应单位 |
---|---|
u(用户) | 文件所有者:创建文件的人 |
g(同组用户) | 文件所属组:与文件属主有相同组ID的所有用户 |
o(其他用户) | 其它人:与文件无关的人 |
a | 所有用户 |
选项 | 功能 |
---|---|
+ | 添加某个权限 |
- | 取消某个权限 |
= | 赋予给定权限并取消其他所有权限 |
选项 | 权限 |
---|---|
r | 可读 |
w | 可写 |
x | 可执行 |
数字法
选项 | 权限 |
---|---|
4 | 可读 |
2 | 可写 |
1 | 可执行 |
0 | 没有权限 |
数字法可相加执行:
7=4+2+1 表示可读可写可执行
6=4+2 表示可读可写
5=4+1 表示可读可执行
3=2+1 表示可写可执行
案例实操
#修改文件使其所属组用户具有执行权限
chmod g+x tom.txt
#设置文件所有者、所属组、其他用户都具有可读可写可执行权限
chmod 777 tom.txt
5.6.3 chown 改变所有者
基本语法:
chown [选项] [账号名称] [文件或目录] (功能描述:改变文件或者目录的所有者)
选项 | 功能 |
---|---|
-R | 进行递归的持续变更,亦即连同次目录下的所有档案都变更 |
案例操作
#修改文件所有者
chown xiaoming tom.txt
#递归改变文件所有者和所有组
chown xiaoming:xiaoming test
5.6.4 chgrp 改变所属组
基本语法:
chgrp [组名] [文件或目录] (功能描述:改变文件或者目录的所属组)
案例
#修改文件的所属组
chgrp root monky.txt
5.7 搜索查找类
5.7.1 find 查找文件或者目录
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端
基本语法
find [搜索范围] [选项]
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件,单位为: b —— 块(512 字节) c —— 字节 w —— 字(2 字节) k —— 千字节 M —— 兆字节 G —— 吉字节 |
案例
#根据名称查找/目录下的filename.txt文件
find test/ -name "*.txt"
#在/home 目录下查找大于200m的文件(+n 大于 -n小于 n等于)
find /home -size +204800
5.7.2 locate 快速定位文件路径
基本语法
locate 搜索文件
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库
案例
#查询文件
updatedb
locate tmp
5.7.3 grep 过滤查找及“|”管道符
基本语法
grep 选项 查找内容 源文件
选项 | 功能 |
---|---|
-n | 显示匹配行及行号 |
案例
#查找某文件在第几行
ls | grep -n test
5.8 压缩和解压类
5.8.1 gzip/gunzip 压缩
基本语法:
gzip文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
1、只能压缩文件不能压缩目录
2、不保留原来的文件
3、同时多个文件会 产生多个压缩包
案例
gzip home.txt
5.8.2 zip/unzip 压缩
基本语法:
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
zip选项 | 功能 |
---|---|
-r | 压缩目录 |
unzip | 功能 |
---|---|
-d<目录> | 指定解压后文件的存放目录 |
5.8.3 tar 打包
基本语法:
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
选项 | 功能 |
---|---|
-c | 产生.tar 打包文件 |
v | 显示详细信息 |
-f | 指定压缩后的文件名 |
z | 打包同时压缩 |
x | 解包.tar 文件 |
-C | 解压到指定目录 |
#压缩多个文件
tar -zcvf home.tar.gz cat.txt mourse.txt
5.9 磁盘查看和分区类
5.9.1 du 查看文件和目录占用的磁盘空间
基本语法:
du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)
选项 | 功能 |
---|---|
-h | 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示 |
-a | 不仅查看子目录大小,还要包括文件 |
-c | 显示所有的文件和子目录大小后,显示总和 |
-s | 只显示总和 |
–max-depth=n | 指定统计子目录的深度为第 n 层 |
案例
#查看当前用户主目录占用的磁盘空间大小
du -sh
5.9.2 df 查看磁盘空间使用情况
基本语法:
df选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)
选项 | 功能 |
---|---|
-h | 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; |
5.9.3 lsblk 查看设备挂载情况
基本语法:
lsblk (功能描述:查看设备挂载情况)
选项 | 功能 |
---|---|
-f | 查看详细的设备挂载情况,显示文件系统信息 |
5.9.4 mount/umount 挂载/卸载
挂载(必须要有光盘或者已经连接好的的镜像文件)
#命令格式:
mount [-t vfstype] [-o options] device dir
参数介绍
参数 | 功能 |
---|---|
-t vfstype | 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类 型。常用类型有: 光盘或光盘镜像:iso9660 DOS fat16 文件系统:msdos Windows 9x fat32 文件系统:vfat Windows NT ntfs 文件系统:ntfs Mount Windows 文件网络共享:smbfs UNIX(LINUX) 文件网络共享:nfs |
-o op ons | 主要用来描述设备或档案的挂接方式。常用的参数有:loop:用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备 iocharset :指定访问文件系统所用字符集 |
device | 要挂接(mount)的设备 |
dir | 设备在系统上的挂接点(mount point) |
案例
mount -t iso9660 /dev/cdrom /mnt/cdrom/
设置开机自动挂载
##1)进入fstab 该文件主要用来存放系统的一些静态资源,也是系统启动时默认读取的配置文件
vim /etc/fstab
##2)输入挂载命令 (命令主要是根据个人要挂载的来设 这里是以/dev/cdrom挂载到/mnt/cdrom分区为例 其中defaults表示挂载后的设备文件默认读取挂载点的权限参数,0 0 代表不自检)
/dev/cdrom /mnt/cdrom iso9660 defaults 0 0
5.9.5 fdisk 分区
该命令只能在root下使用
基本语法:
fdisk -l (功能描述:查看磁盘分区详情)
fdisk 硬盘设备名 (功能描述:对新增硬盘进行分区操作)
选项 | 功能 |
---|---|
-l | 显示所有硬盘的分区列表 |
Linux分区
Device | 分区序列 |
---|---|
Boot | 引导 |
Start | 从X磁柱开始 |
End | 到Y磁柱结束 |
Blocks | 容量 |
Id | 分区类型ID |
System | 分区类型 |
分区按键说明
按键 | 功能 |
---|---|
m | 显示命令列表 |
p | 显示当前磁盘分区 |
n | 新增分区 |
w | 写入分区信息并退出 |
q | 不保存分区信息直接退出 |
5.10 进程管理
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地 址空间,并占用一定的系统资源
5.10.1 ps 查看当前系统进程状态
基本语法:
ps aux | grep xxx (功能描述:查看系统中所有进程)
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户的进程 |
x | 列出当前用户的所有进程,包括没有终端的进程 |
u | 面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 显示完整格式的进程列表 |
如果想查看进程的CPU占用率和内存占用率,可以使用aux
如果想查看进程的父进程ID可以使用 ef
5.10.2 kill 终止进程
基本语法:
kill [选项]进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
选项 | 功能 |
---|---|
-9 | 表示墙皮进程立刻停止 |
5.10.3 pstree 查看进程树
基本语法:
pstree[选项]
选项 | 功能 |
---|---|
-p | 显示进程的PID |
-u | 显示进程的所属用户 |
5.10.4 top 实时监控系统进程状态
基本命令
top [选项]
选项 | 功能 |
---|---|
-d 秒数 | 指定top 命令每隔几秒更新。默认是 3 秒在top 命令的交互模式当 中可以执行的命令 |
-i | 使 top 不显示任何闲置或者僵死进程 |
-p | 通过指定监控进程 ID 来仅仅监控某个进程的状态 |
操作 | 功能 |
---|---|
P | 以 CPU 使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以 PID 排序 |
q | 退出top |
5.10.5 netstat 显示网络状态和端口占用信息
基本语法:
netstat -anp | grep 进程号 (功能描述:查看该进程网络信息)
netstat –nlp | grep 端口号 (功能描述:查看网络端口号占用情况)
选项 | 功能 |
---|---|
-a | 显示所有正在监听(listen )和未监听的套接字( socket) |
-n | 拒绝显示别名,能显示数字的全部转化成数字 |
-l | 仅列出在监听的服务状态 |
-p | 表示显示哪个进程在调用 |
5.11 crontab 系统定时任务
5.11.1 crontab 服务管理
基本语法:
crontab [选项]
选项 | 功能 |
---|---|
-e | 编辑 crontab 定时任务 |
-l | 查询 crontab 任务 |
-r | 删除当前用户所有的 crontab 任务 |
6、软件包管理
6.1 RPM
6.1.1 RPM概述
RPM 文件是类似于 ZIP 文件或 tarball 的存档文件。实际上,它们使用了压缩来减小存档文件的大小。但是,除了文件之外,RPM 存档中还包含有关软件包的元数据。可以使用 rpm 工具查询
6.1.2 RPM查询命令
基本语法
rpm -qa (功能描述:查询所安装的所有 rpm 软件包)
案例
rpm -qa | grep pubkey
6.1.3 RPM 卸载命令(rpm -e)
基本语法:
1)rpm -e RPM软件包
2)rpm -e --nodeps 软件包
选项 | 功能 |
---|---|
-e | 卸载软件包 |
- - nodeps | 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了 |
6.1.4 RPM 安装命令(rpm -ivh)
基本语法:
rpm -ivh RPM 包全名
选项 | 功能 |
---|---|
-i | install ,安装 |
-v | - -werbose,显示详细信息 |
-h | - -hash,进度条 |
- -nodeps | 安装前不检查依赖 |
6.2 YUM仓库配置
6.2.1 YUM概述
借助于YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依懒关系,而无须管理员逐个、手工地安装每个rpm包,使管理员在维护大量Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器可以大大缓解软件安装、升级等对Internet的依懒
6.2.2 YUM 的常用命令
基本语法:
yum [选项] [参数]
选项 | 功能 |
---|---|
-y | 对所有提问都回答“yes” |
参数 | 功能 |
---|---|
install | 安装 rpm 软件包 |
update | 更新 rpm 软件包 |
check-update | 检查是否有可用的更新 rpm 软件包 |
remove | 删除指定的 rpm 软件包 |
list | 显示软件包信息 |
clean | 清理 yum过期的缓存 |
deplist | 显示 yum软件包的所有依赖关系 |
6.2.3 修改网络 YUM 源
#1)安装 wget, wget 用来从指定的 URL 下载文件
[root@hadoop101 ~] yum install wget
#2)在/etc/yum.repos.d/目录下,备份默认的 repos 文件
[root@hadoop101 yum.repos.d] pwd
/etc/yum.repos.d
[root@hadoop101 yum.repos.d] cp CentOS-Base.repo CentOS-Base
.repo.backup
#3)下载网易163或者是aliyun的repos文件,任选其一
[root@hadoop101 yum.repos.d] wget
http://mirrors.aliyun.com/repo/Centos-7.repo //阿里云
[root@hadoop101 yum.repos.d] wget
http://mirrors.163.com/.help/CentOS7-Base-163.repo //网易163
#4)使用下载好的repos文件替换默认的repos文件
#例如:用CentOS7-Base-163.repo替换CentOS-Base.repo
[root@hadoop101 yum.repos.d]# mv CentOS7-Base-163.repo CentOS-Base.repo
#5)清理旧缓存数据,缓存新数据
[root@hadoop101 yum.repos.d]#yum clean all
[root@hadoop101 yum.repos.d]#yum makecache
yum makecache就是把服务器的包信息下载到本地电脑缓存起来
#6)测试
[root@hadoop101 yum.repos.d]# yum list | grep firefox
[root@hadoop101 ~]#yum -y install firefox.x86_64
7、克隆虚拟机
7.1 克隆
1) 从现有虚拟机(关机状态)克隆出新的虚拟机,右键选择管理=>克隆
2)选择虚拟机中的当前状态
3)选择创建完整克隆
4)设置虚拟机名称及存储位置
总结
看到这里 恭喜各位同学已经基本学习完关于Linux,关于LInux,同学们还是要自己多敲代码才能熟练掌握Linux常用的基本命令!!不足的话,也希望大家能够评论发言,俺也期待同学们指教!!
感谢观看!!!
以上是关于vim编辑器(超详细!)的主要内容,如果未能解决你的问题,请参考以下文章