Linux基础巩固--Day1--背景介绍

操作系统

  OS:

    Operating System,通用目的的软件程序

      硬件驱动

      进程管理

      内存管理

      网络管理

      安全管理

      文件管理

    OS分类:

      服务器OS:RHEL,CentOS,Windows Server,AIX

      桌面OS:Windows 10,Mac OS,Fedora

      移动设备OS: Andriod, IOS, YunOS

  开发接口标准

    ABI: Application Binary Interface

      ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行

    API:Application Programming Interface

      API定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系统中编译

    POSIX:Portable Operating System Interface

      IEEE在操作系统上定义的一系列API标准

      POSIX兼容的程序可在其它POSIX操作系统编译执行

    运行程序格式

      Windows:EXE,.dll,.lib

      Linux:ELF,.so(shared object), .a

    上下文切换:

      上下文:

         每个任务运行前,CPU都需要知道任务从哪里加载,又从哪里开始运行,这就涉及到CPU寄存器和程序计数器(PC)。

         CPU寄存器是CPU内置的容量小,但速度极快的内存

         程序计数器会存储CPU正在执行的指令位置,或者即将执行的指令位置

         这两个是CPU运行任何任务前都必须依赖的环境,因此叫做CPU上下文

      上下文切换步骤:

         1.将前一个CPU的上下文(也就是CPU寄存器和程序计数器里边的内容)保存起来;

         2.然后加载新任务的上下文到寄存器和程序计数器;

         3.最后跳转到程序计数器所指的新位置,运行新任务

      被保存起来的上下文会存储到系统内核中,等待任务重新调度执行时再次加载进来

      CPU的上下文切换分三种:进程上下文切换,线程上下文切换,终端上下文切换

 

Linux相关介绍

  (1)linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发(基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU)
      的操作系统。
     linux是一个Unix类操作系统,完全开发源码,多用户多任务,服务器(数据库服务器、Web服务器、应用服务器、日志服务器、图片服务器等
      等)、嵌入式领域(如路由器等需要Linux才能启动)、移动终端(比如安卓手机等、平板)

  (2)常见发行版:RedHat、CentOS、Ubuntu、SUSE、FreeBSD等

  (3)linux的应用领域:通常服务器使用
      LAMP(Linux + Apache + MySQL + PHP)
      LNMP(Linux + Nginx+ MySQL + PHP)

  (4)linux的特点:
      -免费的/开源
      -支持多线程/多用户/多任务/多CPU(多并发)
      -安全性好(开源的 一旦有个漏洞 就有网络界雷锋给修补了)
      -对内存和文件管理优越
      -Linux最小只有4m->嵌入式开发(手机用户多 多么庞大的市场)

  

Linux哲学思想

  一切都是一个文件

  小型,单一用途的程序

  链接程序,共同完成复杂的任务

  避免令人困惑的用户界面

  配置数据存储在文本中

获取Linux

  https://wiki.centos.org/Download

  http://mirrors.aliyun.com

  http://mirrors.163.com

  http://mirrors.sohu.com

虚拟机

  Vmware: 用软件模拟硬件

  

Bash

  sh(全称 Bourne Shell): 是UNIX最初使用的 shell,而且在每种 UNIX 上都可以使用。

    bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。

  

简单命令

    1.     du -sh *     #查看当前文件夹大小  
    2.     du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序  
    3.     #附送:  
    4.     du -sk filename 查看指定文件大小 
    5.     cpu查看  
              1)cpu个数:#cat /proc/cpuinfo | grep "physical id" | uniq | wc -l  
            
              2)cpu核数:#cat /proc/cpuinfo | grep "cpu cores" | uniq  
            
              3)cpu型号:#cat /proc/cpuinfo | grep 'model name' |uniq  
            
          内存查看:#cat /proc/meminfo | grep MemTotal  
            
          硬盘查看: #fdisk -l | grep Disk  
              uname -a # 查看内核/操作系统/CPU信息的linux系统信息  
          head -n l /etc/issue # 查看操作系统版本  
          cat /proc/cpuinfo # 查看CPU信息  
          hostname # 查看计算机名的linux系统信息命令  
          lspci -tv # 列出所有PCI设备   
          lsusb -tv # 列出所有USB设备的linux系统信息命令  
          lsmod # 列出加载的内核模块   
          env # 查看环境变量资源  
          free -m # 查看内存使用量和交换区使用量   
          df -h # 查看各分区使用情况  
          du -sh # 查看指定目录的大小   
          grep MemTotal /proc/meminfo # 查看内存总量  
          grep MemFree /proc/meminfo # 查看空闲内存量   
          uptime # 查看系统运行时间、用户数、负载  
          cat /proc/loadavg # 查看系统负载磁盘和分区   
          mount | column -t # 查看挂接的分区状态  
          fdisk -l # 查看所有分区   
          swapon -s # 查看所有交换分区  
          hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)   
          dmesg | grep IDE # 查看启动时IDE设备检测状况网络  
          ifconfig # 查看所有网络接口的属性   
          iptables -L # 查看防火墙设置  
          route -n # 查看路由表   
          netstat -lntp # 查看所有监听端口  
          netstat -antp # 查看所有已经建立的连接   
          netstat -s # 查看网络统计信息进程  
          ps -ef # 查看所有进程   
          top # 实时显示进程状态用户  
          w # 查看活动用户   
          id # 查看指定用户信息  
          last # 查看用户登录日志   
          cut -d: -f1 /etc/passwd # 查看系统所有用户  
          cut -d: -f1 /etc/group # 查看系统所有组   
          crontab -l # 查看当前用户的计划任务服务  
          chkconfig –list # 列出所有系统服务   
          chkconfig –list | grep on # 列出所有启动的系统服务程序  
          rpm -qa # 查看所有安装的软件包   
          cat /proc/cpuinfo :查看CPU相关参数的linux系统命令  
          cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令   
          cat /proc/meminfo :查看linux系统内存信息的linux系统命令  
          cat /proc/version :查看版本,类似uname -r   
          cat /proc/ioports :查看设备io端口  
          cat /proc/interrupts :查看中断   
          cat /proc/pci :查看pci设备的信息  
          cat /proc/swaps :查看所有swap分区的信息 

帮助用法

  man 命令操作按键,使用快捷键可以快速高效的阅读帮助文档。

  Linux基础巩固--Day1--背景介绍_第1张图片

 

你可能感兴趣的:(Linux基础巩固--Day1--背景介绍)