Linux系统基础

TOC

一、Linux基本了解

Linux发行版本

Linux的发行版本简单来说就是将Linux内核与应用软件打包成为一个新的版本。
常见的发行版本,如下图所示:
Linux

Linux vs Windows

Linux和Windows最大的区别就是Linux更多应用于服务器,而Windows更多应用于桌面操作。
主要区别如下所示:

比较方向
Windows
Linux
界面 界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同 图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 UNIX 传承下来,基本命令和操作方法也几乎一致。
驱动程序 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的 Windows 下的驱动,也会比较头痛。 由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。
使用 使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。 图形界面使用简单,容易入门。文字界面,需要学习才能掌握。
学习 系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。
软件 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。 大部分软件都可以自由获取,同样功能的软件选择较少。

Linux目录结构

Linux的目录结构跟Windows有很大的区别,比如:

  • Linux:目录结构为树状图结构,一切从根/目录开始,没有C盘,D盘这种分区概念。
  • Windows:以盘符(C:\、D:\) 为根,每个分区有自己的目录树。通常C盘为系统盘。

树状目录结构
Linux

Linux的目录解析

  • /:根分区
  • /root:系统管理员(超级用户)的注目录
  • /home:用户的主目录
  • /boot:这里存放引导启动Linux时使用的核心文件
    /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录。
  • /dev:这个目录下是所有Linux的外部设备
  • /etc:这个目录里存放着系统最基本的动态链接共享库。
  • /lib:lib是Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /bin:binary的缩写,存放着最常用的以命令。
  • /sbin:这里存放的是系统管理员使用的系统管理程序。
  • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件。
  • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
  • /media:Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。

系统文件

系统文件分类
EXT4:第四代扩展文件系统,用于存放文件和目录数据的分区
SWAP:交换文件系统,用于为Linux系统建立交换分区
XFS:是一种高性能的日志文件系统,擅长处理大文件

系统启动过程

系统启动过程详情

1.内核引导
首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。
操作系统接管硬件以后,首先读入/boot目录下的内核文件。
2.运行init
init进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动。
3.运行级别选择
init程序首先是需要读取配置文件/etc/inittab
0:关机状态,使用该级别时将主动关机
1:单用户模式,不需要密码验证即可登录系统,多用于系统维护
2:字符界面的多用户模式(部支持访问网络)
3:字符界面的完整多用户模式,大多数服务器主机运行在此级别
4:未分配使用
5:图形界面的多用户模式
6:重新启动

系统运行级别:init命令

命令格式:init【模式级别数】
比如关机,示例如下

init 0

默认启动的级别
CentOS:
修改/etc/inittabl文件把参数改为你要每次默认启动的级别
Ubuntu:
修改/etc/default/grub把GRUB_CMDLINE_LINUX_DEFAULT改成你每次默认启动的级别
也可以直接命令:systemctl set-default multi-user.target(这里改成默认命令行模式)

二、vi/vim文本编辑器

所有的Unix Like系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在。
vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,我们基本都是使用这个软件编辑文本文件。

温馨提示:在linux中会经常使用这两个文本编辑器

基本上 vi/vim 共分为三种模式,命令模式(Command Mode)输入模式(Insert Mode)末行模式(Command-Line Mode)

命令模式

启动vi/vim命令进入命令模式
Linux
切换模式方式
输入以下指令进入就可以输入模式

  • a:输入到光标所在后面
  • i:输入到光标所在后面
  • o:输入到光标所在下一行
  • A:光标跳到行尾
  • I:光标跳到行首
  • O:输入到光标所在行的上一行
    输入:则可以进入末行模式
  • ::切换末行模式

命令模式其他文本操作
删除操作:

  • Dd:删除光标所在行(删了不保留行数)
  • DD:删除光标所在行(删了保留行数)
  • Ndd:批量删除 , n是具体数字(从光标出向下n行)
  • d^:删除当前光标到行首的所有字符
  • d$:删除当前光标到行尾的所有字符
    复制操作:
  • yy:复制当前行
  • nyy:批量复制 ,n是具体数字(从光标出向下n行)
    粘贴操作:
  • p:粘贴 粘贴到光标位后
  • P:粘贴 粘贴到光标位前
    撤销操作:
  • u:撤销一次编辑
  • U:撤消当前行所有的编辑
    保存操作:
  • ZZ:保存并退出

输入模式

Linux
切换模式方式
ESC键退出输入模式

末行模式

Linux
切换模式方式
删除所有内容退出末行模式模式
末行模式命令操作

  • w:保存文件
  • q:退出vim编辑器
  • wq:保存文件并退出vim编辑器
  • q!:不做任何修改,不保存强制退出vim编辑器
  • e:是在当前打开的文件中,打开新的文件
  • r:是在当前打开的文件中,读入新的文件(复制到光标所在前)

替换文件内容:

  • :sub /old/new:将光标所在行中第一个old换成new
  • :n,m sub /old/new:将第n-m行的第一个old换成new
  • :%  sub /old/new:将所有行的第一个old换成new
  • :%  sub /old/new/c:将所有行的第一个old换成new , 并提示确认
  • :%  sub /old/new/g:将所有行的old换成new
  • :set nu 显示行号

三、Linux基础网络设置

查看和测试网络常用命令

查看网卡网络信息:ip addr、ifconfig
查看计算机名称:hostname
查看路由表条目(查看网关):route
测试网络连接状况:ping
测试地址端口连通状况:telnet
查看系统的端口连接状态、路由表、接口统计系统:netstat
查看端口、进程信息:lsof
跟踪数据包(Windows下命令为tracert):traceroute
域名解析(Windows命令一致):nslookup
补充说明:
1.ifconfig、netstat需要安装net-tools安装包
2.lsof需要安装lsof安装包

网络参数的设置

1.使用命令设置

#设置IP地址:
ifconfig eth0 192.168.100.100 netmask 255.255.255.0
ifconfig eth0 192.168.100.100/24
#开启或关闭网卡:
ifconfig eth0 up/down
#设置电脑虚接口ip:
ifconfig eth0:1 192.168.100.101
#route:设置路由记录
#设置到哪个网段的路由表:
route add -net 192.168.3.0 gw 192.168.3.1
#删除路由记录:
route del -net 192.168.3.0
#设置默认路由:
route add default gw 192.168.1.1
#删除默认路由:
route del default gw 192.168.1.1

注意:命令为临时设置,下次重启就会被消除

2.配置网卡文件

网卡配置文件位置(CentOS6、CentOS7):/etc/sysconfig/network-scripts/ifcfg-xxx
网卡配置文件位置(Ubuntu):/etc/network/interfaces
DNS服务器地址设置的配置文件位置:/etc/resolv.conf
网卡配置参数
CentOS6、CentOS7:

vim /etc/sysconfig/network-scripts/ifcfg-ens33
----------------------------------------
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static       #静态设置方式,还可以dhcp方式
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33             #网卡名字
UUID=61d8955f-3d32-4b4f-866e-1e98635f7cb4
DEVICE=ens33           #设备名字
ONBOOT=yes             #是否开启网卡
IPADDR=192.168.31.101  #ip地址
NETMASK=255.255.255.0  #子网掩码
GATEWAY=192.168.31.1   #网关地址
DNS1=192.168.31.1      #DNS服务器地址

Ubuntu:

vim /etc/netplan/01-network-manager-all.yaml
----------------------------------------
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:    #网卡名字
      dhcp4: false    #是否开启dhcp
      addresses: [192.168.31.102/24]  #ip地址
      gateway4: 192.168.31.1   #网关地址
      nameservers:
        addresses: [192.168.31.1,8.8.8.8]   #DNS服务器地址

3.配置本地host文件

格式为:【IP地址】【主机名称】

vim /etc/hosts
-----------------
192.168.31.101  master
192.168.31.102  node

服务器域名解析顺序会先读取本地hosts文件,然后再访问DNS服务器,再访问根服务器