《Linux运维之道》笔记一

  • 忘记root登录密码
    1. 开机出现GRUB引导程序时,按e编辑GRUB引导参数
    2. 选择以kernel开始的行按e进行编辑
    3. 在kernel行末尾加上single后回车,按b启动系统进入单用户模式
    4. 在单用户模式下输入命令passwd root,输入两次密码
    5. 修改成功,shutdown -r now重启系统
    6. 新密码登入,成功。
  • history命令显示所有命令记录,然后通过!命令编号调用该命令
  • 清屏命令大家都知道clear,还有一个快捷键更方便——ctrl+l
  • Vim普通模式下输入ZZ,可以实现保存并退出文档
  • echo "hello123" | passwd --stdin jack 通过管道为用户jack设置密码
  • uptime 监控CPU使用情况

一、ACL访问控制权限

两个命令:getfaclsetfacl

  • getfacl 查看文档的ACL权限
  • setfacl 设置文档ACL权限

    • -b 删除所有附加的ACL条目
    • -k 删除默认的ACL
    • -m 添加ACL权限
    • -x 删除指定的ACL条目
    • -R 递归处理所有的子文件与子目录
  • 实例

    • getfacl 2.log 查看文档2.log的ACL权限
    • setfacl -m u:user01:rw 2.log 添加ACL条目,使用户user01对2.log文件可读可写
    • setfacl -m g:group01:r 2.log 使用户组group01对文件2.log有可写权限
    • setfacl -x u:user01 2.log 删除用户user01的ACL条目
    • setfacl -x g:group01 2.log 删除组的权限
    • setfacl -b 2.log 清除文件2.log所有ACL权限

二、磁盘分区

之前在一篇笔记里已经介绍了fdisk命令的用法,这里就不重复了,这里说一下另外两个命令partprobeparted

  • partprobe

    • partprobe /dev/sdb 让内核立即读取新的分区表,无需重启电脑就可以识别新创建的分区
  • parted GPT分区方式,不同与传统的MBR分区(使用fdisk

三、开机启动

学习开机启动命令,先要了解Linux的6种运行级别。

  • 0 关机模式
  • 1 单用户模式
  • 2 无NFS(共享服务)网络的字符界面模式
  • 3 全功能字符界面模式
  • 4 暂时未定义使用
  • 5 图形模式
  • 6 重启模式

通过runlevel命令可以查看当前所处的运行级别。服务器版本的Linux一般都是3级别,通过init命令可以改变当前的运行级别,如init 0命令可以直接关机.

好了,可以进入正题了,如何设置开机启动呢?使用命令chkconfig,用法如下:

  • chkconfig --list 查询系统服务运行级别信息
  • chkconfig --level 指定操作的运行级别,不指定级别时默认为2,3,4,5级别
  • 实例:
    • chkconfig --list sshd 查看sshd命令的运行级别
    • chkconfig sshd on 设置sshd服务在2.3.4.5级别开机启动

四、内存和硬盘使用情况

1、内存使用

内存的使用情况查看命令,应该很熟悉了,那就是free,但是你真的知道显示出来的各个数据都代表的是什么意思吗?至少之前我是没怎么去了解。

每次看的时候,也就扫了一眼,总共498M,用了263M,还剩235M,就完事了。其他的数据就没怎么看了,这里简单介绍一下其他数是什么含义。

在Linux开机后就会预先提取一部分内存,并划为buffer与cache以供进程随时使用。第一行的used就是这部分内存数263,而后面的buffers代表的是buffer使用剩余的内存数65,cached就是cache剩余的内存数145。那么buffer和cache用了多少呢?第二行中used就是buffer和cache使用的内存数51,那么就有等式263=65+145+51,接下来446系统总剩余的内存数,为分配的有235,分配了但是没有用完的有65+145,那么446=65+145+235

细心的读者也许一眼就看出了,等式根本不等嘛!别着急,换成字节单位,你再算算!至于原因就很明了了

2、硬盘使用

这里就补充两点。

  • df -hTT的参数代表显示文件系统
  • df -ii代表的是磁盘inode使用量信息

    这里可以看出根分区还剩下313077个inode节点,也就是说如果在更分区下创建313077个空文件,那么就算该磁盘还有容量也再也容不下新增文件了。

五、网络

1、网络参数设置

有两种方式设置网络参数,一是通过命令行设置;二是通过修改参数文件。

命令行设置不外乎ifconfigroute这两个命令,具体使用可以自行查询帮助文档,这里介绍一下修改参数文件来设置网络。

网络的参数文件在/etc/sysconfig/network-scripts/ifcfg-<iface>,其中iface为网卡接口名称。如果只有一块以太网网卡,则一般为ifcfg-eth0,文件有一下字段:

  • DEVICE 设备名称 eh0,eth1...
  • TYPE 设备类型 ethernet
  • BOOTPROTO 启动协议 none|dhcp|static
  • HWADDR 硬件地址 MAC地址
  • NM_CONTROLLED 网卡是否可以被NetworkManager控制 yes|no
  • ONBOOT 开机是否启动该网卡 yes|no
  • ONPARENT 真实接口启动后虚拟接口是否启动 yes|no
  • IPADDR IP地址
  • PREFIX 网络位掩码个数
  • NETMASK 子网掩码
  • GATEWAY 默认网关
  • DNS{1,2} DNS服务器

如我网卡eth1设置静态IP,配置如下图

2、网络故障排错

这块主要介绍5个命令,pingtraceroutenslookupdignetstat

  • ping 非常常用的命令,测试基本就是4步

    1. ping 127.0.0.1 ping本地回环,测试本地网络协议是否正常
    2. ping 192.168.1.101 ping本地IP,测试本地网络接口是否正常
    3. ping 192.168.1.1 ping本地网关,测试网关是否正常工作
    4. ping 61.135.169.121 ping外部网络,测试服务商网络是否正常工作
    5. ping www.baidu.com ping网址,如果上述都正常,而这步ping不通,那么肯定是DNS的问题了
  • traceroute 跟踪数据包的路由过程,可以查看数据包在互联网中哪个节点出现问题,如图

  • nslookup 检测本地设置的DNS服务器工作是否正常

    • nslookup www.baidu.com 检测本地DNS服务器是否能解析到百度,如图

      本地设置的DNS服务器是8.8.8.8,检测到百度对应的两个IP地址
  • dig 查看更多关于DNS记录的信息

    • dig www.baidu.com 显示比nslookup更详细的信息
  • netstat 网络监控命令,该命令比较强大,可以自行查看帮助文档学习

    • netstat -nutlp 查看当前系统开启端口信息