Linux系统基础知识整理

一、说明

  本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰的介绍,使得哪些刚接触Linux的小伙伴可以快速入门,也方便自己以后进行复习查阅。

二、基本知识整理

  1.Linux文件系统架构

    1).文件或目录起始于"/"根目录,并且以树装结构呈现

    2).最顶层以"/"开始

    3).linux文件系统的文件或者目录名严格区分大小写,并且以/分隔开

    4).".."表示上层目录

    5)."."表示当前目录

    6).隐藏目录或者文件名称都以"."开头

    7).#代表当前登陆用户为root用户

    8).$代表当前登陆用户为普通用户

  2.Linux重要文件目录说明

    1)./            所有其他目录的最顶级根目录

    2)./home    系统用户的家目录,每个用户在该文件夹下有一个与登录名同名的目录作为该用户的家目录,但是root用户的家目录就在根目录下。

    3)./root  root用户的家目录

    4)./boot     系统内核和开机必须文件所在目录

    5)./etc       系统配置文件所在目录

    6)./dev      系统所有设备文件所在的目录

    7)./usr(unix system resource) 保存程序的相关文件

    8)./tmp      临时文件所在的目录

    9)./var   主要放置系统执行过程中经常变化的文件,例如缓存(cache)或者是随时更改的登录文件(log file)

    10)./opt   用于存储第三方软件的目录,不过我们还是习惯放在/usr/local下

    11)./bin、/usr/bin        常用的可执行指令文件目录

    12)./sbin    root用户才有权限执行的指令

    13)./lib、/usr/lib、/usr/local/lib    系统可复用类库目录

    14)./mnt、/media        外部设备的mountpoint,当检测到设备接入时会自动产生挂载点

    15)./lost+found        每个分区都会创建一个该目录,用户系统异常时恢复丢失的东西

    16)./proc        系统进程以及网络状态信息目录,在内存中

  3.Linux目录和文件的命名规则

    1).长度不能超过255个字符

    2).严格区分大小写

    3).除了"/"以外,所有可用字符都合法

      首字符避免使用"+"、"-"、"."等字符

避免使用空格、制表符、"@"、"#"、"$"、"%"、"["、"]"、"("、")"等字符

    4).最好使用有意义的名称来命名

  4.相对路径和绝对路径

    1).绝对路径以"/"开头,从根目录开始

    2).相对路径以当前路径开始,一般比较短

  5.Linux安全性模型

    1).linux使用User和Group控制使用者对文件的存取权

    2).用户使用账号和口令登陆linux

    3).每个文件都有Owner,且owner属于某个Group

    4).每个资源都有owner和group

  6.Linux用户概述

    1).每个用户都有一个唯一的UserID

    2).User的信息存储在/etc/passwd文件中

      (1).存储用户名和home目录等信息

      (2)./etc/shadow文件来保存每个用户的密码信息

    3).每个用户都有一个专属自己的home目录

    4).user未经授权将禁止读写或执行其他User的文件

    5).root用户

      (1).是超级管理员账号、具有至高无上的权限

      (2).一般不要随便用root登录并操作系统

  7.Linux用户群组概述

    1).每个用户都属于一个group,具有唯一的标识符gid

    2).Group信息

      (1)./etc/group存储gid、成员等信息

      (2)./etc/gshadow存储群组的密码信息

    3).系统会为每个user关联一个和user同名的group

      (1).每个user至少存在于自己同名的group中

      (2).user也可以加入其他group中

    4).在同一个group中的成员可以共享其他成员的文件

  8.Linux权限种类

    1).只读权限,用r表示(read)

    2).可写权限,用w表示(write)

    3).可执行权限,用x表示(execute)

      (1).可以执行可执行文件

      (2).可以使用cd命令进入目录

    4).没有任何权限用"-"表示

  9.Linux文件和目录权限解读

    ls -l命令将看到以下格式:

      [d|-] [r|-w|-x|-] [r|-w|-x|-] [r|-w|-x|-]

      d代表是目录,-代表是文件

后面三个分别代表所属用户、组、用户和组以外的角色拥有的权限

      比如:d rwx-w---- 代表

        1.是目录

        2.owner权限为可读可写可执行

        3.group的权限为可写

        4.others没有任何权限                 - rwxrwxr-x 代表

        1.文件

        2.owner权限为可读可写可执行

        3.group的权限为可读可写可执行

        4.others的权限为可读可执行

  10.linux系统权限验证流程

  解读:1.首先判断是否为Root用户

     2.是root用户则直接允许操作

     3.非root用户判断文件的uid和当前用户的uid是否一致

     4.uid一致则根据文件的owner权限进行判断是否可以对该文件进行操作

     5.uid不一致,则判断文件的gid和是否包含在当前用户的gid中

     6.包含则根据文件的group的权限进行判断是否可以对该文件进行操作

     7.不包含则根据文件的others的权限进行判断是否可以对该文件进行操作

  11.设置Linux文件和目录的权限

    1).字符表示法: chmod [-R] mode file_or_directory

      -R 递归改变权限

      mode模式类别

           例:chmod u+r    owner增加读权限                 chmod a=    所有角色取消所有权限                  chmod -R a=rwx    递归给目录及目录下所有子目录和文件增加读写执行权限

    2.数字表示法

    使用一组三位数字来表示,第一组代表owner的权限;第二组代表group的权限;第三组代表others的权限.

    权限数字 r:4  w:2  x:1  -:0

    例:rwx = 4+2+1=7                r-x = 4+0+1=5

  12.用户的主要群组和次要群组

    1).主要群组:

      每个文件必须有一个组所有者,因此必须有一个与每个用户相关的默认群组,这个默认群组成为新建文件的组所有者,被称为用户的主要群组。

      用户的主要群组中在/etc/passwd文件中的第四个字段定义.

    2).次要群组:除了主要群组,用户也可以根据需要在隶属于其他群组,这写组被称为次要群组,在/etc/group文件中的第四个字段中定义

    3).使用groups命令可以查看当前用户的所有群组,第一个为主要群组,后面的N个为次要群组

  13.用户的管理

    1).useradd [-u UID] [-g 主要群组] [-G 次要群组] [-m|M] [-c 说明] [-d 家目录位置] [-s shell]             1.-u 指定一个UID给该账号             2.-g 指定一个主要群组名称,会修改/etc/passwd文件             3.-G 指定一个次要群组名称,会修改/etc/group文件             4.-m 强制建立用户家目录,一般账号默认             5.-M 强制不要建立用户家目录,系统账号默认             6.-c /etc/passwd文件中的第五个字段,账号简述             7.-d 指定用户家目录位置,不要使用默认的值             8.-s 指定默认的shell,如果没有指定则默认是/bin/bash

    2).usermod [-cdegGlsuLU] username             1.-c修改该账号的说明文字             2.-d修改账号的家目录             3.-e指定用户账号禁用日期,格式YY-MM-DD             4.-G修改次要群组的名称,会修改/etc/group文件             5.-g修改主要群组名称             6.-a与-G合用,可增加次要群组             7.-l将当前账号的名称重命名为指定名称             8.-u修改UID             9.-L暂时将用户的密码冻结无法登陆             10.-U解冻账号,其实就是删除/etc/shadow的!字符

    3).userdel [-r] username             -r连同用户的家目录一起删除

    4).passwd 修改用户密码

  14.用户信息的检查         1.finger [-s] username 查阅用户相关的信息             -s仅仅列出用户的账号、全名、登录时间等           2.id 可以查阅当前登陆用户关联的UID、GID信息           3.whoami|who|w 查看当前登录用户名           4.users 查看登陆系统的所有用户           5.groups查看当前登录用户的组信息

  15.默认权限的控制       1.内核级别,新建文件的默认权限是666       2.内核级别,新建目录的默认权限是777       3.还要通过umask来阻止一些权限,从而产生最终的权限       4.非管理员账号的umask为0002,root账号的umask为0022       5.umask的作用原理           1.原理说明

           2.做减法是错误的,实际结果应该是644

  16.群组管理       1).groupadd [-g gid] [-r] 组名           -g 后面接特定GID,用来指定GID           -r 建立系统群组,系统群组小于500,普通群组大于500       2).groupmod [-g gid] [-n group_name] 群组名       3).groupdel [groupName] 删除特定的群组

  17.文件的压缩和打包         1).文件压缩             1.通过压缩算法将文件的体积缩小,同时将多个文件合并至一起,方便交换、传输             2.Linux支持的压缩格式                 1.*.Z compress程序压缩文件                 2.*.gz gzip程序压缩文件                 3.*.bz2 bzip2程序压缩文件                 4.*.tar tar程序打包文件,并未压缩                 5.*.tar.gz tar程序打包后使用gzip压缩                 6.*.tar.bz2 tar程序打包后使用bzip2压缩             3.gzip [-cdtv#] fileName 压缩指定文件                 拓展名为*.gz                 -c将压缩的数据输出到屏幕上                 -d解压缩                 -t进行文件一致性校验看是否损坏                 -v显示和原文件相比的压缩比                 -#压缩等级,-1最快,-9最慢,默认是-6             4.bzip2 [-cdkzv#] filename 压缩指定文件                 扩展名为*.bz2                 -c将解压的数据输出到屏幕上                 -d解压缩参数,该参数代表执行解压缩操作                 -k保留原文件进行压缩                 -z压缩参数,该参数代表执行压缩操作                 -v显示和原文件对比的压缩比                 -#压缩等级,-1最快,-9最慢,默认是-6       2.文件打包           1.将多个文件或者整个目录合并成一个文件,用来进行文件的备份、分发、传输           2.tar 命令打包文件               1.将某个文件或者目录打包并使用bzip2压缩成一个文件                   tar [-jcv] -f filename.tar.bz2 待压缩的档案或者目录名               2.将压缩文件解压至特定的目录                   tar [-jxv] -f filename.tar.bz2 -C 解压缩到的目录               3.参数解释                   1.-c 建立打包档案                   2.-t 查看打包的文件都有哪些文件名                   3.-x 解压缩或者解打包文件,和-C搭配适用解压缩到指定目录                   4.-j 通过bz2支持进行压缩或者解压缩                   5.-z 使用gzip进行压缩或者解压缩                   6.-v 将正在处理的文件名显示出来                   7.-f 紧跟要被处理的文件名,建议单独写一个选项

三、Linux基本操作及命令概述

  1.cd:切换目录        1).cd .. 切换到上级目录        2).cd ~ 切换到用户家目录        3).cd - 切换到上个路径

  2.pwd:查看当前所在路径

  3.cp:复制文件和目录

    1).cp [options] file destination 复制文件到指定位置

    2).cp [options] file file2... destination 复制多个文件到指定位置

    3).cp -r dir1 destination_dir 递归复制目录到指定位置

  4.mv:移动和重命名文件和目录

    1).移动操作类似于cp

  5.rm:删除文件或目录

    rm [options] filenmes|directory ...         -i 交互式

      -r 递归删除

      -f foce强制删除

  6.touch filename 新建文件

  7.mkdir directoryName 新建目录

  8.file:确定文件的格式

    file[options] filenames 打开文件前确定格式

  9.查看文本文件

    1).cat [options] filenames

    2).less [options] [filename]

      pageup/pagedown向上向下翻页

      g 到文件顶端

      G 到文件底端

      q 退出

      / keywords 根据关键字搜索

      n:查找下一个

      N:查找上一个

三、总结

  通过本文的总结,对linux系统有了一个直观清晰的了解,又是充实的一天过去了,就是喜欢这种充实的感觉,闲下来就感觉浑身难受~ 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏玄魂工作室

CTF实战12 任意文件包含漏洞

该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关

20230
来自专栏vue

将java项目打包成jar文件并在cmd运行

28030
来自专栏面朝大海春暖花开

properties文件乱码问题 eclipse

java最常用的开发工具eclipse里面的properties配置文件里面打开中文是乱码的,解决方式很简单。

59220
来自专栏一“技”之长

Git命令集十三——快照操作 原

    Git工具中提供了一个stash命令,这个命令的作用是创建快照。快照主要的用途是将当前未更新到缓存区的修改进行入栈保存,创建快照后,Git的状态会变回上...

10220
来自专栏云霄雨霁

Mybatis--全局配置文件笔记

12600
来自专栏java一日一条

理解Cookie和Session机制

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确...

24610
来自专栏地方网络工作室的专栏

Shell 从日志文件中选择时间段内的日志输出到另一个文件

Shell 从日志文件中选择时间段内的日志输出到另一个文件 情况是这样的,某系统的日志全部写在一个日志文件内,所以这个文件非常大,非常长,每次查阅的时候非常的不...

24480
来自专栏决胜机器学习

《Redis设计与实现》读书笔记(十五) ——Redis AOF持久化原理与实现

《Redis设计与实现》读书笔记(十五) ——Redis AOF持久化原理与实现 (原创内容,转载请注明来源,谢谢) 一、概述 AOF(Append OnFil...

36850
来自专栏玄魂工作室

Hacker基础之Linux篇:基础Linux命令一

这一部分主要是讲解Linux常用命令工具,比如文件管理,文本处理等等,主要是为了让读者用最少的实践掌握和熟练应用基本的Linux操作,对于每个命令的举例,尽量做...

30070
来自专栏Java帮帮-微信公众号-技术文章全总结

Java面试系列18-servlet

Servlet方面 01 说一说Servlet的生命周期? servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期...

34980

扫码关注云+社区

领取腾讯云代金券