vim编辑器 与etc目录
阅读原文时间:2023年07月09日阅读:1

第1章         目录结构

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下的重要文件

/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 域名解析服务

方法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.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

第二个步骤: 重新远程连接服务器

PS:如果配置了多个主机名 则第一个生效

[root@test01 ~]# cat /etc/hostname
  test01
oldboyedu-lnb

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

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

[root@oldboyedu-lnb ~]# cat /etc/issue

\S

Kernel \r on an \m

[root@oldboyedu-lnb ~]# > /etc/issue

公司的内部测试 二阶段学习

正常访问一个网站的流程:

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

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 永久修改运行级别

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

什么是启动           # 在当前的操作系统中运行起来 通过双击鼠标运行

什么是开机自动启动   # 在重启电脑后自动运行的程序 自动运行QQ 自动运行微信 自动运行红蜘蛛

如果在/etc/rc.local中配置

systemctl enable sshd  # 第一次开机自动运行命令 会执行成功

# sshd 服务会启动吗? 不会 会把sshd服务设置为开机自动启动

# 在第二次重启操作系统的时候 sshd会自动运行

能够保证我们正常使用操作系统

什么是变量:

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

2. 系统满足我们操作需求  bin sbin 所有系统自带的服务和第三方程序的执行命令都是在bin sbin

                            $PATH   # 路径

执行命令的原理过程:  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目录

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命令 rzwindows上传文件 szLinux下载文件到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. 功能可定制

/var/log # 目录
/var/log/messages # 系统默认的日志文件 保存了系统的运行状况 执行命令的信息

Jul 27 11:36:17 oldboyedu-lnb systemd: Started The Apache HTTP Server.

时间 主机名称 系统命令: 启动httpd服务

/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.

a. 最新的日志在文件的最底部

b. 系统的问题 优先查看messages

c. 服务的日志默认的位置 在/var/log下以自身服务命名的目录下

cat /var/log/httpd/access_log

d. 服务日志如果解决不了 注意查看messages

e. 日志的切割 文件过大 统计较慢 系统配置内存

1. 方便我们更快速的统计数据

2. 日志的安全性

3. 系统的日志 默认都是自动切割

4. 服务的日志 自研发的服务 定时任务+脚本的方式

把源日志移动走 不要cp 速度慢

把相关的服务重新加载

第4章       /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的个数

文件作用: 查看内存信息

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

[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

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章