第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

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

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

 [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

           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目录

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命令 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. 功能可定制

3.2  /var # variable 变化的 日志经常发生变化

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

3.3 /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   # 了解 挂载信息

vim编辑器 与etc目录的更多相关文章

  1. 玩转Vim 编辑器

    一:VIM快速入门 1.vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数 ...

  2. vim 编辑器的设置

    vi编辑器的配置:http://blog.mcuol.com/User/fenghua/Article/17411_1.htm ******************************vim ~/ ...

  3. iOS - Mac Vim 编辑器

    Mac Vim 编辑器 1)vi 文本编辑器 1.打开一个文件:vi 文件名 按住 shift 连按两次 z 键( :q )退出 vi 编辑器 2.vi 两种模式:第一是命令模式(按 esc 进入命令 ...

  4. Vim编辑器-批量注释与反注释

    标签:linuxLinuxLINUXvimVIMVim编程 2013-01-10 09:52 27517人阅读 评论(3) 收藏 举报  分类: Linux(18)  版权声明:本文为博主原创文章,未 ...

  5. ubuntu vi/vim编辑器必知必会

    转载出处:http://blog.csdn.net/xiajun07061225/article/details/7039413 一.我们为什么要学习vim编辑器? Linux的命令行界面下面有非常多 ...

  6. VIM编辑器常用功能整理笔记

    vim编辑器 vi : visual Inertface 可视化接口 vim : vi improved 扩展版 语法着色 模式化编辑器: 编辑模式(命令模式): 默认模式 输入模式: 末行模式: 等 ...

  7. 在git bush中如何退出vim编辑器

    写npm的pakege.json文件的files配置时,如果有不想包含的文件,那就要创建.npmignore文件排除,但windows系统又不允许创建以点开头命名的文件,咋办? 这时候就要用到linu ...

  8. (大数据工程师学习路径)第二步 Vim编辑器----Vim快速入门

    vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim截 ...

  9. vi/vim编辑器的基本操作

    vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准备(下载gvim ...

随机推荐

  1. 5.15 牛客挑战赛40 C 小V和字符串 数位dp 计数问题

    LINK:小V和字符串 容易想到只有1个数相同的 才能有贡献. 知道两个01串 那么容易得到最小步数 大体上就是 第一个串的最前的1和第二个串最前的1进行匹配. 容易想到设f[i][j]表示 前i位1 ...

  2. luogu P1784 数独 dfs 舞蹈链 DXL

    LINK:数独 这道题好难 比DXL模板题要难上不少. 首先 还是考虑将行当做决策 那么 一共有\(9*9*9=729\) 个决策. 考虑列用来填充 需要有的条件为 某个位置能能放一次\(9*9\) ...

  3. AbstractRoutingDataSource 实现动态数据源切换原理简单分析

    AbstractRoutingDataSource 实现动态数据源切换原理简单分析 写在前面,项目中用到了动态数据源切换,记录一下其运行机制. 代码展示 下面列出一些关键代码,后续分析会用到 数据配置 ...

  4. HashMap:从源码分析到面试题

    1 HashMap简介 HashMap是实现map接口的一个重要实现类,在我们无论是日常还是面试,以及工作中都是一个经常用到角色.它的结构如下: 它的底层是用我们的哈希表和红黑树组成的.所以我们在学习 ...

  5. 群晖系统如何通过Video Station套件管理NAS中的视频

    一.PC端观看视频 1.在NAS套件中心找到Video Station套件,安装套件 2.设置video套件别名,便于后期使用,控制面板----应用程序门户----video Station 3.选中 ...

  6. Java多线程入门及实战

    基本概念: 1: 程序 2 进程 3 线程 4 进程和线程的区别 5 进程和程序的区别 Java实现多线程的方法: 1 继承Thread 2 实现Runable 3 实现callable 4 线程池的 ...

  7. 剑指offer之字符串是否为数值

    1. 题目 这是<剑指offer>上的一道题,刚开始觉得这是一道挺简单的题目,后来发现自己太年轻了,考虑的因素太少了,思考了而是分钟还是无从下手,看了作者的思路深深被他折服了,题目如下: ...

  8. JavaFX桌面应用开发-HelloWorld

    JavaFX是一个强大的图形和多媒体处理工具包集合,它允许开发者来设计.创建.测试.调试和部署富客户端程序,并且和Java一样跨平台. JavaFX比Swing好用很多,它允许开发使用FXML来设计和 ...

  9. java Hibernate 用法

    Hibernate 用法总结: import java.io.Serializable; import java.sql.SQLException; import java.util.Collecti ...

  10. C#LeetCode刷题之#704-二分查找(Binary Search)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3999 访问. 给定一个 n 个元素有序的(升序)整型数组 num ...