linux运维作业—第一周(linux发行版、目录介绍)


1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。

  目前常用的linux发行版有两个:centos和ubuntu。centos是红帽商业版的开源实现,比较稳定,适合运行在服务器上。而Ubuntu则更倾向于个人桌面。

2、配置环境变量,实现执行history的时候可以看到执行命令的时间。

  何为环境变量,环境是指当打开一个linux终端时,该终端依赖的环境,环境变量是终端进程可以调用的一些变量,从而更方便的实现功能。一般是指PATH变量,PATH变量的值是各种可执行文件的路径。linux系统中的各种命令其本质是上是可执行程序,它们存放在对应的bin路径下,为了随时随地直接执行该程序,需要把它们的程序路径放在PATH变量中。当执行一个命令时,首先会根据PATH变量中的路径,去查找命令文件然后执行。

  history命令可以查看之前执行过的命令并输出到标准输出。但默认没有对应的时间。有时候需要查找某些操作是在什么时候执行的,这种情况下就需要配置显示时间。

  方法:在系统环境变量文件中(/etc/profile)或在/etc/profile.d/下创建一个脚本,然后赋值一个变量:export HISTTIMEFORMAT="%F %T "  ;%F是年月日,%T是时间;这是设置显示时间的格式,也可以设为 HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] ";重新加载配置文件即可。

应该是history命令本身就支持显示时间,所以预先定义了一个变量 HISTTIMEFORMAT,但没有赋值,默认是不显示,但允许用户自己配置。

  history的扩展:history命令是针对用户的,即使用某个用户执行history命令就只列出该用户的历史命令,那么历史命令保存在哪呢?可以保存、显示多少条命令呢?

  解:在每个用户的家目录下,有几个隐藏文件:.bash_history   .bash_logout  .bash_profile  .bashrc。其中,.bash_profile  .bashrc是用户的环境变量配置文件,当配置用户的环境时首先加载.bash_profile,然后在该文件中加载了另一个,所以其实配在哪一个都可以。.bash_history这个文件就是用户保存历史命令的文件所在。

  至于用户能报错的历史命令条数,受变量HISTSIZE控制,默认情况下它是配置在/etc/profile中,每个用户的配置文件都加载了系统的环境变量。所以对所以用户都起作用。也可以单独配置在用户自己的环境变量中。默认保存1000条。

3、一些常用的命令

  (1)查看cpu情况。

    CPU情况分为两种,一种是物理情况,包括CPU个数、频率、核数等;另一种是CPU资源的使用率。

    查看物理情况:lscpu   或cat  /proc/cpuinfo   ##proc目录是运行过程中临时存储数据的目录,cpuinfo可以理解为系统运行过程中CPU的动态详情。

   查看CPU资源使用率:top命令 (之后在系统管理中会详细介绍)

  (2)查看内存:free  -h 和 cat  /proc/meminfo

  (3)查看磁盘:对比lsblk、fdisk -l、  df -h的区别。

  (4)screen命令:该命令是解决了前台执行命令时,网络中断或终端关闭导致程序执行失败的情况,其实完全可以用nohup  命令   &代替,感觉用处不大。

  (5)date命令:显示时间或设定系统的时间。

    date :按默认格式显示当前时间。

    date  +"%Y-%m-%d  %H:%M:%S"   #按 +后面的字符串里的格式显示当前时间。

    date   +"%s"     #按秒数显示到现在的时间。%s是显示秒数。加不加双引号都可以。双引号只是圈定了字符串的范围。

    date  -d  "参数" :根据字符参数来显示时间。

      例如:date  -d   "+1 day" :显示前一天的时间。

         date  -d   "+1 day"  +"%Y-%m-%d  %H:%M:%S"  :显示前一天时间并转换成指定格式。

         实例:在实际中可能有这样的情况,手动做日志轮循,并按日期来命令,这时就可以在脚本中使用date  -d  输出前一天的时间并赋值给文件。

    date  -s  "2021-11-16 15:29:09" :设定系统时间。

  (6)ifconfig命令:    

    • ifconfig:显示当前系统活跃的网卡及ip.
    • ifconfig -a :显示当前系统所有的网卡和ip.
    • ifconfig  eth0(网卡名):单独显示某个网卡的信息。
    • ifconfig  eth0(网卡名)  up/down :启动或停止某网卡
    • ifconfig  eth0  IP地址/网络地址位数  :给某网卡添加或修改ip地址。
    ifconfig  eth0  192.168.200.90/24  #但是这种方法只能是临时生效,重启主机或网络服务后失效。       网卡虚拟地址的配置:即网卡别名。一张网卡可以有多个ip地址。     设置方法:     #ifconfig eth0:0(别名) ip/mask     ifconfig  eth0:0 10.0.0.128/8  #但是这种方法是临时生效,重启网络服务就失效了,如何永久生效呢?添加别名的网卡配置文件,创建ifcfg-eth0:0文件,里面自行配置,但是要注意,不能为dhcp方式。      (7)export命令:设置/修改当前进程的环境变量,在系统环境变量配置文件中经常用到。           实际例子:系统的默认字符编码格式为UTF-8,但是某个用户它下面的程序是用的gbk编码格式,直接修改系统的默认编码格式明显不合适,此时可以在用户的环境变量配置文件中配置单独的编码:export  LANG=gb18030。   4、linux系统的目录 以上为实际centos7的目录。下面详细解释各个目录:
  • bin:存放普通用户的命令程序;可以看到有一个硬链接目录/usr/bin
  • sbin:存放root用户所属的命令程序;链接到/usr/sbin目录。
  • boot:存放和系统启动相关的文件,比如初始内核文件。
  • dev:硬件设备在linux中也表现为文件,linux一切皆文件。所有硬件设备存放目录。
  • etc:各应用、系统的配置文件目录。
  • home:家目录的所在
  • root:root用户的家目录
  • run:系统运行过程中生成的临时文件。
  • tmp:临时文件目录。
  • usr:
  • var:日志文件目录,或者其他可变文件目录,可以自己用
  • lib/lib64:库或者64位库文件所在目录
  • proc:进程运行中存放数据文件的目录,不要去改