• 01 `Linux`基础


    操作系统

    我们说过,一台计算机是有硬件和软件两大部分组成,软件部分里又被分为系统软件和应用软件,而在系统软件里,又有一个操作系统

    没有安装操作系统的计算机,通常被称为 裸机

    • 如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序
    • 如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言环境,用高级语言开发程序

    什么是操作系统

    操作系统:是一种方便用户管理和控制计算机软硬件资源的系统软件,同时也是一个大型的软件系统,其功能复杂,体系庞大,在整个计算机系统中具有承上启下的地位。我们操作计算机实际上是通过操作系统来进行的,它是所有软件的基础和核心

    • 是现代计算机系统中 最基本和最重要 的系统软件
    • 配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展
    • 主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用
    • 而其他的诸如编译程序、数据库管理系统,以及大量的应用软件,都直接依赖于操作系统的支持

    打个比方,操作系统就好像是一个政府,其它软件都会被它管控;操作系统在给其他软件提供各种便利的同时,还会约束其他软件不能为所欲为

    目前流行的服务器和 PC 端操作系统有 LinuxWindowsUNIX 等,手机操作系统有 AndroidiOSWindows Phone(简称 WP),嵌入式操作系统Windows CEPalmOSeCosuClinux

    Linux是什么,有哪些特点

    与大家熟知的 Windows 操作系统软件一样,Linux 也是一个操作系统软件,其 logo 是一只企鹅(如图 1 所示)。与 Windows 不同之处在于,Linux 是一套开放源代码程序的、可以自由传播的类 Unix 操作系统软件

    Unix 系统是 Linux 系统的前身,具备很多优秀特性

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

    严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统

    主要特征

    基本思想 Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

    完全免费

    Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

    完全兼容POSIX1.0标准 这使得可以在Linux下通过相应的模拟器运行常见的DOS、Window的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

    多用户、多任务 Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立运行。

    良好的界面 Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

    支持多种平台 Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高

    常见Linux发行版本

    从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了 Linux 的发行版本。

    在 Linux 内核的发展过程中,各种 Linux 发行版本起了巨大的作用,正是它们推动了 Linux 的应用,从而让更多的人开始关注 Linux。因此,把 Red Hat、Ubuntu、SUSE 等直接说成 Linux 其实是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。

    Linux 的各个发行版本使用的是同一个 Linux 内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。

    Linux 的发行版本可以大体分为两类:

    • 商业公司维护的发行版本,以著名的 Red Hat 为代表;
    • 社区组织维护的发行版本,以 Debian 为代表。

    我国国内互联网公司常用的是 Linux 发行版本 CentOS

    Ubuntu 基于知名的 Debian Linux 发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的 Linux 发行版本,而且 Ubuntu 的所有发行版本都免费提供

    LinuxWindows的重要区别

    • Linux没有盘符,windows拥有盘符
    • Linux严格区分大小写,而windows不区分大小写
    • windows大部分的工作是通过图形操作界面就能够完成,linux大部分的工作是通过命令行来完成,linux的图形操作界面能够完成的工作是很基本的,所以学习linux必须要学习linux的命令

    Linux操作系统当中与windows最大的区别在于Linux没有盘符(没有C盘,D盘…的说法),因为Linux把一切都看成目录和文件,包括鼠标,磁盘linux都把它们当成了目录和文件来对待并且存入到对应目录当中,因此学习linux最好的方法是首先要建立一个目录结构认识,但这些认识并非叫你死记硬背

    以下这些目录就是我们可能会用到的目录,但是我们用到时候我们再去记住会比较容易理解

    Linux 根目录(/

    Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:

    1. 所有目录都是由根目录衍生出来的;
    2. 根目录与系统的开机、修复、还原密切相关;

    因此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件

    一级目录功能(作用)
    /bin/存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
    /boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
    /dev/设备文件保存位置
    /etc/配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
    /home/普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming
    /lib/系统调用的函数库保存位置
    /media/挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
    /mnt/挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
    /misc/挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的
    /opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件
    /root/root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
    /sbin/保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
    /srv/服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
    /tmp/临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空

    Linux /usr目录

    usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。

    Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体

    子目录功能(作用)
    /usr/bin/存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
    /usr/sbin/存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。
    /usr/lib/应用程序调用的函数库保存位置
    /usr/XllR6/图形界面系统保存位置
    /usr/local/手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置
    /usr/share/应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
    /usr/src/源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中
    /usr/includeC/C++ 等编程语言头文件的放置目录

    Linux /var 目录

    /var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等

    /var子目录功能(作用)
    /var/lib/程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
    /var/log/登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。
    /var/run/一些服务和程序运行后,它们的 PID(进程 ID)保存位置
    /var/spool/里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。
    /var/www/RPM 包安装的 Apache 的网页主目录
    /var/nis和/var/ypNIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录
    /var/tmp一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除

    这么多的目录,我们常用到的也就几个而已

    • /: 表示Linux的根目录,作用是存放一切Linux相关目录和文件,包括核心和非核心的

    • /boot: 表示Linux启动目录和文件存在,该目录简单的可以理解为WindowsC

      如果/boot被删除或者毁坏那么Linux将无法正常启动

    • /etc(重要)

      • 配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
    • /home(重要):

      • 在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录
    • /root(重要)

      • root 的主目录。普通用户主目录在 /home下,root 主目录直接在/
    • /usr 其实用有一些人认为这个目录是user的意思,其实这是错误的认为,这个目录的全名是Unix software resource的意思,表示Linux的软件资源目录,这个目录对于程序员来说也非常的重要,我们开发程序一般就会使用该目录

    • /usr/local/src:这个目录对于开发者尤为重要,它是用于存放第3方软件的

    • /dev: 表述计算机设备(硬盘,磁盘,鼠标)在Linux当中的表示目录(当中包括了设备相关驱动程序文件和设备信息文件)

    创作不易,感谢支持

    在这里插入图片描述

  • 相关阅读:
    HTML静态网页作业——关于我的家乡介绍安庆景点
    TreeMap类的继承关系简介说明
    java EE初阶 — synchronized 关键字 - 监视器锁 monitor lock
    【正点原子STM32连载】第十六章 外部中断实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
    .Net下的Http请求调用(Post与Get)
    CAD必练图形
    四种进制转换(附java实现代码)
    数组专题总结
    计算机网络期末复习-计算机网络体系结构第一章(王道25)
    (pytorch进阶之路)cGAN、LSGAN
  • 原文地址:https://blog.csdn.net/weixin_43079274/article/details/127416183