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命令也可以的

原文地址:https://www.cnblogs.com/panfei-ywg/p/12710244.html