Linux笔记 -- Week01 Q&A

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

Linux分支参考链接:
https://github.com/FabioLolix/LinuxTimeline

slackware: SUSE Linux Enterprise Server(SLES), OpenSuse桌面, MINIS, etc.
Debian:deepin, Kali, Ubuntu, Linux Mint, etc.
Redhat:Red Hat Enterprise, CentOS, Fedora, etc.
Alpine:一个面向安全应用的轻量级Linux发行版
ArchLinux:遵循K.I.S.S.原则(keep it simple and stupid), Manjaro, etc.
Gentoo:不提供传统安装程序,需下载源代码在本机上编译安装软件。GentooX, etc.
LFS:Linux From scratch 自制Linux
Android:kernel+busybox(工具集)+Java虚拟机

联系:都是基于Linux内核实现,都需遵守GNU的GPL开源协议。
区别:不同发行版是基于不同版本的内核+基础软件+协议的基础上打包组合而成的。

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

CentOS7.9系统安装主要设置:


CentOS-1.png
CentOS-2.png
CentOS-3.png
CentOS-4.png
CentOS-5.png
CentOS-6.png
CentOS-7.png

Ubuntu18.04.6 系统安装主要设置:


ubuntu-1 welcome_page.png
ubuntu-2.png
ubuntu-3 custom_disk.png
ubuntu-4 custom_disk.png
ubuntu-5 custom_disk.png
ubuntu-8 final_setting.png
ubuntu-9 final_display.png
ubuntu-10 final_complete.png
#安装完毕后启动网卡自动获取ip地址
#执行命令如下:
ip a #查看网卡名称
ip link set eth0 up #启动网卡,网卡编号为 eth0
dhclient eth0 #启动dchp自动获取地址

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

系统变量:在 /etc/bashrc 或者 /etc/profile 中添加如下环境变量:

export HISTTIMEFORMAT="%F %T"

用户变量:在 ~/.bash_profile 添加如下:

export HISTTIMEFORMAT="%F %T"

效果如下:


histtimeformat.png

4. 总结Linux哲学思想

- 一切皆文件:不仅是常见的文件和目录,硬件设备均可视为文件对待
- 小型,单一用途的程序:为了减小资源开销,保证高效运行,Linux通过许多单一用途的小程序来应对日常单一的任务,尽可能通过单一功能的小程序来完成。
- 链接程序,共同完成复杂的任务:通过shell脚本或管道符等方式将简单的小程序组合起来实现所需的复杂功能。
- 避免令人困惑的用户界面: 推行命令行界面,不像复杂的桌面系统,命令行界面可以通过清晰明了的命令来实现排查错误,处理效率高。
- 配置数据存储在文本中:在Linux里面,所有的配置信息都保存在文本配置文件里面,用户可以通过修改文本来实现配置修改,而不是像Windows保存在用户看不懂的二进制文件中。

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

命令使用格式:
COMMAND [OPTIONS...] [ARGUMENTS...]
COMMAND [COMMAND] [COMMAND] ...

echo [参数] [字符串]
echo "$VAR_NAME"  #用变量值替换,弱引用
echo '$VAR_NAME'  #变量不会替换,强引用
#输出 1-10
[root@centos8 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
#弱引用,输出变量值
[root@centos8 ~]# echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#使用反引号执行命令
[root@centos8 ~]# echo `ls`
anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music Pictures Public Templates Videos
screen [参数]
#创建screen新会话
[root@centos8 ~]# tty
/dev/pts/0
[root@centos8 ~]# screen -S test-one  #创建screen会话 test-one
[root@centos8 ~]# tty
/dev/pts/1
#显示所有会话
[root@centos8 ~]# screen -ls
There are screens on:
        35397.test-two  (Detached)
        35347.test-one  (Attached)
2 Sockets in /run/screen/S-root.
#恢复会话
screen -r test-one
#结束screen会话
[root@centos8 ~]# screen -d 36081.test-one       #将会话离线
[root@centos8 ~]# screen -ls
There is a screen on:
        36081.test-one  (Detached)
1 Socket in /run/screen/S-root.
[root@centos8 ~]# kill -9 36081            #结束进程
[root@centos8 ~]# screen -ls
There is a screen on:
        36081.test-one  (Dead ???)
Remove dead screens with 'screen -wipe'.  
1 Socket in /run/screen/S-root.
[root@centos8 ~]# screen -wipe         #清除会话
There is a screen on:
        36081.test-one  (Removed)
1 socket wiped out.
No Sockets found in /run/screen/S-root.
[root@centos8 ~]# screen -ls                 #验证会话结束-1
No Sockets found in /run/screen/S-root.
[root@centos8 ~]#
[root@centos8 ~]# tty  #验证会话结束-2
/dev/pts/0
date [OPTION] [+FORMAT]
#显示当前时间
[root@centos8 ~]# date
Sat Nov 20 10:23:49 CST 2021
#显示utc时间
[root@centos8 ~]# date -u
Sat Nov 20 03:16:44 UTC 2021
#显示自1970-01-01 00:00:00 UTC以来的秒数
[root@centos8 ~]# date +%s
1637378605
#指定全日期全时间格式输出
[root@centos8 ~]# date +"%F %T"
2021-11-20 11:24:18
#显示硬件时间
[root@centos8 ~]# clock
2021-11-20 11:25:53.768870+08:00
#显示当前时区信息
[root@centos8 ~]# timedatectl status
               Local time: Sat 2021-11-20 11:27:20 CST
           Universal time: Sat 2021-11-20 03:27:20 UTC
                 RTC time: Sat 2021-11-20 03:27:18
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no
##
ifconfig [参数]
#简要查看网络接口信息
[root@centos8 ~]# ifconfig -a -s
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500   186823      0      0 0        193945      0      0      0 BMRU
lo              65536    30871      0      0 0         30871      0      0      0 LRU
virbr0           1500        0      0      0 0             0      0      0      0 BMU
virbr0-nic       1500        0      0      0 0             0      0      0      0 BM
[root@centos8 ~]#
#临时关闭指定网络接口
ifconfig ens33 down
#临时开启指定网络接口
ifconfig ens33 up
export [参数]
#列出当前shell环境变量
[root@centos8 ~]# export -p
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-sMyZ4R3BXo,guid=171f3beedc7e07c61f8f9c816198ae75"
declare -x DISPLAY="localhost:10.0"
declare -x GDK_BACKEND="x11"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
...
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_DATA_DIRS="/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share"
declare -x XDG_RUNTIME_DIR="/run/user/0"
declare -x XDG_SESSION_ID="13"
#设置变量 var_test 并赋值
[root@centos8 ~]# export var_test=666
[root@centos8 ~]# echo $var_test
666
[root@centos8 ~]#

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

命名规则
1、名称区分大小写
2、以 . 开头的为隐藏文件
3、文件名最长 255 字节
4、路径分隔用 /
5、包括路径在内文件名称最长4095字节
6、名称不能包含斜杠和NUL

/boot: 引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放在此目录
/bin: 所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/dev:设备文件及特殊文件存储位置
    b:block device,随机访问
    c:character device,线性访问
/etc: 配置文件目录
/home:普通用户家目录
/lib: 启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64: 专用于x86_64系统上的辅助共享文件存放位置
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/opt:第三方应用程序的安装位置
/proc:用于输出内核与进程信息相关的虚拟文件系统
/root:管理员家目录
/sbin: 管理类的基本命令;不能关联至独立分区,OS启动会用到的程序
/selinux:security enhanced Linux, selinux相关的安全策略等信息存储位置
/srv:系统上运行的服务用到的数据
/sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统
/tmp:临时文件存储位置
/usr:universal shared,read-only data 全局共享且只读数据
    bin:保证系统拥有完整功能而提供的应用程序
    include:c程序的头文件(header file)
    lib:32位使用
    lib64:只存在64位系统
    sbin:
    share:结构化独立的数据,例如doc,man
        local:第三方应用程序的安装位置
            bin, etc, lib, lib64, sbin, share
/var:variable data files 变量数据文件
    cache:应用程序缓存数据目录
    local:专用于为/usr/local下的应用程序存储可变数据
    lock:锁文件
    log:日志目录及文件
    opt:专用于为/opt下的应用程序存储可变数据
    run:运行中的进程相关数据,通常用于存储进程pid文件
    spool:应用程序数据池
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容