嵌入式人工智能系列————Linux基础

1.什么是Linux

内核:能够让计算机硬件进⾏⼯作,能够运⾏最核⼼的功能组合,计算机跑 起来,就叫做内核
linux 内核:由 linus linux 社区的⼈员⼀起开发出的内核linux内核基础上,在加上各个⼚商匹配内                      核开发出⽹络管理、桌⾯系统、快 捷功能等,形成完整的操作系统
Linux操作系统版本:
        ubuntu
        debian
        red hat
        centos stream
linux内核是免费开源的内核程序

2.Linux系统体系结构

        1).   linux内核
        2).   shell(壳 ) :通过 shell 提供内核的功能
        3).   ⽂件系统
        4).   应⽤程序
嵌入式人工智能系列————Linux基础_第1张图片

1)Linux内核

内核是 linux 系统中最底层,提供系统中核⼼功能并允许有序访问硬件资源管理:
输⼊输出设备、进程执⾏情况、⽂件系统操作、内存资源管理
linux 内核⽀持: 多任务、多⽤户

2)shell(壳)

        shell 叫做 命令解释器,壳 --- 保护内核
               当执⾏程序时,把程序的各种操作指令进⾏解释执⾏,通过命令解释器就让
        内核执⾏对应的操作。
作⽤:
提供⼀个⽅式可以让⽤户与内核(操作系统)进⾏交换

3)文件系统

⽂件系统就是⽤于组织和管理计算机存储设备上的⼤量⽂件
        在windows 系统使⽤ NTFS 格式⽂件系统
        在linux 中⽬前⼀般使⽤ ext4 格式⽂件系统
        ⽂件夹-----linux 中叫做⽬录
        ⽂件系统的逻辑结构( linux ⽬录结构):
                linux中⽂件系统是把⽂件组织为倒置的树,每⼀个⽂件夹当作树的分⽀,每
        个⽂件当作树的树叶        
        ⽂件系统只有⼀个起点( 相当于树的根位置 )
        /---------根⽂件夹(整个磁盘起点)
        linux⽂件系统就是⼀个树型的⽬录结构:
        将根(/) 作为整个⽂件系统的起点,其他的所有⽬录都是从根开始
        从根开始,就是⽂件系统(磁盘的存储)
        ⽬录结构:存储⽂件
/ : 根⽬录
/bin :存放系统中最常⽤的可执⾏程序(命令)
/boot :存放 linux 和系统启动⽂件
/dev :存放系统中的设备⽂件,包括磁盘、⿏标、键盘等设备
/etc :存放系统的配置⽂件,如 passwd 存放⽤户信息
/home :普通⽤户⽬录的默认位置
/lib :存放共享库
/lib32 :存放 32 位共享库
/lib64 :存放那个 64 位共享库
/media :存放 cd 、软盘、 usb 临时读⼊的⽂件
/mnt :挂载⽂件系统挂载点
/proc :作为进程(当前执⾏的程序)的⽂件存放⽬录
/opt :作为可选程序和⽂件存放⽬录
/root :系统管理员⽤户的⽬录(root⽤户)
/sbin :作为扩展的、更多的⼆进制程序存放的⽬录
/usr :标准库、第三⽅库存放⽬录
/sys :系统运⾏时的⽂件存放⽬录
/tmp :⽤于存放临时⽂件
linux⽂件系统把⼀切都看作是⽂件,linux 认为⼀切皆⽂件

4)应用程序 

shell命令

        shell完成内核与⽤户之间的交互
        shell命令:就是 shell 命令解释器能够识别的指令
        让系统内核帮助完成⼀些具体的功能
               shell就是命令解释器,将⽤户的命令 ( 程序 )解析成操作系统能够理解的指 令,实现⽤户            与内核的交互
        shell命令的输⼊,在终端提⽰符,标识命令的输⼊位置
        终端命令提⽰符: ubuntu@linuxmachine : ~
        ⽤户@主机名(电脑名字) ⼯作路径⽤户识别⽤户 当前打开终端的⽤户是谁主机
        :普通⽤户 ; # :管理员⽤户 root
         特殊的路径说明:
         〜:在当前的⽤户的家⽬录(⽤户⽬录)
         . (一个点):表⽰当前⽬录⽂件
         ..(俩个点) :表⽰当前⽬录的上⼀层⽬录⽂件

1.命令格式

command + [option] + [argument]
命令 选项 参数
命令: shell 要解析的指令内容,要执⾏的内容
选项:改变命令执⾏动作的类型(命令功能选择),选项⽤ - 选项 ⽰,可以有多个选项:
- 选项 1 选项 2.. - 选项 1 - 选项 2..
参数:命令要作⽤的⽬标是谁
        如果需要在⼀⾏终端命令提⽰符写多个命令⽤“  ; ” 隔开,如果⼀⾏写不完 ⽤ \ (续⾏)符号 表⽰命令未输⼊结束
有时命令不会携带选项或参数,不写就是默认选项、默认参数
man command:查看⼿册中命令的说明帮助

2.路径表示

在命令中如何表⽰⼀个⽂件(或⼀个⽬录⽂件)
在认识 linux ⽂件系统是⼀颗倒置的树,分层的⽂件组织结构,表⽰⼀个 ⽂件,只需要确定⽂件(⽬录⽂件)在哪个⽬录以及叫什么⽂件名。在 不同的存储位置,可以确定唯⼀的⼀个⽂件 路径:⽂件是在哪个⽬录下

(1)绝对路径

对于 linux ⽂件系统,只有⼀个根 ( ⽬录 ) 位置(/),表⽰⽂件系统的存储 的开始位置(所有的内容都存储在 / ⾥⾯),以根为起点来表⽰⼀个⽂ 件的路径,⽂件在⽂件系统中的准确位置 如:
/home/ubuntu/code/221101/ 名单 .png

(2)相对路径

默认从当前的⽤户的⼯作路径位置开始,找到对应⽂件或⽬录的位置 如:
code/221101/ 名单 .png

3.常用的shell命令

  • pwd
    ⽤于显⽰在⽂件系统中的当前⼯作路径 --- 绝对路径
    pwd 没有选项和参数
    如:〜
    pwd
    /home/ubuntu
    • ls
      显⽰出对应的⽬录中的信息(有哪些⽂件)
      ls---- 列出当前⼯作⽬录中有那些⽂件
      ls + 选项 + 参数 ( ⽬录路径 )
      嵌入式人工智能系列————Linux基础_第2张图片 
      -i :列出的指定⽬录中⽂件信息包含 inode 号, inode 就是⼀个⽂件的唯⼀标识
      -a :列出的⽬录的所有⽂件(包括隐藏⽂件)
      嵌入式人工智能系列————Linux基础_第3张图片

      -l:列出⽬录中的⽂件的详细信息(⽂件属性)

      嵌入式人工智能系列————Linux基础_第4张图片 

      linux⼀切皆⽂件:⽂本是⽂件、⽬录是⽂件、设备是⽂件.....  

      - rw-rw-r--    1  ubuntu  ubuntu    11 17 15:49 test.txt
      一个文件的文件属性有八个部分
      | ⽂件类型 | ⽂件权限 | ⽂件硬链接数 | ⽂件拥有者 | ⽂件拥有组 | ⽂件⼤⼩ | 最 后修改时间| ⽂件名 |
      文件系统文件属性详解请参考另一位优秀的博主 https://blog.csdn.net/diyiday/article/details/89842591
      嵌入式人工智能系列————Linux基础_第5张图片
      如果是⽬录:
      ⽂件硬链接数,表⽰⽬录中的 ( ⽬录 ) ⽂件个数
      ⽂件权限, r 读 表⽰能够查看⽬录下有什么内容(⽂件); w 写 表⽰能够
      在⽬录下执⾏创建、删除 ⽂件 ( ⽬录 ) x 执⾏ 表⽰能够访问⽬录
      • cd
        改变当前的⼯作⽬录
        cd 参数 ( 新的⼯作路径 ---- 必须要存在 )
      嵌入式人工智能系列————Linux基础_第6张图片
      • mkdir
        创建⼀个⽬录⽂件
        mkdir + 要创建⽬录的路径
      嵌入式人工智能系列————Linux基础_第7张图片
      -p :如果路径中的⽬录不存在,则依次创建,直到最终要创建的⽬录创
      建完成

       

      • rm
        删除⽂件或⽬录⽂件
        rm + 要删除的(⽬录)⽂件的路径
      嵌入式人工智能系列————Linux基础_第8张图片

      -r :删除⽬录以及⽬录中的所有⽂件

      嵌入式人工智能系列————Linux基础_第9张图片 

      • cat
        查看显⽰指定⽂件的内容
        cat + file ⽂件路径
        -E 在每⼀⾏结束时添加⼀个 $ 符号 嵌入式人工智能系列————Linux基础_第10张图片
      •  touch

        创建⼀个普通⽂件
        touch + ⽂件的路径 ( 中间路径必须存在 )
      嵌入式人工智能系列————Linux基础_第11张图片

      如果创建的⽂件存在,则会修改最后修改时间 

      • cp
        ( ⽬录 ) ⽂件拷⻉到另⼀个路径中
        cp 源⽂件路径 ⽬标路径
      嵌入式人工智能系列————Linux基础_第12张图片

      -r:拷⻉⽬录⽂件

      嵌入式人工智能系列————Linux基础_第13张图片 

      •  mv
      将源(⽬录)⽂件移动到⽬标⽬录中
      mv 源⽂件 ⽬标⽬录 嵌入式人工智能系列————Linux基础_第14张图片
      • ln:创建链接⽂件 
      硬链接⽂件
              在⽂件系统中,创建⼀份和源⽂件完全⼀致的⽂件,新创建的⽂件
              和源⽂件会⼀直保持⼀致(修改其中⼀个⽂件其他硬链接⽂件都会修改),删除⼀           个⽂件对其他⽂件不会有影响
              格式:      ln 源⽂件 ⽬标硬链接⽂件
      嵌入式人工智能系列————Linux基础_第15张图片

      符号链接⽂件
              符号链接也叫软链接,就是对⽂件创建⼀个快捷⽅式,操作使⽤符 号链接⽂件就是源⽂件,符号链接只是关联上源⽂件。删除了源⽂ 件后,符号链接不能单独使⽤。
      格式:ln -s 源⽂件 符号链接⽂件
      嵌入式人工智能系列————Linux基础_第16张图片

      • tar       归档与压缩

               tar  (选项)(参数)

      选项

      嵌入式人工智能系列————Linux基础_第17张图片

      参数 (文件或目录)

      归档⽂件:把多个⽂件打包成⼀个⽂件
      压缩⽂件:把已经打包的这⼀个⽂件进⾏压缩
      1. 创建归档⽂件
              把多个⽂件合并成⼀个⽂件
              tar -cvf 归档⽂件名 .tar ⽂件 1 ⽂件 2 ⽂件 3 ⽂件 4 ⽂件 5..
      2. 释放归档⽂件
              把归档⽂件中合并打包的⽂件释放出来
              tar -xvf 归档⽂件名 .tar
              压缩与解压:
                      把多个⽂件进⾏打包然后进⾏压缩,把压缩的⽂件解压然后把打包⽂件释放
      3. 使⽤ gzip 算法进⾏压缩与解压
              压缩:
              -z使⽤ gzip 算法
              tar -czvf 压缩⽂件名 .tar.gz ⽂件 1 ⽂件 2 ⽂件 3 ⽂件 4...
              解压:
              tar -xzvf 压缩⽂件名 .tar.gz
      4. 使⽤ bzip2 算法进⾏压缩与解压
              压缩:
              -j使⽤ bzip2 算法
              tar -cvjf 压缩⽂件名 .tar.bz2 ⽂件 1 ⽂件 2 ⽂件 3 ⽂件 4...
              解压:
              tar -xvjf 压缩⽂件名 .tar.bz2
      5. 使⽤ zip 算法进⾏压缩解压
              压缩:
              zip 压缩⽂件名 .zip ⽂件 1 ⽂件 2 ⽂件 3 ⽂件 4...
              解压:
              unzip 压缩⽂件名 .zip
      • chmod :修改⽂件权限
        执⾏修改权限,需要⽂件的⽤户才能执⾏修改,由于 root ⽤户是管理员
        ⽤户拥有最⾼权限也可以改⽂件权限
        chmod 权限 ⽂件
      权限:
      u+[r w x] 在⽤户权限中添加权限
      u-[r w x] 在⽤户权限中删除权限
      g+[r w x] 在⽤户组权限中添加权限
      g-[r w x] 在⽤户组权限中删除权限
      o+[r w x] 在其他⽤权限中添加权限
      o-[r w x] 在其他⽤权限中删除权限
      对于⽂件有三组权限:每⼀组权限可以⽤ 3 个⼆进制位表⽰,每⼀位表⽰
      ⼀种权限:
      在执⾏命令时,在命令前 加上 sudo 就表⽰执⾏这条命令时提升为root⽤户
      ⾝份执⾏
      • chown:改变⽂件拥有者 ,要改变拥有者,必须是root管理员⽤户⾝份chown ⽤户名 ⽂件
      • chgrp :改变⽂件拥有组,要改变拥有组,必须是root 管理员⽤户⾝份 chgrp ⽤户组 ⽂件
      • ⽤户管理
        修改⽤户密码
        passwd (⽤户名) -- 不写表⽰当前⽤户
        但是在当前⽤户下只能修改当前⽤户的密码
        如果要修改其他⽤户的密码,必须是管理员 root ⾝份
        sudo passwd ⽤户名
        切换⽤户
        su ⽤户名
        exit 退出当前⽤户
        添加⽤户
        只能管理员 root 添加
        sudo adduser 新⽤户名
        新创建的⽤户不能提升 root 权限,不能够使⽤ sudo
        如果⽤户需要使⽤ sudo 执⾏命令时临时提升为 root ⾝份,需要⽤户
        添加到 sudoers ⽂件中
        修改:
        /etc/sudoers
        在⽂件最后添加
        ⽤户名 ALL=(ALL:ALL) ALL
        删除⽤户
        sudo userdel -r ⽤户名
      • ⽤户组管理 查看⽤户对应的⽤户组 groups ⽤户名创建⽤户组
              sudo groupadd ⽤户组名
              查看配置⽂件/etc/group 列举出组的信息
              删除⽤户组
              sudo groupdel ⽤户组名
              将⽤户添加到⽤户组
              sudo gpasswd -a ⽤户名 ⽤户组
              将⽤户从⽤户组删除
              sudo gpasswd -d ⽤户名 ⽤户组

       

       

       


       

你可能感兴趣的:(Linux,linux,debian,运维,ubuntu)