vim编辑器 与etc目录
第1章 目录结构
1.1 vim vim故障
vim 是vi的升级版本 vi类似于文本文档 vim类似于notepad++ 编辑
必须先安装vim命令
yum -y install vim # 必须能上网 ping外网 ping www.baidu.com
1.1.1 使用vim
vim 文件 相对路径|绝对路径 # 文件不存在则自动创建
vim的几种模式说明:
a. vim编辑文件刚进入的界面 称为命令模式
b. 可以往文本内些内容的模式 称为编辑模式
c. 可以退出保存、可以查找内容的模式 称为底行模式
1.1.2 模式间如何转换
命令行模式--->输入i--->编辑模式--->esc回到命令行模式 命令行模式--->输入:--->进入底行模式--->esc回到命令行模式 命令行模式--->输入i--->编辑模式--->esc命令行模式--->:进入底行模式--->wq退出文本
PS: 想要退出必须要在底行模式 在编辑模式不能直接到底行模式 必须先回到命令行模式
编辑模式-->命令行模式 使用 esc键
底行模式-->命令行模式 使用 esc键
1.1.3 命令行模式快捷方式
a # 在光标所在处的后面进入编辑模式 A # 快速移动光标到行尾进入编辑模式 i # 在光标所在的位置进入编辑模式 I # 快速移动光标到行首进入编辑模式 o # 在光标所在行的下一行进入编辑模式(新增加一行) O # 在光标所在行的上一行进入编辑模式(新增加一行) s # 删除光标所在字母 并进入编辑模式 S # 删除光标所在的行 并进入编辑模式 C # 删除光标所在到行尾 并进入编辑模式 ZZ # 快速保存并退出 u # 撤销操作 可以撤销到最原始的状态 没保存的前提下操作 快速移动光标操作 $ # 快速移动光标到行尾 End # 快速移动光标到行尾 ^ # 快速移动光标到行首 0 # 快速移动光标到行首 Home # 快速移动光标到行首 G # 快速移动光标到文件的尾部 gg # 快速移动光标到文件的首行(第一行) 10gg # 快速移动到第10行 10G # 快速移动到第10行
1.1.4 底行模式快捷键
命令行-->:--->底行模式 :wq 保存并退出 :q 退出不保存 :wq! 强制保存并退出 :q! 强制不保存退出 w :write 写入 q: quit退出 :set nu 查看行号 set nonu 取消行号 / TCP 搜索内容 需要记忆 第一步: 在命令行模式 输入 / 第二步: 在/后面输入想要的查找的内容 然后回车 第三步:按n 往下查找 按大N 往上查找内容 ?搜索内容 n 往上 N 往下 (了解) PS: 在搜索内容的过程中 想要退出 直接输入:q :wq
1.1.5 vim的复制粘贴 删除
yy # 复制当前光标所在的行
3yy # 复制光标所在往下3行
p # 粘贴复制的内容到光标所在的下一行
3p # 粘贴三次复制的内容
dd # 删除当前光标所在的行(剪切)
2dd # 删除2行
dG # 删除光标所在到行尾
dw # 删除一个单词 连续的字符串
r # 替换指定的字符信息
R # 连续替换多个字符信息
1.1.6 vim 故障
a. vim 后面必须跟文件
b. vim 命令必须安装
c. vim 不能编辑目录
d. vim 编辑文件的过程
在vim编辑文件的时候 系统默认会生成一个 .文件名.swp 命名的隐藏文件
如果正常编辑保存退出 系统会把隐藏的文件 移动成新文件
如果没有正常退出 则隐藏文件会被保留 在编辑文本的时候会提示 有swp交换文件
1.1.7 模式vim故障
第一步:
使用vim 编辑oldboy.txt文件输入aaaaa
第二步:
直接关闭xshell连接
第三步:
使用xshell连接上使用vim编辑 oldboy.txt
1.1.7.1 什么原因导致vim提示swap文件
a. 没有正常保存退出 直接关闭xshell连接 按了ctrl+z
b. 服务器直接断电
c. 多人编辑同一个文件
d. 单人多窗口编辑同一个文件
解决方法:
a. 新增加的内容需要恢复
第一步:
vim -r oldboy.txt # -r 恢复交换文件中的内容 然后回车 把swp的内容进行恢复
第二步:
正常保存并退出:wq
第三步:
删除隐藏交换文件 .oldboy.txt.swp
b. 不需要恢复新增加的内容
直接删除隐藏交换文件 .oldboy.txt.wap 即可
ls
-a 查看linux下的隐藏文件 隐藏文件的特点: 文件的前面都带点.
df -h 查看磁盘使用情况(人类可读方式)
1.2 操作系统目录
1.2.1 windows 系统目录结构
C: D: E: F: \文件夹
可以理解为是多颗树组成
Linux系统目录结构 a. 一切都是从根开始 b. 类似一棵倒挂的树 有目录层次的树 c. Linux的目录可以挂载到不同的设备上 d. 可以理解成一棵树 e. 是所有的硬件设备 都必须有一个入口才能正常访问 入口文件称为目录(可以是自己创建、可以是系统自带空目录)
1.2.2 通过挂载cdrom理解linux的目录结构
第一个步骤:
把镜像文件放入DVD光驱
第二个步骤:
所有的硬件设备都在/dev目录下
在系统中找到DVD硬件设备 不能cd和cat查看
[root@oldboyedu-lnb ~]# ll /dev/cdrom lrwxrwxrwx. 1 root root 3 Jul 17 12:34 /dev/cdrom -> sr0
第三个步骤:
创建一个门 挂载 # 挂载的目录如果有内容 则会隐藏 卸载后会出现
[root@oldboyedu-lnb ~]#mkdir /data [root@oldboyedu-lnb ~]# mount /dev/cdrom /data mount: /dev/sr0 is write-protected, mounting read-only
第四个步骤:
通过门(/data) 访问cdrom的数据 /data相当于正常的目录
第五个步骤:
关闭访问cdrom的门 卸载
[root@oldboyedu-lnb ~]# umount /data
PS:
1. 卸载的时候不要在门里面卸载(不要在挂载目录下卸载)
2. 如果没有在门里面还提示忙
a. 关闭xshell重新连接
b. 使用umount -f 强制卸载
PS: Linux下磁盘的表示方法
sda # 表示系统的第一块磁盘
sda1 # 表示系统的第一块磁盘的第一个分区 /boot
sda2 # 表示系统的第一块磁盘的第二个分区 swap
sda3 # 表示系统的第一块磁盘的第三个分区 /
安装操作系统相当于是给磁盘做什么风格的装修
windows: 中式风格
直接可以访问分区 访问可移动设备 访问硬件
Linux: 欧式风格
所有的硬件都没有门 自己创建门进去访问数据
1.2.3 mv move 移动 remove 移除 类似于windows的剪切
语法格式:
mv [参数选项] 源文件 目标文件
mv 源文件 新的文件名
[root@oldboyedu-lnb ~]# [root@oldboyedu-lnb ~]# #移动/oldboy下的oldboy.txt文件 到当前的目录 [root@oldboyedu-lnb ~]# mv /oldboy/oldboy.txt ./ [root@oldboyedu-lnb ~]# ll total 4 -rw-r--r--. 1 root root 5 Jul 21 09:08 oldboy.txt [root@oldboyedu-lnb ~]# ll /oldboy/oldboy.txt ls: cannot access /oldboy/oldboy.txt: No such file or directory [root@oldboyedu-lnb ~]# [root@oldboyedu-lnb ~]# #把oldboy.txt 修改为test.txt [root@oldboyedu-lnb ~]# mv oldboy.txt test.txt [root@oldboyedu-lnb ~]# ll total 4 -rw-r--r--. 1 root root 5 Jul 21 09:08 test.txt [root@oldboyedu-lnb ~]# mv test.txt /tmp/ [root@oldboyedu-lnb ~]# ll /tmp/test.txt -rw-r--r--. 1 root root 5 Jul 21 09:08 /tmp/test.txt
移动目录
[root@oldboyedu-lnb ~]# mv oldboy1 oldboy2 oldboy3 oldboy4 /tmp/
1.2.4 系统文件目录
文件和目录被组织成一个单根倒置树结构
文件系统从根目录下开始,用“/”表示
根文件系统(rootfs):root filesystem
文件名称区分大小写
以.开头的文件为隐藏文件
路径分隔的 /
文件有两类数据:
元数据:metadata
数据:data
文件系统分层结构:LSB Linux Standard Base
FHS: (Filesystem Hierarchy Standard)
文件名最长255个字节
包括路径在内文件名称最长4095个字节
蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件
除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们
标准Linux文件系统(如ext4),文件名称大小写敏感
例如:MAIL, Mail, mail, mAiL
Linux下的文件类型
- 普通文件 d 目录文件 b 块设备 c 字符设备 l 符号链接文件 p 管道文件pipe s 套接字文件socket
第2章 /etc下的重要文件
2.1 网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet # 网络类型 以太网 Fastethernet 快速以太网
BOOTPROTO=none # 获取IP地址的方式
a. none 手动指定 常用
b. static 手动指定 常用
c.dhcp 自动获取IP地址 不用
NAME=eth0 # 网卡在系统中的名字 系统的逻辑名称
UUID=23bfda9a-1954-428b-aa9f-72ee10ab57e5 # 系统会给每个设备都会分配一 个标识符 等同于硬件设备的名称 在网卡的配置中可以删除
DEVICE=eth0 # 硬件设备的名字
ONBOOT=yes # 是否激活设备 yes是激活状态
IPADDR=10.0.0.200 # IP地址 使用xshell连接服务器的IP地址 使用 ip a 查看的IP地址
IP地址 虚拟机内唯一
PREFIX=24 # 子网掩码 决定了当前局域网内可用的IP地址数量 一个房间装多少个人
a. PREFIX=24
b.NETMASK=255.255.255.0
c. /24 可用IP地址 10.0.0.1-10.0.0.254
d. IP地址不能冲突 网关10.0.0.2 vmnet8 10.0.0.1
GATEWAY=10.0.0.2 # 网关 去互联网的必经之路 类似于大门
a. route -n查看当前的网关
b. 硬件网关在公司和IDC机房 中是 有专门的一个路由器上配置
c. 云平台服务器网关和IP不需要自己配置 自动分配的
DNS1=223.5.5.5 # DNS 域名解析服务
DNS2=114.114.114.114
把域名解析成IP地址
www.baidu.com ----> 服务器的IP地址39.156.66.18
PS: !cat 调用最后一次执行cat的命令
注:云服务器不需要配置网卡
精简后的网卡配置
TYPE=Ethernet # 网络类型 以太网 Fastethernet 快速以太网 BOOTPROTO=none # 获取IP地址的方式 a. none 手动指定 常用
b. static 手动指定 常用
c.dhcp 自动获取IP地址 不用
NAME=eth0 # 网卡在系统中的名字 系统的逻辑名称 DEVICE=eth0 # 系统会给每个设备都会分配一 个标识符 等同于硬件设备的名称 在网卡的配置中可以删除 ONBOOT=yes # 是否激活设备 yes是激活状态 IPADDR=10.0.0.200 # IP地址 使用xshell连接服务器的IP地址 使用 ip a 查看的IP地址
IP地址 虚拟机内唯一
PREFIX=24 # 子网掩码 决定了当前局域网内可用的IP地址数量 一个房间装多少个人 GATEWAY=10.0.0.2 # 网关 去互联网的必经之路 类似于大门 DNS1=223.5.5.5 # DNS 域名解析服务
2.2 配置完成后需要重启网卡:
方法1: 重启后没有任何输出信息 说明网卡配置正确
CentOS7.X systemctl restart network CentOS6.X service network restart /etc/init.d/network restart
方法2: ifdown eth0 && ifup eth0
关闭 eth网卡 开启eth0网卡 开启的时候会自动加载ifcfg-eth0的配置文件
如果先执行ifdown eth0 会导致无法远程连接
&& 前一条命令执行成功后 才执行后面的命令
2.3 /etc/hostname
作用: 主机名称 方便多台服务器之间相互连接
2.3.1 查看当前的主机名称
a. 通过命令提示符查看
[root@oldboyedu-lnb ~]#
-------------
主机名称
b. 通过命令查看当前的主机名称
[root@oldboyedu-lnb ~]# hostname oldboyedu-lnb
2.3.2 临时修改主机名称 在当前系统中生效 重启后失效
第一步: 使用hostname+主机名称 临时修改
[root@oldboyedu-lnb ~]# hostname test
第二步: 重新远程连接服务器 不需要重启操作系统
[root@test ~]#
2.3.3 永久修改主机名称 直接修改配置文件 必须重启操作系统才能生效
[root@test ~]# cat /etc/hostname oldboyedu-lnb [root@oldboyedu-lnb ~]# echo test01 > /etc/hostname 修改主机名为test01
2.3.4 临时修改主机名称+永久修改主机名称 重启后必须生效
[root@test01 ~]# cat /etc/hostname test01
第一个步骤: 使用命令修改主机名
[root@test01 ~]# hostnamectl set-hostname oldboyedu-lnb [root@test01 ~]# cat /etc/hostname oldboyedu-lnb
第二个步骤: 重新远程连接服务器
[root@test01 ~]# cat /etc/hostname test01
oldboyedu-lnb
2.4 /etc/fstab file system table 文件作用: 开机自动挂载硬件的配置文件
UUID=91daf9b9-e872-41e9-86cc-cef1a3c70318 / xfs defaults 0 0
1 2 3 4 5 6
1: UUID 设备的唯一标识 硬件的一种标识方法 可以是UUID 可以是sda3
系统为硬件分配的一个标识符
如何查看设备的标识符
blkid 直接回车查看
[root@oldboyedu-lnb ~]# blkid /dev/sda1: UUID="efcbe32a-cd6e-494b-95f0-bcbe8c021af0" TYPE="xfs" /dev/sda2: UUID="fb10d54e-1d99-43fa-a4bc-510540fe31c0" TYPE="swap" /dev/sda3: UUID="91daf9b9-e872-41e9-86cc-cef1a3c70318" TYPE="xfs" /dev/sr0: UUID="2018-05-03-20-55-23-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
2: 挂载点 硬件设备的入口 门 / 目录
3: xfs 文件系统类型 CentOS7.X 默认是xfs
4: defaults 默认的参数 决定能不能在硬件设备中删除和读取数据
5: 0 是否对磁盘进行备份 0是不备份 1是备份 不需要备份 影响磁盘使用速度和使用率
6: 0 是否对磁盘进行检查 fsck 0不检查 1检查 不检查
示例: 开机自动挂载cdrom
第一步: 插入镜像文件到光驱
第二步: 在当前系统中进行挂载测试
[root@oldboyedu-lnb ~]# mount /dev/cdrom /data
第三步: 写入fstab开机自动挂载
1. 硬件名称或者UUID
cdrom
blkid 查看硬件设备的UUID
2. 写入fstab
vim /etc/fstab
UUID=2018-05-03-20-55-23-00 /data iso9660 defaults 0 0
第四步: 重启测试是否自动挂载1.reboot
2.df -h 查看是否自动挂载到/data 目录
[root@oldboyedu-lnb ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 1.6G 18G 8% / devtmpfs 477M 0 477M 0% /dev tmpfs 488M 0 488M 0% /dev/shm tmpfs 488M 7.7M 480M 2% /run tmpfs 488M 0 488M 0% /sys/fs/cgroup /dev/sr0 4.2G 4.2G 0 100% /data
PS: 不想开机自动挂载
注释掉#
#UUID=2018-05-03-20-55-23-00 /data iso9660 defaults 0 0
2.5 /etc/resolv.conf 文件作用: 配置DNS服务器
223.5.5.5--->阿里云服务器
DNS作用: 域名解析 把域名解析成对应的IP地址
例: 自己购买一台云服务器 116.63.0.10
搭建一个社交平台---->域名访问--->注册-->chunming.com cn org net
域名服务器上配置--->绑定域名--->chunming.com---IP地址绑定在一起
浏览器--->输入chunming.com--->DNS服务器--->返回服务器的真实IP地址116.63.0.10
浏览器---> 116.63.0.10 建立连接
DNS服务器 都是免费使用 免费让我们解析域名
公司自己内部搭建的DNS服务器 解析速度快 运营商 IDC机房自己的DNS服务器
公用DNS服务器
223.5.5.5 阿里云DNS服务器
114.114.114.114 电信DNS服务器
8.8.8.8 谷歌的DNS服务器
202.106.0.20 北京联通
正常访问网站的流程
浏览器输入网址www.oldboyedu.com ---> DNS服务器--->返回真实IP---->浏览器--->IP地址建立连接
租房----->中介---->房东
比较两个DNS配置文件:
1. /etc/resolv.conf 和 网卡的配置ifcfg-eth0 都可以配置DNS 两个配置文件的不同点: /etc/resolv.conf ---> nameserver 223.5.5.5 网卡配置ifcfg-eth0--> DNS1=223.5.5.5 2. 网卡如果配置了DNS 重启网卡会覆盖resolv.conf 3. 网卡中如果不配置DNS 不会覆盖resolv.conf 4. 在resolv.conf中配置DNS服务器 直接生效 查看当前系统使用的哪个DNS服务器解析的 yum -y install bind-utils # 安装解析命令
[root@oldboyedu-lnb ~]# nslookup www.baidu.com Server: 114.114.114.114 Address: 114.114.114.114#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 39.156.66.18 Name: www.a.shifen.com Address: 39.156.66.14
5. 网卡配置文件不是直接生效 需要重启
6. 在工作中使用resolv.conf配置DNS
7. 如果不配置DNS服务器 对服务器有什么影响
a. 不能访问域名 可以访问IP地址
b. 不影响用户正常使用
8. 如果一个DNS出问题 会继续向下请求DNS
nameserver 223.5.5.5
nameserver 114.114.114.114
ifcfg-eth0
DNS1=223.5.5.5
DNS2=114.114.114.114
2.6 /etc/issue # 清空登陆操作系统前的提示信息 提高系统的安全性 系统优化使用
[root@oldboyedu-lnb ~]# cat /etc/issue \S Kernel \r on an \m [root@oldboyedu-lnb ~]# > /etc/issue
2.7 /etc/issue.net # 清空远程连接前的提示信息 提高系统的安全性 系统优化使用
2. 8 /etc/motd 文件作用: 登陆系统后显示的内容 默认空文件
2.9 /etc/hosts 文件作用:域名和IP地址的对应关系表 好比是本地的DNS服务器
公司的内部测试 二阶段学习
正常访问一个网站的流程:
1.输入www.oldboyedu.com
2.系统会查找本地的/etc/hosts文件 有没有域名和IP地址的对应关系
3.如果有www.oldboyedu.com 10.0.0.200 系统会给浏览器返回域名的真实IP 而不需要在去
/etc/resolv.conf 中找DNS服务器去查找
4.如果没有域名对应关系 则会去/etc/resolv.conf DNS服务器去找真实的IP地址
windows hosts文件的位置
C:\Windows\System32\drivers\etc
2.10 /etc/rc.local 文件的作用: 开机自动执行命令 或者是 自动启动服务(开机自启)
shell脚本: 把命令放入到文件中 按照顺序执行 从上到下一步步的执行
1)开机自动执行命令 命令必须是可执行的
mkdir /data
2)加入开机自动执行 -----> Linux中的软链接 类似于windows的快捷方式
a. 先给rc.local 一个执行权限(有没有权限来运行这个命令) x execute
chmod +x /etc/rc.d/rc.local
b. 把命令写入rc.local
服务器的开机自动运行
1) 关闭sshd开机自动启动
[root@oldboyedu-lnb ~]# systemctl disable sshd
2) sshd服务加入到/etc/rc.local 实现开机自动启动
vim /etc/rc.local systemctl start sshd
3) 重启测试
PS: 上面的例子是系统自带的服务 服务都有专门命令进行管理 systemctl
第三方应用程序、开发人员开发的应用程序(python) 写入/etc/rc.local
2.11 /etc/inittab
文件作用: 设置开机运行级别配置文件
什么是运行级别:
1)7个运行级别0-6
2)每一个运行级别表示不同的界面、实现不同的功能 类似于windows的正常登陆和安全模式
3)红灯--> 停止 绿灯-->行 黄灯-->等
centos6.X 运行级别 runlevel centos7.x target
0# 表示关机状态 如果配置文件中设置 为0 不能启动操作系统 ----> poweroff.target a.不允许设置为0 b.可以使用 init 0 进行关机 1 # 表示单用户模式 ----> rescue.target a.安全模式 在忘记密码的时候 可以通过此级别来修改密码 b.拥有root权限 登陆的时候不需要密码 2 # 表示多用户模式 ----> multi-user.target a. 没有NFS b. 不用 3 # 表示完全多用户 ----> multi-user.target a. 默认是用3运行级别 b. 工作中使用3运行级别 4 # 保留 待开发 ----> multi-user.target 5 # 表示带桌面的操作系统 ----> graphical.target a. 必须安装DESKTOP包才能使用 b. 工作中不使用 6 # 表示重启操作系统 配置文件不能配置成级别6 进入死循环重启状态 --> reboot.target
4) 查看默认的运行级别 centos6和7
[root@oldboyedu-lnb ~]# runlevel N 3
5)centos6.x centos7.x 临时修改运行级别
[root@oldboyedu-lnb ~]# init 6 # 在命令行临时切换运行级别
6) centos6.x 永久修改运行级别
2.12 修改/etc/inittab文件
id:5:initdefault: # 设置开机运行在级别5 图形化界面 工作中不修改
7) centos7.x 永久修改运行级别
centos7第二种查看运行级别的方法
[root@oldboyedu-lnb ~]# systemctl get-default multi-user.target
永久设置运行级别
systemctl set-default TARGET.target [root@oldboyedu-lnb ~]# systemctl set-default runlevel5.target # 设置为运行级别5
2.13 补充问题
什么是启动 # 在当前的操作系统中运行起来 通过双击鼠标运行
什么是开机自动启动 # 在重启电脑后自动运行的程序 自动运行QQ 自动运行微信 自动运行红蜘蛛
如果在/etc/rc.local中配置
systemctl enable sshd # 第一次开机自动运行命令 会执行成功
# sshd 服务会启动吗? 不会 会把sshd服务设置为开机自动启动
# 在第二次重启操作系统的时候 sshd会自动运行
2.14 /etc/profile 文件作用: 配置环境变量 永久生效
能够保证我们正常使用操作系统
什么是变量:
1) x=1 y=x+1 y=2
x 变量的名称
1变量的值 可变的
2) 书本
目录 ----> 内容
lg.jpg-10页---> 图片
3) 变量的分类
a. 普通变量 局部变量 自己定义的变量 类似于家规
b. 环境变量 全局变量 系统中存在的变量 类似于国法
4) 变量的定义方法 变量名称不允许以数字开头
a. 临时定义变量
语法:
变量名称=变量的值 # 等号两端不允许有空格 后面的值可以是数字 字母 命令
[root@oldboyedu-lnb ~]# name=oldboy
b. 调用变量 $
[root@oldboyedu-lnb ~]# echo $name oldboy
c. 永久生效
vim /etc/profile name=oldboy
d. 及时生效 不需要xshell重新连接
source 和. 含义: 让配置文件重新加载运行
[root@oldboyedu-lnb ~]# source /etc/profile [root@oldboyedu-lnb ~]# . /etc/profile
示例: 为什么使用变量
1. 方便 变量可以重复调用
[root@oldboyedu-lnb ~]# eth0=/etc/sysconfig/network-scripts/ifcfg-eth0 [root@oldboyedu-lnb ~]# cat $eth0
执行命令的原理过程: PATH 设置的是所有命令的全路径
a. 手动输入命令 系统会在PATH变量中查找此命令的路径
b. 如果PATH路径中有命令所在的目录 则会执行晨歌功
c. 如果没有在PATH路径则提示命令找不到
[root@oldboyedu-lnb ~]# ll /data/
total 56 -rwxr-xr-x. 1 root root 54080 Apr 11 2018 cat [root@oldboyedu-lnb ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@oldboyedu-lnb ~]# cat /etc/hosts -bash: cat: command not found [root@oldboyedu-lnb ~]# /data/cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
定义PATH变量
[root@oldboyedu-lnb ~]# PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data' [root@oldboyedu-lnb ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
第3章 /usr目录
3.1 /usr/local 文件作用: 编译安装的软件默认存放文件的位置
Linux中安装软件的方法:第一种: yum安装 最常用的安装方式:
语法:
yum -y install package-name
参数选项:
-y : yes 在安装过程中会提示是否继续 手动输入y 自动增加参数-y
yum安装软件的特点:
a. 能够自动解决依赖问题
什么是依赖
b. 类似于点外卖: 点水饺 辣椒 醋 大蒜 网红辣酱 自动解决所有一切需求 不用我们去管
c. 知道软件包的名字即可
d. 如何知道包的名字
1) 使用命令查找 不一定能查到
[root@oldboyedu-lnb ~]# yum provides wget wget-1.14-18.el7_6.1.x86_64
2) 百度查找
3) 使用yum -y install wget 安装
e. 安装的时候可以不带版本号 也可以带
常用
使用yum命令卸载软件 # 卸载自动解决依赖问题
yum -y remove package.name
f.重新安装
yum -y reinstall package.name
例子: 安装Linux命令 rz 从windows上传文件 sz 从Linux下载文件到windows
安装 ifconfig命令
第一步 查找包名:
[root@oldboyedu-lnb ~]#yum provides rz
第二步 安装软件
[root@oldboyedu-lnb ~]# yum -y install lrzsz
PS:已安装最新的软件包的提示
Package lrzsz-0.12.20-36.el7.x86_64 already installed and latest version Nothing to do
PS: 自动补全的包
yum -y install bash-completion.noarch扩展自动补全包
1. YUM仓库问题
2. YUM仓库缓存仓库
yum clean all # 清空yum缓存
3. 网络原因 尽量使用国内的仓库进行安装
安装python的依赖包 pip3.5 install python-name # 默认是国外的网站
如何使用国内的源进行安装
pip install pythonname -i https://pypi.tuna.tsinghua.edu.cn/simple https://blog.csdn.net/qq_36949176/article/details/82939676
4. 命令错误 软件包名称
第二种: rpm安装 必须先下载对应的.rpm包
1)语法:
rpm -ivh 软件包名称.rpm 结尾
参数选项:
-i install -v verbose 显示安装过程 -h 显示安装进度 -q query 查询 -a 查看所有的安装过的软件 -ql 显示软件所有的安装文件
特点: 类似于点外卖 点水饺 买的速冻 锅 水 勺子 碗 筷子 酱油醋 辣椒 大蒜
a. 不能自动解决依赖问题 手动安装
b. 安装必须先下载rpm包 执行的过程要注意 绝对路径或者相对路径
c. 安装第三方软件常用的方式
d. rpm包去哪里下载 软件的官网
e. 安装过程需要什么 手动安装 #必要的依赖 可以使用yum安装
2)查看软件是否安装
a. 直接执行命令回车
[root@oldboyedu-lnb ~]# wget -bash: /usr/bin/wget: No such file or directory
b. 使用which命令
[root@oldboyedu-lnb ~]# which wget /usr/bin/which:
no wget in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
c. 使用rpm -qa 查看
rpm -qa # 查看所有已经安装过的软件
[root@oldboyedu-lnb ~]# rpm -qa wget # 查看wget软件是否安装 [root@oldboyedu-lnb ~]# rpm -qa wget wget-1.14-18.el7_6.1.x86_64
d. 查看版本号的方式 了解
[root@oldboyedu-lnb ~]# wget --version GNU Wget 1.14 built on linux-gnu.
3) 使用rpm卸载软件 卸载不支持解决依赖问题
rpm -e 软件包名
[root@oldboyedu-lnb ~]# rpm -e wget --------- [root@oldboyedu-lnb ~]# rpm -qa jenkins jenkins-2.176.1-1.1.noarch [root@oldboyedu-lnb ~]# rpm -e jenkins-2.176.1-1.1.noarch
例子:
使用rpm安装zsh-5.0.2-28.el7.x86_64.rpm 软件包名
安装
查看是否安装成功
使用rpm卸载
使用yum卸载
查看安装了哪些文件
查看命令的路径在哪里
第三种: 编译安装 特点: 自己备食材 饺子皮 饺子馅 油....
第一步:
下载源码包
第二步:
cd 进入源码包
第三步:
./configure # 自己选择我想使用什么功能
make
make install
特点:
a. 安装时间久
b. 功能可定制
3.2 /var # variable 变化的 日志经常发生变化
/var/log # 目录 /var/log/messages # 系统默认的日志文件 保存了系统的运行状况 执行命令的信息
Jul 27 11:36:17 oldboyedu-lnb systemd: Started The Apache HTTP Server. 时间 主机名称 系统命令: 启动httpd服务
3.3 /var/log/secure # 系统默认的日志文件 保存了安全方面的信息 登陆 退出操作系统
grep 'Failed' /var/log/secure # 过滤文件本中包含Failed的行 如果出现的失败次数过多 系统存在安全隐患
查看日志的最后10行 tail -n 显示尾巴n行
[root@oldboyedu-lnb ~]# tail /var/log/messages [root@oldboyedu-lnb ~]# tail -n 2 /var/log/messages # 显示最后2行内容
查看日志的前10行 head -n 显示头部n行
[root@oldboyedu-lnb ~]# head /var/log/messages Jul 22 09:19:15 oldboyedu-lnb kernel: e1000: eth0 NIC Link is Down Jul 22 09:19:19 oldboyedu-lnb kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None Jul 22 10:01:01 oldboyedu-lnb systemd: Started Session 54 of user root. Jul 22 10:01:01 oldboyedu-lnb systemd: Starting Session 54 of user root. Jul 22 10:04:58 oldboyedu-lnb systemd-logind: Removed session 35. Jul 22 10:05:23 oldboyedu-lnb systemd-logind: Removed session 37. Jul 22 10:08:39 oldboyedu-lnb systemd: Started Session 55 of user root. Jul 22 10:08:39 oldboyedu-lnb systemd-logind: New session 55 of user root. Jul 22 10:08:39 oldboyedu-lnb systemd: Starting Session 55 of user root. Jul 22 10:12:41 oldboyedu-lnb systemd-logind: Removed session 52.
3.4 /var 日志特点
a. 最新的日志在文件的最底部
b. 系统的问题 优先查看messages
c. 服务的日志默认的位置 在/var/log下以自身服务命名的目录下
cat /var/log/httpd/access_log
d. 服务日志如果解决不了 注意查看messages
e. 日志的切割 文件过大 统计较慢 系统配置内存
1. 方便我们更快速的统计数据
2. 日志的安全性
3. 系统的日志 默认都是自动切割
4. 服务的日志 自研发的服务 定时任务+脚本的方式
把源日志移动走 不要cp 速度慢
把相关的服务重新加载
第4章 /proc目录
4.1 proc
文件作用: 内存的映射文件 Linux一切皆文件
4.1.1 /proc/cpuinfo
文件作用: 查看cpu信息
processor : 0 # 核心数量 从0开始是第一个
physical id: 0 # CPU的个数 从0开始是第一个
[root@oldboyedu-lnb ~]# grep 'processor' /proc/cpuinfo processor : 0 processor : 1 processor : 2 processor : 3 [root@oldboyedu-lnb ~]# grep 'physical id' /proc/cpuinfo physical id : 0 physical id : 0 physical id : 1 physical id : 1
4.1.2 使用命令的方式查看cpu信息
lscpu
CPU(s): 4 # 核心数量
On-line CPU(s) list: 0-3 # 核心数量列表
Socket(s): 2 # CPU的个数
4.2 /proce/meminfo
文件作用: 查看内存信息
MemTotal 997980 kB # 总共的 MemFree 727608 kB # 空闲的 MemAvailable 705476 kB # 可用的 Buffers 2092 kB # 写buffer Cached 85084 kB # 读cache
4.2.1 命令查看内存的信息
free -h 以下列方式显示内存的详细信息
B = bytes
K = kilos
M = megas
G = gigas
T = teras
[root@oldboyedu-lnb ~]# free -h total used free shared buff/cache available Mem: 974M 123M 707M 7.6M 143M 687M Swap: 1.0G 0B 1.0G
4.3 /proc/loadvag
作用: 系统的平均负载
[root@oldboyedu-lnb ~]# cat /proc/loadavg 0.08 0.03 0.05 2/130 1546 1分钟 5分钟 15分钟
a. 什么是系统负载 对外提供访问的服务器
负载是衡量服务器空闲的一个程度 一个指标
如何负载的值 达到了核心的总数 当前的系统处于繁忙状态
CPU核心数量4核心---负载4 ===== 繁忙
CPU核心数量16核心--负载16 ===== 繁忙
b. 什么对负载的影响最大
CPU 磁盘
4.3.1 使用命令查看负载信息
[root@oldboyedu-lnb ~]# uptime 10:17:44 up 41 min, 1 user, load average: 0.00, 0.01, 0.05 -----------------
[root@oldboyedu-lnb ~]# w 10:19:23 up 43 min, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.0.0.1 09:36 3.00s 0.19s 0.02s w
[root@oldboyedu-lnb ~]# top # 动态的方式实时显示硬件信息的变化 top - 10:32:26 up 56 min, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 116 total, 1 running, 115 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 997980 total, 716984 free, 128604 used, 152392 buff/cache KiB Swap: 1048572 total, 1048572 free, 0 used. 698564 avail Mem 退出top命令 q 或者ctrl+c
4.3.2 扩展命令:
ps axu 查看系统中所有运行的进程信息
[root@oldboyedu-lnb ~]# ps axuf|grep pts/0 root 1212 0.0 0.5 158804 5560 ? Ss 09:36 0:00 sshd: root@pts/0 root 1453 0.0 0.3 116460 3196 pts/0 Ss 09:36 0:00 -bash root 1568 0.1 0.5 149316 5292 pts/0 S+ 10:20 0:00 vim /etc/passwd root 1597 0.0 0.0 112704 960 pts/1 S+ 10:22 0:00 grep --color=auto pts/0 [root@oldboyedu-lnb ~]# kill -9 1453
全能型人才 不可替代
ps : 查看进程信息
[root@oldboyedu-lnb ~]# ps axu|grep pts
| 管道 前面命令的结果做为后面命令的输出
[root@oldboyedu-lnb ~]# cat 1.txt|grep '白星' 白星 87.5 白星 67.00 [root@oldboyedu-lnb ~]# grep '白星' 1.txt 白星 87.5 白星 67.00
4.4 /proc/mounts # 了解 挂载信息