首页 > 系统服务 > 详细

Linux基础

时间:2021-04-20 23:11:40      阅读:33      评论:0      收藏:0      [点我收藏+]
第一周作业

完成作业:

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操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图

技术分享图片

技术分享图片

![](C:\Users\nanhaibao\AppData\Roaming\Typora\typora-user-images\image-20210420195726317.png

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

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、文件大小

? 硬链接:和源文件相同

? 软连接:源文件的路径的长度

Linux基础

原文:https://blog.51cto.com/nanhb/2720262

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!