写点什么

W1 linux 操作系统基础

用户头像
Kevin
关注
发布于: 2021 年 06 月 06 日

Linux 只是一个系统内核,不同的组织拿到这个内核,自己添加相应的功能和基础软件再打包发布成为相应的系统版本


目前我们用的 Linux 都是一个 Linux 内核+GNU 工具的组合


centos 内核查看 uname -r

1、linux 的发行版本和不同发行版之间的联系和区别

Linux发行版排名链接


发行版本:


  • slackware:SUSE Linux Enterprice Server(SLES) ,OpenSuse 桌面

  • debian: ubuntu,deepin(国产,深度),mint

  • redhat:

  • RHEL: RedHat Enterprise Linux ,每 18 个月发行一个新版本,收费

  • CentOS: Community Enterprise Operatiing System 兼容 RHEL 的格式

  • 中标麒麟:中标软件

  • Fedora:每 6 个月发行一个版本

  • Alpine: 一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,只有 5M 左右大小.适合在 docker 中测试

  • ArchLinux:轻量简洁,遵循 K.I.S.S.原则( keep it simple and stupid ),

  • Manjaro 是基于 Arch Linux 的 Linux 发行版

  • Gentoo:极致性能,不提供传统意义的安装程序,下载源代码在本机上编译安装软件

  • LFS:Linux From scratch 自制 Linux,只是一个说明书

  • Android:kernel+busybox(工具集)+java 虚拟机

2、centos7.6 安装

mac 版


docker 安装https://www.runoob.com/docker/macos-docker-install.html


docker 镜像地址: https://hub.docker.com/_/centos?tab=tags&page=1&ordering=last_updated


找到 7.6 相关 7.6.1810


运行 docker


docker pull centos:7.6.1810


找到对应镜像 id,这里是f1cd


docker images


启动 centos


docker run -ti f1cb /bin/bash


就进入 os 系统里了


查看系统版本


cat /etc/redhat-release

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

nano ~/.bashrcHISTTIMEFORMAT="%Y-%m-%d %H:%M:%S ". ~/.bashrc
复制代码

4、linux 哲学思想总结

  • 一切都是一个文件,包括硬件.window 一切皆窗口.

  • 小型,单一用途的程序

  • 链接程序,共同完成复杂任务

  • shell 脚本

  • 避免令人困惑的用户界面

  • 配置数据存储在文本中

5、Linux 常用命令使用格式

COMMAND [OPTIONS...] [ARGUMENTS...]


  • 短选项:UNIX 风格选项,-c 例如:-l, -h

  • 长选项:GNU 风格选项,--word 例如:--all, --human

  • BSD 风格选项: 一个字母,例如:a,使用相对较少


参数:命令的作用对象,比如:文件名,用户名等

echo 命令
简介:

只用于显示一行文本,可以实现显示字符串,显示变量等;


也可以配合-e 选项显示转义字符;

常用选项:
  -n 不换行;
-e 启用\转义字符;
-E 不启用\转义字符;
常用的转义字符有:
\a发出警告声
\b 退格键
\c 最后不加上换行符号
\e escape,相当于\033
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 相当于tab键
\\ \字符本身
\0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH 插入HH(十六进制)所代表的的ASCII字符
复制代码


echo "first line\nsecond line"echo -e "first line\nsecond line"
复制代码

6、Linux 发行版的系统目录名称命名规则和用途

命名规则:


  1. 使用 LSB(Linux Standard Base)分层结构

  2. 遵循 FHS (Filesystem Hierarchy Standard) 标准

  3. 文件名最长 255 个字节

  4. 包括路径在内文件名称最长 4095 个字节

  5. 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件

  6. 除了斜杠和 NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们

  7. 标准 Linux 文件系统(如 ext4),文件名称大小写敏感


/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放在此目录。
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序。
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序。
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)。
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录 /home/USERNAME:普通用户家目录
/root:管理员的家目录 /media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置  b:block device,随机访问  c:character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr:universal shared,read-only data  bin:保证系统拥有完整功能而提供的应用程序  sbin:  lib:32位使用  lib64:只存在64位系统  include:C程序的头文件(header files)  share:结构化独立的数据,例如doc,man等    local:第三方应用程序的安装位置      bin,sbin,lib,lib64,etc,share
/var:variable data files  cache:应用程序缓存数据目录  lib:应用程序状态信息数据  local:专用于为/usr/local下的应用程序存储可变数据  lock:锁文件  log:日志目录及文件  opt:专用于为/opt下的应用程序存储可变数据  run:运行中的进程相关数据,通常用于存储进程pid文件  spool:应用程序数据池 tmp:保存系统两次重启之间产生的临时数据
/proc:用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux:security enhanced Linux,selinux相关的安全策略等信息的存储位置
复制代码

7、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?

每个文件都有两类相关数据:


  • metedata,元数据,也就是属性

  • data 文件内容


查看


stat


  • file:文件的完整名称

  • Size:文件的数据大小

  • Blocks:占用磁盘的块数

  • IO Block:IO 块的大小

  • Device:所在设备

  • regular:文件的类型

  • Indoe:文件的节点

  • Links:文件的链接数

  • Access:文件的访问权限

  • Uid:属主 id/用户

  • Gid:属组 id/组名

  • access time :访问时间,atime,读取文件内容

  • modify time :修改时间, mtime,改变文件内容(数据)

  • change time :改变时间, ctime,元数据发生改变


修改


touch [OPTION]... FILE...-a 仅改变 atime和ctime-m 仅改变 mtime和ctime-t [[CC]YY]MMDDhhmm[.ss]指定atime和mtime的时间戳
复制代码


touch命令有两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性。


touch命令会根据当前的系统时间更新指定文件的访问时间和修改时间。如果文件不存在,将会创建新的空文件,除非指定了”-c”或”-h”选项

8、软连接和硬链接的区别


  1. 软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的。软连接的 inode 跟原文件的 inode 是不一致的

  2. 硬链接是不会建立 inode。他只是在文件原里的 inode link count 域再增加 1 而已,也因此硬链接是不可以跨越文件系统的。

  3. 硬链接是一个文件别名。

  4. 软链接可以跨文件系统,硬链接不可以

  5. 软链接可以对一个不存在的文件名进行链接,硬链接不行。

  6. 软链接可以对目录进行连接,硬连接不可以

  7. 两种链接都可以通过 ln 来创建,ln 默认创建的是硬链接

  8. 使用-s 开关可以创建软链接。

发布于: 2021 年 06 月 06 日阅读数: 14
用户头像

Kevin

关注

还未添加个人签名 2018.12.04 加入

还未添加个人简介

评论

发布
暂无评论
W1 linux操作系统基础