Linux 操作系统

1.Linux操作系统认知

1.1 操作系统(Operation System 简称OS)

  • 定义

    • 操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。
      在这里插入图片描述
  • 操作系统功能

    1. 管理好硬件设备,为用户提供调用方法
    2. 是计算机中重要的系统环境
    3. 管理各种其它的软件和程序的运行
    4. 对系统中文件进行管理
  • 分类

    1. 桌面系统:Windows,Mac OS,图形界面良好,用户群体大
    2. 服务器系统:Linux,Unix为主,安全,稳定,费用低,占有量大。windows占有率低
    3. 嵌入式系统:Linux为主,主要用于小型智能设备,如智能手机,机器人等。

1.2 Linux系统介绍

  • Linux诞生
    • 1991年林纳斯(Linus)就读于赫尔辛基大学期间,对Unix产生浓厚兴趣,林纳斯经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,为了方便读写和下载,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了Linux第一个内核的雏形,当时,他年仅21岁!林纳斯利用C做工具,编写了Linux内核,后来经过全世界的网友的帮助,最终成为优秀的操作系统。
  • Linux系统特点
    • Linux是一款开源免费的操作系统
    • 支持多种硬件平台
    • 支持多用户
    • 具有非常强大的网络功能
  • Linux应用领域
    • Linux服务器:目前是服务器系统中最广泛的一种
    • 桌面应用:新版本的Linux系统特别在桌面应用方面进行了改进,达到相当的水平
    • 嵌入式系统:由于Linux系统开放源代码,可以方便修改,在嵌入式设备领域有很广阔的市场。
  • Linux系统构成
    • 内核:Linux操作系统的核心代码,是Linux系统的心脏,提供了系统的核心功能,用来与硬件交互。
    • 文件系统:通常指管理磁盘数据的系统,可将数据以目录或文件的形式存储。每个文件系统都有自己的特殊格式与功能
    • 命令解释器:它使得用户能够与操作系统进行交互,负责接收用户命令,然后调用操作系统功能。
    • 应用软件:包含桌面系统和基础的软件操作工具等。
  • Linux发行版本
    • 严格的来讲,Linux只是一个系统内核,即计算机软件与硬件通讯之间的平台。

1.3 文件系统

  • 定义

    • 文件系统是计算机操作系统的重要组成部分,用于组织和管理计算机存储设备上的大量文件。
  • 文件系统结构

    • Linux的文件组织中没有盘符。将根(/)作为整个文件系统的唯一起点,其他所有目录都从该点出发。犹如一颗倒置的树,所有存储设备作为这棵树的一个子目录。

      在这里插入图片描述

  • 系统目录功能

    1. /bin 目录
    	/bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序(bin是binary---二进制的简称),多是系统中重要的系统文件。
    2. /sbin
    	/sbin目录类似/bin,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。
    3. /etc
    	/etc目录存放着各种系统配置文件,其中包括了用户信息文件/etc/passwd,系统初始文件/etc/rc等。Linux正是因为这些文件才得以正常地运行。
    4. /root目录
    	/root 目录是超级用户的目录
    5. /lib
    	/lib目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。
    6. /dev
    	/dev目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访问/dev/mouse来访问鼠标的输入,就像访问其他文件一样
    7. /usr
    	/usr是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。本地安装的程序和其他东西在/usr/local下,因为这样可以在升级新版系统或新发行版时无须重新安装全部程序
    8. /var
    	/var 包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化或扩充的。
    9. /home
    	/home普通用户的默认目录,在该目录下,每个用户拥有一个以用户名命名的文件夹。
    
    
  • 绝对路劲和相对路径

    • 绝对路径:
    • 相对路径:

2. Linux常用命令

  • 命令格式

    command [-options] [parameter]
    
    说明:
    command:命令名称,一般为英文单词或单词的缩写
    [-options]:命令选项,辅助命令进行功能细化,也可以省略
    parameter:传给命令的参数,可以是0个或多个
    

2.1 终端与命令行

2.2 Linux常用命令

2.2.1 帮助命令
man command

说明:查阅command命令的使用手册,按Q退出
2.2.2 基础操作命令
序号 命令 作用
1 ls 查看当前文件夹下的内容
2 pwd 查看当前所在位置绝对路径
3 cd [目录名] 切换文件夹
4 touch [文件名] 如果文件不存在,新建文件
5 mkdir [目录名] 创建目录
6 rm [文件名] 删除指定的文件名
7 cp 复制一个文件
8 mv 移动一个文件
9 cat [文件名] 查看文件内容、创建文件、文件合并、追加文件内容等功能
10 head [文件名] 显示文件头部
11 tail [文件名] 显示文件尾部
12 grep [搜索文本] [文件名] 搜索文本文件内容
13 find [目录] -name [文件名] 在一个目录及其子目录下查找文件
14 wc [文件名] 查看文件行数,单词数等信息
  • 通配符
    • 作用:对一类文件名称的书写进行简化,例如file1.txt, file2.txt, file3.txt, …, 用户不必输入文件名,可以使用通配符完成。
通配符 含义 示例
* 匹配任意长度的字符串 file_*.txt
? 匹配一个长度的字符 file_?.txt
[] 匹配其中指定的一
  • 管道

    • 管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。
    ls | grep 'hello'
    ls | wc -w
    
2.2.3压缩解压
序号 命令 作用
1 zip, unzip 将文件压缩为zip格式/将zip格式文件解压
2 tar 对gz或者bz2格式进行压缩解压
  • 部分命令细节说明

    • zip:用于常与Windows交互的情况,-r选项可以压缩目录

    • unzip -d 可以选择解压位置

      • zip test.zip filelist
        
      • unzip -d 可以选择解压位置
        
  • tar:-cjf 用于压缩bz2格式文件,-czf用于压缩gz格式文件,-xvf用于解压文件,兼容了gzip和bzip2命令的功能

2.2.4 权限管理
序号 命令 作用
1 sudo 放在一个命令前,表示使用管理员权限执行
2 chmod 修改文件权限
  • 部分命令细节说明
    • sudo:在打开终端第一次使用sudo时需要输入密码
    • chmod:在设置权限时,可以字母也可以使用三个数字分别对应拥有者 / 组 和 其他用户的权限
2.2.5 显示展示命令
序号 命令 作用
1 echo 向终端打印内容
2 date 显示当前时间
3 df 显示磁盘剩余空间
4 whoami 显示当前用户
5 history 显示历史命令记录
  • 部分命令细节说明

    • echo:-n 表示打印完成不换行
    • df:-h 选项以Mb为单位显示,-T显示文件系统类型ext4的为磁盘
  • 输出重定向

    重定向符 含义 示例
    > file 将file文件重定向为输出源,新建模式 echo ‘hello world’ > out.txt
    >> file 将file文件重定向为输出源,追加模式 ls /usr >> output.txt
2.2.6 其他命令
序号 命令 作用
1 shutdown 关机或者重启
2 ln 创建链接
3 tree 获取目录树形结构
  • 部分命令细节说明
    • shutdown:
      • shutdown -r now 立即重启
      • shutdown now 立即关机
      • shutdown +10 10分钟后关机
      • shutdown -c 取消关机计划

3. Linux服务器环境

3.1 vi编译器

3.1.1 什么是vi

vi是Linux操作系统中一个自带的编辑器。没有图形界面,只能编译文本内容,没有字体段落设置,通过命令强大的命令完成一系列的编写工作。

3.2 添加新的用户

3.2.1 基本概念
  • 用户:Linux操作系统可以有不同的用户,这是系统管理的重要一环,不同的用户有自己独立的空间内容。
  • 用户组:为了方便对用户管理,Linux操作系统使用用户组的概念。将不同的用户添加到对应的组中,可以方便用户设置权限的设置。
  • root用户:Linux系统中的root用户通常用于系统的维护和管理,对操作系统的所有资源具有访问权限,一般工作中不会使用root用户进行系统操作,防止一些误操作带来系统损坏。
3.2.2 用户管理命令
序号 命令 作用
1 groupadd 组名 添加组
2 groupdel 组名 删除组
3 useradd -m 用户 -g 组 添加用户
4 passwd 用户名 设置用户密码
5 userdel -r 用户 删除用户
  • useradd:-m 表示添加用户时添加主目录,-g表示选择用户所在组,如果不会写默认会创建一个与用户名同名的组。

  • passwd:设置密码,设置之后才能切换新用户登录

  • 设置密码后为新用户添加sudo权限,打开sudoers文件增加如下内容,然后:w!强制保存:q退出

    sudo vi /etc/sudoers
    
    # User privilege specification
    root ALL=(ALL:ALL) ALL
    abby ALL=(ALL:ALL) ALL    ->abby是自己的用户名
    
  • 设置命令解释器

    • 注意:
      • 新创建的用户和密码信息存储在 /etc/passwd文件中
      • 如果切换用户终da端命令行只有一个$提示,则vi

开这个文件,将该用户对应的内容修改

levi:x:1001:1001::/home/levi:bin/sh 改为 /bin/bash

3.3 软件安装

Linux下安装的软件包是deb格式软件包。由于当时Linux系统中软件包存在复杂的依赖关系。因此,通常使用网络安装。

作用 命令
更新软件源 apt update
安装软件 apt install
卸载软件 apt remove --purge
删除缓存的软件安装包 apt clean
安装本地软件包 dpkg -i

3.4 ssh服务

ssh是一种安全协议,主要用于给远程登陆会话数据进行加密,保证数据传输的安全。在数据传输方面有很多应用。之前说到,实际工作中经常需要远程访问服务器,ssh就是通用的远程访问服务器的方法。

  • 安装启动

    • 安装ssh服务:sudo apt install openssh-server

    • 查看ssh服务状态:ps -e|grep ssh

      在这里插入图片描述

    • 启动和关闭

      • sudo service ssh start/restar/stop
    • 常用命令

      序号 命令 作用
      1 ssh 用户名@ip 登录远程主机
      2 scp 用户名@ip:文件名绝对路径 目标位置 远程复制文件
      • scp拷贝

        # 注意:':'后面的路径写绝对路径
        scp demo.py levi@192.168.100.5:/home/tarena
        
        # 把远程主目录下demo.py文件复制到本地当前目录下
        scp levi@192.168.100.5:/home/tarena/demo.py .
        # 加上 -r 选项可以传送文件夹
        scp -r demo levi@.........
        
  • ssh密钥

    • 什么时候用:如果使用的客户端个人计算机是自己独有的计算机,经常通过ssh访问服务器,此时不想频繁输入密码,则可以使用密钥处理。

      在这里插入图片描述

3.5 终端启动python服务

在服务器中并没有pycharm这些集成编译工具,所以当我们最后将程序部署在服务器上执行时,往往需要通过终端运行python程序。

  1. 编写python程序在第一行增加解释器声明

    #!/usr/bin/python3    在第一行
    
    


```

  • ssh密钥

    • 什么时候用:如果使用的客户端个人计算机是自己独有的计算机,经常通过ssh访问服务器,此时不想频繁输入密码,则可以使用密钥处理。

      [外链图片转存中…(img-kQJepinR-1784293769598)]

3.5 终端启动python服务

在服务器中并没有pycharm这些集成编译工具,所以当我们最后将程序部署在服务器上执行时,往往需要通过终端运行python程序。

  1. 编写python程序在第一行增加解释器声明

    #!/usr/bin/python3    在第一行
    
    
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐