Linux运维学习2
- 观看《老男孩Linux课程day005》
- 观看《老男孩Linux课程day006》
- 观看《老男孩Linux课程day007》
- 观看《老男孩Linux课程day008》
day005 vim和一些查看类的命令
开始之前来一段开胃菜。
以树形结构显示目录所有内容 |
vim的模式转换
vim一共有4中模式:
1、命令模式:进入vim默认的模式,可以按i
进入编辑模式,或者输入其他命令;
2、编辑模式:用于编辑、修改文件内容;
3、底行模式:保存退出,搜索使用,一般输入:
进入底行模式;
4、可视化模块:用于批量编辑。

vim快捷键
首先我们创建测试文件,把etc的service文件和网卡的配置文件合并到一起。
cat /etc/services /etc/sysconfig/network-scripts/ifcfg-eth0 >>/tmp/vim.log |
快捷键-快速移动光标类。
移动到最后一行:G
;
移动到第一行:gg
;你
移动到第100行:100gg
;
光标移动到行首:^
(shift+6);
光标移动到行尾:$
(shift+4);
快捷键-复制粘贴类。
复制当前行:yy
;
剪切当前行:dd
;
粘贴到当前行后:p
;
重复粘贴100次:100p
;
快捷键-其他功能类。
撤销:u
;
显示行号::set number
;(另外一个在文件阶段的显示行号是cat -n
)
取消显示行号::set nonu
;
搜索:/要搜的内容
;
继续向下搜索:n
;
继续向上搜索:N
;
快捷键-批量操作类。
批量删除注释:先ctrl
+v
进入批量操作模式,然后选择要删除的区域,按d
删除。
批量增加注释:先ctrl
+v
进入批量模式,然后选择要增加的行,选完后按shift
+i
(注意是I
)进入编辑模式,然后写入#
,最后按esc
等待。
服务器初步了解
服务器分类:
服务器分类 | 特点 |
---|---|
物理服务器 | 自己购买实体然后部署 |
公有云(俗称云服务器) | 按需分配,按照要求选择配置,不需要自己物理部署 |
私有云(虚拟服务器) | 自己准备物理设备,让云服务公司部署运维 |
深入了解Linux下的目录
/etc/下
/etc/文件 | 说明 | 应用 |
---|---|---|
/etc/hostname | 主机名配置文件 | 每个Linux的主机名配置都有讲究,特别在未来集群的时候 |
/etc/hosts | 网络名和ip的对应关系 | 在网站中做访问使用 |
/etc/sysconfig/network-scripts/ifcfg-eth0 | 网卡配置文件 | 物理机要改,云服务器可以自动 |
/etc/rc.local | 开机自启动的文件 | 把需要开机自启动的命令和服务放在这里 |
/etc/fstab | 开机自动挂载的配置文件 | 配置磁盘挂载使用 |
/etc/motd | 此文件中的内容会在用户登录之后显示出来 | 就是一个温馨提示 |
/etc/issue /etc/issue.net | 这两个文件中的内容会在用户登录之前显示出来 | 只在本地登录的时候会显示,远程链接不会,并且出于安全考虑,最好不显示内容(清空用>即可:>/etc/issue ) |
修改主机名
以后主机名命名的要求:看到主机名就能知晓这个节点的作用。
一个系统主机记录表应包含:ip地址-内网、ip地址-公网、主机名、cpu、内存、硬盘、系统、服务等主要内容。
修改主机名 |
网卡配置文件
/etc/sysconfig 系统配置文件
/etc/sysconfig/network-scripts/ 网络配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置文件
vim修改网卡配置文件:vim /etc/sysconfig/network-scripts/ifcfg-eth0
-修改完成后要重启网络服务systemctl restart network
图形化修改网卡配置文件nmtui
开机自启动
在/etc/rc.local
下是开机自动运行的命令,写好了之后要修改权限chmod 777 /etc/rc.local
。
/var/下
variable经常变化的内容,比如日志,Linux经常异常的时候,我们要查看对应的日志。
Linux有系统日志和服务日志两种。
/var/中经常变化的内容 | 说明 | 应用建议 |
---|---|---|
/var/log/ | 系统及服务的各种日志目录 | |
/var/log/secure | 用户登录情况日志 | 分析是否有恶意破解、登录 |
/var/log/messages | 各种服务的日志 | 分析服务、异常 |
/proc/目录
存放系统进程信息、Linux内核配置、系统信息等。
这个是虚拟目录,放在内存中,不占用磁盘空间。
/proc/ 系统、进程信息、内核 | 说明 | 应用建议 |
---|---|---|
/proc/cpuinfo | cpu信息 | 监控cpu使用 |
/proc/meminfo | 内存信息 | 监控内存使用 |
/proc/loadavg | 系统负载信息,衡量系统繁忙程度 | |
/proc/mounts | 系统挂载信息 |
查看cpu信息:cat /proc/cpuinfo
或者lscpu
,lscpu更好。
day006 Linux目录结构进阶和命令
日志查询4剑客
查看日志不要使用cat
或者vim
!!!
日志文件一般都很大,甚至可达几十G,用cat或者vim容易卡死。
应该使用不会占用太多资源的查看命令,比如head
/tail
,less
/more
。
查看前5行 |
一页一页地显示文件内容,并且可以搜索,用less
。
一页一页显示内容 |
more也是一页一页显示,但是没有less那么多功能,而且more显示到最后一行就退出,more用的不多。
wc 统计
word count/calcuate 统计文件中单词和行数。
wc 文件名 |
结合使用命令,在日志中统计出现了多少次Failed password
。
先用grep '目标字段' 文件名
过滤,再用|
(管道)传递给wc -l
统计。
grep 'Failed password' /var/log/secure | wc -l |
查询命令位置
which
和whereis
都能找到命令存储的位置,但是whereis显示的内容比较全面,一般使用which就可以了。
主要用来查看命令存不存在,最多做一些修改配置。
查询命令的位置 |
文件比较命令
未来在服务的配置中,我们需要对比新旧文件查看修改了哪些内容,此时用diff
(轻量显示)、vimdiff
(vim显示)来实现。
比较两个文件的不同 |
输出会显示第几行发生了改变,---
上下分别是文件1和文件2这一行的内容。
比较两个文件的不同,并以vim的形式显示 |
此时输出如下图所示:

排序去重组合
未来工作中统计日志、分析日志和系统信息的必备命令:sort
(排序)、unit
(去重)。
sort
sort的默认用法是按照位数进行排序,比如会认为2比111大。
sort默认排序 |
如果想按照大小(默认升序),要加-n
。
sort按照大小排序(默认升序,从小到大) |
有些命令会显示多列,比如ll
,此时想按照某一列排序,要加-k
。
按照第2列的大小对文件进行升序排序 |
按照大小把某个目录中的文件升逆序排序(ll的输出中文件大小在第5列) |
但是有些时候每一列之间并不是按照空格区分的,有可能是:
,这时使用sort -t''
指定分隔符。
以:为分隔符,对第3列进行排序 |
通过sort对多列排序。
先按照第2列排序,如果相同就按照第4列排序 |
以.为分割符,仅对第三和第四列进行排序(限定第三列和第四列的范围为最小)(指定分隔符容易乱,推荐都这样排序) |
uniq
unique独一无二,可以去掉重复项。
去重并显示字段的重复次数 |
但是uniq只是把相邻行的相同项合并了,如果跨行,则会显示两个!!!
所以一般先sort一下,把相同的内容放在一起,在uniq统计。
去重并显示字段的重复次数 |
日期组合
在Linux中我们需要日常查看系统的时间,保证整个网站所有服务器的系统时间都一致。
或者有时书写脚本也需要时间,比如给个时间戳,或者备份使用。
date
显示当前日期和时间 |
ntpdate
自动同步时间命令,要先yum一下。
自动同步时间 |
利用反引号创建带时间的文件名
反引号可以让内部的命令先执行。
反引号相当于$()。
创建一个带时间的日志文件 |
day007 Linux文件属性及打包压缩三剑客
Linux文件属性
首先我们以一行命令开始。
ls -lhi |
返回结果如下所示:

1、134319022
:index node索引节点,是Linux中文件的唯一id;
2、-
:文件类型,-表示文件,d表示目录;
3、rw-r--r--
:文件权限;
4、.
:SELinux相关;
5、1
:硬链接数量;
6、root root
:所有者+所属用户组;
7、10K
:文件大小;
8、Mar 28 10:28
:文件最近修改时间;
9、grep.txt
:文件名。
inode与block
inode:文件索引节点,根据inode可以找到文件。
inode是一个数据结构,是一块小空间,存放文件的各种属性,包括大小、修改时间、权限和所有者等。
inode还存放block的位置(指向文件位置的指针)。
但是inode不存放文件名!!!也不存放文件数据。
block是一个大空间,存放数据。
每创建一个文件就至少占用一个inode。
一个block是4k,如果文件大小为0,则不占用block;如果文件小于4k,这一个block无法共享;如果文件大于4k,则占用多个block。
查看block(文件大小) |

用户访问文件的一般流程:
1、访问oldboy.txt时,系统会根据inode号码找到他对应的inode空间;
2、访问到inode空间时,确认用户然后确认权限;
3、权限确认没问题就准许通过,然后根据指针访问block中的数据内容。

文件类型
Linux和Windows文件的拓展名
Linux和Windows文件类型的区别:Windows下通过拓展名区分不同文件类型,如果拓展名修改则无法使用;Linux下拓展名仅仅用于展示,可以随意修改。
Linux常见拓展名 | 说明 |
---|---|
.sh,.bash | shell脚本 |
.conf,.cfg,.xml,.yaml,.yml | 配置文件 |
.py | python脚本 |
Linux文件类型
Linux常见文件类型 | 含义 |
---|---|
- | 文件 file |
d | 目录 dir |
l | 软连接(类似Window快捷方式) |
c | 字符设备 char |
b | 块设备 block |
s | 套接字 socket文件 |
当ls -l
看到一个文件类型为-
(file)时,还可以细分为普通文件(text)、数据文件(data)和二进制文件三种。
file的分类 | 说明 |
---|---|
text | 普通文件、文本文件,可以直接查看、编辑、修改的文件,比如自己写的脚本 |
data | 数据文件,需要用专用的命令查看,比如压缩包 |
二进制文件 | 大部分都是命令 |
用file
命令来查看-
具体是哪一种。
查看-文件具体的类型 |
三种返回如下所示:

软硬链接
软链接:类似Windows快捷方式,本质是一个小数据结构,存放源文件的位置。
硬链接:在同一分区里 不同的文件inode相同,则互为硬链接。
创建软连接 |
软链接也可以编辑,和硬链接效果一样,两者在使用上类似。
如果源文件被删除、改名或者移走,软链接会红色闪烁。
软链接用在升级服务上很好用,把要升级的服务用软链接先引导,下载好新服务后,只用把软连接删掉重建即可,可以避免了各种配置的麻烦。
软连接可以方便我们访问,硬链接可以防止数据误删除。
创建硬链接 |
tips:硬链接只能给文件创建,不能给目录创建,且不能跨分区。
文件和目录大小
查看文件大小 |
其中,du -s
是不用选择所有子目录,只显示汇总;du -h
是以人类可读的方式显示。
文件时间
Linux文件时间 | 说明 |
---|---|
mtime | modify 修改时间 |
atime | access 访问时间 |
ctime | change 文件属性变化时间 |
查看文件各种属性和时间 |

打包压缩
压缩就是为了节省一点空间,用在备份的时候非常好用。
压缩命令 | 应用场景 |
---|---|
tar | 大部分使用tar即可,功能有打包和压缩 |
gzip | 一般配合其他命令使用 |
zip | 用于压缩成zip格式的压缩包,解压是unzip |
tar
打包
tar命令不加参数的话是打包,就是把文件放在一起。
压缩
tar命令压缩的参数一般是tar zcvf 目标文件 源文件
。
把/etc/文件目录压缩到/tmp/etc.tar.gz中 |
tar参数的作用:
v:verbose,显示过程;
c:create,创建包;
z:gzip,通过gzip压缩;
f:file,指定压缩包,放在最后一位。
查看
查看压缩包的时候只用指定查看的文件名就行,把c改为t。
查看压缩包的内容 |
解压
解压压缩包把c改为x(extract-解压)。
解压文件到当前目录(默认解压到当前目录) |
解压到指定目录,加-C参数 |
gzip和zip/unzip
gzip
gzip
没有tar zcvf
常用,用到的时候再说。
创建gzip压缩包 |
zip/unzip
tar无法处理.zip格式的压缩包,此时用zip和unzip,zip是Linux和Windows共同支持的压缩格式。
大部分只要会用unzip解压就行。
用zip压缩文件 |
day008 Linux四剑客-grep-find
四剑客都有谁?
awk,sed,grep,find。
grep
grep过滤,在文件或管道中进行过滤查找,找到想要的内容。
grep默认按行查找,会把匹配到的行给显示出来。
grep的基本用法1,查找文件中特定内容 |
grep后面可以跟一些参数:
参数 | 说明 |
---|---|
-n | line number-显示行号 |
-v | 排除,取反 |
-i | ignore case-过滤时忽略大小写 |
找到passwd中root在第几行 |
过滤出secure文件中failed password的行,并且不区分大小写 |
排除/etc/passwd中nologin的行 |
find
find基础
find用在精确或模糊查找,其参数可有以下选择:
find选项 | 说明 |
---|---|
-type | 文件类型,-f 文件,-d 目录 |
-name | 文件名,用'' 引出来 |
-size | 根据大小查找,+ 表示大于,- 表示小于,eg:+10k 、-1M 、+5G |
-mtime | 根据修改时间查找文件,-7 是7天内,+7 是7天之前 |
-maxdepth | 递归查找的层数 |
在etc下找名字为'hostname'的文件 |
在/etc/下找到以.conf结尾的文件 |
find还可以根据大小和修改时间进行查找。
查找大于1Mb的文件 |
找出修改时间30天之前的文件 |
综合练习:
找出/etc/中以.conf结尾的大于10kb的且修改时间是7天前的文件 |
find默认找所有层,如果只想找1层或者2层,要加上-maxdepth
选项。
注意:此时-maxdepth
必须放在第一位!!!
只递归两层查找根目录下以.conf结尾的文件 |
查找的时候不区分大小写。
不区分大小写的查找 |
find与其他命令结合
首先准备文件环境:
mkdir -p /wang/find |
1、find+查看命令
利用反引号的方法 |
利用管道 |
2、find+打包压缩
find /wang/find/ -type f -name '*.txt' |xargs tar -zcvf find.tar.gz |
3、find+复制移动
cp 源文件 目标文件 |