在安装Linux系统之前需要进行一些准备工作
文件下载地址:链接:https://pan.baidu.com/s/1sM03FJAGCzebl9XuWOILkg 密码:vfuh
然后准备相应的虚拟机
我是在MAC电脑上进行安装的Oracle Linux6系统,如果有遗漏和错误的地方,可以随时联系我进行纠正。后面的配置和问题解决都是基于该版本,并不一定适用所有版本系统。
选择合理的存储选项,第一个是基本的默认存储设备,第二个是指定的存储设置,一般无特殊需求默认第一个即可,
进入到硬盘格式化页面,选择是,忽略所有数据,因为你是第一次安装,所以都是默认的格式化数据。进行数据初始化操作。
进入到主机命名和配置网络界面,主机名自定义(我把它作为开发环境,所以命名为DEV了,这个随意就好了)
击configure Network进行网络配置,
勾选“Connect Automatically”,点击"IPv4 Settings"进行“Manual”设置。选择“Add"进行IP地址设置。IP地址根据自己需求,没有固定的IP地址,除非你有特别需求。
然后选择"Apply",回到主机名称设置窗口。然后继续下一步即可。
选择安装类型,进行分区操作,我这边选的是最后一个,自定义的分区,按照自己需求创建了 boot,tmp,swap和根目录四种。
1:设置基础设置:添加兼容程序库和集成unix兼容性选择
2:服务:添加FTP服务
3:数据库:取消所有数据库勾选
4:系统管理:勾选系统管理功能项
5:桌面:除了KDE其他的选择,这样的桌面是Gome桌面类型
6:应用程序:勾选了emacs、tex、互联网浏览器
7:开发工具:勾选开发工具和附加开发,其中开发工具勾选所有文件,附件开发只需要新增一个UnixODBC一个文件即可
8:语言支持:选择中文和英文
9:系统正在安装;大概需要几分钟
10:重启系统
1:放弃系统更新动作
2:创建一个自己用户,根据自己需要来
3:是否启用Kdump,一般默认不启用,但可以启用,主要是为了在系统崩溃的时候进行一些信息收集,方便后面对系统崩溃原因进行分析
本章节主要介绍一些安装完系统之后进行基础的系统配置
第一种:service方式
查看防火墙的状态
service iptables status
关闭防火墙
service iptables stop
启动防火墙
service iptables start
第二种:iptables方式
cd /etc/init.d/
/etc/init.d/iptables status
暂时关闭
/etc/init.d/iptables stop
启用
/etc/init.d/iptables restart
永久关闭防火墙:
chkconfig iptables off
永久关闭后启用:
chkconfig iptables on
编辑"/etc/selinux/config" 文件,将参数SELinux 的值设置成"permissive" 。
SELINUX=permissive
当参数值更新后,需要重新启动系统或者使用以下命令使其生效。
setenforce Permissive
本章节主要介绍一些基础相关的知识,有的是网上看到和自己的理解
1:GNOME 2.X
GNOME 2.x 作为大家熟识的传统界面,默认2个面板。在系统资源占用方面,GNOME 2.x 较GNOME 3 要求 RAM 较少、CPU较高。在这两个方面:
XFCE ,LXDE < GNOME 2.x
2:GNOME 3
GNOME 3作为GNOME 新版本,较GNOME 2.x变革明显.GNOME 3相对直观,大多数同学还是习惯传统的GNOME 2.x桌面环境。GNOME 3只有一个顶部面板,传统菜单不复在。可在左上角点击“活动”查看应用、工作分区等。
3:Unity
Unity 是由Canonical 起初为上网本设计,先被采用为Ubuntu 11.04 默认桌面。Unity较GNOME 3或KDE 占用系统资源较多。在Unity桌面环境中,只有一个顶部面板,桌面左侧有一类Dock的应用启动器
4:KDE
KDE 有类windows的“开始菜单”。界面华丽。
许多发行版本如OpenSUSE、PCLinuxOS和 Mandriva等皆采用KDE作为默认桌面环境。
5:XFCE
占用资源较GNOME、KDE较少。适合老机器,轻量级桌面。与windows界面环境类似。许多不习惯GNOME 3 ,Unity新桌面的同学,很多选择了XFCE 4.8
6:LXDE
LXDE也位列四大桌面环境之一,轻量级桌面,占用资源较少,合适老机器,不说在新机子高配置上的表现了
结果对比
kdump是在系统崩溃、死锁或者死机的时候用来转储内存运行参数的一个工具和服务,打个比方,如果系统一旦崩溃那么正常的内核就没有办法工作了,在这个时候将由kdump产生一个用于capture当前运行信息的内核,该内核会将此时的内存中的所有运行状态和数据信息收集到一个dump core文件中以便于Red Hat工程师分析崩溃原因,一旦内存信息收集完成,系统将自动重启。这和以前的diskdump,netdump是同样道理。只不过kdump是RHEL6特有的。
查看Linux系统是否打开kdump:
执行命令:ulimit -c 如果输出为 0 ,则代表没有打开。如果为unlimited则已经打开。
临时打开/关闭Linux的kdump方法:
ulimit -c unlimited 打开;
ulimit -c 0 关闭;
修改配置文件进行打开/关闭kdump方法:
vi /etc/profile文件
在文件末尾加入新行,ulimit -S -c unlimited> /dev/null 2>&1
保存退出:wq!
执行 source /etc/profile 使当期设置生效
通过ulimit -c 查看下是否已经成功打开。
系统崩溃时kdump文件位置及查看方法:
修改生成的日志文件的路径到/var/log下
echo “/var/log” > /proc/sys/kernel/core_pattern
kdump文件名为core.xxxx
执行gdb core.xxx进行调试。
selinux 的全称是Security Enhance Linux,就是安全加强的Linux。在Selinux之前root账号能够任意的访问所有文档和服务 ;
如果某个文件设为777,那么任何用户都可以访问甚至删除。 这种方式称为DAC(主动访问机制),很不安全。
DAC自主访问控制: 用户根据自己的文件权限来决定对文件的操作,也就是依据文件的own,group,other/r,w,x 权限进行限制。Root有最高权限无法限制。r,w,x权限划分太粗糙。无法针对不同的进程实现限制。
Selinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有一个安全标签(即selinux上下文)进行区分,只有对应的标签才能允许访问,否则即使权限是777,也是不能访问的。
在selinux中,访问控制属性叫做安全上下文,所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户(u)、角色(r)、和类型(t)标识符。但我们最关注的是第三部分
当程序访问资源时 ,主体程序必须要通过selinux策略内的规则放行后,就可以与目标资源进行安全上下文的比对,若比对失败则无法存取目标,若比对成功则可以开始存取目标,最终能否存取目标还要与文件系统的rwx权限的设定有关,所以启用了selinux后出现权限不符的情况时,你就得一步一步分析可能出现的问题了。
selinux状态查看与配置:
selinux的配置文件位置:/etc/selinux/config,它还有个链接在/etc/sysconfig/selinux.
使用config文件来配置selinux(通过配置文件修改selinux的状态属于永久修改,要重启系统才生效)
vim /etc/sysconfig/selinux
selinux=enforcing
#此项定义selinux状态
#enforcing-是强制模式系统,它受selinux保护。就是违反了策略你就无法继续操作下去。
#permissive-是提示模式系统不会受到selinux保护,只是收到警告信息。permissive就是selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你违反的内容记录下来(警告信息)
#disabled-禁用selinux
selinuxtype=targeted
#此项定义selinux使用哪个策略模块保护系统。targeted只对Apache,sendmail,bind,postgresql,nfs,cifs等网络服务保护。
以上策略配置都放置在/etc/selinux目录中,目录和策略名称相同。
使用selinux相关命令查看和修改状态:(属于立即生效但临时性的)
(1)sestatus查询selinux工作状态
(2)selinuxenabled检查selinux是否开启,配合echo $?.传回值是0为开启,1为关闭
(3)getenforce查看selinux状态
(4)setenforce设定selinux运行状态,1开启(Enforce),0关闭(Permissive)
系统初始化程序:
1.systemd
系统初始化程序,系统开始的第一个进程,pid为1
2.systemctl 命令
systemctl list-units 列出当前系统服务的状态
systemctl list-unit-files 列出服务的开机状态
systemctl status sshd 查看指定服务的状态
systemctl stop sshd 关闭指定服务
systemctl start sshd 开启指定服务
systemctl restart sshd 重新启动服务
systemctl enable sshd 设定指定服务开机开启
systemctl disable sshd 设定指定服务开机关闭
systemctl reload sshd 使指定服务从新加载配置
systemctl list-dependencies sshd 查看指定服务的倚赖关系
systemctl mask sshd 冻结指定服务
systemctl unmask sshd 启用服务
systemctl set-default multi-user.target 开机不开启图形
systemctl set-default graphical.target 开机启动图形
setterm 文本界面设定color
vga=ask
3.服务状态
systemctl status 服务名称
loaded 系统服务已经初始化完成,加载过配置
active(running) 正有一个或多个程序正在系统中执行,
vsftpd 就是这种模式
atcive(exited) 仅执行一次就正常的服务
atcive(waiting) 正在执行当中
inactive 服务关闭
enbaled 服务开机启动
disabled 服务开机不自启
static 服务开机启动项不可被管理
failed 系统配置错误
内核升级有时候会出现不可意料的错误,一般情况不建议升级内核;
vim /etc/yum.conf
#添加以下策略
exclude=kernel*
1、shutdown
2、poweroff
3、init
4、reboot
5、halt
五个重启命令的具体说明
在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的。
1.shutdown
shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。
shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。
Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
shutdown 参数说明:
[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。
[-f] 在重启计算器〔reboot〕时忽略fsck。
[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。
2.halt----最简单的关机命令
其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。
参数说明:
[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
[-f] 没有调用shutdown而强制关机或重启。
[-i] 关机〔或重启〕前﹐关掉所有的网络接口。
[-p] 该选项为缺省选项。就是关机时调用poweroff。
3.reboot
reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它 的参数与halt相差不多。
4.init
init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的 用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel), init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐ 并且得不到使用shutdown时的信息和等待时间。
5.poweroff 命令
poweroff 会发送一个 ACPI 信号来通知系统关机。
poweroff就是halt的软链接而已。执行的还是halt命令。关于halt 命令,可以这样理解:halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核
poweroff在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应,当然路由器等嵌入系统不支持ACPI的,所以这个无效
useradd test 添加用户
passwd test 设置密码
本章节主要介绍一些经常遇到的问题的解决办法,网上也有很多,可自行学习。
依次单击【System】–>【Preferences】–>【Network Connections】
依次单击【Wired】–>【System eth0】–>【Edit】
勾选【Connect automaticlly】,然后点击【IPv4 Settings】,在下面的Method中选择【Automatic(DHCP)】,最后点击【Apply】
然后断开网络再重新连接即可