本文来自于: https://www.cnblogs.com/hafiz/p/6686187.html#4196989

一、说明

  本篇文章,我将结合自己的实践以及简介,来对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系统基础知识整理(一)的更多相关文章

  1. Linux系统基础知识整理

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

  2. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  3. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  4. 嵌入式4412开发板学习知识-Linux系统基础知识

    1. 什么是Linux系统编程 Linux系统编程分为三个部分:系统调用.C库和C编译器. 系统调用系统编程的基础是系统调用,也结束于系统调用.在带有操作系统的嵌入式开发中,需要从操作系统申请一些服务 ...

  5. Kali Linux渗透基础知识整理(一):信息搜集

    写在前面的废话:最近要给一些新人做培训,整理些东西,算不上什么太高端的内容,只是简单的整理下了,我觉得对于小白的话也还算是干货.在乌云水了几年,算不上什么大神水平,最近生活费紧张,现在打算在FreeB ...

  6. Kali Linux渗透基础知识整理(三):漏洞利用

    漏洞利用阶段利用已获得的信息和各种攻击手段实施渗透.网络应用程序漏洞诊断项目的加密通信漏洞诊断是必须执行的.顾名思义,利用漏洞,达到攻击的目的. Metasploit Framework rdeskt ...

  7. 安装 Linux 系统基础知识概要

    虚拟化软件,建议使用 Vmware Workstation 虚拟硬件配置CPU:2核或更多内存:1G以上,推荐2G硬盘:一块硬盘,200G (虚拟大小)网卡:NAT模式 (桥接在外部网络变化时,无法访 ...

  8. Linux系统基础知识

    文件类型属性 '-'代表普通文件 'd'代表目录文件 'l'代表链接文件link 'b'代表块文件block 'c'代表字符设备文件 'p'代表管道文件

  9. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

随机推荐

  1. mysql向redis导入数据

    数据库结构如下 如果是linux系统下,如此整备数据 SELECT CONCAT( "*10\r\n", '$', LENGTH(redis_cmd), '\r\n',redis_ ...

  2. WebKitBrowser

    WebKit.net是对WebKit的.Net封装, 使用它.net程序可以非常方便的集成和使用webkit作为加载网页的容器. 首先 下载WebKit.net 的bin文件. 然后 新建一个Wind ...

  3. 字符串类QString

    采用Unicode编码,所以一个QChar占用两个字节使用隐式共享技术来节省内存和减少不必要的数据拷贝跨平台使用,不用考虑字符串的平台兼容性QString直接支持字符串和数字之间的相互转换QStrin ...

  4. Python 文件I/OⅢ

    read()方法 read()方法从一个打开的文件中读取一个字符串.需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字. 语法: 在这里,被传递的参数是要从已打开文件中读取的字节计 ...

  5. wx小程序知识点(三)

    三.封装小程序的数据请求 (1)在根目录创建utils目录,创建config.js.base.js (2)在config.js中创建config类,并将请求路径配置给config的属性restUrl, ...

  6. 在github新建一个项目里需要哪些文件及作用

    1.README.md文件 关于项目的介绍和使用方法. 2.  .gitignore文件 上传项目时不需要传的文件,最常用的就是“node_modules/",如下: 详细的介绍可以去git ...

  7. linux 能ping通IP但无法解析域名

    vi /etc/nsswitch.conf hosts: files dns networks: files 改成: hosts: files dns wins networks: files 最近碰 ...

  8. ueditor+复制word+图片不能上传

    最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...

  9. #4 div1E Parentheses 括号匹配

    E - Parentheses Time Limit:2000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Subm ...

  10. docker删除容器再删除镜像

    1. 查询镜像 docker images 现在想删除第一个,ID为 99f85991949f 的镜像. docker rmi  ID 从上面看出,需要先停到ID为 67*** 的容器. 2. 查询容 ...