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

Linux发行版主要有三个分支:Debian、Slackware、Redhat。
1. Debian:(以社区的方式运作)
Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器;
Linux Mint:基于Debian和Ubuntu的Linux发行版。
2. slackware
suse:基于Slackware二次开发的一款Linux,主要用于商业桌面、服务器。
SLES(SUSE Linux Enterprise Server(SLES):企业服务器操作系统,是唯一与微软系统兼容的Linux操作系统。
OpenSUSE:由suse发展而来,旨在推进linux的广泛使用,主要用于桌面环境。
3. Redhat
RHEL(red hat enterprise Linux):Red Hat公司发布的面向企业用户的Linux操作系统。
Fedora:Fedora大约每六个月发布新版本。
Centos:基于Red hat Linux提供的可自由使用源代码的企业级Linux发行版本。
4. 其他发行版本:
Gentoo:基于linux的自由操作系统,基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区。
Aech Linux(或称Arch):以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅和代码最小化的设计宗旨。
不同发行版之间的联系和区别:
- 联系:所有发行版都是使用Linux内核;都需要遵循GNU的GPL协定;所有的发行版都有自己的版本号,版本格式约定基本一样(主版本号.次版本号.发行号.修正号)。
- 区别:发行版的本质区别,在于继承不同版本的内核,库、程序的组成。不同发行版几乎采用了不同包管理器(SLES、Fedora、openSUSE、centos、RHEL使用rmp包管理系统,包文件以RPM为扩展名;Ubuntu系列,Debian系列使用基于DPKG包管理系统,包文件以deb为扩展名。
2、安装Centos7.9和ubuntu操作系统




















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

4、Linux哲学思想
- 一切都是一个文件(包括硬件)
- 小型,单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文本中
5、Linux常用命令使用格式
- echo命令用于在终端设备上输出字符串或变量提取后的值
语法格式:echo [参数] [字符串]
常用参数:
| -n | 不输出结尾的换行符 |
|---|---|
| -e “\a” | 发出警告音 |
| -e “\b” | 删除前面的一个字符 |
| -e “\c” | 结尾不加换行符 |
| -e “\f” | 换行,光标扔停留在原来的坐标位置 |
| -e “\n” | 换行,光标移至行首 |
| -e “\r” | 光标移至行首,但不换行 |
| -E | 禁止反斜杠转移,与-e参数功能相反 |
| —version | 查看版本信息 |
| --help | 查看帮助信息 |
参考实例:
输出变量提取后的值:
[root@CentOS7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
对内容进行转义,不让$符号的提取变量值功能生效:
[root@CentOS7 ~]# echo \$PATH
$PATH
结合输出重定向符,将字符串信息导入文件中:
[root@CentOS7 tmp]# echo '123' > test
[root@CentOS7 tmp]# cat test
123
- date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记
语法格式:date [选项] [+输出形式]
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
常用参数:
| -d datestr | 显示 datestr 中所设定的时间 (非系统时间) |
|---|---|
| -s datestr | 将系统时间设为 datestr 中所设定的时间 |
-
时间方面:
-
% : 印出 %
-
%n : 下一行
-
%t : 跳格
-
%H : 小时(00..23)
-
%I : 小时(01..12)
-
%k : 小时(0..23)
-
%l : 小时(1..12)
-
%M : 分钟(00..59)
-
%p : 显示本地 AM 或 PM
-
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
-
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
-
%S : 秒(00..61)
-
%T : 直接显示时间 (24 小时制)
-
%X : 相当于 %H:%M:%S
-
%Z : 显示时区
-
日期方面:
-
%a : 星期几 (Sun..Sat)
-
%A : 星期几 (Sunday..Saturday)
-
%b : 月份 (Jan..Dec)
-
%B : 月份 (January..December)
-
%c : 直接显示日期与时间
-
%d : 日 (01..31)
-
%D : 直接显示日期 (mm/dd/yy)
-
%h : 同 %b
-
%j : 一年中的第几天 (001..366)
-
%m : 月份 (01..12)
-
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
-
%w : 一周中的第几天 (0..6)
-
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
-
%x : 直接显示日期 (mm/dd/yy)
-
%y : 年份的最后两位数字 (00.99)
-
%Y : 完整年份 (0000..9999)
参考实例:
[root@CentOS7 tmp]# date '+%B %d'
March 07
[root@CentOS7 tmp]# date '+%T%n%D'
05:46:08
03/07/22
[root@CentOS7 tmp]# date '+%D'
03/07/22
[root@CentOS7 tmp]# date '+%x'
03/07/2022
[root@CentOS7 tmp]# date '+%T'
05:46:43
- ifconfig命令 – 显示或设置网络设备
语法格式:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
常用参数:
| add<地址> | 设置网络设备IPv6的IP地址 |
|---|---|
| del<地址> | 删除网络设备IPv6的IP地址 |
| down | 关闭指定的网络设备 |
| up | 启动指定的网络设备 |
| IP地址 | 指定网络设备的IP地址 |
参考实例:
显示网络设备信息:
[root@CentOS7 tmp]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::b32e:bebd:3396:8ce3 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2d:50:ec txqueuelen 1000 (Ethernet)
RX packets 881 bytes 390024 (380.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 558 bytes 68618 (67.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量
语法格式:export [-fnp][变量名称]=[变量设置值]
常用参数:
| -f | 代表[变量名称]中为函数名称 |
|---|---|
| -n | 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中 |
| -p | 列出所有的shell赋予程序的环境变量 |
参考实例:
列出当前所有的环境变量
[root@CentOS7 tmp]# export -p
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HISTTIMEFORMAT="%F %T "
declare -x HOME="/root"
declare -x HOSTNAME="CentOS7.N64"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD="/root"
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/tmp"
declare -x SELINUX_LEVEL_REQUESTED=""
declare -x SELINUX_ROLE_REQUESTED=""
declare -x SELINUX_USE_CURRENT_RANGE=""
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="10.0.0.1 58863 22"
declare -x SSH_CONNECTION="10.0.0.1 58863 10.0.0.100 22"
declare -x SSH_TTY="/dev/pts/1"
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="5"
6. Linux发行版的系统目录名称命名规则以及用途
linux各种发行版都遵循LSB(Linux Stadards Base)规则,使用一致的相关的基础目录名称,使用根目录系统结构(root filesystem),使用FHS(Files Hierarchy Standard)层次结构,下面将简单介绍linux的目录及其用途。
linux的文件系统是倒立的树状结构,由根(/)起始,其他目录均为/的子目录。
一级目录
[root@CentOS7 /]# tree -d -L 1 /
/
├── bin -> usr/bin
├── boot
├── data
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
20 directories
- /bin:普通用户的命令,centos7系统 软链接至usr/bin
- /boot:引导文件存放于此目录,vimlinuz、grub
- /dev:设备以及特殊文件存放目录,/dev/zero,/dev/null..
- /etc : 系统配置文件存放目录
- /home:普通用户的家目录
- /lib :库文件存放目录
- /lib64:x86_64库文件存放目录
- /media:便携式挂载点
- /mnt:其他文件临时挂载点
- /opt:第三方程序安装目录
- /proc:统启动后,cpu映射的虚拟文件系统
- /root:root家目录
- /run:系统启动的守护进程等
- /sbin/:管理员用户命令存放目录
- /srv:当前主机为服务提供的数据
- /sys:统启动后,硬件设备映射的虚拟文件系统
- /tmp:临时文件存放目录
- /usr:系统默认的软件都会放置到/usr
- /var:常用于存放可变化的数据,比如一些日志信息等。

浙公网安备 33010602011771号