第一周作业

第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哲学思想

  1. 一切都是一个文件(包括硬件)
  2. 小型,单一用途的程序
  3. 链接程序,共同完成复杂的任务
  4. 避免令人困惑的用户界面
  5. 配置数据存储在文本中

5、Linux常用命令使用格式

  1. 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
  1. 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
  1. 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
  1. 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:常用于存放可变化的数据,比如一些日志信息等。
posted @ 2022-03-07 06:33  laowaN64  阅读(10)  评论(0)    收藏  举报