搜档网
当前位置:搜档网 › linux基本优化

linux基本优化

linux下系统配置文件中,有以#开头的行 也有非#开头的行,(通俗的讲 #号开头的文件是注释,也就是给人看的,而非#号开头 才是系统识别的)

一、linux系统基本优化
selinux一个专门用于限制root用户的防火墙

1、关闭selinux与iptables
配置文件 /etc/selinux/config
[root@test ~]# cat /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=enforcing
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

sed -i.bak 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
将selinux的状态从开机默认开启,变成关闭
SELINUX=enforcing ===> SELINUX=disabled

以上操作需要重启生效,但是服务器不能随意重启,所以需要临时关闭
setenforce 0 0 警告 但可以操作 1 开启
使用getenforce 查看当前selinux状态

关闭防火墙:
[root@test ~]# service iptables stop ^C
[root@test ~]# /etc/init.d/iptables stop
[root@test ~]# service iptables status 查看防火墙状态
iptables: Firewall is not running.
[root@test ~]# chkconfig iptables off 开机不启用防火墙

运行级别:
[root@test ~]# cat /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
[root@test ~]# runlevel



2.配置yum更新源,从国内更新源下载安装rpm包。
对系统配置文件修改前 一定要进行备份
第一步:对系统源配置文件进行备份(一定要做备份) yum源配置文件所在路径 /etc/yum.repo.d/
[root@test yum.repos.d]#mv CentOS-Base.repo CentOS-Base.repo.bak
第二步:到相应的镜像网站下载yum配置文件
比如:网易镜像 阿里镜像 北大镜像
第三步:上传下载的yum源配置文件到/etc/yum.repo.d/ 下

上传可以使用rz -y 这个命令 sz 下载 如果没有可以通软件自带的功能上传
第四步:将下载的yum源配置文件重命名成系统自带的配置文件
第五步:清除缓存 yum clean all
第六步:建立缓存 yum makecache
第七步:安装相应软件 tree
安装的命令 yum install -y tree



3、linux下调整字符集
linux常用的字符集:
1、UTF-8,不定长 1-4,广泛支持,MYSQL也是UTF-8,大多数企业都是使用这个
2、GBK 定长 2字节 不是国际标准,使用的较少
字符集配置文件路径/etc/sysconfig/i18n
[root@test ~]# cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bak 配置备份
[root@test ~]# echo 'LANG="zh_CH.UTF-8"' >/etc/sysconfig/i18n
将修改的内容写入到配置文件 永久生效
[root@test ~]# . /etc/sysconfig/i18n 应用修改的文件
[root@test ~]# echo $LANG 输出变量LANG 输出当前的字符集
zh_CH.UTF-8

临时生效
[root@test ~]# LANG=en 重启后失效
备注:只有客户端和服务端字符集相同,才能更好的操作和使用

总结:1、linux下可以创建和查看中文,但是尽量不要使用中文
2、修改系统配置文件前 一定要先做备份,再修改。



4、远程登录的基本优化设置:
ssh服务的配置文件路径/etc/ssh/sshd_config
13 #Port 22 端口 自己配置的新端口22530
42 #PermitRootLogin yes 是否允许root远程登录
65 #PermitEmptyPasswords no 是否允许空密码远程登录
122 #UseDNS yes 是否使用DNS解析
GSSAPIAuthentication no rsync 备份服务器

1、修改系统配置前,备份
[root@test ~]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vim/vi的快捷操作
切换到相应的行 12gg 12G
复制光标所在行 yy
黏贴 p
撤销 u
切换到文件开头 gg
切换到文件末尾 G
2、修改ssh配置文件
12 ########change for 2017-07-26#############
13 Port 51525
14 PermitRootLogin no
15 PermitEmptyPasswords no
16 UseDNS no
3、重启sshd服务
[root@test ssh]# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
重启服务后发现登录工具并没有断开
[root@test ssh]# netstat -ne |grep 22
tcp 0 0 192.168.0.99:22 192.168.0.125:50065 ESTABLISHED 0 35927
tcp 0 52 192.168.0.99:22 192.168.0.125:49427 ESTABLISHED 0 37515
tcp 0 0 192.168.0.99:22 192.168.0.125:50118 ESTABLISHED 0 36381
unix 3 [ ] STREAM CONNECTED 13422
4、发现无法使用root登录,可以使用普通用户登录


针对历史记录的优化:
history 命令,使用history命令可以查看历史命令,
参数

: -d 删除 某一行历史
-c 删除所有历史记录
[root@test ~]# !244 通过!重复之前的历史命令
ls
1 1.txt anaconda-ks.cfg ett.txt install.log install.log.syslog xuexi 你好 学习
[root@test ~]# !l 调用最近的以l开头的命令
ls
1 1.txt anaconda-ks.cfg ett.txt install.log install.log.syslog xuexi 你好 学习
[root@test ~]# export HISTSIZE=100 临时生效
[root@test ~]# echo $HISTSIZE
100
如果想要永久生效 将配置写入到/etc/profile 对所有用户生效
[root@test ~]# echo 'export HISTSIZE=100' > /etc/profile
source /etc/profile //引导生效 source引导作用和.一样
每一个用户使用过的命令在家目录下都会有一个记录文件进行记录 路径~/.bash_history
[root@test ~]# echo $HISTFILESIZE
100
[root@test ~]# export HISTFILESIZ=100

设置超时时间[root@test ~]# export TMOUT=10

隐藏linux版本信息的显示

配置文件路径/etc/issue
[root@test ~]# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m
[root@test ~]# uname -r
2.6.32-642.el6.x86_64
[root@test ~]# uname -m
x86_64
[root@test ~]# >/etc/issue 清除文件内容
或者 添加虚假信息
[root@test ~]# echo 'CentOS release 7.2 (Final)' >/etc/issue
[root@test ~]# cat /etc/issue
CentOS release 7.2 (Final)

总结:
1、关闭selinux与iptables(iptables工作场景如果有公网IP,一般默认开启,高并发的服务器除外)
2、设定工作场景下运行级别
3、更改字符集,linux下是支持中文的,但是工作情况下一定要使用英文,避免出现错误
4、更改默认的远程连接的ssh服务端口,禁止root用户远程登录,以及空密码登录,
5、隐藏linux登录时显示的版本信息(修改/etc/issue文件)
6、优化yum源,从国内yum源下载软件



企业面试题:
6、linux的运行级别的含义:
运行级别0:系统关机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动



4、32位与64位系统的区别:
第一点 设计初衷不同:
64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为普通用户设计的。

第二点 寻址能力不同:
64

位处理器的优势还体现在系统对内存的控制上。由于地址使用的是特殊的整数,因此一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。比如,Windows Vista x64 Edition支持多达128 GB的内存和多达16 TB的虚拟内存,而32位CPU和操作系统最大只可支持4G内存

第三点 要求配置不同:
64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。当然,32位操作系统安装在64位电脑上,其硬件恰似“大马拉小车”:64位效能就会大打折扣。

第四点 运算速度不同:
关于32位和64位系统的差别,那真是说来话长,这里我们首先要了解一下CPU的架构技术,通常我们可以看到在计算机硬件上会有X86和X64的标识,其实这是两种不同的CPU硬件架构,x86代表32位操作系统 x64代表64位操作系统。那么这个32位和64位中的“位”又是什么意思呢?相对于32位技术而言,64位技术的这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。举个通俗易懂但不是特别准确的例子:32位的吞吐量是1M,而64位吞吐量是2M。即理论上64位系统性能比32位的提高1倍。

第五点 软件普及不同:
目前,64位常用软件比32位常用软件,要少得多的多。道理很简单:使用64位操作系统的用户相对较少。因此,软件开发商必须考虑“投入产出比”,将有限资金投入到更多使用群体的软件之中。这也是为什么64位软件价格相对昂贵的重要原因(将成本摊入较少的发售之中)。




1、redhat与CentOS的区别?
redhat软件收费,服务收费
Centos软件免费,没有服务



5、ssh远程连接不上如何排错:
1,两个机器之间物理网络是否通畅(网线网卡,IP是否正确)
使用ping或者tracert

2,查看服务器的服务进程是否处于开启状态(sshd)
可以使用telnet命令检查
telnet 192.168.0.46 22(端口号)

3,防火墙或selinux是否处于开启状态
关闭防火墙 临时关闭 iptables -F
关闭服务 service iptables stop


相关主题