[ 后端与Linux基础| 青训营笔记]

101 阅读7分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天

1.根目录结构

  1. /usr/bin

    所有用户可用的基本二进制命令程序文件。如常用的命令ls、tar、mv、cat等

  2. boot

    放置Linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub系统引导程序,系统内核

  3. dev

    存放Linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备。

  4. /dev/console

    系统终端设备。

  5. /dev/zero

    “零”设备,可以无限的提供空字符(0x00,ASCII代码NUL)。常用来生成一个特定大小的文件。

  6. /dev/null

    “空”设备,也有人称它为黑洞。任何输入到这个“设备”的数据都将被直接丢弃。最常用的用法是把不需要的输出重定向到这个文件。

  7. /dev/random 和 /dev/urandom

    随机数设备,提供源源不断的随机字节流。

  8. /dev/sr0

光驱的设备名。

  1. /etc/hostname

系统主机名配置文件。

  1. /etc/hosts

本地解析文件(在本地建立IP地址和主机名称的对应关系)

  1. /etc/fstab

磁盘挂载文件(作用:实现磁盘设备开机自动挂载)

  1. /etc/rc.local

    开机自动加载文件 rc.loacl文件作用:

           01. 文件中的内容信息,会在系统启动之后进行加载
           02. 文件中的编写内容,一定是命令信息
    

    例如:可以往文件里写入# mkdir /home/fan,则会开机自动执行

  2. /etc/profile   ==  /etc/bashrc

    变量信息和别名信息配置文件

  3. /etc/motd

    登陆之后提示文件。

  4. /etc/issue(或者 /etc/issue.net)

    登陆之前提示文件(作用:可以对操作系统的用户进行注意事项说明)

  5. /etc/resolv.conf

    DNS解析配置文件位置

  6. /etc/shadow

    用于存储 Linux 系统中用户的密码信息

18。 /etc/shells

这个文件记录了你当前Linux系统中所支持的shell版本

19. /etc/passwd

系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读(r)操作。

20. /etc/group

存储有关本地用户组的信息

21. /etc/services

记录常用和已注册的TCP或UDP端口

22. /etc/ssh

存放ssh远程连接相关配置文件

    /etc/ssh/sshd_config 是ssh服务的运行参数设置(针对服务端设置)

    /etc/ssh/ssh_config 是ssh服务的运行参数设置 (针对客户端设置)

  1. /etc/login.defs

用于设置用户账号限制的文件,该文件的配置对root用户无效。

  1. /etc/skel

用来存放新用户配置文件的目录,当我们添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。

25。 /etc/default/useradd

文件是在使用useradd添加用户时的一个需要调用的一个默认的配置文件,可以使用“useradd -D参数“,这样的命令格式来修改文件里面的内容。

  1. /etc/localtime

    本地时间配置文件, 此文件一般为/etc/share/zoneinfo下面的文件的软链接,比如当前CST时间,可以清晰地看出其实际是链接到上海的时间

  1. /etc/redhat-release

查看linux系统的版本信息(获得系统发行版本和具体系统版本信息)

  1. /etc/locale.conf

    设定系统显示语言(修改这个配置文件后,即对root和其他用户、及新建用户永久生效)

  1. home

    系统默认的用户家目录,新增用户账号时,用户的家目录都存放在次目录下,~表示当前用户的家目录.

  2. lib(usr/lib、/usr/local/lib)目录

概念:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助

  1. lib64 目录

库文件存放目录(64位系统)

  1. media 目录

外接设备临时挂载点

  1. mnt 目录

临时的挂载点目录

  1. opt目录

第三方软件安装目录

  1. proc 目录

虚拟目录,显示内存中信息(进程、服务信息、内核)

注意:存放到该目录中的数据都存储到内存,关机后会释放

  1. srv 目录

系统自行管理的服务用到的数据

  1. sys目录

虚拟的目录 ,存放一部分内存信息

  1. tmp目录

临时文件的存放位置

  1. usr目录

universal shared read-only data(全局共享只读数据目录。可独立分区编辑安装的第三方软件、共享的库,包括文件和静态只读程序数据。

  1. var目录

概念:动态变化的文件,例如 日志文件、相关服务的日志文件、数据库、缓存目录   variable

  1. usr目录

    universal shared,read-only data(全局共享只读数据目录)。可独立分区编辑安装的第三方软件、共享的库,包括文件和静态只读程序数据。

  1. run目录

    自本次系统启动以来启动的进程的进程的运行时数据。包括进程ID文件和锁定文件等。此目录中的内容在重启时会重新创建。

2.UID和GID

1.UID

root用户拥有极高的系统所有权,能够管理系统的各项功能,真正让root成为“超级用户”的原因是它的UID值。

每个用户都有对应的唯一UID值,可以分成三类用户:

  • 超级用户 UID 0 : root 用户默认为 0 。
  • 系统用户 UID 1-999 :系统中系统服务由不同用户运行,更加安全,默认被限制登录系统
  • 普通用户 UID 1000~ :即管理员创建的用于日常工作而不能管理系统的普通用户。 2.GID

GID 是用户组的编号,可以将多个用户加入到某个组中,方便指派任务或工作。

每个用户在被创建时均会创建一个默认组(其GID与UID相同,叫作基本组或初始组),而后加入的组叫作扩展组或附加组。

用户组名和GID则保存在 /etc/group 文件中。

3.权限管理

linux中角色类别

  • 拥有者 owner
  • 所属组 group
  • 其他 other

image.png

第一列文件属性

image.png

  • 一共十个字符
  • 第一个字符,表示文件类型

d:文件夹

-:普通文件(文本,动静态库,可执行程序,源程序)

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件 (通信)

  • 剩下9个字符
  • 3 + 3 + 3 为一组
    • 拥有者 所属组 其他人 所具有的文件权限属性
    • rwx必须按顺序,可读 可写 可执行
    • -为否

修改文件权限八进制

chmod 777 文件名

7 7 7 八进制 111 111 111 rwxrwxrwx

4.用户管理

1.添加用户

useradd <username>

添加 Linux 用户之前,可以先列出现有用户,来保证不添加有冲突的用户名:

cat /etc/passwd cut -d : -f 1

2.设置用户密码

passwd <username>

3.切换用户

su <username>

4.删除用户

userdel <username>

5. 引导和启动

引导过程总览

开机自检(BLOS)→MBR引导→GRUB菜单→加载内核(kernel)→init进程初始化

开机自检(BLOS):通过bios程序检查硬件是否正常,如果硬件出现问题则会卡在开机界面提示不同报错

MBR引导:第一阶段grup引导及加载分区表

GRUP菜单:第二阶段grub加载内核文件到系统内存中运行起来,内核文件位置:/boot/grub2/grub.cfg

加载内核(kernel):加载完毕进入操作系统

init进程初始化:启动操作系统后需要启动进程

init 与systemd的介绍与区别

介绍:

  • init进程是系统中的第一个进程,Centos 6系统的第一个进程是init进程
  • Systemd是Linux操作系统中的一种init软件,Centos 7的第一个进程是systemd进程

区别:

  • init依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢。
  • Systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度 。