练习环境
每个学员机上有三台预先配置好的虚拟机
server —— 作为练习用服务器 172.25.0.11
desktop —— 作为练习用客户机 172.25.0.10
classroom —— 提供网关/DNS/软件素材等资源 172.25.0.254
虚拟机Server
P地址:172.25.0.11
主机名:server0.example.com
系统版本:RHEL 7.0
虚拟机Desktop
IP地址:172.25.0.10
主机名:desktop0.example.com
系统版本:RHEL 7.0
真机远程管理
Ctrl+Shift+t : 新开一个终端
ssh -X 登陆对方的用户名@IP地址
[root@localhost ~]# ssh [email protected]
[root@server0 ~]# exit #退出远程管理
RPM Package Manager,RPM包管理器
rpm -q 软件名... //查看软件是否安装
rpm -ivh 软件名-版本信息.rpm... //安装软件
rpm -e 软件名... //卸载软件
举例:
[root@server0 ~]# rpm -q vsftpd #查看vsftpd软件包是否安装
[root@server0 ~]# rpm -ivh /dvd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@server0 ~]# rpm -e vsftpd #卸载软件包
了解内容:导入红帽光盘包的签名信息
[root@server0 ~]# rpm --import /dvd/RPM-GPG-KEY-redhat-release
Yum软件包仓库配置及使用,自动解决依赖关系
服务:为客户端自动解决依赖关系,并且安装软件
服务端:虚拟机classroom 搭建完成Web服务,共享光盘所有内容
验证:浏览器中http://classroom.example.com/content/rhel7.0/x86_64/dvd/
客户端:虚拟机server
修改配置文件,指定服务端位置/etc/yum.repos.d/*.repo
注:正确的文件与错误的文件会相互影响
[root@server0 ~]# rm -rf /etc/yum.repos.d/* //清空yum源目录
[root@server0 ~]# vim /etc/yum.repos.d/dvd.repo
[rhel7] #仓库标识
name=nsd rhel7 #仓库描述信息
baseurl=http://classroom.example.com/content/rhel7.0/x86_64/dvd/ #服务端具体位置路径
enabled=1 #是否启用该文件
gpgcheck=0 #是否检测软件包签名信息
[root@server0 ~]# yum repolist #列出仓库信息
[root@server0 ~]# yum -y install httpd #安装软件
[root@server0 ~]# yum list sssd #列软件
[root@server0 ~]# yum remove 软件名 #卸载软件
[root@server0 ~]# yum clean all #清缓存
永久配置主机名
[root@server0 ~]# vim /etc/hostname
配置IP地址
网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0
连接管理:nmcli
1.查看nmcli命令识别的网卡名字
[root@A ~]# nmcli connection show
2.配置ip地址
[root@server0 ~]# nmcli connection modify 'System eth0' \
> ipv4.method manual \
> ipv4.addresses '172.25.0.110/24 172.25.0.254' \
> connection.autoconnect yes
格式:
#nmcli 连接网络配置 '网卡识别的名字'
#ipv4.method 配置ip地址的方法 //auto自动获取 manual手工配置
#ipv4.addresses 'ip地址/子网掩码 网关地址'
#connection.autoconnect yes //每次开机自动启用
3.激活配置
[root@server0 ~]# nmcli connection up 'System eth0'
[root@server0 ~]# ifconfig #查看ip地址
[root@server0 ~]# route #查看网关地址 gateway
DNS-Domain Name Server服务器配置
作用: 域名解析为对应IP地址
DNS服务器: 虚拟机classroom
配置文件: /etc/resolv.conf
虚拟机Server
[root@server0 ~]# vim /etc/resolv.conf
nameserver 172.25.254.254
[root@server0 ~]# nslookup desktop0.example.com
根据字符串模式提取文本行
grep [选项] '匹配模式' 文本文件...
-v,取反匹配
-i,忽略大小写
[root@server0 ~]# grep 'root' /etc/passwd
[root@server0 ~]# grep -i 'ROOT' /etc/passwd #忽略大小写
[root@server0 ~]# grep -v 'root' /etc/passwd #不要包含root
^word 以字符串word开头
word$ 以字符串word结尾
[root@server0 ~]# grep '^root' /etc/passwd #以root开头的行
[root@server0 ~]# grep 'root$' /etc/passwd #以root结尾的行
重定向输出
> : 覆盖重定向 #将前面命令的输出,写入文本文件中,自带touch功能
>> : 追加重定向
[root@server0 ~]# grep 'bash$' /etc/passwd > /opt/nsd.txt
[root@server0 ~]# hostname >> /opt/1.txt
echo 字符串输出
[root@server0 ~]# echo hello world
[root@server0 ~]# echo 123456 > /opt/1.txt
[root@server0 ~]# echo server0.example.com > /etc/hostname
[root@server0 ~]# echo nameserver 172.25.254.254 > /etc/resolv.conf
唯一标识: UID 编号 GID 编号
管理员用户root:UID 0
普通用户UID:从UID 1000
组:基本组(私有组) 附加组(从属组 公共组)
添加用户
用户基本信息存放在 /etc/passwd 文件
[root@server0 ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:GID:用户描述信息:家目录:解释器程序(shell)
useradd 添加用户命令
常用命令选项
-u 用户id、-d 家目录路径、-s 登录Shell解释器 、-G 附加组、-g 基本组
[root@server0 ~]# useradd -d /mnt/abc nsd06 #指定家目录创建用户
[root@server0 ~]# useradd -u 1100 nsd02 #指定UID创建用户
[root@server0 ~]# useradd -s /sbin/nologin nsd07 #指定解释器,禁止用户登陆操作系统
[root@server0 ~]# groupadd tarena #创建tarena组
bc Linux计算器
[root@server0 ~]# bc
1+1 #加法
2*3 #乘法
10/3 #除法
10%3 #取余数运算,余数一定小于被除数
[root@server0 ~]# quit #退出计算器
管道操作 |
作用:将前面命令的输出结果,交由后面命令处理,最后输出最后命令的结果
[root@server0 ~]# cat -n /etc/passwd | head -12 | tail -5
[root@server0 ~]# ifconfig | head -2
[root@server0 ~]# grep 'root' /etc/passwd | grep 'bash'
passwd:密码设置命令
用户密码信息存放在 /etc/shadow 文件
[root@server0 ~]# passwd harry
[root@server0 ~]# su - harry #临时切换用户身份
[harry@server0 ~]$ passwd
[root@server0 ~]# echo 123 | passwd --stdin harry #非交互式设置密码
usermod 更改用户信息
-u 用户id、-d 家目录路径、-s 登录Shell解释器、-G 附加组、-g 基本组
[root@server0 ~]# usermod -u 1300 -d /opt/abc -s /sbin/nologin -G root natasha
[root@server0 ~]# grep 'natasha' /etc/passwd
[root@server0 ~]# id natasha
补充: 也可以vim修改/etc/passwd 文件内容更改用户信息
userdel 删除用户
-r:连同用户家目录一并删除
[root@server0 ~]# userdel -r nsd01
管理组账号
组基本信息存放在 /etc/group 文件
[root@server0 ~]# groupadd stugrp
[root@server0 ~]# tail -1 /etc/group
stugrp:x:1002:
组名:组的密码占位符:本组的GID编号:本组成员的列表
[root@server0 ~]# useradd kenji
使用gpasswd命令
gpasswd -a 用户名 组名 #用户加入组
gpasswd -d 用户名 组名 #从组中删除用户
[root@server0 ~]# gpasswd -a kenji stugrp
[root@server0 ~]# gpasswd -d tom stugrp
[root@server0 ~]# grep 'stugrp' /etc/group
groupdel 删除组命令
[root@server0 ~]# groupadd stugrp //删除组stugrp
归档的含义
将许多零散的文件整理为一个文件
文件总的大小基本不变
压缩的含义
按某种算法减小文件所占用空间的大小
恢复时按对应的逆向算法解压
Linux独有的压缩工具
gzip -------> *.gz
bzip2 ------> *.bz2
xz ----------> *.xz
[root@server0 opt]# gzip /opt/group
[root@server0 opt]# bzip2 /opt/passwd
[root@server0 opt]# xz /opt/shadow
tar 集成备份工具
tar [选项] tar包名字 被归档的文件
[root@server0 /]# tar -cPf test01.tar /home/ /mnt/
[root@server0 /]# tar -xf /opt/file01.tar -C /nsd/
-c:创建归档 -P:保持路径不变进行归档 -f:指定归档包的名字
-x: 释放归档 -C:指定释放位置 -t:查看tar包内容
[root@server0 /]# tar -tf /root/test.tar #查看tar包里面内容
[root@server0 /]# tar -xPf /root/test.tar #绝对路径释放
-z、-j、-J : 调用 .gz、.bz2、.xz 格式的工具进行处理
[root@server0 ~]# tar -zcPf /opt/nsd.tar.gz /home/
[root@server0 ~]# tar -jcPf /opt/abc.tar.bz2 /home/
[root@server0 ~]# tar -JcPf /opt/home.tar.xz /home/
[root@server0 ~]# tar -xf /opt/nsd.tar.gz -C /mnt/
[root@server0 ~]# date
2018年 03月 14日 星期三 17:21:38 CST
[root@server0 ~]# date +%F #显示年-月-日
[root@server0 ~]# date +%Y #显示年
[root@server0 ~]# date +%m #显示月
[root@server0 ~]# date +%d #显示当天是多少号
[root@server0 ~]# date +%H #显示时
[root@server0 ~]# date +%M #显示分
修改时间
[root@server0 ~]# date -s "年-月-日 时:分:秒"
NTP-Network Time Protocol网络时间协议
NTP服务器为客户机提供标准时间
NTP客户机需要与NTP服务器保持沟通
服务端:服务端软件,classroom.example.com NTP服务器
客户端:客户端软件.虚拟机server
1.安装客户端同步时间的软件chrony
[root@server0 ~]# yum -y install chrony
2.修改配置文件指定服务端位置
[root@server0 ~]# vim /etc/chrony.conf
server classroom.example.com iburst
3.重启服务
[root@server0 ~]# systemctl restart chronyd #重起服务
[root@server0 ~]# systemctl enable chronyd #开机启动
4.验证:
[root@server0 ~]# systemctl restart chronyd
[root@server0 ~]# date
用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务
软件包:cronie、crontabs 系统服务:crond 日志文件:/var/log/cron
编写crontab任务记录
* * * * * COMMAND
分 时 日 月 周 命令
*:匹配范围内任意时间 ,:分隔多个不连续时间点
-:制定连续的时间范围 /n:指定时间频率
使用crontab命令
crontab -e [-u 用户名]
[root@server0 ~]# crontab -e -u root
* * * * * date >> /opt/time.txt
[root@server0 ~]# cat /opt/time.txt
根据预设的条件递归查找对应的文件
find [目录] [条件1] [-a|-o] [条件2] ...
-type 类型(f文件、d目录、l快捷方式)
-name "文档名称"
-size +|-文件大小(k、M、G)
-user 所有者
-group 所属组
[root@server0 ~]# find /boot/ -type l #查找是快捷方式
[root@server0 ~]# find /boot/ -type d #查找是目录
[root@server0 ~]# find /boot/ -type f #查找是文本文件
[root@server0 ~]# find /root/ -name "nsd*" #文件名称查找
[root@server0 ~]# find /boot/ -size +300k #文件大小查找
[root@server0 ~]# find / -user wangwu #用户名称查找
举例:请显示/etc目录下以.conf结尾的?(包含子目录)
[root@server0 ~]# find /etc -name "*.conf"
举例:请显示/etc目录下以.conf结尾的?(不包含子目录)
[root@server0 ~]# ls /etc/*.conf
使用find命令的-exec 操作
find .. .. -exec 处理命令 {} \;
优势:以{} 代替每一个结果,逐个处理,遇\; 结束
[root@server0 ~]# find /boot/ -size +300k -exec cp -r {} /opt \;
[root@server0 ~]# find / -user student -type f -exec cp {} /root/findfile \;
根据名称查找,忽略大小写
-iname
[root@server0 ~]# find /etc/ -name "PASSWD"
[root@server0 ~]# find /etc/ -iname "PASSWD"
根据账号名称或所属组
-user、-group
[root@server0 ~]# find /home/ -group student
限制目录查找的深度(最大层数)
-maxdepth
[root@server0 ~]# find /etc/ -maxdepth 1 -name "*.conf"
[root@server0 ~]# find /etc/ -maxdepth 2 -name "*.conf"