前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 基础知识

Linux 基础知识

作者头像
吕海峰
发布2018-04-03 14:54:20
1.8K0
发布2018-04-03 14:54:20
举报
文章被收录于专栏:Brian

简要

作为了一个服务端开发人员而言,不仅有强大的内功而且也需要对一些工具和运维方面的知识。Linux毋容置疑是每一个后端开发人员必须熟悉或者精通的“大法“之一。随着自己的成长和技术的沉淀,会发现自己对Linux的认识依然停留在一个初级阶段。”发愤图强“必须解决这个根本问题。

Linux 杂记

虚拟机网络类型

先从linux安装说起吧,先来看一下虚拟机的网络连接方式的选择。我们先看一下VMmare网络类型:NAT、Bridged和Host Only

  • NAT(Network Address Translation,网络地址转换),虚拟机的网卡连接到物理机器上的VMware某个特定VMnet(一般是VMnet8)上,VMware NAT Service充当路由的的作用,负责将虚拟机发送到VMnet的包进行地址转换之后发送到实际网络地址,再将实际网络返回的包进行转换之后通过VMnet发送给虚拟机。VMware DHCP Service负责IP地址的分配。这种网络笔记适合家庭网络直连也不会与实际网络地址出现IP冲突。
  • Bridged(桥接模式),通过物理主机架设的一个”网桥”,从而连入实际网络,所以虚拟机被分配与物理主机相同网段的IP地址。
  • Host-Only(仅主机模式),虚拟机的网卡一般会连在VMnet1上,但是物理机器并不提供任何路由服务。所以一般这种模式下的网络模式,虚拟机是无法连接外网的,只能和物理机器进行通信。

硬盘和分区

  • 磁盘在使用之前必须先分区,磁盘分区有主分区、扩展分区和逻辑分区。一块磁盘最多可以有四个主分区,其中一个主分区的位置可以用扩展分区替换,在这个扩展分区可以划分多个逻辑分区。需要注意的是一块硬盘最多只能有一个扩展分区,扩展分布不能直接使用,必须划分逻辑分区才可以使用。
  • 分区数量>4,一般分区组合都是:3primary+1extend或2p+1e或者1p+1e. 磁盘分区命名和编号 在Linux系统中,磁盘设备对应于系统中的特殊文件,一般放在”/dev”目录中。
  • 系统的第一块IDE接口的硬盘的第一个分区:/dev/hda1
  • 系统的第一块IDE接口的硬盘的第五个分区:/dev/hda5
  • 系统的第二块SCSI接口的硬盘的第一个分区:/dev/sdb1
  • 系统的第二块SCSI接口的硬盘的第五个分区:/dev/sdb5 对于分区编号,数字1-4只能留给主分区或者扩展分区,逻辑分区的编号只能从5开始。分区要求 Linux系统要有下面三个分区:
  • ”/“(根)分区,用来存放系统和文件。
  • swap(交换分区)虚拟内存,一般物理内存小于8G,则为物理内存的1.5倍;当超过8G一般为8-16G即可。
  • /boot linux系统的引导分区,用来存放系统的引导分区。 分区方案
  • 对于网站集群架构中的某个节点服务器分区,建议做如下设置: /boot =====> 100MB~200MB swap =====> 一般物理内存小于8G,则为物理内存的1.5倍;当超过8G一般为8-16G即可。 / 剩余磁盘空间
  • 针对数据库或者存储功能 /boot =====> 100MB~200MB swap =====> 一般物理内存小于8G,则为物理内存的1.5倍;当超过8G一般为8-16G即可。 / 5~20GB /data 存储数据的分区。
  • 当然也可以设置/usr,/home、/usr和/var 这种方式下优点是当你系统出现损坏可以只需要重新安装操作系统到/就可以了,其他保持不变。缺点是维护起来比较麻烦。Linux安装基本的软件 linux在安装时应该选择最小化原则安装,下面安装完了之后可以补充安装一些组软件比如:
代码语言:javascript
复制
yum groupinstall "Compatibility libraries" "Base" "Development tools"
yum groupinstall "Dial-up Networking Support" "debugging tools"
#通过yum groupinfo 包组名来查看相应的安装信息。
yum groupinfo "Base"
yum grouplist

配置系统网络

你可以通过系统提供的setup来设置,或者通过/etc/sysconfig/network-scripts/ifcfg-eth0

代码语言:javascript
复制
emacs /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 ====第一块网卡设备名字
HWADDR=00:1C:42:1C:32:F8 ==== 以太网mac地址
TYPE=Ethernet ===上网类型
UUID=ed2baa48-ffeb-4ae1-baac-41c7690e5d7f === 通用唯一识别码
ONBOOT=yes == 在下次启动机器是否激活网络设备
NM_CONTROLLED=yes === 是否通过NetworkManager管理网络设备。
BOOTPROTO=dhcp ==== 启动协议,有三种方式none|bootp|dhcp,如果是静态的ip,需要设置成none;如果是动态获取的设置成dhcp。
IPADDR=10.2.1.12 === 静态ip地址
NETMASK=255.255.255.0 === 子网掩码
DNS2 = 8.8.8.8
GATEWAY=10.2.1.254 === 默认网关
DNS1 = 10.2.1.1
[root@localhost ~]# vi /etc/sysconfig/network
HOSTNAME=c64     #修改主机名,重启生效
GATEWAY=192.168.1.1    #修改默认网关,如果上面eth0里面不配置网关的话,默认就使用这里的网关了。
PEERDNS=yes #允许从DHCP处获得的DNS覆盖本地DNS
USERCTL=no #不允许普通用户修改网卡
修改DNS
[root@localhost ~]# vi /etc/resolv.conf   #修改DNS信息
nameserver 102.102.102.102
nameserver 8.8.8.8

设置完成之后,保存并重启etho
ifdown etho
ifup etho

注:要在ifcfg-etho设置相应的dns等,它会覆盖掉/etc/resolv.conf.

关闭selinux,清空iptables

selinux是对于强制访问控制的实现,但是大多数生产环境都是禁用掉的。我们先来禁用掉。

代码语言:javascript
复制
[root@brian ~]# sed –i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config   #修改配置文件则永久生效,但是必须要重启系统。
[root@brian ~]# grep SELINUX=disabled /etc/selinux/config
SELINUX=disabled     #查看更改后的结果
[root@brian ~]# setenforce 0 #临时生效命令
[root@brian ~]# getenforce      #查看selinux当前状态
Permissive

清空iptables,代码如下:

代码语言:javascript
复制
[root@brian ~]# iptables –F     #清理防火墙规则
[root@brian ~]# iptables –L     #查看防火墙规则
[root@brian ~]# /etc/init.d/iptables save   #保存防火墙配置信息

更新yum源

由于原始的源对于国内来说很慢,所以我们需要更新一下国内的源,我一般主要用163的源。

代码语言:javascript
复制
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo #下载163源
yum clean all  #清空yum缓存
yum makecache  #建立yum缓存
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*       #导入签名KEY到RPM
yum  upgrade -y   #更新系统内核到最新
yum install lrzsz ntpdate sysstat -y # 安装一些必要的软件
# 安装yum-priorities优先级源,优先级工具是yum-plugin-priroites插件,用于给yum源划分等级。1-99代表优先级,其中1代表优先级最高。
# 我们可以设置官方yum源最高设置为1,epel yum源次之设置为2,puppetlabs第三,需要设置相对应的repo文件最后priority=对应数字。
yum install yum-priorities
# 如果想使用优先级,需要先开启。
nano /etc/yum/pluginconf.d/priorities.conf
[main]
enabled = 1
# 设置相应的优先级
nano /etc/yum.repos.d/CentOS-Base.repo
priority=1
nano /etc/yum.repos.d/epel.repo
priority=2

Linux运行过程和运行级别

Linux默认7中运行级别,根据这7种运行级别来运行不同的工作模式。这7中运行级别分别为:

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动。
  • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆。
  • 运行级别2:多用户状态(没有NFS)。
  • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式。
  • 运行级别4:系统未使用。
  • 运行级别5:X11控制台,登陆后进入图形GUI模式。
  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。
运行级别工作原理
  • 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)。
  • 在/etc/rc.d下有7个名为rcN.d的目录,其中N代表从0-6对应系统的7个运行级别。
  • rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
  • 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件 对于以K开头的文件,系统将终止对应的服务 对于以S开头的文件,系统将启动对应的服务
  • 查看运行级别用:runlevel
  • 进入其它运行级别用:init N
  • 另外init0为关机,init 6为重启系统。
Linux启动过程

开机BIOS自检->MBR引导->grub引导菜单->加载内核kernel->启动init进程->读取inittab文件,执行rc.sysinit,rc等脚本->启动mingetty,进入系统登陆界面。

总结

Linux博大精深,学习Linux在于不断的积累和经验。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简要
  • Linux 杂记
    • 虚拟机网络类型
      • 配置系统网络
        • 关闭selinux,清空iptables
          • 更新yum源
            • Linux运行过程和运行级别
              • 运行级别工作原理
              • Linux启动过程
          • 总结
          相关产品与服务
          云服务器
          云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档