第一周(0823~0829)

本周博客作业题:

1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
2、安装Centos7.9和ubuntu操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图。
3、配置环境变量,实现执行history的时候可以看到执行命令的时间。
4、总结Linux哲学思想。
5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令
6、描述Linux发行版的系统目录名称命名规则以及用途。


 

学习前,先拜拜大神!

 

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

(一)linux的发行版的基本定义:各个组织和厂家自己选择一些GUN软件,加上kernel等封装的一套套GNU/Linux。

(二)主流发行版罗列如下

slackware:SUSE Linux Enterprise Server (SLES),OpenSuse桌面

debian: ubuntu  ,deepin  ,mint ---优秀的个人桌面linux

redhat:RHEL: RedHat Enterprise Linux, 每18个月发行一个新版本。
CentOS:Community Enterprise Operating System 兼容RHEL的格式,已被收购。
Centos8 支持到2029年,代替OS:Rocky Linux,同团队。
Fedora:每6个月发行一个新版本。早期ATCA-Advanced架构通信设备也采用过这个系统。

Alpine: 一个面向安全的轻型 Linux 发行版。它不同于通常Linux发行版,Alpine采用了musllibc(其他发行版很多用glibc),库不同。busybox以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,只有5M左右大小。

ArchLinux: 轻量简洁,遵循KISS原则(keep it simple and stupid),据说AUR软件仓库有着世界上最齐全的Linux软件。
Manjaro---衍生版。

Gentoo: 极致性能,不提供传统意义的安装程序,下载源代码在本机上编译安装软件。
LFS: Linux From scratch 自制Linux,只是一个说明书,也就是说需要从零搭建linux系统,是最难的linux。
Android: kernel+busybox(工具集)+java虚拟机。
中标麒麟:中标软件,这个系统,如人饮水冷暖自知。

 

Q2 安装Centos7.9和ubuntu操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图。

(一)安装前,先下载Centos7.9和ubuntu,下载地址网页:

centos7.9:https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/   --(选择了清华的)

 

 

 Ubuntu1804:http://cdimage.ubuntu.com/releases/18.04/release/

(二)分区规划

100G----------------虚拟机磁盘空间
ext4 --------1G-----------/boot  启动分区
xfs --------50G-----------/      根分区
xfs --------20G-----------/data   测试数据目录
swap -------2G       交换分区
剩余27G,后期磁盘管理使用

(三)具体安装,centos7安装相对Ubuntu要简单,界面比较友好,主要是在分区的那部分。

虚拟机用的是VM14版本,虚拟机设置:菜单-->编辑--->虚拟网络编辑器...

 

 

 

两套系统安装通用部分,

选择 :网络选择NAT,语言ENGLISH ,美式键盘,时区 Asia/Shanghai ,软件自动更新不选。

下面是部分截图和说明

centos7:

 

网络选择NAT,CD/DVD 选择使用iso镜像

 

 

 

 

 开启虚拟机,第一次可以选择,第二个选项,测试并安装,点击后显示进行测试

 

 

 

 

 

 

 

 

1.时区: Asia/Shanghai   

 

 

2.软件:最小化安装(也可以桌面)

3.分区:选择自定义,不要自动

 

 

 

 

 

 4.去掉系统日志收集,此项仅用于系统厂家支持,KDUMP

 

 

5.网络开启,设置主机名

 

 

 

 到此,5项全部配置完成,就可以点击安装了。安装页面中,把密码设置一下,同时添加一个普通用户。

 

安装完成,reboot,如果是桌面版的,有个license 接受,最小化安装不用。

 

 

 

 

 Ubuntu 的安装,麻烦一些的在分区部分开始到最后。前面的虚拟机的操作没差别,下面是差异部分的截图和说明。

1.选择:手工分区

 

 

 2.选中这个磁盘

 

 

 3.确认新建分区

 

 

 4.选择空间 SPACE

 

 

 5.新建分区

 

 

 6.给一个地盘,也就是分区大小

 

 

 7.类型要:主分区Primary

 

 

 8.开始执行

 

 

 9.默认ext4类型,选 /  根分区 ,完成设置(备注:使用向下箭头移动,使用回车键进行确定)

 

 

 10.继续进行分区,类似的操作

 

 

 11.注意的一个/data 没有可选项,选择手动输入

 

 

 

 

 

 12. swap 需要修改文件系统类型

 

 

 13.完成,选择finish,并接收yes

 

 

 

 14.代理空着即可

 

 

 15.不要自动更新

 

 

 16.安装开启远程安全连接openssh服务(重要

 

 

 17.GRUB引导相关,需要接受YES

 

 

 18.完成,reboot 提示,选YES

 

 

 19.完成,可以登录了

 

 

 

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

临时生效:

export HISTTIMEFORMAT="%F %T " 

从此刻开始,之后的输入的命令在记录历史信息中时,都会带有时间,之前的仅记录修改环境变量时刻的时间。

长期生效: 将设置追加到当前家目录下.bash_profile中

全局有效:将设置追加到/etc/profile中,需要root权限

echo 'export HISTTIMEFORMAT="%F %T " ' >>~/.bash_profile
source ~/.bash_profile

echo 'export HISTTIMEFORMAT="%F %T " ' >>/etc/profile
source /etc/profile

 

Q4 总结Linux哲学思想

linux也可以称为类UNIX操作系统,因此也继承了UNIX的哲学思想

一切都是一个文件(包括硬件):操作系统的本质,将硬件资源虚拟为软件资源,文件形式-bcdlps,普通,块,字符,目录,软链接,管道,套接字
小型:单一用途的程序,单个小程序完成小任务,小而美。
程序共同完成复杂的任务
避免令人困惑的用户界面:命令行窗口,精准的接收指令,准确的输出反馈。
配置数据存储在文本中:配置文本化,修改和备份方便。

 

Q5 总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令

Linux 命令格式

 command [options]...[argmuments] 

command   命令,是二进制执行程序,主要分内部命令,外部命令(后装的应用程序都是这个)

options   选项,有长选项、短选项。用于开启或关闭命令的某个功能,是为了准确的使用该命令功能,根据具体情况使用或者不用。

arguments   参数(对象),命令的作用对象,对文件,服务等执行命令。

常见实例:

echo

 

 

 echo   将文本信息进行标准输出显示。

选项

-E:不启用转义\的解释功能(default)
-n:不自动换行
-e:启用转义字符\的解释功能,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\e escape,相当于\033
\n 换行且光标移至行首
\t 插入tab

举例:打印输出文本内容,也可以打印变量

[root@centos7 ~]# echo "user is user"
user is user
[root@centos7 ~]# echo "user is $USER"
user is root 

打印命令执行结果和参数数,扩展,转义

[root@centos7 ~]# echo `date`
Fri Aug 27 10:45:30 CST 2021
[root@centos7 ~]# echo -e "hi \nmage"
hi 
mage

  

screen(没怎么用过,一般后台跑程序用nohup COMMAND &)

当我们在使用xshell等终端进行远程访问服务器时,进行远程访问的界面往往不能关掉,否则,程序将不再运行。

screen可以创建一个终端,将终端会话送到系统后台。这样即使断开会话,screen中任务任然在继续执行。

screen –S [SESSION] :创建会话
screen –x [SESSION]:加入会话
exit :退出关闭会话
Ctrl+a,d : 剥离当前会话
screen -ls: 显示所有已经打开的会话
screen -r [SESSION] : 恢复会话

date

用的最多的是,脚本中配置日期参数。举例:

[root@centos7 ~]# date
Fri Aug 27 11:03:01 CST 2021
[root@centos7 ~]# date "+%F %T"             
2021-08-27 11:03:08
[root@centos7 ~]# date -d '-5 day' "+%F %T"
2021-08-22 11:03:15
[root@centos7 ~]# date -d '-5 day' "+%Y%m%d"
20210822
[root@centos7 ~]# date -d '-1 day' "+%Y%m%d" 
20210826

  常用于备份创建目录或文件带日期结尾

[root@centos7 ~]# touch backupfile`date -d '-1 day' "+%Y%m%d"`
[root@centos7 ~]# ls
anaconda-ks.cfg  backupfile20210826

  

ifconfig  用于查看网络信息,c7后用ip命令代替了。

发现没这个命令,需要安装个rpm包:net-tools

[root@centos7 ~]# ifconfig
-bash: ifconfig: command not found
[root@centos7 ~]# yum install net-tools

[root@centos7 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.151  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::af84:88a4:f53f:e4df  prefixlen 64  scopeid 0x20<link>

  

用ip a 命令

[root@centos7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:4e:c3:dd brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.151/24 brd 10.0.0.255 scope global noprefixroute dynamic ens33
       valid_lft 1207sec preferred_lft 1207sec
    inet6 fe80::af84:88a4:f53f:e4df/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

  

export     声明环境变量

export [-fn] [name[=word]] ...
export -p
The supplied names are marked for automatic export to the environment of subsequently executed commands. If the -f option is given, the names refer to functions. If no names are given, or if the -p option is supplied, a list of all names that are exported in this shell is printed. The -n option causes the export property to be removed from each name. If a variable name is followed by =word, the value of the variable is set to word. export returns an exit status of 0 unless an invalid option is encountered, one of the names is not a valid shell variable name, or -f is supplied with a name that is not a function.

 

 

提供的名称被标记为自动导出到随后执行的命令的环境中。
-f:指向函数。如果没有给出名称,或者提供了-p选项,则会打印在这个shell中导出的所有名称的列表。
-n:删除变量的导出属性,将从每个名称中删除export属性。
-p:显示全部拥有导出属性的变量。
=word : 如果变量名后面跟着=word,则该变量的值设置为word。
$? 值应该为0 :Export返回退出状态为0,除非遇到无效选项,否则其中一个名称不是有效的shell变量名称,或者-f提供了一个不是函数的名称。

 

Q6 描述Linux发行版的系统目录名称命名规则以及用途。

 在centos 7上,实用tree -L 2 命令,截取了主要的目录

├── bin -> usr/bin :所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
├── boot :引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
├── dev :设备文件及特殊文件存储位置
├── etc :配置文件目录
│   └── selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
├── home :普通用户家目录
├── lib -> usr/lib :启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
├── lib64 -> usr/lib64 :专用于x86_64系统上的辅助共享库文件存放位置
├── media :便携式移动设备挂载点
├── mnt :临时文件系统挂载点
├── opt :第三方应用程序的安装位置
├── proc :用于输出内核与进程信息相关的虚拟文件系统
├── root :管理员的家目录
├── run :运行中的进程相关数据,通常用于存储进程pid文件
├── sbin -> usr/sbin :管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
├── srv :系统上运行的服务用到的数据
├── sys :用于输出当前系统上硬件设备相关信息虚拟文件系统
├── tmp :临时文件存储位置
├── usr :universal shared, read-only data 可以理解为系统管理员安装本地应用程序目录
│   ├── bin :保证系统拥有完整功能而提供的应用程序
│   ├── etc :本地应用软件配置文件
│   ├── include :C程序的头文件(header files)
│   ├── lib :本地增加的32位使用库文件
│   ├── lib64 :本地增加的64位系统的库文件
│   ├── libexec :很少yoga
│   ├── local :专用于为/usr/local下的应用程序存储可变数据
│   ├── sbin :基本不用
│   ├── share :结构化独立的数据,例如doc, man等
│   ├── src :其他软件源文件存放目录
│   └── tmp -> ../var/tmp :基本不用的临时目录
└── var :variable data files 可变数据目录,系统日志,软件日志存放地
posted @ 2021-08-27 15:49  MGMT_N5983  阅读(87)  评论(1)    收藏  举报