Linux基础知识梳理

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值