linux学习笔记,linux基础调优,已老男孩教育视频为基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习笔记,linux基础调优,已老男孩教育视频为基础相关的知识,希望对你有一定的参考价值。

什么是计算机

计算机是电子数字计算机的简称,是一种自动的地,高速地进行数值运算和信息处理的电子设备。他主要由一些机械的,电子的器件组成,再配以适当的程序和数据。程序及数据输入后可以自动执行,用以解决某些实际问题。计算机中的各个物理实体为计算机硬件。程序和数据则称为计算机软件。

服务器硬件知识

1PC服务器 (1u=111.125px

品牌 DELL HPIBM

DELL品牌

2010年以前1u1850/19502u2850/2950

2010-2014      R410/R420   R610/R620

2,电源

人体的心脏,生产中一般核心业务用双电,如果是集群的情况可以例外。风扇选择方面铜的导热性能大于铝的

3CPU

人体的大脑,负责运算和控制,是服务器性能核心部件。

生产:一般的企业,CPU颗数2-4颗,一颗CPU 双核-四核

虚拟化 宿主机:   CPU颗数4-8颗,内存一般是49-128G

4,内存:

CPU和磁盘之间的缓冲设备,临时的存储器。

一般程序运行的时候会被调度到内存中

进程:运行着的程序,进程会放在内存里。

程序:静态的,磁盘里。

计算机重启,内存的数据会释放掉

5,磁盘

永久存放数据的存储器。

3.5英寸的SAS(磁盘接口) SATA(磁盘接口)硬盘,机械读取(性能不高)。性能比内存差很多,所以工作中把大量的数据缓存到内存,是必备的解决方案。

此案接口:SAS  SATA  SSD

性能:SSD>SAS>SATA, 常规工作场景选SAS15000转)SATA7.2-1万转)线下的备份,  高并发用SSD

实例:淘宝网satassd结合起来用  有些笔记本也是

6,光驱

企业应用:建议,淘汰光驱,为老板省钱。

    U盘安装系统 网络安装(ftphttp),无人值守批量安装系统.

内存和磁盘的优化  

企业案例:

1)们和极端案例:高并发,大数据量:会把数据先写到内存,然后再定时或者定量的写到磁盘,最终还是会加载到内存。

特点:

A.高并发的写入性能高。

B.可能会丢失一部分再内存中还没有来得及存入磁盘的数据。

2)中小企业案例:并发不是很大网站,会先把数据存放到磁盘,然后通过程序把数据读入到内存里,再对外提供访问服务。

由于90%的是网站都是读取为主,写入为辅,读写比例10:1,所以并发写入不是问题。

提醒:这里的内存和硬盘,可能是多台机器组成的

 

技术分享 

技术分享 

技术分享 

Bios

常见的BIOS  AwardAMIPhoenix

什么是操作系统

简单的理解,操作系统是沟通使用者和硬件之间传递信息的工作或程序、例如xp就是操作系统

操作系统(英文Operating System 简称OS

技术分享 

系统核心(kernel+上边LIB API+命令解释器shell=操作系统

技术分享 

Unix操作系统分类

FreeBSDuniversity of californiaBerkeley

AIX UNIXIBM)(跑在小型机上的)

Solaris UNIXSUNSUN后来被甲骨文收购了

HP UNIXHP

Linux是一套免费使用和开放源代码并且可以自由传播的类Unix操作系统

1991年底,Linux Torvalds公开linux内核,不是我们现在使用linux系统的全部

1993年,linux1.0版发行,Linux转向GPL版权协议

GNUGPL知识

1984年起,Richard Stallman在软件开发团体中发起开发自由软件的运动,并获得麻省理工学院(MIT)的支持,这就导致了自由软件基金会FSFFree Software Foundation)的建立和GNU项目的产生。

在其他人的协下,Richard Stallman创立了通用公共许可证GPLGeneral Public License),这对推动自由软件的发展起了至关重要的作用。

GPL许可核心思想是保证任何人有共享和修改自由软件的自由,任何人有权取得,修改和重新发布自由软件的源代码权利,但是要求把其他的改动发布出来。

FSF的主要项目是GNUGNU`s Not Unix )。他的目标是建立可自由发布和可移植的类Unix操作系统。GNU项目本地产生的主要软件包括:Emacs编辑软件,Gcc编译软件,Bash命令解释程序和编程语言,一级GawkGNU`s awk)等等。

GNU

GNU19841984Richard Stallman 发起的自由软件运动,导致了FSF的诞生,从而有了GNU这个项目,开发一个操作系统以及各种程序组件,不是UNIX的操作系统,实际就是linux操作系统,GNU项目是linux内核之上的一些组件,不包括linux内核

GPL

GPL许可保证任何人有共享和修改自由软件的自由,任何人有权利,用、改、发布,GPL就是一个协议。

自由软件是什么?

自由软件是权利问题,不是价格问题,要理解这个概念,自由应该是言论自由中的自由,而不是免费啤酒中的免费

http://www.gnu.org/philosophy/free-sw.html

http://www.gnu.org/home.zh-cn.html

Linux的版本

Linux操作系统=内核+系统软件+应用程序(系统版本,内核版本)

常见的有RedhatDebianFedoraCentosUbuntu

CentosCommunity Enterprise Operating System

Redhat所发布的源代码重建符合GPLlinux,即Redhat Linux的再编译版

一般生产环境运维,都不使用桌面环境,甚至连桌面软件包都不安装,仅有一些特殊的软件安装需要安装桌面软件例如:Oracel的安装 Vnc的远程桌面

Linux应用分为三个领域

IT服务器系统应用领域、嵌入式系统应用领域、个人桌面系统应用领域

Linux远程链接工具 ssh  协议 SecrueCRT

技术分享 

技术分享 

英文翻译:

Options(选项)Session options(会话选项)Appearance(外观)

Normal font (字体大小)Narrow font (精确字体)Cursor (光标)

Use color (使用颜色)建议绿色  Cursor style (光标样式)

Short block (短块) blinking (闪烁)Terminal(终端)  

Emulation(仿真)Scrollback buffer 回滚缓冲区

Log file (日志文件)Start log upon connect (在链接上启动记录)

Append to file(追加到文件 )

SecureFXP 传文件工具

技术分享 

调整背景颜色

技术分享 

创建日志 %S-%Y-%M-%D.log-------------会话名称---

多页面

技术分享 

简单上传下载

技术分享 

Yum install lrzsz  Dial-up Networking Support这个包组里

下载sz 文件名 -y覆盖

上传rz -y

只能上传下载文件

上传的文件可以是电脑里的任意文件

Ctrl+d 快速退出 (exit/quit)之后回车又连接回服务器

开机流程

http://rangochen.blog.51cto.com/2445286/1372328

http://raingolee.blog.51cto.com/6798135/1324991

https://jingyan.baidu.com/article/647f01159884e07f2148a8ef.html

Linux版本选择:

1linux桌面系统,首选Ubuntu

2,服务器端的linux系统,首选RHEL或者CentOS,这两者中首选Centos,如果公司有钱不在乎软件成本也可以选择RHELRHEL有版权,Centos无版权

3,如果对安全要求很高,可以选择DebianFreeBSD

4,新技术、新功能可以选择Fedora。是RHELCentos的一个测试版或预发布版

KVM Xen虚拟环境VMware workstations版本

www.centos.org

常规分区方案

/剩余硬盘大小

swap 1.5

/boot 100M

DB及存储

/data 剩余硬盘大小,放数据的

/  50-200G

swap 1.5

/boot  100M

相当于windows不能只分C盘,还需要D,E,因为重装系统,数据会丢。

门户网站

/  50-200G

swap 1.5

/boot 100M

剩下先不在进行分区,保留,将来哪个需求,就自己根据需求再分【灵活】

生产场景,对磁盘监控,剩余20%,报警短信,生产常用DELL硬件RAID,组合多块磁盘而不是LVM以及软RAID

系统安装

Base System1Base  

2Compatibility libraries  

3Debugging Tools

4Dial-up Networking Support

5Hardware monitoring utilities

6Performance Tools

Development1Development tools

查看包组安装命令  yum grouplist

yum groupinstall “包组名称”:

yum groupinstall “Base”

yum groupinstall “Compatibility libraries”

yum groupinstall “DebugingTools”

yum groupinstall “Dial-upNetworking Support”

yum groupinstall “Hardwaremonitoring utilities”

yum groupinstall “PerformanceTools”

yum groupinstall “Developmenttools”

磁盘分区

磁盘分区有主分区、扩展分区、逻辑分区之分,一个硬盘最多有4个主分区。其中一个主分区的位置可以用一个扩展分区替换,而且一块盘只能有一个扩展分区,在这个扩展分区内可以划分多个逻辑分区

3p+e  2p+e  p+e

最多只能有一个扩展分区,扩展分区不能用,必须在扩展分区上划分多个逻辑分区,然后格式化(创建文件系统),然后才能存数据或装系统

1.分区数字编号1-4只能留给主分区或扩展分区使用,逻辑分区(是在扩展分区基础上的)编号只能从5开始

2.IDE硬盘设备名以/dev/hda  /dev/hdb

 SCSI/SAS/STAT/USB接口设备名以/dev/sda  /dev/sdb

swap交换分区的作用:虚拟内存,swap分区大小=1.5x物理内存容量(mem<8G),当内存大于16G,虚拟内存(8-16G即可)

实用工具everything搜索工具

HyperSnap画图工具

Keeppass 密码管理

win32文本比较工具

查看系统版本

[[email protected] ~]# cat /etc/redhat-release

CentOS release 6.8 (Final)

查看内核版本

[[email protected] ~]# uname -a

Linux 123 2.6.32-642.el6.i686 #1 SMP Tue May 10 16:13:51 UTC 2016 i686 i686 i386 GNU/Linux

查看系统32位还是64

[[email protected] ~]# getconf LONG_BIT

32

查看cpu信息

[[email protected] ~]# cat /proc/cpuinfo

model name      : Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz

查看内存信息

[[email protected] ~]# cat /proc/meminfo

MemTotal:        4151496 kB

查看磁盘信息

[[email protected] ~]# fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes

配置优化防火墙后使生效

sysctl –p  配置优化防火墙生效/etc/sysctl.conf

 

 

 

Linux基础优化
1,配置网络

文件路径:/etc/sysconfig/network-scripts/ifcfg-eth0

[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0(网卡名称)

HWADDR=00:0C:29:6A:C2:6B(网卡MAC地址)

TYPE=Ethernet(网络类型)

UUID=8c03c2fe-b7d0-4e48-83c2-e934e1ee5df6(全局唯一标识符)

ONBOOT=yes(开机启动)

NM_CONTROLLED=yes(网络信息参数)

BOOTPROTO=static(静态和DHCP

IPADDR=192.168.5.18IP地址)

NETMASK=255.255.255.0(子网掩码)

GATEWAY=192.168.5.1(网关)

DNS1=192.168.5.1DNS

修改DNS

文件路径:/etc/resolv.conf

[[email protected] ~]# vi /etc/resolv.conf

nameserver 192.168.5.1

nameserver 144.0.0.74

修改主机名

文件路径:/etc/sysconfig/network

[[email protected] ~]# vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=www.lyl.zy

临时修改hostname+主机名

重启网卡:[[email protected] ~]# /etc/init.d/network restart

2,关闭SELinux,清空iptables

关闭SELinux

文件路径:/etc/selinux/config

[[email protected] ~]# vi /etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled(关闭)

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

脚本:

[[email protected] ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config

[[email protected] ~]# grep SELINUX=disabled /etc/selinux/config

显示如下:SELINUX=disabled

临时关闭,查看

setenforce 0

getenforce

关闭iptables防火墙

[[email protected] ~]# iptables -F(清理防火墙规则)

[[email protected] ~]# iptables -L(查看防火墙规则)

/etc/init.d/iptables stop

3,不用root,添加普通用户,通过sudo授权管理

[[email protected] ~]# useradd newlinux(添加普通用户)

[[email protected] ~]# passwd newlinux(为普通用户设置密码)不让设置简单的比较麻烦所以不用

非交互式修改

[[email protected] ~]# echo "mima"|passwd --stdin newlinux

Changing password for user newlinux.

passwd: all authentication tokens updated successfully.

[[email protected] ~]# history -c(清空历史命令,安全)

设置新账号权限

文件路径:/etc/sudoers

[[email protected] ~]# visudo

  90 ## Allow root to run any commands anywhere

    91 root    ALL=(ALL)       ALL(默认)

    92 haha    ALL=(ALL)       /usr/sbin/useradd,/usr/sbin/passwd(给予新账号命令权限中间用逗号隔开)

93 newlinux        ALL=(ALL)       NOPASSWD: ALL(给予新账号全部权限)

94%newlinuALL=(ALL)       NOPASSWD: ALL(前面加%表示用户组)

技术分享 

4,简单安全防护

文件路径:/etc/ssh/sshd_config

Port 12345(修改远程端口)(13行左右)

PermitRootLogin no(禁止root账号登录)使用普通账号登录然后su - root切换(42

UseDNS no(关闭DNS查询使ssh登录时候更顺畅)(122

GSSAPLAuthentication no(交换秘钥,使ssh登录更顺畅)

重启服务/etc/init.d/sshd reload/etc/init.d/sshd restart

具体分析:

http://oldboy.blog.51cto.com/2561410/1300964

5,更换yum为国内源

文件路径: /etc/yum.repos.d/CentOS-Base.repo

[[email protected] yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.ori(备份源文件)

[[email protected] yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-6.repo(下载新源地址)

[[email protected] yum.repos.d]# cp Centos-6.repo CentOS-Base.repo (修改配置文件)

检查:

[[email protected] yum.repos.d]# yum clean all(清空yum缓存)

[[email protected] yum.repos.d]# yum makecache    (建立yum缓存)

[[email protected] yum.repos.d]# yum updata(更新系统)

[[email protected] yum.repos.d]# yum upgrade(更新系统)

下载安装工具

[[email protected] yum.repos.d]# yum install tree telnet dos2unix sysstat lrzsz -y

6精简开机自启动服务

调整开机模式

文件路径:/etc/inittab

[[email protected] ~]# vi /etc/inittab

26(行数) id:3:initdefault:3为文本模式,5为桌面模式)

[[email protected] ~]# runlevel  (查看当前运行模式)

N 3

[[email protected] ~]# init 5(切换模式)

关闭不必要的程序

[[email protected] ~]# ntsysv (直接进入服务画面)

[[email protected] ~]# setup 然后选择system service

技术分享 

四个必须的服务

1sshd(远程服务)

2rsyslog (日志服务)

3network(网络服务)

4crond(定时服务)

[[email protected] ~]# for abc in `chkconfig --list|grep "3:on"|awk ‘{print $1}‘`;do chkconfig $abc off;done(关闭所有3登记启动项)

[[email protected] ~]# for abc in crond network sshd rsyslog;do chkconfig $abc on;done(开启四个必要的服务)

[[email protected] ~]# chkconfig --list|grep "3:on"(检查是否成功)

crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

network0:off   1:off   2:on    3:on    4:on    5:on    6:off

rsyslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off

sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

脚本:

技术分享 

7,调整字符集

文件路径:/etc/sysconfig/i18n

[[email protected] ~]# cat /etc/sysconfig/i18n

LANG="en_US.UTF-8"  

SYSFONT="latarcyrheb-sun16"

[[email protected] ~]# source /etc/sysconfig/i18n (运行生效)

临时调整:

[[email protected] ~]#(临时调整为英文,防止乱码)

9,服务器时间同步

[[email protected] ~]# ntpdate 144.0.0.74

10,加大服务器文件描述符

文件路径:/etc/security/limits.conf

# End of file

*      -    nofile      65535(调整为65535

临时调整

[[email protected] ~]# ulimit -n  (查看文件描述符数量)

65535

[[email protected] ~]# ulimit -HSn 65535(临时调整)

文件描述符

对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数,当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用opencreat返回的文件描述符标识该文件,将其作为参数传递给readwrite

按照惯例,UNIX系统shell使用文件描述符0与进程的标准输入相关联,文件描述符1与标准输出相关联,文件描述符2与标准出错相关联。这是各种shell以及很多应用程序使用的惯例,而与UNIX内核无关,如果不遵守这种惯例,那么很多UNIX系统应用程序就不能正常工作。

11隐藏开机版本和版本号

文件路径: /etc/issue /etc/redhat-release

清空文件

[[email protected] ~]# >/etc/issue

[[email protected] ~]# cat /dev/null >/etc/issue

[[email protected] ~]# >/etc/redhat-release

[[email protected] ~]# cat /dev/null >/etc/redhat-release

12,锁定关键的系统文件

[[email protected] ~]# chattr +i /etc/passwd

[[email protected] ~]# chattr +i /etc/inittab

[[email protected] ~]# chattr +i /etc/group

[[email protected] ~]# chattr +i /etc/shadow

[[email protected] ~]# chattr +i /etc/gshadow

13,内核参数优化

文件路径:/etc/sysctl.conf

centos5系统

[[email protected] ~]# vi /etc/sysctl.conf

net.ipv4.tcp_fin_timeout = 2

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_keepalive_time =600

net.ipv4.ip_local_port_range = 4000    65000

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

net.ipv4.tcp_max_orphans = 16384

#一下参数是对iptables防火墙的优化,防火墙不开会有提示,可以忽略不理。

net.ipv4.ip_conntrack_max = 25000000

net.ipv4.netfilter.ip_conntrack_max = 25000000

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180

net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120

net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60

net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120

[[email protected] ~]# sysctl –p    #使配置文件生效

由于centos6系统中的模块名不是ip_conntrack,而是nf_conntrack,所以在/etc/sysctl.conf优化时,需要把net.ipv4.netfilter.ip_conntrack_max这种老参数,改成net.netfilter.nf_conntrack_max这样才行

centos6

net.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_tcp_timeout_established = 180

net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

 

基础优化:

http://oldboy.blog.51cto.com/2561410/1336488

脚本优化:

http://chocolee.blog.51cto.com/8158455/1424587

其他优化:

http://oldboy.blog.51cto.com/2561410/1184139

http://oldboy.blog.51cto.com/blog/2561410/1184165

http://oldboy.blog.51cto.com/blog/2561410/1184177

http://oldboy.blog.51cto.com/blog/2561410/1184206

http://oldboy.blog.51cto.com/blog/2561410/1184228

网络状态优化:

http://yangrong.blog.51cto.com/6945369/1321594

更多优化细节:

http://oldboy.blog.51cto.com/2561410/988726

 

 


以上是关于linux学习笔记,linux基础调优,已老男孩教育视频为基础的主要内容,如果未能解决你的问题,请参考以下文章

​通过chkconfig设置linux开机自启动服务- 老男孩Linux运维学习笔记1

Linux下创建文件和文件夹的方法-老男孩Linux运维学习笔记2

老男孩python学习--linux基础命令学习

linux学习计划书

大数据系统架构师学习笔记

跟着老男孩学习linux的学习计划