linux基本介绍与环境搭建
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基本介绍与环境搭建相关的知识,希望对你有一定的参考价值。
1.1 Linux版本
linux kernel 2.2、2.4、2.6、3.0、4.0...
发行商:Red hat、CentOS、Ubuntu
选择适合的Linux系统学习
桌面系统:Ubuntu
稳定服务器系统:CentOS
土豪(有售后):Red Hat
对安全性有更高要求:Debian、FreeBSD
新技术,测试版:Fedora
1.2 CentOS
64位的系统版本是当前企业使用的主流
6.5 6.6版本的系统,稳定
学习平台为6.5版本X86_64系统
1.3 学习环境的重要建议
虚拟机软件:VMWare Virtual Box
windows7 建议用VM8.0
内存安装的时候最好1G,安装之后可以降到512M
网卡的模式选择:bridged桥接、NAT、host-only仅主机
NAT模式的虚拟机就是通过宿主机上网和交换数据的
bridged 逻辑对等,虚拟机可以被分配与物理机相同网段的独立IP,最接近真实网络环境的
Host-only 虚拟机的网卡连接到VMnet1上,宿主系统不为虚拟机提供路由服务,因此虚拟机只能和宿主机进行通信
1.4 32和64区别
设计时的定位不同 普通用户和企业
安装要求配置不同 64只能安装在64位电脑上,针对64位发挥最佳性能
运算速度不同 64一次提取8个字节的数据,比32快一倍
寻址能力不同 32CPU理论最大只支持4G,可以通过PAE技术支持到8G,64可支持128G
uname -m/a 查看装的是32还是64
1.5 基本分区方案
IDE /dev./hda
hda第一块盘 hda1,hda2...
hdb第二块盘 ...
SCSI /dev./sds
分区的编号1-4,只能给P+E
L分区的编号只能从5开始
Linux分区要求:
/ 根分区 用来存放系统文件及程序 5GB以上
swap(交换)分区 相当于虚拟分区,一般为物理内存容量的1.5倍,此分区不是必须
/boot分区 引导分区 一般为100-200M,不是必须的
1.6 linux系统相关设置
uname -r 查看内核版本
# 超级管理员
setup配置
保存网卡配置
ifdown eth0 && ifup eth0或者/etc/init.d/network restart==service network restart 前者更好
不要忘了更改配置:vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes 《===控制网卡是不是开机启动
提示:vi是编辑器,相当于记事本,打开后,按i编辑修改,保存命令:wq
CRT连不上linux
1.iptables防火墙关闭 /etc/init.d/iptables stop chkconfig iptables off永久关闭
2.ping
ps -ef 查看进程 ps -ef|grep ssh ps aux 类unix风格显示
netstat/ss -lntup 查看端口 netstat -lntup|grep sshd
ifconfig/ip add 查看IP
windows《=====》linux 互传数据
ftp/winscp/http/rz-sz
yum install lrzsz -y 安装rzsz
rz 回车 选择要上传的文件(不能是目录)
sz 文件 回车,下载到CRT指定的路径
-y是覆盖
halt==shutdown -h now
yum upgrade –y 更新系统 yum update –y
yum grouplist 用于查看包组列表
额外安装一些有用的软件包
yum install tree telnet dos2unix sysstat lrzsz nc nmap -y
[[email protected] ~]# cat /etc/redhat-release
CentOS release 6.5 (Final) 版本
[[email protected] ~]# uname -r
2.6.32-431.el6.x86_64 内核
[[email protected] ~]# uname -m
x86_64 32位还是64位
[[email protected] ~]# hostname
localhost 主机名
linux 多任务、多进程、多CPU、多用户
[[email protected] ~]$ 《======普通用户提示符
[[email protected] ~]# 《======超级管理员
1.7 系统基本优化
1.7.1 关闭SELinux功能
[[email protected] ~]# sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g‘ /etc/selinux/config
[[email protected] ~]# grep =disabled /etc/selinux/config
SELINUX=disabled
[[email protected] ~]# getenforce
Enforcing
[[email protected] ~]# setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
[[email protected] ~]# setenforce 0
runlevel 运行级别0-6 7种
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
1.7.2 精简开机启动服务
开机必须保留的启动
sshd,远程连接linux服务器时需要的服务
rsyslog,日志相关软件,系统的守护程序通常会使用rsyslog程序将各种信息写到各个系统日志文件中
network,系统启动时,若想激活/关闭各个网络接口,则应开启此服务
crond,该服务用于周期性的执行系统及用户配置的任务计划
sysstat,sysstat是一个软件包,包含检测系统性能及效率的一组工具
sysstat软件包集成的主要工具为:
iostat工具:提供CPU使用率及硬盘吞吐效率的数据
mpstat工具:提供与单个或多个处理器相关的数据
sar工具:负责收集、报告并存储系统活跃的信息
设置开机自动服务的方法:
1)setup 勾选开机启动的服务
2)ntsysv 设置
3)用脚本编写chkconfig统一关闭
[[email protected] ~]# chkconfig --list atd
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
[[email protected] ~]# chkconfig --level 3 atd off
[[email protected] ~]# chkconfig --list atd
atd 0:off 1:off 2:off 3:off 4:on 5:on 6:off
[[email protected] ~]# chkconfig --level 2345 atd off
[[email protected] ~]# chkconfig --list atd
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[[email protected] ~]# for name in `chkconfig --list|grep 3:on|awk ‘{print $1}‘|grep -Ev "sshd|network|rsyslog|crond|sysstat"`;do chkconfig $name off;done
关闭在3级别开启的除了sshd,rsyslog,network,crond,sysstat之外所有服务
1.7.3 关闭防火墙
[[email protected] ~]# /etc/init.d/iptables stop
[[email protected] ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[[email protected] ~]# chkconfig iptables off
1.7.4 更改linux远程SSH连接端口
vim /etc/ssh/sshd_config :set nu 表示显示行数
#####2017-05-21#####
Port 52113
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
ListenAddress 192.168.4.180
#####2017-05-21#####
/etc/init.d/sshd reload
/etc/init.d/sshd restart
netstat -lntup
netstat -an|grep EST
利用sed命令实现快速增加
sed –ir ’13 i Port 52113
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
ListenAddress 192.168.4.180’ sshd_config
1.7.5 利用sudo工具来对用户进行集权管理
visudo ==vi /etc/sudoers 不完全等价,前者更多功能
vi编辑器 输入98gg切换到98行 yy复制 p粘贴
[[email protected] ~]$ useradd yaoyao
-bash: /usr/sbin/useradd: 权限不够
[[email protected] ~]$
[[email protected] ~]$
[[email protected] ~]$ sudo useradd yaoyao
[sudo] password for wangxian:
[[email protected] ~]$ tail -l /etc/passwd
yaoyao:x:501:501::/home/yaoyao:/bin/bash
环境变量:
PATH 系统路径变量,执行ls,cp等非内置命令时,系统会首先查找PATH里对应的路径是否有,如果没有就报告找不到该命令
当执行which cp来查看命令所在路径的时候,也是从PATH变量去搜索
临时修改export PATH="/tmp:$PATH",永久修改前面临时修改的命令放到/etc/profile下,
使用source /etc/profile使得修改立刻生效
1.7.6 字符集修改
[[email protected] ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
[[email protected] ~]# cp /etc/sysconfig/i18n /etc/sysconfig/i18n.wx.20170521
[[email protected] ~]# sed -i ‘s#en_US.UTF-8#zh_CN.UTF-8#g‘ /etc/sysconfig/i18n
[[email protected] ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
[[email protected] ~]# source /etc/sysconfig/i18n 修改后执行
[[email protected] ~]# echo $LANG
zh_CN.UTF-8
1.7.7 linux服务器时间同步
[[email protected] ~]# date
2017年 05月 21日 星期日 20:53:12 CST
[[email protected] ~]# date -s "2017/05/21 20:55"
2017年 05月 21日 星期日 20:55:00 CST
[[email protected] ~]# hwclock
2017年05月21日 星期日 20时55分35秒 -0.861008 seconds
同步互联网时间
/usr/sbin/ntpdate ntp1.aliyun.com
也可以将同步时间写进crond定时任务
crontab -e
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1 #每5分钟同步一次
/dev/null 空设备 黑洞
下面的方法是等价的,习惯选择第二种
1) 1>/dev/null 2>/dev/null 正确的、错误的输出都扔到黑洞
2)***** 1>/dev/null 2>&1
3) &>/dev/null
etc/init.d/ntpdate start 自身的时间同步服务器开启
1.7.8 超时时间设置
export TMOUT=100 设置超时时间为100S
echo "export TMOUT=100">/etc/profile 添加到配置
tail -l /etc/profile 查看是否修改成功
source /etc/profile或者. /etc/profile 永久生效配
1.7.9 历史记录条数修改
export HISTSIZE=100 命令行的历史记录修改成100条
[[email protected] ~]# echo "export HISTSIZE=100" >>/etc/profile
[[email protected] ~]# tail -l /etc/profile
export HISTSIZE=100
[[email protected] ~]# . /etc/profile
[[email protected] ~]# HISTFILESIZE=100 历史记录文件的命令数量修改
[[email protected] ~]# echo "export HISTFILESIZE=100" >>/etc/profile
[[email protected] ~]# cat ~/.bash_history
1.7.10 增大文件描述符
文件描述符概念:
1、表示形式为整数数字,一般使用范围(0-65535)
2、进程使用的时候会占用文件描述符(标识打开的文件)
查看默认文件描述符:
[[email protected] ~]# ulimit -n
1024
调整文件描述符:
[[email protected] ~]# ulimit -SHn 65535 临时生效
[[email protected] ~]# ulimit -n
65535
断开连接重新进入生效
[[email protected] ~]# echo "* - nofile 65535" >>/etc/security/limits.conf
[[email protected] ~]# tail -1 /etc/security/limits.conf
-
- nofile 65535
1.7.11 调整内核参数文件/etc/sysctl.conf
vim /etc/sysctl.conf shift+g切换到文件结尾 shift+insert粘贴 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
sysctl -p 生效
- nofile 65535
1.7.12 系统其他的一些优化设置
隐藏版本信息显示,设置开机提示信息
> /etc/issue /etc/motd
编辑界面
vi /etc/motd
为grub引导菜单添加密码 不是很重要
锁定系统重要文件
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
禁止ping 一般不用 都用防火墙设置禁ping
[[email protected] ~]# echo "net.ipv4.icmp_echo_igore_all=1" >> /etc/sysctl.conf
[[email protected] ~]# sysctl.conf
更新部分有漏洞软件
yum install openssl openssh bash –y
定时清理/var/spool/clientsqueue/
定时清理/var/spool/clientsqueue/,写脚本,放在定时任务里面定时清理
搭建系统的yum源,以及进行优化(upgrade)
/etc/yum.repos.d/
清除多余的系统虚拟帐号,例如:bin、adm、lp、halt、mail、dbus、postfix等
1.7.13 优化安全最小化思想
1、安装系统最小化,开机启动最小化,无用的东西不装,不启动;
2、操作命令最小化,例如:用rm -f test.txt 不用rm -fr test.txt
3、登录linux用户最小化,平时没有需求不用root登录
4、普通用户授权权限最小化,只给必须的管理系统的命令
5、linux系统文件及目录的权限设置最小化,禁止随意创建、更改、删除
以上是关于linux基本介绍与环境搭建的主要内容,如果未能解决你的问题,请参考以下文章