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.2Test this media & install Red Hat Enterprise Linux 7.2 测试安装文件并安装RHEL 7.2Troubleshooting 修复故障一般选择第一项就可以了
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 清屏,clearCtrl+C 取消当前的执行Ctrl+Alt+Enter 全屏ifconfig 查看当前系统的IP地址
编辑网卡的配置信息vim /etc/sysconfig/network-scripts/ifcfg-enosystemctl restart network
能说出Linux中常见的系统目录及作用
设置固定的IP地址
关闭系统的防火墙关闭SELinux设置光盘自动挂载配置本地yum源 yum文件的格式必须是.repo结尾的ifconfig 查看当前系统的ip地址
查看网络服务的状态systemctl status network启动网路服务systemctl start network重启网卡systemctl restart network启动图形化界面编辑网卡信息
nmtuinmtui-edit enoifup 开启网卡
ifdown 关闭网卡网卡的配置文件位置
vim /etc/sysconfig/network-scripts/ 关闭防火墙systemctl stop firewalld 设置开机自动关闭防火墙systemctl disable firewalldSelinux的配置文件
vim /etc/selinux/configsetenforce 0 临时关闭SELinux
设置开机自动关闭SELinuxsed -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_yumbaseurl=file:///mntenabled=1gpgcheck=0执行清空原有yum的缓存
yum clean all加载当前的yum源yum list all卸载安装光盘
umount /dev/sr0--------------------学习目标:1、 固定的可以联网IP地址2、 关闭防火墙3、 关闭selinux4、 光盘自动挂载5、 配置好本地yum源-------------------------
重启网卡systemctl restart network查看IP地址ifconfig修改IP地址nmtui-edit eno16777736激活网络配置nmtui或者,直接重启网卡systemctl restart network---------------------------------关闭防火墙并设置开机自动关闭systemctl stop firewalldsystemctl 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/fstabmount -a---------------------------------
Yum的配置删除原有的文件rm -fr /etc/yum.repos.d/*创建文件 文件的格式 必须是.reporhel7.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/sdbnp1+1Gpw查看一下分区是否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,XShellLinux帮助查看
man 帮助文档命令help 查看Shell内置命令的帮助信息
Linux中常用的快捷键
ctrl + c:停止进程
ctrl+l:清屏彻底清屏是:resetLinux中常用的命令
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:58date -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/passwdid 用户名 查看一个用户的id信息
passwd文件内容:
用户名:密码占位符:UID:GID:用户描述:用户的家目录:登录shellLinux中系统用户(伪用户),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 修改登录shellLinux中的用户组
本地用户组远程或域用户组系统用户组 UID 1-999
本地用户组 UID 1000+新建一个用户组
groupadd xxx组名查看一个组的信息tail -1 /etc/groupgrep 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/shCtrl+X 重启系统重启后输入chroot /sysrootpasswd 123123重启/bin/sh shutdown -r now 关闭selinuxsetenforce 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 50070tar打包
-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)查看所有服务器自启配置 chkconfig2) 关掉指定服务的自动启动 chkconfig iptables off 3)开启指定服务的自动启动 chkconfig iptables onLinux计划任务
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=clients=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再次加载一下yumyum listyum安装一个软件包
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.配置,检测安装环境 ./configure4.安装 make install 安装nginx源码包useradd -s /sbin/nologin -M nginx 创建一个不登录系统,不创建家目录的用户nginxtar -zxf nginx.tar.gz -C /usr/src/cd /usr/src/nginx/ls./configure --prefix=/usr/local/nginx --user=nginx --group=nginxmake
编译,将源代码编译成二进制可执行程序make -j 4 启动四个进程进行编译安装
make install做软件包安装后的语法检测
/usr/local/nginx/sbin/nginx -t查看nginx 服务是否启动了
netstat -anlpt |grep nginx 重启nginxnginx -s reloadrpm包的升级安装
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=xxxxbaseurl=file:///mntenabled=1gpgcheck=0查看一下yum是否配置ok
yum listLinux中常用的一些单词
Terminal 终端network-scripts 网络脚本passwd 密码文件nologin 禁止登陆shutdown 关机reboot 重启poweroff 关机grep 过滤localhost 本机useradd 添加用户graphical 图形使用终端不适用显示器,能节省成本
pts终端tty终端ifconfig 查看一下ip地址
终端分为:字符终端和图形终端Ctrl+Alt+F2tty 1-tty6
开机进入的就是tty1 图形化界面图形界面的终端切换到字符界面的终端:Ctrl+Alt+F2-6Alt+F1 从字符界面切换到图形界面或者用Ctrl+Alt+F1 pts虚拟终端:Ctrl+Shift+T 打开多个伪终端
Ctrl+F4 关闭所有的终端whoami 查看当前登录的用户名
who am i 查看当前登录的用户名放大终端中的文字的大小:Ctrl+Shift++
缩小终端中的文字 Ctrl+-远程登录
ssh 用户名@ip地址ssh root@192.168.1.1ps -aux |grep pts
查看系统中正在运行的进程ps -auxCtrl+L 清屏
pid 进程号
pts 伪终端,pseudo-treminal slave 是通过ssh登录的终端叫pts终端shutdown -c 取消关机
shutdown -r 重启shutdown 1分钟后关机shell提示符:用户名@主机名 当前的路径
# 管理员账户登录的系统$ 普通用户登录的系统切换用户su 要切换的用户名su - 要切换的用户名 shell解释器用户把命令输入给shell shell把命令翻译给内核 内核把命令作用于硬件查看系统中的shell有哪些cat /etc/shellsls -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 --helpdate -s 修改系统的时间
内部命令
外部命令关机命令:
poweroff shutdown init 0haltshutdown -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-defaultrunlevel3.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写:可以新建,删除,移动文件,复制文件执行:可以进入一个目录,cdshell脚本的后缀是.sh
权限的数字表示:
0 什么权限也没有通常用 - 表示没有权限的占位1 x 执行权限2 w 写权限3 wx 可写可执行权限4 r 读权限5 rx 可读可执行权限6 rw 可读可写权限7 rwx 读写执行权限- 0
r 4w 2x 1二进制与十进制的转换
r 100 4w 010 2x 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值是多少umask0000 第一个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/lessStickybit 粘滞位,只能给目录设置,作用:设置了Sbit权限的目录下的文件只有root,文件的创建者,目录的所有者才能删除
s对应的数值:
u 4g 2o 1acl权限:访问控制列表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隐藏权限
lsattrchattr +achattr +irhel7-软件包管理
--------------------------------
文件的归档和压缩
文件打包
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.tartar 中的参数
-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.gzgzip 解压缩:gzip -d 1.txt.gz程序与进程管理
作业:
1. 安装httpd ,查看httpd 的进程,(截图)2. 杀掉全部的httpd的进程3. 练习screen命令的使用4. 理解top,ps命令的参数5. ps -aux 的作用是什么?6. ps -aux与ps -ef的区别?------------------------什么是进程呢?进程就是运行中的程序。------------------------top 动态查看进程进程管理:
什么是程序:为完成某个任务而设计的软件什么是进程:进程就是在运行中的程序一个运行着的程序,可能有多个进程
pskillpgrep topps -aux 静态的查看进程
top 动态的监视进程ps -r 显示在运行中的进程
ps -e 显示所有进程列出所有正在内存中运行的进程信息
ps -auf或者ps -auxstat 查看当前进程的状态
----------------------------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 查看某个进程对应的详细的运行着的进程号
强制杀掉进程httpdkillall -9 httpd Ctrl+C 终止一个进程 停止的意思Ctrl+Z 挂起一个进程 暂停的意思 kill -l ----------------------改变一个正在运行中的进程的优先级:ps -aux |grep vimrenice -5 进程号 修改进程的优先级为5top -p 进程号 查看某个进程的详细信息-----------------
查看系统内存的使用状况cat /proc/meminfo |grep "Swap"效果等同于free -m -----------------安装screen 软件包Ctrl +A+D 暂时中断当前会话
默认的优先级是0
-20是最高级的优先级nice 执行程序的运行的优先级renice 修改正在运行的进程的优先级重定向和文件查找
Linux重定向命令,
Linux中一切皆文件查看linux中默认的文件描述符
ulimit -n 修改系统中默认的文件描述符ulimit -HSn 65536stdin 标准输入 0 通常是键盘的输入
stdout 标准输出1stderr 标准错误2重定向输出:将命令的正常输出结果保存到指定的文件中
> 覆盖写入,慎用>> 追加写入若重定向指定的文件不存在,会自动创建这个文件uname -a
uname -p 查看系统内核的信息uname -r 查看当前系统的内核的版本号借用重定向从文件中读物内容
< 输入重定向vim passwd.txt123456passwd --stdin xxx < passwd.txt2> 错误的覆盖写入
2>> 错误的追加写入/dev/null Linux中的黑洞文件,
& 等同于
&> 混合输出,不区分对错
ps -aux |grep vim 查看vim的进程信息
利用管道符给用户设置密码echo "123456" | passwd --stdin xxxtee 读取数据,并将读取到的数据输入到一个文件中去
who | tee who.txtwhich 查看linux中可执行文件的位置或路径
which useraddwhich pwdwhereis 查看可执行文件的位置和相关的配置文件的位置
locate 快速查看一个文件的位置
updatedb 更新locate命令的数据库grep 过滤
查看一个文件第四行的内容cat a.txt | grep 4grep
-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 -printfind . -size +1M -print硬盘介绍和磁盘管理
Linux中的硬盘:
使用fdisk对硬盘进行分区,格式化希捷硬盘SCSI硬盘:Samll Computer System Interface小型计算机系统接口,是一种高速的数据传输技术SAS Serial Attached SCISI 串行连接SCISISATA Serial ATA 串口硬盘SSD 固态硬盘:IDE:Integrated Drive Electronics 电子集成驱动器,主分区有4个:1234fdisk /dev/sdb
np +1G格式化
mkfs make file system 创建文件系统mkfs.ext4 /dev/sdb1blkid /dev/sdb1 查看uuid的命令,查看分区文件系统的类型mke2fs
挂载
创建一个挂载点mkdir /sdb1挂载mount /dev/sdb1 /sdb1查看一下挂载是否OKdf UUID是唯一的设备标识符查看一下当前系统下的所有设备的UUIDblkid 查看指定硬盘的SUUIDblkid |grep sdb1Linux中设备开机自动挂载的配置文件
vim /etc/fstab/dev/sr0 /mnt iso9660 0 0 设置系统中光驱文件的开机自动挂载UUID="" /sdb1 ext4 defaults 0 0 设置系统中的某个指定的硬盘开机自动挂载执行一下挂载
mount -a查看挂载是否OKdf卸载挂载
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创建一个计划任务
查看当前的时间dateat 20:20
mkdir /root/xxxCtrl+D 结束这个计划任务的输入查看系统中创建成功的计划任务有哪些at -l在某天的某时间执行一个计划任务
at 20:20 2018-06-22rm -rf /root/xxxmkdir /tmp/xxx用now创建计划任务
at not +10mintouch /opt/xxx.txtecho "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 crondcron 周期计划任务的级别
系统级别的计划任务用户级别的计划任务,针对的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.shcron 用在控制循环执行例行性工作,如果我要设定机器每早8点进行备份 除非保证机器8点的这个时间点不关机,如果关机了,cron中的脚本,在下次开机将不会被执行
anacron 用于在机器重启后,监听有没有没有执行的cron计划任务,如果有,会立即执行一下这个没有执行的计划任务 日志查看日志的存放位置ls /var/log//var/log/wtmp 存放的是系统登录和退出登录的信息
last 查看某个用户什么时候登录和退出登录了系统
清空wtmp文件
> /var/log/wtmp查看一下是否清空了cat /var/log/wtmplast/var/log/lastlog 记录的是用户最后登录系统的信息
lastlog 记录的是所有用户什么时候登录过系统用户登录系统错误的信息日志
/var/log/btmplastb 查看系统中错误的登录用户信息
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,也就是GrubBoot 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 vfatmount -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/sdbn1p1+32Mpw查看一下分区
ls /dev/sd*格式化mkfs.ext4 /dev/sdb1挂载mkdir /datamount /dev/sdb1 /data/查看一下节点号df -i /data/写inode耗尽的命令
#!/bin/bashi=1while [ $i -le 10040 ]dotouch /data/file$ilet i++done执行一下脚本
sh inode.sh查看一下可用的节点好df -i /data/查看一下空间
df -hT /data/rm -rf /data/file*再次查看一下系统中可用节点号df -i /data/检测硬盘的坏道
逻辑坏道:软件操作不当,造成的损坏物理坏道:物理损坏,更改磁盘分区的占用位置检测一下磁盘是否有坏道
badblocks -sv /dev/sdbRHEL7启动引导配置和服务管理
--------------------------------
网络管理相关的命令
======================================
Linux中的Shell脚本
写一个简单的脚本脚本以 #!/bin/bash 开头#!/bin/bash
# 脚本的注释:打印helloworldecho "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/bashecho "$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/bashif [ $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/bashcase $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 " donefor j in "$@"
do echo "The num is $j" done 第二种for循环for (( 初始值;循环控制条件;变量变化 )) do 程序 done写一个简单的小脚本
#!/bin/bashs=0
for((i=0;i<=100;i++))do s=$[$s+$i]doneecho "$s"-------------------------while循环while [ 条件判断式 ] do 程序 done写一个简单的小脚本
#!/bin/bashs=0i=1while [ $i -le 100 ]do s=$[$s+$i] i=$[$i+1]doneecho $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)-------------------------