zoukankan      html  css  js  c++  java
  • 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 命令操作按键,使用快捷键可以快速高效的阅读帮助文档。

      

  • 相关阅读:
    异常机制和File类
    《JAVA程序设计》_第五周学习总结
    20165214 第五周学习任务
    20165214 第四周学习任务
    20165214 第三周学习任务
    20165214 预备作业3 Linux安装及学习
    20165313 预备作业3 Linux安装及学习
    学习基础和C语言基础调查
    20165313 我期望的师生关系
    int *ptr=(int *)(&a+1)
  • 原文地址:https://www.cnblogs.com/bk770466199/p/11749743.html
Copyright © 2011-2022 走看看