• linux系统学习(一)


    Linux历史

    20世纪60年代,MIT开发分时操作系统(Compatible TIme-Sharing System),支持30台终端访问主机

    1965年,Bell实验室、MIT、GE(通用电气公司)准备开发Multics系统,为了同时支持300个终端访问主机,但是1969年失败了

    1969年,Ken Thompson(C语言之父)利用汇编语言开发了FIle Server System(Unics,即Unix的原型)

    1973年,Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核

    1977年,Berkeley大学的Bill Joy针对他的机器修改Unix源码,称为BSD(Berkeley Software Distribution)

    1979年,Unix发布System V,用于个人计算机

    1984年,因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学

    1984年,Stallman开始GNU(GNU's Not Unix)项目,创办FSF(Free Software Foundation)基金会

    1985年,为了避免GNU开发的自由软件被其他人用作专利软件,因此创建GPL(General Public License)版权声明

    1988年,MIT为了开发GUI,成立了XFree86的组织

    1991年,芬兰赫尔辛基大学的研究生Linus Torvalds基于gcc、bash开发了针对386机器的Lniux内核

    1994年,Torvalds发布Linux-v1.0

    1996年,Torvalds发布Linux-v2.0,确定了Linux的吉祥物:企鹅

    开源共享精神

    用户具有使用自由、修改自由、重新发布自由以及创建衍生品的自由。这也正好符合了黑客和极客对自由的追求,因此国内外开源社区的根基都很庞大,人气也相当高

    开源软件重要特性:

    低风险

    高品质

    低成本

    更透明

    如果开源软件为了单纯追求“自由”而牺牲程序员的利益,这将会影响程序员的创造激情,因此世界上现在有60多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开源工作者的权益。

    GNU GPL(GNU General Public License,GNU通用公共许可证,4大特点:

    复制自由

    传播自由

    收费传播

    修改自由

    BSD(Berkeley Software Distribution,伯克利软件发布版)许可协议,满足以下条件才能商业使用:

    如果再发布的软件中包含源代码,则源代码必须继续遵循BSD许可协议

    如果再发布的软件中只有二进制程序,则需要在相关文档或版权文件中声明原始代码遵循了BSD协议

    不允许用原始软件的名字、作者名字或机构名称进行市场推广

    Apache许可证版本(Apache License Version)许可协议,满足以下条件才能商业使用:

    该软件及其衍生品必须继续使用Apache许可协议

    如果修改了程序源代码,需要在文档中进行声明

    若软件是基于他人的源代码编写而成的,则需要保留原始代码的协议、商标、专利声明及其他原作者声明的内容信息

    如果再发布的软件中有声明文件,则需在此文件中标注Apache许可协议及其他许可协议

    MPL(Mozilla Public License,Mozilla公共许可)许可协议:相较于GPL许可协议,MPL更加注重对开发者的源代码需求和收益之间的平衡。

    MIT(Massachusetts Institute of Technology)许可协议:目前限制最少的开源许可协议之一,只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。

    安装CentOS操作系统

    版本: 7.4

    安装选择:

    1. 个人机

    2. 双系统

    3. 虚拟机(*)

    虚拟机:

    Vritualbox --  Oracle

    Vmware Workstation(*)   -- Vmware

    KVM --  Linux内核

    Xen

    ....

    虚拟机的功能:

    计算资源

    存储资源

    网络资源

    将以上资源进行虚拟化

    CPU虚拟化 内存虚拟化 硬盘虚拟化 网络虚拟化等等

    Vmware workstation 网络虚拟化:

    网络类型:

    1. 桥接模式(Bridge)

    2. 仅主机模式(Only - Host)

    3. Nat模式

    仅主机模式:

    Nat模式:  + Nat虚拟设备

    Nat: 网络地址转化

    192.168.10.10 ---> 122.1.1.1

    PC上的关于nat网络模型的虚拟网卡设备:只影响 pc 和 vm之间通信;并不影响 vm 能不能上网问题

    VM连通外部网络: 通过虚拟NAT设备   

    桥接模式:

    让虚拟机处于真实的物理网络环境下

    CentOS系统安装:

    SSH远程连接:

    1.?安装centos系统?

    输入用户名/密码登录成功

    2.?根据【虚拟网络类型】配置IP地址

    Nat网络类型:

    输入命令: ip a  检查 ip 地址

    [root@test ~]# ip a | grep glo

    inet 172.16.128.0/16 brd 172.16.255.255 scope global noprefixroute dynamic ens32

    配置IP地址:使用DHCP方式获取

    [root@test ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32

    输入 a  或者 i

    ONBOOT=no  --> ONBOOT=yes

    使用 Shift + :  (进入末行模式)

    输入 wq --> 保存退出

    w 保存

    q 退出  q!

    输入命令: ifdown ens32  -- ifup ens32

    ip a 命令 查看该网卡是否获取到ip地址

    172.16.128.0

    测试: ping 114.114.114.114  表示VM能够访问外部网络

     

    3.?关闭防火墙?

    输入命令: systemctl stop firewalld && systemctl disable firewalld

    4.?检查sshd服务和22端口?

    systemctl status sshd      

    ss -tanl | grep 22

    5.?输入正确的信息进行远程连接

    IP

    用户名

    密码

    修改主机名称并生效:

    设置: hostnamectl set-hostname [Test]

    生效: bash  或者 进行远程连接

    CentOS系统安装:

    SSH远程连接:

    1.?安装centos系统?

    输入用户名/密码登录成功

    2.?根据【虚拟网络类型】配置IP地址

    Nat网络类型:

    输入命令: ip a  检查 ip 地址

    [root@test ~]# ip a | grep glo

    inet 172.16.128.0/16 brd 172.16.255.255 scope global noprefixroute dynamic ens32

    配置IP地址:使用DHCP方式获取

    [root@test ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32

    输入 a  

    ONBOOT=no  --> ONBOOT=yes

    使用 Shift + :  (进入末行模式)

    输入 wq --> 保存退出

    w 保存

    q 退出  q!

    输入命令: ifdown ens32  -- ifup ens32

    ip a 命令 查看该网卡是否获取到ip地址

    172.16.128.0

    测试: ping 114.114.114.114  表示VM能够访问外部网络

    3.?关闭防火墙?

    输入命令: systemctl stop firewalld && systemctl disable firewalld

    4.?检查sshd服务和22端口?

    systemctl status sshd      

    ss -tanl | grep 22

    5.?输入正确的信息进行远程连接

    IP

    用户名

    密码

    修改主机名称并生效:

    设置: hostnamectl set-hostname [Test]

    生效: bash  或者 进行远程连接

    Linux文件系统介绍

    文件系统:

    Window:C:UsershaohaoDesktop寒假系统线上课程

    Linux: /etc/sysconfig/network-scripts/

    文件 = Metadata + Data

    Metadata: 元数据: 描述文件属性等信息

    Data: 数据: 文本本身的信息

    文件名称命名规则:

    1. 严格区分大小写  file File

    2. 可以使用除/以外的任意字符,避免使用一些特殊字符( * . ? )

    3. 不超过255个字符

    4. 以. 开头的文件为隐藏文件

    命令使用规则:

    <command> [options] [obj]

    options:

    长选项 -- ()

    短选项 -  短选项可以组合使用(-aild)

    一般来说: 短选项的使用放在长选项之前

    obj  肯定是文件

    注意: 空格

    ls命令

    [root@test ~]# ls --help

    Usage: ls [OPTION]... [FILE]...

    List information about the FILEs (the current directory by default).

    OPTIONS:

    -a : 显示所有文件(包括隐藏文件)

    -l :显示列表中文件的详细信息

    -i : 显示文件的inode号

    -d :查看目录文件的信息

    文件路径

    绝对路径: 从/位置开始(从根位置开始)

    相对路径:从.位置开始 (从当前位置开始)

    表示方式:

    /sysconfig/network-scripts/ -> 绝对路径

    ./network-scripts/ -> 相对路径

    network-scripts/ -> 相对路径

    ../ -> 相对路径 (从上一个目录作为当前目录)

    pwd命令: 显示当前路径

    [root@test tmp]# pwd

    /tmp

    cd命令 : 切换目录

    cd命令默认是切换到各自的家目录下:/root/

    [root@test tmp]# cd /etc/sysconfig/network-scripts/

    [root@test network-scripts]# pwd

    /etc/sysconfig/network-scripts

    [root@test ~]# cd test/

    [root@test test]# cd

    [root@test ~]# cd ./test/

    [root@test test]# cd

    [root@test test2]# pwd

    /root/test/test2

    [root@test test2]# cd .. # 返回上层目录

    [root@test test]# ls

    test2

    [root@test test2]# cd - # 返回上次所在的目录

    cd ..

    cd

    文件类型

    - 普通文件 [-]

    - 目录文件 [d]

    - 块设备文件 [b]

    - 字符设备文件 [c]

    - 套接字文件 [s]

    - 管道文件 [p]

    - 链接文件 [l]

    如何去查看文件类型:

    1. ls -l 命令 (ll)

    2. file命令

    3. stat命令

    [root@test ~]# ll

    total 4

    -rw-------. 1 root root 1260 Feb  5  2020 anaconda-ks.cfg

    drwxr-xr-x. 3 root root   19 Feb  5 06:57 test

    [root@test ~]# ll /dev/sda

    brw-rw----. 1 root disk 8, 0 Feb  5  2020 /dev/sda

    [root@test ~]# ll /dev/zero

    crw-rw-rw-. 1 root root 1, 5 Feb  5  2020 /dev/zero

    [root@test ~]# ll /var/spool/postfix/public/showq

    srw-rw-rw-. 1 postfix postfix 0 Feb  5  2020 /var/spool/postfix/public/showq

    [root@test ~]# ll /run/dmeventd-client

    prw-------. 1 root root 0 Feb  5  2020 /run/dmeventd-client

    lrwxrwxrwx. 1 root root    11 Feb  5  2020 ifdown-isdn -> ifdown-ippp

    [root@test ~]# file test/

    test/: directory

    [root@test ~]# file anaconda-ks.cfg

    anaconda-ks.cfg: ASCII text

    [root@test ~]# stat anaconda-ks.cfg

      File: ‘anaconda-ks.cfg’

      Size: 1260       Blocks: 8          IO Block: 4096   regular file

    [root@test ~]# stat test/

      File: ‘test/’

      Size: 19         Blocks: 0          IO Block: 4096   directory

    目录结构:

    注意:介绍/下的第1级目录

    bin: Binary缩写; 存放着经常使用的命令

    boot: 启动Linux需要的部分核心文件

    dev: Device缩写;  Linux外部设备(磁盘等)

    etc: 系统管理所需要的配置文件和子目录

    home: 用户的家目录

    lib: 程序运行时所依赖的库文件(包括内核模块)

    lib64: 专用于x86_64系统上的辅助共享库文件存放位置

    media: 自动识别的设备存放位置

    mnt: 用户临时挂载别的文件系统

    opt: 安装额外软件的存放位置

    proc: 虚拟目录;访问该目录可以获取系统相关信息

    root: 超级管理员家目录

    run: 存储系统运行以来的所有信息

    sbin: 超级管理员所使用的命令

    srv: 服务启动后需要的数据

    sys:子文件系统;映射内核信息 (针对内核做调整的话)

    tmp: 临时文件目录

    usr: 用户的应用程序和相关文件

    var: 经常被修改的文件存储位置(日志: /var/log/...)

    面试题:

    如何去看服务器(centos7)的cpu核数?

    /prco/cpuinfo配置文件,详解

    【】#vi /proc/cpuinfo

    processor : 0                   #系统中逻辑处理核的编号,逻辑cpu个数1个

    vendor_id : GenuineIntel        #cpu制造商 英特尔原厂

    cpu family : 6                  #cpu产品系列代号

    model : 158                   #cpu属于其系列中的哪一代的代号

    model name : Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz

    stepping : 10                        #cpu属于制作更新版本

    microcode : 0xaa

    cpu MHz : 2592.006              #cpu的实际使用主频

    cache size : 12288 KB             #cpu二级缓存大小

    physical id : 0                    #单个cpu的标号

    siblings : 1                       #单个cpu逻辑物理核数

    core id : 0            #当前物理核在其处在cpu中的编号,这个不一定连续

    cpu cores : 1                     #该逻辑核处在cpu的物理核数

    apicid : 0       #用来区分不同逻辑的编号,系统中每个逻辑核的此编号必然不同

    Top命令也可以的

  • 相关阅读:
    复习面向对象--继承,重写,重载,抽象详解
    复习面向对象---员工案例
    连接池介绍 + 示意图 + 手写连接池pool
    statement 和 preparedStatement 优缺点
    软件测试(二十三)
    软件测试(二十二)
    软件测试(二十一)
    软件测试(二十)
    软件测试(十九)
    软件测试(十八)
  • 原文地址:https://www.cnblogs.com/panfei-ywg/p/12710244.html
Copyright © 2020-2023  润新知