Linux基础
完成作业:
1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别
Linux发行版
-
slackware:SUSE Linux Enterprise Server(SLES),OpenSuse桌面
-
debian:ubuntu,deepin(深度),mint
-
redhat:RHEL:RedHat Enterprise Linux,每18个月发行一个新版本
? CentOS:Community Enterprise Operating System兼容RHEL的格式
? 中标麒麟:中标软件
? Fedora:每6个月发行一个新版本
-
Alpine:一个面向安全的轻型Linux发行版,它不同于通常Linux发行版,Alpine采用了musllibc和busybox以减小系统的体积和运行时资源消耗,但功能上比busybox又完善的多,只有5M左右大小
-
ArchLinux:轻量简洁,遵循K.I.S.S原则( keep it simple and stupid ),Manjaro
-
Gentoo:极致性能,不提供传统意义的安装程序,下载源代码在本机上编译安装软件
-
LFS:Linux From scratch 自制Linux,只是一个说明书
- Android:kernel+busybox(工具集)+Java虚拟机
2、安装Centos7.6操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图























3、配置环境变量,实现执行history的时候可以看到执行命令的时间
-
history命令显示命令行历史,当执行命令后,系统默认会在内存记录执行过的命令
-
当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history
-
登录shell时,会读取命令历史文件中记录下的命令加载到内存中
- 登录进shell后新执行的命令只会记录在内置的缓存区中;这些命令会在用户正常退出时“追加”至命令历史文件中
命令历史相关环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT=" %F %T `whoami ` " 显示时间和用户
HISTIGNORE="STR1:STR2*:..." 忽略str1命令,str2开头的历史
持久保存变量
以上变量可以export变量名=“值”形式存放在/etc/profile或~/.bash_profile
[root@localhost ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export HISTTIMEFORMAT="%F %T "
[root@localhost ~]# source .bash_profile
[root@localhost ~]# history
1 2021-04-20 23:16:32 useradd nanhaibao
2 2021-04-20 23:16:32 id nanhaibao
3 2021-04-20 23:16:32 passwd nanhaibao
4 2021-04-20 23:16:32 su nanhaibao
4、总结Linux哲学思想
- 一切皆文件(包括硬件)
- 小型,单一用途的程序
- 连接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文本中
5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令
Linux常用命令使用格式:COMMAND [OPTION]...[FIEL]...
[root@localhost ~]# echo hello world
hello world
[root@localhost ~]# date +%F+%T
2021-04-21+00:14:28
[root@localhost ~]# ip addr
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:63:f4:1f brd ff:ff:ff:ff:ff:ff
inet 10.0.0.202/24 brd 10.0.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::f0ef:c830:4404:d085/64 scope link noprefixroute
valid_lft forever preferred_lft forever
6、描述Linux发行版的系统目录名称命名规则以及用途

文件系统的目录结构
- 文件和目录被组织成一个单根导致树结构
- 文件系统从根目录下开始,用"/"表示
- 根文件系统(rootfs),root filesystem
- 标准Linux文件系统(如:ext4),文件名称大小写敏感
- 以 . 开头的文件为隐藏文件
- 路径分隔的/
- 文件名最长255个字节
- 包括路径在内文件名称最长4095个字符
- 蓝色->目录 绿色->可执行文件 红色->压缩文件 浅蓝色->连接文件 灰色->其他文件
- 除了斜杠和NUL,所有字符都有效,但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用
- 每个文件都有两类相关数据:元数据,即属性;数据:data,即文件内容
/bin: /usr/bin: 可执行二进制文件的目录。
/boot:放置linux系统启动时用到的一些文件。
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
/etc:系统配置文件存放的目录。
/home:系统默认的用户家目录。
/lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录。
/mnt: /media:光盘默认挂载点。
/opt:给主机额外安装软件所摆放的目录。
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间。
/root:系统管理员root的家目录。
/sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令。
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv:服务启动之后需要访问的数据目录。
/usr:应用程序存放目录。
/var:放置系统执行过程中经常变化的件
/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。
7、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息
文件元数据和节点表结构
inode表结构
每个文件的属性信息,如果:文件的大小,时间,类型等,称为文件的元数据(meta data)。这些元数据是存放在inode(index node)表中。mode表中有很多条记录组成,第一条记录对应的存放了一个文件的元数据信息
第一个mode表记录对应的保存了一下信息:
- inode number 节点号
- 文件类型
- 权限
- UID
- GID
- 连接数(指向这个文件名路径名称个数)
- 该文件的大小和不同的时间戳
- 指向磁盘上文件的数据块指针
- 有关文件的其他数据
stat命令查看文件的元数据
[root@localhost ~]# stat anaconda-ks.cfg
File: ‘anaconda-ks.cfg’
Size: 1474 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 201326659 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2021-04-20 22:38:49.088059942 +0800
Modify: 2021-04-20 22:38:49.090059942 +0800
Change: 2021-04-20 22:38:49.090059942 +0800
Birth: -
[root@localhost ~]# stat /etc
File: ‘/etc’
Size: 8192 Blocks: 24 IO Block: 4096 directory
Device: 802h/2050d Inode: 134320193 Links: 74
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2021-04-20 22:58:28.178009473 +0800
Modify: 2021-04-20 22:57:00.940005313 +0800
Change: 2021-04-20 22:57:00.940005313 +0800
Birth: -
[root@localhost ~]# df -i /boot
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 524288 327 523961 1% /boot
touch命令可以用来创建空文件或刷新文件的时间
- -a 仅改变atime和ctime
- -m 仅改变mtime和ctime
- -t [[CC]YY]MMDDhhmm[,ss] 指定atime和mtime的时间戳
- -c 如果文件不存在,则不予创建
[root@localhost ~]# ls -l /etc/issue
-rw-r--r--. 1 root root 23 Nov 23 2018 /etc/issue
[root@localhost ~]# touch /etc/issue
[root@localhost ~]# ll /etc/issue
-rw-r--r--. 1 root root 23 Apr 21 03:05 /etc/issue
8、总结软连接和硬连接区别,并用实例操作说明
硬链接
硬链接本质上就给一个文件起一个新的名称,实质是同一个文件
特性:
- 创建硬链接会在对应的目录中增加额外的记录项以引用文件
- 对应于同一文件系统上一个物理文件
- 每个目录引用相同的inode号
- 创建时连接数递增
- 删除文件时:rm命令递减计数的连接,文件要存在,至少有一个连接数,当连接数为零时,该文件被删除
- 不能跨越驱动器或分区
- 不支持对目录创建硬链接
格式:
ln filename [linkname]
符号(或软)连接
一个符号连接指向另一个文件,就像windows中快捷方式,软连接文件和原文件本质上不是同一个文件
软连接特点
- 一个符号连接的内容是它引用文件的名称
- 可以对目录创建软连接
- 可以跨分区的文件实现
- 指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的应用计数
- 软连接如果使用相对路径,是相对于原文件的路径,而非相对于当前目录
格式:
ln -s filename [linkname]
[root@localhost data]# touch dir
[root@localhost data]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 21 03:36 dir
[root@localhost data]# echo hello world > dir
[root@localhost data]# cat dir
hello world
[root@localhost data]# ln -s /data/dir /data/dirlink-sofr
[root@localhost data]# ln /data/dir /data/dirlink-hard
[root@localhost data]# ll
total 4
-rw-r--r--. 1 root root 12 Apr 21 03:41 dirlink-hard
lrwxrwxrwx. 1 root root 3 Apr 21 03:41 dirlink-soft -> dir
[root@localhost data]# cat dirlink-soft
cat: dirlink-soft: No such file or directory
[root@localhost data]# cat dirlink-hard
hello world
硬链接和软连接区别总结
1、本质
? 硬链接:本质是同一个文件
? 软连接:本质不是同一个文件
2、跨设备
? 硬链接:不支持
? 软连接:支持
3、inode
? 硬链接:相同
? 软连接:不同
4、连接数
? 硬链接:创建新的硬链接,链接数会增加,删除硬链接,连接数会减少
? 软连接:创建或删除,连接数不会变化
5、文件夹
? 硬链接:不支持
? 软连接:支持
6、相对路径
? 硬链接:原始文件相对路径是相对于当前工作目录
? 软连接:原始文件的相对路径是相对于链接文件的相对路径
7、删除源文件
? 硬链接:只是链接数减一,但链接文件的访问不受影响
? 软连接:链接文件将无法访问
8、文件类型
? 硬链接:和源文件相同
? 软连接:链接文件和源文件无关
9、文件大小
? 硬链接:和源文件相同
? 软连接:源文件的路径的长度
原文:https://blog.51cto.com/nanhb/2720262