一、说明

  本篇文章,我将结合自己的实践以及简介,来对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系统有了一个直观清晰的了解,又是充实的一天过去了,就是喜欢这种充实的感觉,闲下来就感觉浑身难受~ 

Linux系统基础知识整理相关推荐

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

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

  2. linux系统下io的过程,Linux系统基础知识:IO调度

    Linux系统基础知识:IO调度 IO调度发生在Linux内核的IO调度层.这个层次是针对Linux的整体IO层次体系来说的.从read()或者write()系统调用的角度来说,Linux整体IO体系 ...

  3. Linux系统基础知识

    Linux系统基础知识 1.在Linux系统中,以文件方式访问设备.   2. Linux内核引导时,从文件 /etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用 ino ...

  4. step1 . day2:Linux系统基础知识

    和Windows一样,Linux计算机必要的文件系统和学习C语言使用到的编辑器知识初步掌握. 1.操作系统和内核的分类 内核:Linux.Unix.NT,Linux内核主要负责5项工作①文件管理②设备 ...

  5. 嵌入式Linux系统基础知识

    一.嵌入式Linux系统的构成 1.硬件 2.内核 3.应用程序(形成根文件系统) 二.构建嵌入式Linux系统的主要任务 1.内核部分 2.应用程序部分 嵌入式Linux的开发大致可分为三个层次:引 ...

  6. Linux 系统基础知识

      温故而知新,可以为师矣.好久没有再次系统学习 Linux 相关的知识了,总结回顾一下,为了更好的前进. 一.环境搭建   环境的配置,是我们学习的基础.环境配置会用到的工具及环境: (1) Int ...

  7. linux系统基础知识学习笔记

    /  根分区 boot 系统引导程序(内核,GRUB配置文件等) bin  存放终端二进制命令 etc 系统配置文件(大多数配置文件都是文本文件) dev  存放设备文件(系统将计算机中的各种设备资源 ...

  8. linux系统基础知识总结

    文章目录 1.什么是虚拟机? 2.如何使用虚拟机? 3.什么是shell? 4.什么是内核(kernal)? 5.在linux系统中如何运行命令 6.为什么要进行文件管理? 7.vim的异常退出怎么办 ...

  9. linux关于界面的API,linux系统基础知识(ABI和API)

    对于linux而言,我们首先要明确一个核心观念,linux从严格意义上来讲,就是一个内核(Kernel)这个内核就是位于计算机硬件之上,对于用户来说,我们要和计算机打交道,必须要通过CPU来分配指令, ...

最新文章

  1. UVa 1583 - Digit Generator
  2. 启用新域名:ju690.com --聚了就灵的谐音
  3. Adapter适配器和base-adapter-helper库的使用
  4. java泛型视频教程_Java泛型快速教程
  5. 查看目标主机安装的杀毒软件
  6. PyTorch官方教程中文版:Pytorch之图像篇
  7. 从对集合数据去重到Distinct源码分析
  8. android 音频播放类
  9. linux weblogic部署项目路径,Weblogic部署web项目获取项目根目录为null
  10. 全国省市区(县)级地名xml(一)
  11. msdn下载的系统怎么安装
  12. 【论文笔记】视频物体检测(VID)系列 FGFA:Flow-Guided Feature Aggregation for Video Object Detection
  13. 怎样运用云服务器搭建传奇世界联网手游教程,linux系统部署游戏详细教程
  14. python打字_使用Python编写打字训练小程序
  15. ggplot绘制小提琴图
  16. bluetooth a2dpsink
  17. Lodash的一些基本使用
  18. RxJava操作符学习APP
  19. 理解红黑树及代码实现
  20. 人大金仓数据库安装与配置

热门文章

  1. 用secureCRT操作ubuntu终端
  2. ora-01033:oracle initializationgorshutdown 处理方法
  3. 正交试验优化荔枝乳酸菌饮料的配方
  4. CNN为何把地震和计划生育扯一起
  5. C#速成之一(Quick C#)
  6. 用DIV+Javascript实现标签功能
  7. 【Java VisualVM】使用 VisualVM 进行性能分析及调优
  8. UWP 负载包含两个或多个具有相同目标的路径 'xxx'
  9. centos 编译安装mysql
  10. 【云栖大会】人工智能:智,在云端