博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux基础知识梳理
阅读量:5033 次
发布时间:2019-06-12

本文共 30403 字,大约阅读时间需要 101 分钟。

Linux基础知识梳理

 

Linux系统的学习的方法:

 

1. 做一个属于自己的笔记.

2. 学习方法:实验多敲几遍,

 

 服务器硬件

一般的服务器

 

 

刀片服务器

 

Linux操作系统最初是在1991年10月份由芬兰赫尔辛基大学的在校生Linus Torvalds所发布,

Linux内核最初只是由芬兰人林纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE

Linux的特点:
Linux中一切都是文件.Linux中不根据文件的后缀区分文件的类型

虚拟机软件的优点。

1、模拟真实操作系统,做各种操作系统实验

(如:搭建域服务器,搭建web服务器,搭建ftp服务器,搭建dhcp服务器,搭建dns服务器等);
2、虚拟机的快照功能可以与ghost工具备份功能相媲美,并且可以快速创建还原点,也可以快速恢复还原点;
(当你的机器出现故障可以切换到快照状态)前提有快照

3,虚拟机是一台独立的机器,可桥接到真实电脑上上网,更好的保障了安全性;

4、在只有1台电脑的情况下,需要另外几台电脑共同搭建复杂应用环境,虚拟机即可代劳;
5、可以在虚拟机中测试比较怀疑的工具;
6、真实的工具可在虚拟机中正常使用【前提要模拟相应的操作系统】;
7、可快速克隆操作系统副本。

总结: 1.虚拟机是一个单独的操作系统。

2.有了虚拟机,一台真实机可以同时运行多个操作系统。

服务器1U = 4.45cm 中指,食指,无名指的厚度

RHEL6与RHEL7的区别

值得关注的更新包括:

1. 显著提升 Docker 的兼容性 (Docker容器级虚拟化技术)
2. 默认文件系统从 EXT4 改为 XFS

---------------------

Install Red Hat Enterprise Linux 7.2 安装RHEL 7.2
Test this media & install Red Hat Enterprise Linux 7.2 测试安装文件并安装RHEL 7.2
Troubleshooting 修复故障

一般选择第一项就可以了

 

Trobleshooting模式下
界面说明:
Install Red Hat Enterprise Linux 7.2 in basic graphics mod #基本图形化安装
Rescue a Red Hat Enterprise Linux system #修复系统
Run a memory test #运行内存测试系统
Boot from local drive #本地设备启动
Return to main menu #返回主菜单

-----------------

/boot 引导分区 swap 交换分区 (不是直接用来存储文件的)。
必须创建的分区
/boot / swap交换分区,虚拟内存
swap创建标准
物理内存1.5~2倍
如果物理内存超过4G,一般直接把swap创建4G就够了

Swap分区的应用场景: 当物理内存不够用的时候 使用交换分区。

----------------
Vm虚拟机常用的一些快捷键
Ctrl+N 新建一个虚拟机
Ctrl+alt+enter 进入全屏模式
Ctrl+L清屏
Ctrl+C 取消某一个操作
------------------------------
常见的Linux操作系统
基于Debian的桌面版(Ubuntu)
国际化组织的开源操作系统(Debian)
红帽用户桌面版(Fedora [Linux])
社区企业操作系统(Centos)
红帽企业系统(Red Hat Enterprise Linux,RHEL.)

Unix系统是1969年美国的肯汤普森和丹尼斯里奇 发明的

红帽系统是免费的,但是红帽系统的服务是收费的
Ubuntu是基于debian的桌面版的Linux系统

VM虚拟机的使用:

虚拟机能模拟真实的操作系统,做各种实验
web服务搭建
ftp服务搭建
dhcp服务搭建
dns服务搭建

虚拟机有快照可以快速回复还原系统到某个状态

VM是寄居的虚拟机、
haper-v是原生的虚拟机

install redhat enterprise linux in basic graphics mod 基本图形化安装

rescue a redhat enterprise linux system 修复系统
run a memory test 运行内存测试系统
boot from local drive 本地设备启动
return to main menu 返回主菜单

swap 交换分区,虚拟内存的作用

boot 引导分区

Ctrl+Alt 释放鼠标

Ctrl+G 进入到虚拟机
Ctrl+L 清屏,clear
Ctrl+C 取消当前的执行
Ctrl+Alt+Enter 全屏

ifconfig 查看当前系统的IP地址

编辑网卡的配置信息
vim /etc/sysconfig/network-scripts/ifcfg-eno
systemctl restart network

 

能说出Linux中常见的系统目录及作用

设置固定的IP地址

关闭系统的防火墙
关闭SELinux
设置光盘自动挂载
配置本地yum源 yum文件的格式必须是.repo结尾的

ifconfig 查看当前系统的ip地址

查看网络服务的状态
systemctl status network
启动网路服务
systemctl start network
重启网卡
systemctl restart network

启动图形化界面编辑网卡信息

nmtui
nmtui-edit eno

ifup 开启网卡

ifdown 关闭网卡

网卡的配置文件位置

vim /etc/sysconfig/network-scripts/

关闭防火墙
systemctl stop firewalld
设置开机自动关闭防火墙
systemctl disable firewalld

Selinux的配置文件

vim /etc/selinux/config

setenforce 0 临时关闭SELinux

设置开机自动关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

设置光盘开机自动挂载

查看当前光驱挂载的路径
df

卸载光驱

umount /dev/cdrom
挂载光驱
mount /dev/cdrom /mnt/ 将光驱挂载到了/mnt目录中
设置开机自动挂载
vim /etc/fstab
写入
/dev/sr0 /mnt iso9660 defaults 0 0

 

配置本地yum源

vim /etc/yum.repos.d/rhel.repo

写入:
[rhel7]
name=rhel_yum
baseurl=file:///mnt
enabled=1
gpgcheck=0

执行清空原有yum的缓存

yum clean all
加载当前的yum源
yum list all

卸载安装光盘

umount /dev/sr0
--------------------
学习目标:
1、 固定的可以联网IP地址
2、 关闭防火墙
3、 关闭selinux
4、 光盘自动挂载
5、 配置好本地yum源

-------------------------

重启网卡
systemctl restart network
查看IP地址
ifconfig
修改IP地址
nmtui-edit eno16777736
激活网络配置
nmtui
或者,直接重启网卡
systemctl restart network
---------------------------------
关闭防火墙并设置开机自动关闭
systemctl stop firewalld
systemctl disable firewalld
---------------------------------
关闭selinux并设置开机自动关闭
setenforce 0 #临时关闭

开机自动关闭:

将enforcing改成disabled
---------------------------------
设置光盘开机自动挂载
echo "/dev/sr0 /mnt iso9660 defaults 0 0" >> /etc/fstab
---------------------------------
Yum全称为 Yellow dog Updater, Modified(软件包管理器)
功能是更方便的添加/删除/更新RPM包, yum很好的解决了linux下面安装软件包的依赖性关系。

yum的配置信息都储存在一个叫yum.repos.d的配置文件中,位于/etc目录下

配置Yum仓库

删除原有的文件
创建新的文件.Repo为后缀
rm -rf /etc/yum.repos.d/*

cat > /etc/yum.repos.d/rhel7.repo <<EOF

> [rhel7-source]
> name=rhel-source
> baseurl=file:///mnt
> enabled=1
> gpgcheck=0
> EOF

 

常用Yum命令:

yum clean all #清空yum缓存
yum list #生成缓存列表

---------------------------------

服务器的构成部分:
中央处理器、内存、芯片组、I/O总线、I/O设备、电源、机箱和相关软件

整个服务器系统就像一个人,处理器就是服务器的大脑,而各种总线就像是分布与全身肌肉中的神经,芯片组就像是脊髓,而I/O设备就像是通过神经系统支配的人的手、眼睛、耳朵和嘴;而电源系统就像是血液循环系统,它将能量输送到身体的所有地方。

---------------------------------
编辑网卡的配置文件
/etc/sysconfig/network-scripts/ifcfg-eno16777736 网卡配置文件
---------------------------------
关闭防火墙并设置开机自动关闭
systemctl stop firewalld 关闭当前
systemctl disable firewalld 开机自动关闭

---------------------------------

关闭selinux并设置开机自动关闭
setenforce 0 临时关闭

开机自动关闭:

vim /etc/selinux/config
将enforcing改成disabled

---------------------------------

设置光盘开机自动挂载
echo "/dev/sr0 /mnt iso9660 defaults 0 0" >> /etc/fstab
mount -a

---------------------------------

Yum的配置
删除原有的文件
rm -fr /etc/yum.repos.d/*
创建文件 文件的格式 必须是.repo

rhel7.repo

[rhel7-source] 名称
name=rhel-server 描述信息
baseurl=file:///mnt (系统盘)文件路径
enabled=1 启用
gpgcheck=0 取消验证

执行Yum生效命令
yum clean all #清空yum缓存
yum list #生成缓存列表

 

/bin:是Binary的缩写,这个目录存放着系统必备执行命令
/boot:这里存放的是启动Linux时使用的一些核心文件
/dev:Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:所有的系统管理所需要的配置文件和子目录。
/home:存放普通用户的家目录,在Linux中每个用户都有一个自己的家目录,
/lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备默认挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:系统管理员的家目录
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:类似于Windows上的防火墙
/tmp:存放临时文件的目录
/usr: 用户的应用程序安装的默认目录,类似与windows下的program files目录。
/var:存放一些经常被修改的目录放在这个目录下。包括各种日志文件。

对Linux系统中的目录和作用特别的熟悉

xfs文件系统的管理

Linux系统目录的结构,相对路径和绝对路径
创建,复制,删除文件,rm -rf
查看文件的内容
xfs文件系统的备份和恢复

Linux系统的目录结构:

/根分区 所有的文件和目录的起始点,只有超级管理员root用户拥有写的权限
/etc 配置文件,包含所有应用程序 的配置文件和特定的脚本文件
/etc/passwd
/etc/init.d/ 存放的都是脚本文件
/boot 存放的是Linux系统启动时候需要加载的文件,grub kernel
/var 包含的是经常可变的文件 ,/var/log 系统的日志文件
/root 存放的是管理员所有的数据,root用户的家目录
/tmp 存放的是不重要的数据,临时文件的存放位置,不存放重要的信息
/usr 是unix software source 的缩写,应用程序的源代码,
/usr/src 源代码目录
/bin 存放的是命令,二进制可执行程序
/sbin 存放的是管理员使用的命令,用来进行系统的维护,
/mnt 系统中默认的光驱挂载点
/dev 存放的是设备文件, mount/dev/sr0 /mnt/ 挂载光驱 mount /dev/cdrom /mnt/ 挂载光驱
/home 存放的是普通用户的所有数据
/proc 存放的是系统信息的文件 cat/proc/meminfo |grep "Mem" 查看内存信息 cat /proc/cpuinfo 查看cpu信息
/lib 存放的是系统的库文件 xx.a是静态库 xx.so 是动态库
静态库在编译时会被加载到二进制文件中 动态库在运行时会被加载到进程的内存空间中
Linux的库文件类似于windows中的.dll文件,这些库文件就是为了让程序能够正常编译运行

本地管理员会把目录安装在/usr/local 目录下并连接在/sur/local/bin 下的主执行程序

系统的所有设置都存放在/etc目录下

 

绝对路径和相对路径
路径:找到需用的文件需要知道这个文件的位置,表示文件位置的方式就是路径
绝对路径:在Linux中绝对路径是从/根开始的
相对路径:以.或者.. 开始的 一个点表示当前目录 两个点表示上级目录
pwd 查看当前的路径

cd /etc/sysconfig/network-scripts/

文件的创建查看复制删除

touch 新建一个空文件
创建一个目录
mkdir 新建一个空目录
嵌套创建目录文件
mkdir -p a/c/d

查看文件的内容

cat 文件名
more 文件名 不能后退,只能向前查看
less 文件名 可以前后翻页

查看一个文件的前几行
head -5 /etc/passwd
查看一个文件的后几行
tail -5 /etc/passwd

复制文件

cp 源文件 目标位置
复制一个目录
cp -r 源文件 目标位置

删除文件

rm -r 递归删除文件
rm -f 强制删除文件

xfs文件系统
fdisk /dev/sdb
n
p
1
+1G
p
w

查看一下分区是否ok

ls /dev/sdb1
同步分区到系统内核中去
partprobe
partprobe

格式化分区,并进行挂载

mkfs.xfs /dev/sdb1
创建挂载点
mkdir /sdb1
挂载
mount /dev/sdb1 /sdb1/

对整个分区进行备份
xfsdump -f /opt/dump_bak
数据的恢复
xfsrestore -f /opt/dump_bak /sdb1

 

vim编辑器

yy 复制当前光标所在行
y数字y 从第几行复制到第几行
u 撤销上一步的操作
dd 删除当前光标所在行
d数字d 从光标开始删除到第几行

Shift + $ 移动到行尾

Shift + ^ 移动到行头

a 在光标后插入

i 在光标前插入
o 在当前光标的下一行插入

ESC 退出编辑模式

-------------------------

vi命令模式下操作:
/被查找的关键词 n 查找下一个 shift+n 向上查找
?被查找的关键词 n 查找上一个 shift+n 向下查找

:wq! 强制保存后退出

:wq 保存后退出

Linux防火墙

查看防火墙状态 service iptables status
临时关闭防火墙 service iptables stop
关闭防火墙开机启动 chkconfig iptables off
开启防火墙开机启动 chkconfig iptables on

查看防火墙开机启动状态 chkconfig iptables --list
-------------------------
Linux系统有7个运行级别(runlevel)
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登录后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

-------------------------

sync (功能描述:将数据由内存同步到硬盘中)

-------------------------

shutdown [选项] 时间
shutdown -h 关机 halt : 关闭系统
shutdown -r 重启 reboot:就是重启

设置系统在10分钟后关机,并将此次关机提示显示在屏幕上

shutdown -h 10 ‘This server will shutdown after 10 mins’

远程登录到Linux

Linux系统中是通过SSH服务实现的远程登录功能,默认ssh服务端口号为 22
常用的Linux远程登录终端:
SecureCRT, Putty, SSH Secure Shell,XShell

Linux帮助查看

man 帮助文档命令

help 查看Shell内置命令的帮助信息

Linux中常用的快捷键

 

ctrl + c:停止进程

ctrl+l:清屏
彻底清屏是:reset

Linux中常用的命令

pwd:显示当前工作目录的绝对路径)

打印/home 的工作路径 pwd /home

ls 列出目录的内容

-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来
-l :长数据串列出,包含文件的属性与权限

mkdir 创建一个新的目录

-p:创建多层目录,递归的创建目录

rmdir 删除一个空的目录

touch 创建空文件

d ~或者cd :回到当前用户自己的家目录)

cd - :回到上一次所在目录
cd .. :回到当前目录的上一级目录)

cp 复制文件或目录

cp -r 递归的复制整个文件夹

rm 移除文件或目录

rmdir deleteEmptyFolder :删除空目录)
rm -rf deleteFile :递归删除目录中所有内容)

mv 移动文件与目录或重命名

cat 查看文件内容

tac查看文件内容,从最后一行开始显示

more 查看文件内容,一页一页的显示文件内容

less 查看文件内容

/字串 :向下搜寻『字串』的功能;n:向下查找;N:向上查找;
?字串 :向上搜寻『字串』的功能;n:向上查找;N:向下查找;

head查看文件内容

head -n 10 文件 (功能描述:查看文件头10行内容,10可以是任意行数)

tail 查看文件内容

-------------------------
重定向命令
> 覆盖写入重定向
>> 追加写入重定向

-------------------------

echo 打印字符串到屏幕上

ln软链接

history 查看所敲命令历史

date显示当前时间

(1)date :显示当前时间)
(2)date +%Y :显示当前年份)
(3)date +%m :显示当前月份)
(4)date +%d :显示当前是哪一天)
(5)date +%Y%m%d date +%Y/%m/%d … :显示当前年月日各种格式 )
(6)date "+%Y-%m-%d %H:%M:%S" :显示年月日时分秒)
用指定的格式显示时间
date "+%Y-%m-%d %H:%M:%S"
2017-06-19 20:54:58

date -s 字符串时间 设置系统的时间

(1)date -d '1 days ago' (功能描述:显示前一天日期)

(2)date -d yesterday +%Y%m%d (同上)
(3)date -d next-day +%Y%m%d (功能描述:显示明天日期)
(4)date -d 'next monday' (功能描述:显示下周一时间)

-------------------------

cal查看日历

Linux系统中用户与组管理

Linux中用户的管理:

用户账号的分类:
管理员用户:root
本地用户:在自己的家目录权限完整的
系统用户:不能登录系统的用户,用于维持某个服务程序的正常运行

账号的位置分类:本地账号,远程或域账号

账号的权限:
超级用户root, uid=0
系统用户UID 0-999
本地用户UID 1000+

用户账号信息的文件

/etc/passwd 密码:/etc/shadow
用户组的信息
/etc/group /etc/gshadow

新建一个用户:
useradd xxx
-u 设置uid
-d 设置家目录
-g 设置起始组,只能有一个
-G 设置附加组,可以有多个
-s 设置登录shell
-M 不创建家目录

查看一个用户是否新建OK

tail -1 /etc/passwd

id 用户名 查看一个用户的id信息

passwd文件内容:

用户名:密码占位符:UID:GID:用户描述:用户的家目录:登录shell

Linux中系统用户(伪用户),Linux中任何一个命令的执行都需要有一个用户的身份,伪用户不需要也不能登录系统,是为了保证系统或某个程序的运行而创建的

常用的一下伪用户:bin shutdown halt
-------------
userdel 删除一个用户
userdel -r 删除一个用户的时候同时删除用户的家目录

给一个用户设置密码

passwd 给当前的用户设置密码
passwd xxx用户名 给指定用户设置密码

用户密码的文件

/etc/shadow

用管道符给用户设置密码

echo xxx |passwd --stdin root 给root用户设置了一个密码xxx

修改用户的信息

usermod
-u 设置UID
-d 修改家目录
-g 修改起始组
-G 修改附加组
-s 修改登录shell

Linux中的用户组

本地用户组
远程或域用户组

系统用户组 UID 1-999

本地用户组 UID 1000+

新建一个用户组

groupadd xxx组名
查看一个组的信息
tail -1 /etc/group
grep xxx组名 /etc/group

组的配置文件

cat /etc/group

删除一个组

groupdel xxx组名

添加用户的模板文件

vim /etc/default/useradd

!$ 表示上条命令的参数

误删用户的系统变量文件的解决办法
rm -rf /home/xxx/.bash*
cp /etc/skel/.bash* /home/xxx/
chown xxx:xxx /home/xxx/.bash*

yum install -y finger

finger xxx用户名 查看一个用户的信息

修改root用户的密码

重启的时候 e
修改linux16这行,将ro修改为rw 添加init=/sysroot/bin/sh
Ctrl+X 重启系统
重启后输入
chroot /sysroot
passwd
123
123
重启
/bin/sh shutdown -r now
关闭selinux
setenforce 0

修改一个普通用户为管理员

/sbin/nologin 设置一个用户禁止登陆系统
修改
/etc/passwd
将普通用户的uid和gid都修改为0 就是把普通用户设置为管理员用户

useradd 添加新用户
passwd 设置用户密码
id 判断用户是否存在
-------------------------
su 与su - 的区别

userdel 删除用户

userdel -r 用户名 删除用户的时候也删除用户的家目录
-------------------------
who 查看登录用户信息

whoami 显示当前登录系统的用户名称

who 查看当前有哪些用户登录到了系统上

cat /etc/passwd 查看创建了哪些用户

usermod修改用户所属组

groupadd 新增组
groupdel删除组
groupmod修改组
cat /etc/group 查看创建了哪些组
-------------------------
chmod 修改文件或目录的权限

文件: r-查看;w-修改;x-执行文件

目录: r-列出目录内容;w-在目录中创建和删除;x-进入目录
删除一个文件的前提条件:该文件所在的目录有写权限,你才能删除该文件。
-------------------------
chown改变所有者
-R:表示递归修改文件夹中的所有文件的所有者和组

-------------------------

chgrp改变所属组

硬盘分区

fdisk -l :查看当前硬盘的分区详情
-------------------------
df查看硬盘信息
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型,连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示

-------------------------

mount/umount挂载/卸载
Linux 挂载
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构
Linux中每个分区都是用来组成整个文件系统的一部分,她在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。

-------------------------

find 查找文件或者目录

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

grep 过滤查找

-------------------------

Linux进程

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

ps查看系统中所有进程

ps -aux :查看系统中所有进程)
-------------------------
top查看当前系统的健康状态,默认是3秒更新一次命令的执行结果

Swap:交换分区(虚拟内存)

Mem:物理内存
running 正在运行的进程数
sleeping 睡眠的进程
stopped 正在停止的进程
zombie 僵尸进程

-------------------------

pstree查看进程树

kill终止进程

kill -9 pid进程号 表示强迫进程立即停止
-------------------------
netstat显示网络统计信息

netstat -anp (功能描述:此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容)

查看端口50070的使用情况

netstat -anp | grep 50070

tar打包

-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件

压缩:tar -zcvf XXX.tar.gz n1.txt n2.txt

解压:tar -zxvf XXX.tar.gz -C 解压目的地

-------------------------

service后台服务管理
1)查看指定服务的状态 service network status
2)停止指定服务 service network stop
3) 启动指定服务 service network start
4)重启指定服务 service network restart
5)查看系统中所有的后台服务 service --status-all

-------------------------

chkconfig设置后台服务的自启配置
1)查看所有服务器自启配置 chkconfig
2) 关掉指定服务的自动启动 chkconfig iptables off
3)开启指定服务的自动启动 chkconfig iptables on

Linux计划任务

crond系统定时任务
crontab
-e: 编辑crontab定时任务
-l: 查询crontab任务
-r: 删除当前用户所有的crontab任务

第一个“*” 一小时当中的第几分钟 0-59

第二个“*” 一天当中的第几小时 0-23
第三个“*” 一个月当中的第几天 1-31
第四个“*” 一年当中的第几月 1-12
第五个“*” 一周当中的星期几 0-7(0和7都代表星期日)

* 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。

, 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
- 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令
*/n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令

RPM软件包管理

rpm -qa (功能描述:查询所安装的所有rpm软件包)
rpm -qa | grep rpm软件包 查询指定的软件包
rpm -e RPM软件包 卸载一个软件包

安装一个软件包

rpm -ivh RPM包全名
-i=install,安装
-v=verbose,显示详细信息
-h=hash,进度条
--nodeps,不检测依赖进度

红帽软件包管理:

rpm软件包管理,
yum源安装软件包
源码包的安装和编译

RPM:redhat package manager

用光盘挂载安装yum软件包

查看一下当前的光驱是否挂载了
df

列出所有软件包的个数

ls /mnt/Packages/ | wc -l

安装一个rpm软件包:

rpm -ivh xxx.rpm

-i install 安装软件包

-v verbose 显示详细信息
-h hash 安装软件包的时候列出哈希标记

安装软件包的时候解决依赖关系检测失败

rpm -ivh xxx.rpm --nodeps
--nodeps 表示忽略依赖关系

查看当前系统中有哪些shell解释器

chsh -l
cat /etc/shells

查看一个软件包是否安装了

rpm -q xxx软件包名

rpm -qa xxx软件包名

rpm -qa |grep xxx软件包名

查看一个命令的路径

which xxx命令名

查看一个命令是哪个软件包安装的

rpm -qf `which xxx命令名`

卸载一个软件包

rpm -e xxx软件包名
卸载软件包的时候忽略依赖关系
rpm -e xxx软件包名 --force

使用yum 安装软件,基于c/s的架构

c=client
s=ftp,http,file

本地yum源的配置

删除yum源
rm -rf /etc/yum.repos.d/*
查看一下是否删除了
ls /etc/yum.repos.d/

vim /etc/yum.repos.d/rhel7.repo

写入
[xxx] yum源名称,用来区分不同的yum源
name=xxx yum的描述信息
baseurl=file:///mnt yum源的路径
enabled=1 1表示启用yum源
gpgcheck=0 1表示用秘钥检查rpm的正确性

执行清空yum的缓存
yum clean all
再次加载一下yum
yum list

yum安装一个软件包

yum install -y xxx软件包名

查看一下软件包组

yum grouplist
安装一组工具
yum groupinstall -y "工具包名称"
查看软件包组信息
yum grouplist

查看是否有某个软件包

yum list xxx*
或者
yum search xxx*
删除一个软件包
yum remove -y xxx软件包名
验证一下是否删除了
chsh -l

1.获取源码包
2.解压
3.配置,检测安装环境 ./configure
4.安装 make install

安装nginx源码包
useradd -s /sbin/nologin -M nginx 创建一个不登录系统,不创建家目录的用户nginx
tar -zxf nginx.tar.gz -C /usr/src/
cd /usr/src/nginx/
ls
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx

make

编译,将源代码编译成二进制可执行程序
make -j 4 启动四个进程进行编译

安装

make install

做软件包安装后的语法检测

/usr/local/nginx/sbin/nginx -t

查看nginx 服务是否启动了

netstat -anlpt |grep nginx
重启nginx
nginx -s reload

rpm包的升级安装

rpm -Uvh xxx.rpm

 

Linux系统介绍和RHEL7.2操作系统的安装

--------------------------------

RHEL7.2基本操作和可用实验快照的创建

--------------------------------

RHEL7基本命令操作

卸载

umount
挂载
mount

配置yum源

cat /etc/yum.repos.d/r
找到
vim /etc/yum.repos.d/rhel7.repo
写入
[rhel7]
name=xxxx
baseurl=file:///mnt
enabled=1
gpgcheck=0

查看一下yum是否配置ok

yum list

Linux中常用的一些单词

Terminal 终端
network-scripts 网络脚本
passwd 密码文件
nologin 禁止登陆
shutdown 关机
reboot 重启
poweroff 关机
grep 过滤
localhost 本机
useradd 添加用户
graphical 图形

使用终端不适用显示器,能节省成本

pts终端
tty终端

ifconfig 查看一下ip地址

终端分为:字符终端和图形终端
Ctrl+Alt+F2

tty 1-tty6

开机进入的就是tty1 图形化界面
图形界面的终端切换到字符界面的终端:Ctrl+Alt+F2-6
Alt+F1 从字符界面切换到图形界面或者用Ctrl+Alt+F1

pts虚拟终端:

Ctrl+Shift+T 打开多个伪终端

Ctrl+F4 关闭所有的终端

whoami 查看当前登录的用户名

who am i 查看当前登录的用户名

放大终端中的文字的大小:Ctrl+Shift++

缩小终端中的文字 Ctrl+-

远程登录

ssh 用户名@ip地址
ssh root@192.168.1.1

ps -aux |grep pts

查看系统中正在运行的进程
ps -aux

Ctrl+L 清屏

pid 进程号

pts 伪终端,pseudo-treminal slave 是通过ssh登录的终端叫pts终端

shutdown -c 取消关机

shutdown -r 重启
shutdown 1分钟后关机

shell提示符:用户名@主机名 当前的路径

# 管理员账户登录的系统
$ 普通用户登录的系统
切换用户
su 要切换的用户名
su - 要切换的用户名

shell解释器
用户把命令输入给shell shell把命令翻译给内核 内核把命令作用于硬件
查看系统中的shell有哪些
cat /etc/shells

ls -a 列出所有文件,点开头的包括隐藏文件

选项:命令执行的条件

参数:命令作用的对象

useradd -s /sbin/nologin -M xxx

useradd -s /sbin/nologin 创建一个用户的时候指定登录shell
-M 不创建家目录

新加的用户都在passwd的最后一行

tail -1 /etc/passwd

ls 查看当前目录下有哪些文件
ls -a 查看所有文件包括隐藏文件
ls -l 查看文件的相信信息

pwd 查看当前的工作路径

cd 切换目录
cd 返回到当前用户的家目录,等同于cd ~

Linux中文件的颜色

蓝色是目录文件
黑色是 普通文件
浅蓝色是链接文件
红色是压缩包
绿色是 可执行文件
黑底黄字是 设备文件

date +%Y %m %d 查看当前的年,月,日
查看bios的系统时间
hwclock
查看日期的帮助
date --help

date -s 修改系统的时间

内部命令

外部命令

关机命令:

poweroff
shutdown
init 0
halt

shutdown -h 关机

shutdown -h +3 表示3分钟后关机
Ctrl + C 取消关机
shutdwon -c 取消关机

init命令

init 0 表示关机
init 1 表示单用户模式,类似于windows中的安全模式,不能上网
init 2 没有nfs和网络的多用户模式,不能上网
init 3 完整的多用户模式
init 4 系统保留未使用的
init 5 图形化模式
init 6 重启模式

修改系统的运行级别、

systemctl isolate runlevel3.target 切换到字符界面
systemctl isolate runlevel5.target 切换到图形化界面

Tab 补全命令的快捷键

修改系统默认的运行级别

systemctl set-default multi-user.target 设置默认的运行级别是字符界面,
systemctl set-default graphical.target 设置默认的运行级别是图形化的界面,

查看当前系统默认的启动级别

systemctl get-default

runlevel3.target 和runlevel5.target 是multi-user.target 和graphical.target 的快捷方式

disabled 不可用
enabled 启用

文件的基本管理和xfs文进系统备份恢复

--------------------------------

vim编辑的使用和Xmanager远程工具的使用

--------------------------------

RHEL7用户管理的的相关配置文件介绍-用户及组的管理命令

--------------------------------

文件权限管理

文件的权限

touch a.txt 创建一个普通文件
ll a.txt 查看一个文件的权限信息
- 文件的类型
拥有者的权限
所属组权限
其他人的权限

拥有者

所属组
文件的名字

---------------------------

r read 读权限
w write 写权限
x execute 执行权限

对于文件的权限

读:可以查看一个文件
写:可以修改文件的内容
执行:可以运行一个脚本文件

对于目录的权限

读:可以查看目录中有哪些内容,ls
写:可以新建,删除,移动文件,复制文件
执行:可以进入一个目录,cd

shell脚本的后缀是.sh

权限的数字表示:

0 什么权限也没有通常用 - 表示没有权限的占位
1 x 执行权限
2 w 写权限
3 wx 可写可执行权限
4 r 读权限
5 rx 可读可执行权限
6 rw 可读可写权限
7 rwx 读写执行权限

- 0

r 4
w 2
x 1

二进制与十进制的转换

r 100 4
w 010 2
x 001 1

修改一个文件的权限

chmod 755 a.txt
新建一个文件默认是644权限

-a 给所有用户设置权限 all

-u 给文件的所有者设置权限 user
-o 给其他人设置权限 other
-g 给所属组设置权限 group

- 减掉一个权限

+ 增加一个权限

a+x 给所的人设置可执行权限

chmod a+x a.txt
给组设置可执行权限
chmod g+x a.txt
其他人去掉读权限
chmod o-r a.txt

查看一个目录的权限
ll -d 目录名
创建一个目录
mkdir 目录名

去掉目录的写权限

chmod u-w 目录名/
一次设置多个权限
chmod u=rwx g=rwx o=rws 目录名/

新建的一个文件默认没有可执行权限

 

chown 修改文件的拥有者和所属组

chown user:group 文件名
chown user 文件名
chown :group 文件名

修改一个目录中所有文件的权限

chmod u-x test/ -R

一个文件只有读的权限,拥有者是否可以在文件内写入内容,是可以的用vim 写入,:wq! 强制保存退出即可

umask=0022
查看系统中当前的umask值是多少
umask
0000 第一个0表示文件的特殊权限,第二个0表示文件所有者权限,第三个0表示文件所属组,第四个0表示其他人
普通用户的umask默认是002
管理员用户的umsak默认是022

新建的文件默认权限是644

新建的目录默认权限是755

SUID 只能设置在二进制可执行文件上,也就是命令文件上,对普通的文本和目录设置无效,作用是:程序运行的时候权限从执行者变更成程序所有者
SGID 可以给二进制可执行程序设置也可以给目录设置,作用:设置了SGID权限的目录下新建文件时,文件的所属组会继承上级目录的所属组
Stickybit 粘滞位

给一个目录设置SGID权限

chmod g+s test/
在test/目录下创建的文件都会继承test/目录的组

给less命令设置SUID权限

chmod u+s /bin/less

Stickybit 粘滞位,只能给目录设置,作用:设置了Sbit权限的目录下的文件只有root,文件的创建者,目录的所有者才能删除

s对应的数值:

u 4
g 2
o 1

acl权限:访问控制列表access control list

acl作用:可以对单个用户,单个文件,单个目录设置rwx权限

查看一下当前的硬盘是否支持acl权限

dumpe2fs /dev/sda1|grep acl
让系统支持acl权限
mount -o remount,acl /dev/sda1

查看某个文件是否有acl权限

getfacl a.txt
给一个文件设置acl权限
setfacl -m u:xxx:rw a.txt

给一个目录设置acl权限

setfacl -R -m u:xxx:rw test/
getfacl test/

删除acl

删除单个用户的acl权限
setfacl -x u:xxx a.txt
删除所有用户的acl权限
setfacl -b a.txt

隐藏权限

lsattr
chattr +a
chattr +i

rhel7-软件包管理

--------------------------------

文件的归档和压缩

文件打包

tar
文件压缩的好处:
方便文件在网上的传输,节约存储空间,

文件打包:方便移动

tar 文件打包
tar -cf 打包文件
tar -tvf 列出所有文件
tar -xf 解包文件

tar -cvf xxx.tar /boot/ 将boot目录打包、

c create 创建
f filename 文件名称
v 显示执行过程的详细信息

file 文件名 查看一个文件的类型
file a.txt

一次打包两个目录

tar -cvf xx.tar /boot/ /etc/test/

查看包中的内容

tar -tvf xxx.tar

将包解压到指定的目录中

tar -xvf xxx.tar -C /tmp/

查看一个目录的大小

du -sh /boot/
查看一个文件的大小
ll -h xxx.tar

tar 中的参数

-z gzip 工具压缩 压缩后缀是.gz

解压缩包

tar -zxvf xxx.tar.gz -C /tmp/

bzip2 压缩工具,后缀是.tar.bz2

压缩:tar cjvf xxx.tar.bz2
-j 表示使用的是bzip2压缩工具
解压:tar xjvf xxx.tar.bz2 -C /tmp/

bzip2压缩的文件比 gzip压缩的文件小

zip 压缩工具:zip -r xxx.zip /etc/passwd

解压缩zip unzip xxx.zip -d /tmp/

gzip 压缩工具:压缩后原文件会消失

gzip 1.txt 压缩后的文件是 1.txt.gz
gzip 解压缩:
gzip -d 1.txt.gz

程序与进程管理

作业:

1. 安装httpd ,查看httpd 的进程,(截图)
2. 杀掉全部的httpd的进程
3. 练习screen命令的使用
4. 理解top,ps命令的参数
5. ps -aux 的作用是什么?
6. ps -aux与ps -ef的区别?
------------------------
什么是进程呢?
进程就是运行中的程序。
------------------------
top 动态查看进程

进程管理:

什么是程序:为完成某个任务而设计的软件
什么是进程:进程就是在运行中的程序

一个运行着的程序,可能有多个进程

ps
kill
pgrep
top

ps -aux 静态的查看进程

top 动态的监视进程

ps -r 显示在运行中的进程

ps -e 显示所有进程

列出所有正在内存中运行的进程信息

ps -auf
或者
ps -aux

stat 查看当前进程的状态

----------------------------
top 动态的查看系统中的进程
running 正在运行的进程数
sleeping 睡眠的进程数
stoped 停止的进程数
zombie 僵尸进程

-------------------------

top命令
top 默认3秒刷新一次 ,
空格键表示立即刷新

M键 按内存的大小排序

P键 按CPU占用大小排序

Q键 退出top命令
----------------------------
pgrep 查看某个服务的进程号

kill -9 进程号 立即杀死某个进程号

--------------
proc目录,当前系统运行的所有进程都动态的存放在这个目录中,proc目录在内存中
---------------
kill 关闭某个进程
kill 进程号 关闭某个进程、
kill -9 进程号 表示强制关闭某个进程
kill -1 进程号 表示重启某个进程

killall

ps -aux |grep httpd 查看某个进程对应的详细的运行着的进程号

强制杀掉进程httpd
killall -9 httpd

Ctrl+C 终止一个进程 停止的意思
Ctrl+Z 挂起一个进程 暂停的意思

kill -l
----------------------
改变一个正在运行中的进程的优先级:
ps -aux |grep vim
renice -5 进程号 修改进程的优先级为5
top -p 进程号 查看某个进程的详细信息

-----------------

查看系统内存的使用状况
cat /proc/meminfo |grep "Swap"
效果等同于
free -m
-----------------
安装screen 软件包

Ctrl +A+D 暂时中断当前会话

默认的优先级是0

-20是最高级的优先级
nice 执行程序的运行的优先级
renice 修改正在运行的进程的优先级

重定向和文件查找

Linux重定向命令,

Linux中一切皆文件

查看linux中默认的文件描述符

ulimit -n
修改系统中默认的文件描述符
ulimit -HSn 65536

stdin 标准输入 0 通常是键盘的输入

stdout 标准输出1
stderr 标准错误2

重定向输出:将命令的正常输出结果保存到指定的文件中

> 覆盖写入,慎用
>> 追加写入
若重定向指定的文件不存在,会自动创建这个文件

uname -a

uname -p 查看系统内核的信息
uname -r 查看当前系统的内核的版本号

借用重定向从文件中读物内容

< 输入重定向
vim passwd.txt
123456
passwd --stdin xxx < passwd.txt

2> 错误的覆盖写入

2>> 错误的追加写入

/dev/null Linux中的黑洞文件,

& 等同于

&> 混合输出,不区分对错

ps -aux |grep vim 查看vim的进程信息

利用管道符给用户设置密码
echo "123456" | passwd --stdin xxx

tee 读取数据,并将读取到的数据输入到一个文件中去

who | tee who.txt

which 查看linux中可执行文件的位置或路径

which useradd
which pwd

whereis 查看可执行文件的位置和相关的配置文件的位置

locate 快速查看一个文件的位置

updatedb 更新locate命令的数据库

grep 过滤

查看一个文件第四行的内容
cat a.txt | grep 4

grep

-i 忽略大小写
^ 开头
$ 结尾
-v 过滤关键字
过滤掉空行
cat a.txt | grep ^$

echo $? 查看一个命令是否执行OK 0表示执行正常不是0表示执行失败

 

find命令的高级用法

find命令的高级使用

-name 按照文件名来查找
-perm 按照文件权限来查找
-user 按照文件的所有者查找
-group 按照文件的所属组来查找
-mtime 按照文件的修改时间来查找文件
-type 按照文件的类型来查找文件
-size 按照文件的大小查找文件

~ 波浪号表示家目录

查找etc下host开头的文件

find /etc/ -name "host*" -print
查找当前目录下权限位755的文件
find . -perm 755 -print
查找一个文件的时候忽略某个目录
find /xxx/ -path "/yyy/zzz/" -prune -o -print

查找所属用户是xxx的文件

find /etc -user xxx -print
查找所属组已经被删除的文件
find /home/ -nouser -print

查找在5天之内修改过的文件

find /root/ -mtime -5 -print

查找在5天之前修改过的文件

find /root/ -mtime +5 -print

找出/etc/下所有的目录文件

find /etc/ -type d -print
查找当前目录下所有不是目录的文件
find . ! -type d -print
! 感叹号表示取反

查看当前目录下文件大小大于1M的文件

find . -size +1024K -print
find . -size +1M -print

硬盘介绍和磁盘管理

Linux中的硬盘:

使用fdisk对硬盘进行分区,格式化
希捷硬盘
SCSI硬盘:Samll Computer System Interface小型计算机系统接口,是一种高速的数据传输技术
SAS Serial Attached SCISI 串行连接SCISI
SATA Serial ATA 串口硬盘
SSD 固态硬盘:
IDE:Integrated Drive Electronics 电子集成驱动器,
主分区有4个:1234

fdisk /dev/sdb

n
p
+1G

格式化

mkfs make file system 创建文件系统
mkfs.ext4 /dev/sdb1
blkid /dev/sdb1 查看uuid的命令,查看分区文件系统的类型

mke2fs

挂载

创建一个挂载点
mkdir /sdb1
挂载
mount /dev/sdb1 /sdb1
查看一下挂载是否OK
df

UUID是唯一的设备标识符
查看一下当前系统下的所有设备的UUID
blkid
查看指定硬盘的SUUID
blkid |grep sdb1

Linux中设备开机自动挂载的配置文件

vim /etc/fstab
/dev/sr0 /mnt iso9660 0 0 设置系统中光驱文件的开机自动挂载
UUID="" /sdb1 ext4 defaults 0 0 设置系统中的某个指定的硬盘开机自动挂载

执行一下挂载

mount -a
查看挂载是否OK
df

卸载挂载

umount /sdb1 直接卸载挂载点

特殊的挂载:挂载的时候指定文件系统

mount -t ext4 /dev/sdb1 /sdb1/
查看一下挂载信息
df

查看一下软件包是否安装了
rpm -qf `parted`

查看磁盘的状态

parted -l

文件系统组成和磁盘加密

--------------------------------

RAID磁盘阵列-raid0搭建

--------------------------------

RAID磁盘阵列-lvm逻辑卷

--------------------------------

LVM管理ssm存储器磁盘配额技巧

--------------------------------

计划任务和日志管理

Linux计划任务与日志服务器的管理-视频链接

at计划任务的使用
cron 计划任务的使用

计划任务:在某个时间段自动执行某个任务

at计划任务:只能执行一次,
at 时间
at 的服务是atd
查看计划任务at是否开启了服务
systemctl status atd
重启一下这个服务
systemctl restart atd
设置开机自动启动这个服务
systemctl enable atd

使用at创建一个计划任务

查看当前的时间
date

at 20:20

mkdir /root/xxx
Ctrl+D 结束这个计划任务的输入
查看系统中创建成功的计划任务有哪些
at -l

在某天的某时间执行一个计划任务

at 20:20 2018-06-22
rm -rf /root/xxx
mkdir /tmp/xxx

用now创建计划任务

at not +10min
touch /opt/xxx.txt
echo "xxx" > /opt/xxx.txt

对于系统来说,计划任务就是在某个特定的时刻,执行一个脚本文件

创建成功的at计划任务会在/var/spool/at/目录下生成一个可执行脚本文件
ls /var/spool/at/*

删除at计划任务

atrm 计划任务的编号
at -l 查看一个计划任务的编号

at计划任务只执行一次,下次就不能再次执行

在生产环境中一般都是周期的去执行某个计划任务 比如:备份日志

周期性的计划任务

cron
cron的服务是 Crond 服务

查看一个服务是否启动成功

systemctl status crond.service
重启一下计划任务服务
systemctl restart crond
设置开机自动启动
systemctl enable crond

cron 周期计划任务的级别

系统级别的计划任务
用户级别的计划任务,针对的root用于与普通用户
cron的配置文件
vim /etc/cron
分 时 日 月 星期 用户名 需要执行的命令

系统级别的计划任务的粗放位置:

/etc/cron.*
ll /etc/cron.

真对用户级别的计划任务
对于root用户
crontab -e 创建一个计划任务
crontab -l 显示,查看一个计划任务
crontab -r 删除计划任务

crontab 的配置文件是 /etc/crontab

创建一个计划任务
crontab -e
11 11 * * * mkdir /root/xxx

分 时 日 月 星期 的取值范围

分:0-59
时:0-23
日:1-31
月:1-12
星期:0-7 其中0和7都表示的是星期日

查看当前系统有哪些计划任务

crontab -l

创建一个计划任务:在每月的9,18,22这几天的凌晨1点1分,执行一个备份脚本

1 1 9,18,22 * * /root/xxx.sh

创建一个计划任务:在每月的9到22这几天的凌晨1点1分,执行一个备份脚本

1 1 9-22 * * /root/xxx.sh

创建一个计划任务:每5分钟执行一次
*/5 * * * * /root/xxx.sh

cron 用在控制循环执行例行性工作,如果我要设定机器每早8点进行备份 除非保证机器8点的这个时间点不关机,如果关机了,cron中的脚本,在下次开机将不会被执行

anacron 用于在机器重启后,监听有没有没有执行的cron计划任务,如果有,会立即执行一下这个没有执行的计划任务

日志
查看日志的存放位置
ls /var/log/

/var/log/wtmp 存放的是系统登录和退出登录的信息

last 查看某个用户什么时候登录和退出登录了系统

清空wtmp文件

> /var/log/wtmp
查看一下是否清空了
cat /var/log/wtmp
last

/var/log/lastlog 记录的是用户最后登录系统的信息

lastlog 记录的是所有用户什么时候登录过系统

用户登录系统错误的信息日志

/var/log/btmp

lastb 查看系统中错误的登录用户信息

ll -h 查看一个文件的大小

日志信息的级别

debug 排错信息
info 正常的信息
notice 注意
warn 警告

日志服务的配置文件

/etc/syslog.conf
或者是
/etc/rsyslog.conf

编辑一下配置文件

vim /etc/rsyslog;conf

日志回滚:

编辑日志回滚的配置文件
/etc/logrotate.conf
重启一下日志服务
systemctl restart rsyslog
查看一下端口信息
netstat -anlpt |grep 514

动态的查看日志信息

tail -f /var/log/message

编译安装内核支持ntfs文件系统

--------------------------------

RHEL6启动原理和故障排除

 

Linux系统的启动过程:

开机自检-MBR引导-GRUB菜单-加载Linux内核-init进程初始化-登录系统-BIOS-MBR-GRUB-kernel-init process -login

加载Bios:因为BIOS中包含了CPU的相关信息,设备启动顺序,硬盘信息,内存信息,时钟信息

读取MBR:硬盘的磁道扇区,硬盘上的第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,存放了预启动信息和分区表信息

1.引导:PRE-BOOT 占446个字节
2.分区:Partition Pable 占66个字节,记录硬盘的分区信息
引导分区的作用是,找到标记为活动Active的分区,并将活动分区的引导区读入内存,系统找到BIOS所指定的硬盘的MBR后,就会将其复制到地址所在的物理内存中,被复制到物理内存
中的内容是Boot Loader,也就是Grub

Boot Loader :初始化硬件,建立内存空间,

系统根据读取内存中的grub配置信息(menu.lst或grub.lst),并按照配置信息来启动不同的操作系统

加载内核:系统将解压后的内核放置在内存中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立,当Linux内核建立完成后,基于

Linux的应用程序就可以正常运行在系统中了

init根据inittab文件类设置运行等级:

查看一下当前系统的运行级别
runlevel

切换运行级别:

init 运行级别
init 0 关机
init 1 单用户模式
init 2 无网络的多用户模式
init 3 有网络的多用户模式
init 4 未使用,系统保留的运行级别
init 5 有网络支持的图形化x-windows的多用户模式
init 6 重新引导系统,重启系统

init进程执行rc.sysinit文件:

vim /etc/rc
在设定运行级别后,Linux系统执行的第一个文件是/etc/rc.d/rc.sysinit 脚本程序,它的功能是设定Path,设定网络配置(/etc/sysconfig/network),启动swap分区,设定/proc

执行不同运行级别的脚本程序:

根据运行级别的不同,系统会运行/etc/rc0.d到rc6.d中相应的脚本程序,来完成相应的初始化工作和启动相应的服务

查看当前的运行级别

renlevel
查看系统的启动级别的服务
vim /etc/rc.5.d/
K开头的表示开机不启动
S开头的表示开机启动

查看Apache服务的状态

service httpd status

系统中服务的脚本的路径

/etc/init.d/
cd /etc/init.d/
ls

查看一个服务当前运行级别中是否运行

chkconfig --list httpd
在当前运行级别中开启一个服务
chkconfig httpd on
设置一个服务在某个级别中是开启的
chkconfig --level 1 httpd on

/etc/rc.d/rc.local 在系统初始化后,系统加载的启动项

/bin/login 等待验证用户输入的用户名和密码来进入系统中去

 进入系统的救援模式

进入bios

 

调整到第一个

 救援模式

切换文件系统

chroot /mnt/sysimage
fdisk -l

连接U盘

 

挂载

modprobe vfat
mount -t vfat /dev/sdb /media/
查看是否挂载成功
df | tail -1
开始复制数据
cp /etc/passwd /media/
cp /etc/shadow /media/
ls /media/
卸载
umount /dev/sdb
断开U盘连接

 

防止 root用户密码被破解的方法

grub-md5-crypt
修改grub配置文件
vim /boot/grub/grub.conf

用grub生成md5加密

 

 title前的密码设置是对 grub的加密

title后的密码设置是对开机进行加密

重启后按p进入,输入密码:title前设置的密码

按e使用titile后设置的密码登录系统

 

 

inode 节点耗尽故障

ls /dev/sd*

分区
fdisk /dev/sdb
n
1
p
1
+32M
p
w

查看一下分区

ls /dev/sd*
格式化
mkfs.ext4 /dev/sdb1
挂载
mkdir /data
mount /dev/sdb1 /data/
查看一下节点号
df -i /data/

写inode耗尽的命令

#!/bin/bash
i=1
while [ $i -le 10040 ]
do
touch /data/file$i
let i++
done

执行一下脚本

sh inode.sh
查看一下可用的节点好
df -i /data/

查看一下空间

df -hT /data/
rm -rf /data/file*
再次查看一下系统中可用节点号
df -i /data/

检测硬盘的坏道

逻辑坏道:软件操作不当,造成的损坏
物理坏道:物理损坏,更改磁盘分区的占用位置

检测一下磁盘是否有坏道

badblocks -sv /dev/sdb

RHEL7启动引导配置和服务管理

--------------------------------

网络管理相关的命令

======================================

 

 

Linux中的Shell脚本

写一个简单的脚本
脚本以 #!/bin/bash 开头

#!/bin/bash

# 脚本的注释:打印helloworld
echo "helloworld"

执行一个脚本前需要先给这个脚本设定一个执行权限

chmod 777 helloworld.sh
./helloWorld.sh
或者
bash helloWorld.sh
-------------------------
Linux Shell中的变量分为,系统变量和用户自定义变量。
系统变量:系统变量:$HOME、$PWD、$SHELL、$USER

-------------------------

设置环境变量
(1)export 变量名=变量值 :设置环境变量的值)
(2)source 配置文件 :让修改后的配置信息立即生效)
(3)echo $变量名 :查询环境变量的值)
-------------------------
Shell脚本中的位置参数
位置参数变量
$n (功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$# (功能描述:这个变量代表命令行中所有参数的个数)

写一个简单的参数小脚本

#!/bin/bash
echo "$0 $1 $2"
echo "$*"
echo "$@"
echo "$#"

-------------------------

常用判断条件
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于

2)按照文件权限进行判断

-r 有读的权限
-w 有写的权限
-x 有执行的权限

3)按照文件类型进行判断

-f 文件存在并且是一个普通文件
-e 文件是否存在
-d 目录是否存在

示例:

23是否大于等于22
[ 23 -ge 22 ]
(2)student.txt是否具有写权限
[ -w student.txt ]
(3)/root/install.log目录中的文件是否存在
[ -e /root/install.log ]
-------------------------
流程控制语句:
if判断

if [ 条件判断式 ]

then
程序
fi

写一个简单的小脚本,判断输入的数是否等于123,是否等于456

#!/bin/bash

if [ $1 -eq "123" ]

then
echo "123"
elif [ $1 -eq "456" ]
then
echo "456"
fi
-------------------------
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac

写一个简单的case判断小脚本

!/bin/bash

case $1 in

"1")
echo "1"
;;

"2")

echo "2"
;;
*)
echo "other"
;;
esac

-------------------------

for循环
for 变量 in 值1 值2 值3…
do
程序
done

写一个简单的小脚本,打印输入的参数

#!/bin/bash
#打印数字

for i in "$*"

do
echo "The num is $i "
done

for j in "$@"

do
echo "The num is $j"
done

第二种for循环
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done

写一个简单的小脚本

#!/bin/bash

s=0

for((i=0;i<=100;i++))
do
s=$[$s+$i]
done
echo "$s"
-------------------------
while循环
while [ 条件判断式 ]
do
程序
done

写一个简单的小脚本

#!/bin/bash
s=0
i=1
while [ $i -le 100 ]
do
s=$[$s+$i]
i=$[$i+1]
done

echo $s

-------------------------
read读取控制台输入
-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒)

Yum软件仓库

YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

为什么需要学会配置本地Yum源

YUM源虽然可以简化我们在Linux上安装软件的过程,但是生产环境通常无法上网,不能连接外网的YUM源,所以就无法使用yum命令安装软件了。为了在内网中也可以使用yum安装相关的软件,就要配置yum源。

YUM源其实就是一个保存了多个RPM包的服务器,可以通过http的方式来检索、下载并安装相关的RPM包。

 

yum的常用命令:

yum install -y rpm软件包
yum list :列出所有可用的package和package组)
yum list :列出所有可用的package和package组)
yum clean all :清除所有缓冲数据)
yum deplist rpm软件包 :列出一个包所有依赖的包)
yum remove rpm软件包 :删除httpd)
-------------------------

 

转载于:https://www.cnblogs.com/GaoNa/p/10758702.html

你可能感兴趣的文章
栈---面试知识点整理
查看>>
DataGridViewRow的DataBoundItem属性
查看>>
Weka开发[3]-Evaluation类
查看>>
调用webservice进行身份验证
查看>>
[模板]树链剖分
查看>>
Python之克隆
查看>>
八(第一篇)、主体结构元素——article元素、section元素
查看>>
BZOJ 1222: [HNOI2001]产品加工( dp )
查看>>
spring 必知
查看>>
使用自定义端点创建一个巴斯启用桌面应用程序发送通知到您的移动应用程序...
查看>>
抢占旅游移动APP高地
查看>>
ucore lab2
查看>>
[Untiy]贪吃蛇大作战(一)——开始界面
查看>>
网站中集成jquery.imgareaselect实现图片的本地预览和选择截取
查看>>
random(随机)模块
查看>>
1365 - 木杆上的蚂蚁
查看>>
Spire pdf 操作pdf,页眉 页脚 水印 二维码
查看>>
[bzoj3668][Noi2014]起床困难综合症/[洛谷3613]睡觉困难综合症
查看>>
Hibernate案例-------基于xml配置,使用Hibernate实现对员工表的增、删、改、查功能...
查看>>
Web前端面试题目汇总
查看>>