Linux运维笔记--第二部

时间:2023-11-22 08:07:49

2-重要目录结构详解

1.回顾Linux目录结构知识

/dev/            设备目录

/etc/             系统配置及服务配置文件,启动命令的目录

/proc            显示内核及进程信息的虚拟文件系统

/tmp             临时文件目录,公共厕所,客厅

/home          普通用户家目录,大臣的家

/root             超级管理员的家目录,皇宫

/var               变化的目录,一般是日志文件,cache的目录

/usr               用户程序,及数据、帮助文件、二进制命令等的目录

/bin和/sbin和/usr/sbin   用户命令的目录

2.重要基础命令回顾

   省略……

3.Linux网卡重要文件详细说明及配置实战

必须要掌握的Linux目录路径知识

/etc/sysconfig/network-scripts/ifcfg-eth0   配置网络地址及GW等

/etc/init.d/network restart     重启网卡生效(影响所有网卡)

ifdown eth0&&ifup eth0        只针对eth0网卡

通过setupà”network configuration”  修改网卡配置文件就是在改这个文件

4. Linux服务器客户端dns重要配置文件及实战详解

/etc/resolv.conf     设置Linux本地的客户端DNS的配置文件,可以实现域名和IP的互相解析(网卡配置优先此配置文件)

Setupà“network configuration”à“DNS configuration”==/etc/resolv.conf配置

上述设置实际上是修改/etc/resolv.conf这个文件

负责域名和IP互相解析的服务就是DNS(domain name system)

不要在网卡配置文件里配置DNS,而是在/etc/resolv.conf里配。

小结:

  1. 客户端DNS可以在网卡配置文件里设置(ifcfg-eth0)
  2. 客户端DNS也可以在/etc/resolv.conf里设置
  3. 网卡里的设置DNS优先于/etc/resolv.conf

建议:工作环境中在网卡配置文件中进行设置

5.  Linux服务器主机名解析重要文件

# hostname  /etc/hosts           查看主机名

# vi  /etc/hosts          配置主机文件名

#tail -l /etc/hosts       查看IP地址和主机名

在互联网中可通过访问主机名或域名去访问IP,在hosts文件中配置号IP对应的主机名即可。

例:可把任一个IP(192.168.100.11)与www.baidu.com解析在一起,访问百度则去了IP对应的网站。

总结:/etc/hosts : 局域网、主机名和IP解析,相当于局域网的DNS工具。 

6. host文件的企业应用及修改主机名文件详解 (***)

⑴ host文件在企业里的作用

a. 开发、产品、测试等人员,用于通过正式的域名测试产品。

  b.服务器之间的调用可以用域名(内部的DNS),方便迁移。

⑵ /etc/sysconfig/network 可修改机器名及网卡启动,网关等配置

  a. vi /etc/sysconfig/network     network也可配置网管,是主机名的配置文件,更改后永久生效。

  b. hostname 主机名               同时修改在运行中的服务器,用此命令更改后,当前生效。

    c. cat /etc/sysconfig/network   查看network文件内容。

7. fstab文件字段详解-原理精讲-实战反刍原理知识 (*****)

  #df -h     磁盘挂载分区信息

  fstab作用: 设置文件系统挂载信息的文件,使得开机能够自动挂载磁盘分区。

  man fstab    查看fstab文件帮助信息。

  例:

 
要被挂载的设备(磁盘分区) 挂载点(要挂载到哪个目录)  文件类型  挂载选项(只读、可写)   是否备份(0不备份;1备份)    文件系统有问题,是否检查(0不检查;1检查) 
 tmpfs    /dev/shm  tmpfs    defaults  0  0
 devpts    /dev/pts  devpts  gid=5,mode=620  0  0
 sysfs    /sys      sysfs      defaults   0  0
 proc  /proc  proc defaults   0  0

  例:  

  # mount -t ext4 -o loop,noatime,noexec  /dev/sdb/  /mnt

  # mount  -t  ext4  -o  noexec  /dev/sda  /mnt           手动挂载

  先格式化:mkfs.  ext4  /dev/sdb/

  查看挂载分区: df  -h

  卸载挂载分区:umount  /mnt

    /dev/sdb    /mnt     ext4     loop,noatime,noexec  0    0

  测试手动挂载:

  1. 创建了一个虚拟的块设备。

    dd  if=/dev/zero  of=/dev/sdb/   bs=4906   count=100

  2. 格式化

    mkfs. ext4  /dev/sdb

  3. 挂载

   mount  -t  ext4  -o loop,noatime,noexec  /dev/sdb/  /mnt

8. 实践fstab挂载磁盘机开机自动挂载实践

  fsck  -A磁盘检查(不要检查好磁盘,可能坏掉),卸载状态检查。

9. fstab 文件损坏或者配错无法启动系统故障解决

  第一列挂载的设备,可以是设备或UUID,或磁盘标签。

  fstab出问题修复:

  1. 开机提示,输入密码,修复。

  2. 救援模式:rescure  rescue

  如果/etc/fstab 为只读状态,用mount -o rw,remount  /        修改后再编写

10. rc.local 文件详解及与fstab区别详解

  让一个程序开机启动

  1. chkconfig  (/etc.int.d/sshd)

    2. 把程序放入 /etc/rc.local  (如果没有特别要求,选择rc.local启动)

  mount挂载和fstab的区别:

  NFS网络文件系统挂载时,网卡还没起,就已经加载fstab了,网络文件系统只能用rc.local 启动,不适合fstab  .

11. inittab重要文件讲解及Linux开机启动过程介绍

  /etc/inittab作用:设定系统启动时init进程把系统设置成什么样的runlevel运行级别及加载相关级别对应启动文件设置。

  cat  /etc/inittab  查看运行级别

12. 其他重要目录知识详解及实战演示作用

  /etc/init.d    (yum/rpm安装的软件服务都在该目录下)

  /etv/profile  (定义变量,包括系统的和自定义的)

  /etc/profile.d    (该目录放程序和脚本,重启后便执行)

  /etc/motd    (该目录存放启动执行的字符串)

13. etc目录下的重要文件及目录详解

  cat  /etc/redhat-release  查看Linux版本号

  /etc/group      设定用户的组名与相关信息

  /etc/passwd   账号信息文件

  /etc/shadow   密码信息文件

  /etc/sudoers  可以执行使用sudo命令的配置文件

  /etc/securetty   设定哪些终端可以让root登陆

  /etc/login.defs  所有用户登陆时的缺省配置

  /etc/modprobe.conf  内核模块额外参数设定

*   /etc/syslog.conf 日志设置文件    限Centos 5.x

*   /etc/rsyslog.conf   日志设置文件    限Centos 6.x

*      /usr/local         这个目录一般是用来存放用户自编译安装软件的存储目录。通过源码包安装的软件,如果没有特别指定安装目录,便安装在这个目录中。

            相当于windows中c:\program files文件夹。

  /usr/src  内核源码存放目录,比如下面有内核源码目录,比如:Linux-2.xxx.xx目录等。

  1. rpm -ivh 包名.rpm

  2. yum install 包名 (yum  update 包名        更新软件包)

14. var目录下重要文件及目录详解

  /var             日志文件

  /var/log            各种系统日志存放地

*      /var/log/messages     系统信息默认日志文件,非常重要。按周自动轮循。

     /var/log/secure      安全日志,SSH连接日志

  /var/spool/cron/root  定时任务crond配置文件。

  /pro 下的重要路径知识

*      /pro 虚拟目录,是内存的映射,内核和进程的虚拟文件系统的信息

*      /pro/version    内核版本

*   /pro/sys/kernel     系统内核功能

*      /pro/cpuinfo         关于处理器的信息。如类型、厂家、型号和性能等。

*   /pro/meminfo       系统内存信息,free  -m

/proc/devices       当前运行内核所配置的所有设备清单

    /proc/dma     当前正在使用的DMA通道

*      /proc/filesystems  当前运行内核所配置的文件系统

  /pro/interrupts  正在使用的中断,和曾经有多少个中断。

  /proc/ioports    当前正在使用的I/O端口

*      /pro/loadavg     系统负载平均值信息

**   有关目录结构的总结: http://yangrong.blog.51cto.com/6945369/1288072

15. 一大波命令超细讲解前运维思想

  1. 学会总结是学好运维的重要前提。

  2. 通过案例或例子来总结一个技术点或者命令。

  3. 画一张逻辑图,形象的卡通记忆这个知识技术点。

  4. 通过管道过滤数据时,最好先输出结果,然后回退再使用管道看看结果过滤。

  学习博客资源:

  1. 亿图(专业原理图)基本技巧分享:http://v.youku.com/v.show/id_XOTEZOTKZMjMz.html

  2. 2015 年学习方法分享:(密码:oldboy)  http://v.youku.com/v_show/id_XOTEwNTYyMjQw.html

  3. 学会使用搜索引擎查找内容:    http://www.tudou.com/programs/view/clnRk05L5hk/

16.  ls及正则表达式深入实战案例讲解

  考题: 如何过滤出已知当前目录下 raymond 中的所有一级目录(提示:不包含raymond目录下面目录子目录及隐藏目录,即只能是一级目录)

  答案:a.   ls -l  | grep "^d"    (^表示以xxx开头,^raymond,以raymond开头)

        b. ls  -lf | grep  /

        c. ls -lf | grep "1$"  (1$以"1"结尾的)

  ls -lF   (F给不同的文件类型加标识号,例*,/,@,=)

17. ls-grep-find组合命令解决企业问题实战

  以16节考题为例的 tfind方法:

  1. find  /  -maxdepth  |  -type  d                  2.  find  /raymond  -maxdepth  1  -type d ! -name  "raymond"

18. tree命令重要实战及超级重要运维思想讲解

  以16节考题为例的 tfind方法:  tree  -L 1  -d

  运维思想:当一个命令的输出,含有我们需要的内容的时候,我们要想到这个命令可能会有对应的参数直接显示,我们需要的内容。

  awk,sed的过滤

  1. ls -lF | awk  '/^d/'

  2. ls -lF | sed -n '/^d/p'

19. cd命令案例及重要字符知识实践

  (cd  -  切换到更改前的上一目录)(cd .  当前目录  )(cd ..   上级目录)(cd  ~   返回家目录)

  (ls   -p 给目录加斜线;-r  reverse反转排序;-他按修改时间排序) (ls,grep) --color = auto  给输出的不同类型文件加不同颜色。

20. find命令超级重要企业级案例应用详解

  企业面试题:已知apache服务的访问日志按天记录在服务器本地目录/opt/logs下,由于磁盘空间现在要求只能保留最近7天。访问日志!请问如何解决?请给出解决办法或配置

  或处理。 提示:可以从apache服务配置上着手,也可以从生成出来的日志上着手。

  find  /oldboy/test  -type  f  -name  "access *.log"  -mtime +7 | xargs  rm  -f  (-exec  rm  -f  { }  \ ;)

  find  -ctime  按文件修改时间查找    -atime  按文件访问时间查找

21. tail 命令的企业级最常见重要应用讲解

  tail  -f  /var/log/message    跟踪一个文件结尾的变化

  tailf     /var/log/message

  tail  -F /var/log/message

22. 打印行号的8种命令方法头脑风暴及实践

  例:打印配置文件nginx.conf内容的行号及内容,该如何做?

  1. cat  -n  oldboy.txt

  2. nl  oldboy.txt

  3. grep  -n  "."  nginx.conf      grep  -n “abc”  oldboy.txt     把匹配abc字符串的行号打印出来。

  4. less  -N nginx.conf

  5. awk  '{print  NR, $0}'  message         NR表示行号,$0表示整行内容

  6. sed  '='  /etc/rsyslog.conf

23. chkconfig 命令核心案例及核心原理

  反复看视频

24. chkconfig 命令学生理解误区

  chkconfig 管理脚本的要求

  1. 执行/etc/init.d/oldboy  restart    格式正常服务

  2. 脚本里开头增加如下:

  #chkconfig:  35  56  24

  #description:oldboy  linux  test

  特别注意:

  /etc/init.d/oldboy  start    让程序当前运行

  chkconfig是管理是否开机自启动

  两者没有什么关系    (反复看视频)

25. 运行级别-中文乱码-Linux优化方案汇总

  Linux系统运行级别一般为0-6,下面为每个级别的含义:

  0 :关机模式

  1 :单用户模式(绿色)

  2 : 无NFS的多用户模式(NFS网络文件系统)

  3 :文本模式(完整的多用户模式)

  4 : 未使用的

  5 : 图形模式

  6 : 重启模式

  提示:绿色为重要的需要有限记住的。查看当前运行级别的命令为:

  #runlevel

  中文乱码解决:  # ./etc/sysconfig/i/8n                     #echo  $LANG   显示的字符集和secureCRT软件设置要一致即可。

  如何优化Linux系统?共13条。     博客优化:http://oldboy.blog.51cto.com/2561410/988726

26. tar命令核心应用案例及多重要参数详解

  案例:/etc/目录为Linux系统的默认的配置文件及服务启动命令的目录

  a. 请用tar打包/etc整个目录(打包及压缩)

  b. 请用tar打包/etc整个目录(打包及压缩。但需要排除/etc/services文件)

  c. 请把a点命令的压缩包,解压到/tmp指定目录下(最好只用tar命令实现)

  a. 解答:# tar zcvf  etc.tar.gz   /etc

      打包总结:尽量切换到打包目录的上级目录,然后用相对路径打包。   tar  zcvf  [路径随意] / 匡  [相对路径]  一堆苹果

  b. # tar zcvf  etc.tar.gz  --exclude = /etc/services  /etc

  c. # tar xf a.tar.gz  -C /tmp/  (解压到指定目录 -C) (不加-C,默认解压到当前目录)

27. tar命令打包格式及组合find应用原理及误区详解

  # tar jcvf test.tar.bz  ./test (bz打包命令)

  #tar  jxvf  test.tar.bz

  还有 gzip/unzip  zip

  案例:打包oldboy目录下所有文件

  1. # find  /oldboy/ -type f | xargs tar zcvf oldboy.tar.gz

  2. # tar  zcvf  /root/oldboy.tar.gz   ' find  /oldboy  -type  f '

28. cut命令及参数企业级案例讲解及awk对比实战

  案例:# echo "I am oldboy myqq is 4900048">>oldboy.txt

        # cat  oldboy.txt

  显示: I  am oldboy myqq is 49000448    取出字符串oldboy和4900048

  解答1:# awk '{print $3 " " $6}'  oldboy.txt  (-f 取第几列)

  解答2:# cut -d " "  -f 3,6  oldboy.txt   (-d  指定分隔符)

  解答3:# cut -c 6-11,20-   oldboy  (-c 从字符排序位数截取字符串)

29. awk 多分隔符功能及wc命令案例及企业级应用场景

  例:I am oldboy,myqq is 49000448 取字符串oldboy,4900048

    #awk -F "[, ]"  '{print $3 " " $6}' oldboy.txt

    显示:oldboy  49000448

    awk博客:深入浅出三剑客之awk,sed必杀技一例 (老男孩博客搜索)

    awk (http://oldboy.bolg.51cto.com/256141/950730)

    sed (http://oldboy.blog.51cto.com/2561410/949365) 

    例:如何查看/etc/services文件有多少行?

    解答:a. wc -l  /etc/services   查看文件行数

          b. 所有查行号的都可以类似cat  -n file | tail -1

       c. # awk '{print NR $0}'  /etc/services/tail  -1

          d. # grep  -n "."  /etc/services/tail  -1

          e. # sed  -n  '$='  /etc/services

       wc -lcmL  a.txt  ( b:行数;c:字符数  m:字符数  L:?)

                wc  打印行数,字节,字符数等。重要参数-l (企业案例用的多)

  例:过滤出/etc/services文件包含3306或1521两数的行的内容

  解答:1. # grep -E  "3306|1521"  /etc/services

      2. # egrep --color=auto  "3306|1521"  /etc/services