admin 管理员组

文章数量: 887019

2.Linux操作系统最小MVP

介绍

看了前面想必你也知道了咱玩的Linux操作系统是一种自由和开放源码的操作系统,嵌入式系统。我以Ubuntu 24.04 LTS(长期支持版),因为这玩意非常适合新手,其图形化桌面环境(如GNOME或Unity)使得初学者的体验更加直观和友好。然后Ubuntu拥有丰富的学习资源和文档,入门也会更加容易些。

Linux基础系统知识

安装和设置

如果你要在自家电脑安装ubuntu你可以做一个usb启动盘,然后在bios里面设置启动项,来进入安装,咋这里不着重讲这个,我们是在虚拟机里面安装ubuntu。

Vmware虚拟机安装Ubuntu

在VMware虚拟机中安装Ubuntu操作系统的步骤如下:

1. 下载Ubuntu ISO镜像

首先,您需要从Ubuntu官方网站下载最新的Ubuntu ISO镜像文件。

  • Ubuntu下载页面
2. 安装和启动VMware

如果尚未安装VMware,请从VMware官方网站下载并安装VMware不过这东西收费,你可以去下载一个盗版的。

  • VMware Workstation下载页面
3. 创建新的虚拟机
  1. 打开VMware,选择“创建新的虚拟机”(Create a New Virtual Machine)。
  2. 选择“典型”(Typical)配置,然后点击“下一步”(Next)。
4. 选择安装源
  1. 在“安装来源”(Installer Disc Image File (iso))页面,选择“使用ISO镜像文件安装操作系统”(Installer disc image file (iso)),然后浏览并选择之前下载的Ubuntu ISO文件。
  2. 点击“下一步”(Next)。
5. 配置虚拟机
  1. 操作系统版本:选择操作系统类型为“Linux”,版本为“Ubuntu 64-bit”。
  2. 虚拟机名称:为虚拟机命名,例如“Ubuntu 20.04”。
  3. 存储位置:选择虚拟机文件的存储位置。
6. 配置磁盘
  1. 磁盘容量:设置虚拟磁盘的最大大小,例如20 GB。选择“将虚拟磁盘存储为单个文件”(Store virtual disk as a single file)。
  2. 点击“下一步”(Next)。
7. 自定义硬件
  1. 内存:根据您的物理内存大小,分配适当的内存给虚拟机(建议至少2 GB)。
  2. 处理器:配置处理器数量(默认设置通常足够)。
  3. 网络适配器:选择使用NAT或桥接网络连接。
  4. 其他设置:根据需要调整其他硬件设置。
  5. 完成后,点击“关闭”(Close)然后“完成”(Finish)。
8. 启动虚拟机
  1. 选择创建的虚拟机,然后点击“启动虚拟机”(Power on this virtual machine)。
  2. 虚拟机将启动并从Ubuntu ISO镜像启动,进入Ubuntu安装程序。
9. 安装Ubuntu
  1. 选择安装语言,点击“继续”(Continue)。
  2. 在“准备安装Ubuntu”页面,选择安装类型(可以选择默认设置),点击“继续”(Continue)。
  3. 选择安装位置和磁盘分区(通常选择默认设置),点击“现在安装”(Install Now)。
  4. 按照提示完成其他安装步骤,包括设置时区、键盘布局、创建用户和设置密码。
10. 完成安装
  1. 安装完成后,点击“重新启动”(Restart Now)以完成安装。
  2. 虚拟机将重新启动并进入Ubuntu操作系统。
11. 安装VMware Tools
  1. 启动Ubuntu系统后,选择VMware菜单中的“VM” -> “安装VMware Tools”。
  2. 在Ubuntu中打开终端,挂载VMware Tools虚拟光驱,并运行安装脚本:
    sudo apt-get update
    sudo apt-get install open-vm-tools open-vm-tools-desktop
    
Ubuntu系统设置

在Ubuntu系统安装完毕之后,进行一些基础的系统设置可以优化系统的性能和用户体验。这是我的设置步骤:

1. 更新系统

确保您的系统和软件包是最新的。

  1. 打开终端(快捷键:Ctrl + Alt + T)。
  2. 运行以下命令更新包列表并升级系统:
    sudo apt update
    sudo apt upgrade -y
    sudo apt dist-upgrade -y
    sudo apt autoremove -y
    
2. 安装常用软件

根据您的需求安装常用的软件包:

  1. 安装图形化包管理器 Synaptic
    sudo apt install synaptic -y
    
  2. 安装 GIMP(图像编辑器):
    sudo apt install gimp -y
    
  3. 安装 VLC(多媒体播放器):
    sudo apt install vlc -y
    
  4. 安装 Chrome 浏览器:
    • 下载 Chrome.deb 安装包:Google Chrome下载页面
    • 使用以下命令安装下载的 .deb 文件:
      sudo dpkg -i ~/Downloads/google-chrome-stable_current_amd64.deb
      sudo apt-get install -f
      
3. 设置防火墙

启用和配置防火墙以提高安全性:

  1. 安装 ufw(Uncomplicated Firewall):
    sudo apt install ufw -y
    
  2. 启用防火墙:
    sudo ufw enable
    
  3. 检查防火墙状态:
    sudo ufw status
    
4. 配置系统语言和区域设置
  1. 打开“设置” -> “地区和语言”。
  2. 根据需要调整系统语言、格式和输入法。
5. 安装和设置驱动程序
  1. 打开“软件和更新” -> “附加驱动”。
  2. 系统会自动检测并列出可用的驱动程序,选择适合的驱动程序进行安装。
6. 配置时间和日期
  1. 打开“设置” -> “时间和日期”。
  2. 确保启用了“自动从互联网设置时间”和“自动从互联网设置时区”。
7. 创建快照备份

安装和配置 Timeshift 进行系统快照备份:

  1. 安装 Timeshift
    sudo apt install timeshift -y
    
  2. 启动 Timeshift 并配置快照备份位置和计划。
8. 设置开机启动项
  1. 安装 gnome-tweaks 工具:
    sudo apt install gnome-tweaks -y
    
  2. 打开“Gnome Tweaks” -> “启动应用程序”以管理开机启动项。
9. 配置自动更新
  1. 打开“软件和更新” -> “更新”。
  2. 配置自动更新选项,根据需要选择更新频率和行为。
10. 自定义桌面环境
  1. 安装 gnome-tweaks 工具(如上所述)。
  2. 打开“Gnome Tweaks”进行主题、图标、字体等个性化设置。
操作系统概要

一般来说我们要玩起来整个操作系统咋就需要了解一下操作系统的基本功能
操作系统的基本功能主要包括进程管理、内存管理、设备管理、文件管理和人机交互接口。

  • 1.处理器的进程管理

    操作系统能够根据内核的处理能力和核心数来管理处理器创建和撤销进程。当有多个进程时,操作系统能够协调多个进程并发执行。同时操作系统还为进程间提供了相互通信的机制,实现相互合作进程之间的信息交换。

  • 2.内存管理功能

    内存管理的主要作用就是为多个进程的运行提供合适的内存空间,提高内存的使用率,方便用户使用。内存管理主要指的是内存分配,操作系统在进行内存分配时,有两种分配策略,一种是静态分配方式,这种分配方式是在程序载入时提前确定好的,在程序运行过程中不允许内存变动;另一种是动态内存分配,和静态分配不同的是,程序运行中可以动态地修改内存大小。除此之外,内存管理功能还体现在内存保护、地址映射以及内存扩展等方面。

  • 3.设备管理功能

    设备管理主要是指I/O设备和CPU之间的协调工作,它的主要任务就是完成用户提出的I/O操作请求,为用户进程分配所需的I/O设备,并完成制定的I/O操作。设备管理的其他功能有缓存管理、设备分配以及设备处理。

  • 4.文件管理功能

    文件管理功能主要是对用户文件和系统文件进行管理,方便用户使用和保存文件。文件管理功能为每个文件分配必要的内存空间,提高外部存储的利用率,进而提高文件系统的存取速度。文件管理的一个功能就是目录管理,目录管理是给每个文件建立一个目录项,目录包括文件名、文件属性、文件在磁盘的物理位置等,并对众多的目录项加以有效的组织,方便按名存取,还能实现文件共享和快速的目录查询。

  • 5.人机交互接口

    操作系统获得用户认可的重要因素之一就是有好的人机交互界面,操作系统首要条件就是提供用户接口,为了方便用户直接或者间接控制自己的作业,操作系统要向用户提供命令接口。此外操作系统还应提供程序接口,即用户程序在执行访问系统资源时调用的接口。

文件系统

Linux常见的目录:

  • /home:用户主目录
  • /etc:系统配置文件
  • /var:可变数据文件(如日志)
  • /usr:用户安装的软件和库
  • /bin/sbin:系统基本命令和二进制文件
  • /lib:系统库文件
  • /tmp:临时文件

Linux基础命令

Linux操作系统提供了丰富的命令行工具,用于管理文件、目录、进程和系统信息。以下是一些常用的Linux基础命令:

  1. 文件和目录操作

    • ls:列出目录内容
      ls
      ls -l
      
    • cd:切换目录
      cd /path/to/directory
      
    • pwd:显示当前工作目录
      pwd
      
    • mkdir:创建新目录
      mkdir new_directory
      
    • rmdir:删除空目录
      rmdir empty_directory
      
    • rm:删除文件或目录
      rm file_name
      rm -r directory_name
      
    • cp:复制文件或目录
      cp source_file destination
      cp -r source_directory destination
      
    • mv:移动或重命名文件或目录
      mv old_name new_name
      mv file_name /new/path/
      
  2. 文件内容操作

    • cat:显示文件内容
      cat file_name
      
    • less:分页显示文件内容
      less file_name
      
    • head:显示文件的前几行
      head -n 10 file_name
      
    • tail:显示文件的后几行
      tail -n 10 file_name
      
  3. 系统信息

    • uname:显示系统信息
      uname -a
      
    • top:实时显示系统进程信息
      top
      
    • df:显示磁盘使用情况
      df -h
      
    • free:显示内存使用情况
      free -h
      
  4. 用户和权限管理

    • sudo:以超级用户权限执行命令
      sudo command
      
    • chmod:修改文件权限
      chmod 755 file_name
      
    • chown:更改文件所有者
      chown user:group file_name
      

文件权限

Linux文件权限决定了谁可以读、写和执行文件。每个文件和目录都有权限属性,分为所有者、所属组和其他用户。

  • 查看文件权限

    ls -l
    

    输出示例:

    -rwxr-xr-- 1 user group 1024 Jan 1 12:34 file_name
    
    • 第一个字符表示类型(-表示文件,d表示目录)
    • 接下来的九个字符分为三组,每组三个字符,表示所有者、所属组和其他用户的权限
      • r表示读权限,w表示写权限,x表示执行权限
      • 例如:rwxr-xr--表示所有者有读、写、执行权限,所属组有读和执行权限,其他用户只有读权限
  • 修改文件权限

    chmod 755 file_name
    
    • 数字表示法:每种权限分别用一个八进制数字表示
      • r=4,w=2,x=1
      • 例如 表示基本权限的sh chmod a+rwx file_name
    • 所有者权限、所属组权限和其他用户权限分别用三个数字表示
      • 例如:755表示所有者有读、写、执行权限,所属组和其他用户有读和执行权限

链接文件

Linux中有两种类型的链接文件:硬链接和软链接(符号链接)。

  • 硬链接:指向同一文件的多个文件名。删除硬链接不会删除实际文件,除非删除所有指向该文件的硬链接。

    ln original_file hard_link
    
  • 软链接:类似于Windows中的快捷方式,指向另一个文件的路径。删除软链接不会影响原文件。

    ln -s original_file soft_link
    

vi和vim编辑器

vivim是Linux系统中常用的文本编辑器。

  • 启动vi/vim

    vi file_name
    vim file_name
    
  • 基本命令

    • 插入模式:按i键进入插入模式,可以开始编辑文本
    • 命令模式:按Esc键退出插入模式,进入命令模式
    • 保存并退出:在命令模式下输入:wq
    • 仅保存:在命令模式下输入:w
    • 退出不保存:在命令模式下输入:q!

跨平台的文件传输协议

Linux系统支持多种文件传输协议,以下是几种常见的跨平台文件传输协议:

FTP
  • FTP(File Transfer Protocol):用于在客户端和服务器之间传输文件。常用工具有ftp命令和FileZilla等图形化工具。

    ftp remote_host
    
    在Ubuntu系统上安装FTP客户端
    1. 安装命令行FTP客户端
    sudo apt update
    sudo apt install ftp
    
    1. 安装图形化FTP客户端(如FileZilla)
    sudo apt update
    sudo apt install filezilla
    
    FTP的基本操作
    1. 连接到FTP服务器
    ftp remote_host
    
    1. 登录

    在连接到FTP服务器后,系统会提示输入用户名和密码:

    Name (remote_host:your_username): your_username
    Password: your_password
    
    1. 基本命令

      • 列出文件和目录
    ls
    
    • 改变工作目录
    cd directory_name
    
    • 下载文件
    get file_name
    
    • 上传文件
    put local_file_name
    
    • 删除文件
    delete file_name
    
    • 退出FTP会话
    bye
    
    使用C编程操作FTP

    在C语言中操作FTP,可以使用libcurl库,它是一个强大的网络传输库,支持多种协议,包括FTP。

    安装libcurl
    1. 安装libcurl开发包
    sudo apt update
    sudo apt install libcurl4-openssl-dev
    
    使用libcurl编写FTP操作程序

    以下是一个简单的使用libcurl从FTP服务器下载文件的示例代码:

    #include <stdio.h>
    #include <curl/curl.h>
    
    int main(void) {
        CURL *curl;
        CURLcode res;
    
        curl_global_init(CURL_GLOBAL_DEFAULT);
        curl = curl_easy_init();
        if(curl) {
            // 设置FTP URL
            curl_easy_setopt(curl, CURLOPT_URL, "ftp://example/path/to/file.txt");
            
            // 如果需要用户名和密码进行身份验证
            curl_easy_setopt(curl, CURLOPT_USERPWD, "username:password");
            
            // 将下载的文件保存到本地
            FILE *fp = fopen("downloaded_file.txt", "wb");
            if (fp) {
                curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
    
                // 执行FTP请求
                res = curl_easy_perform(curl);
    
                // 检查错误
                if (res != CURLE_OK)
                    fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
    
                fclose(fp);
            }
            // 清理
            curl_easy_cleanup(curl);
        }
        curl_global_cleanup();
        return 0;
    }
    

    ####### 编译和运行

    1. 编译程序
    gcc -o ftp_download ftp_download.c -lcurl
    
    1. 运行程序
    ./ftp_download
    

    ####### 解释代码

    1. 初始化curl
    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    
    1. 设置FTP URL和用户身份验证
    curl_easy_setopt(curl, CURLOPT_URL, "ftp://example/path/to/file.txt");
    curl_easy_setopt(curl, CURLOPT_USERPWD, "username:password");
    
    1. 将下载的文件保存到本地
    FILE *fp = fopen("downloaded_file.txt", "wb");
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
    
    1. 执行FTP请求
    res = curl_easy_perform(curl);
    
    1. 检查错误并清理
    if (res != CURLE_OK)
        fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
    curl_easy_cleanup(curl);
    curl_global_cleanup();
    

    在此我就仅详细介绍了FTP的基本操作,对于其它的文件传输操作,如SFTP、rsync和SCP以下是简单介绍。

  • SFTP(SSH File Transfer Protocol):通过SSH协议进行安全文件传输。常用工具有sftp命令和WinSCP等图形化工具。

    sftp user@remote_host
    
  • rsync:用于在本地或远程系统之间同步文件和目录。常用命令如下:

    rsync -avz source_directory user@remote_host:/path/to/remote_directory
    
  • SCP(Secure Copy):通过SSH协议进行文件复制。

    scp local_file user@remote_host:/path/to/remote_directory
    

Hello World! 编程方式

在Linux系统中,可以使用多种编程语言编写并运行“Hello World!”程序。以下是几种常见的编程方式:

基本 C语言 通过cc或gcc编译:
#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

编译并运行:

gcc hello.c -o hello
./hello

本文标签: 最小 操作系统 快速 Linux mvp