时间管理

# 1 centos 7 新增方式 systemd的一部分 
timedatectl                                     # 查看日期与时间
timedatectl set-time 23:06:45                   # 更新系统时间与硬件时间
timedatectl set-time YYYY-MM-DD 23:06:45        # 更新日期
systemctl  restart systemd-timedated.service    # 重启时间,使修改生效

timedatectl list-timezones|grep Asia            # 列出时区
timedatectl set-timezone Asia/Hong_Kong         # 更改时区
timedatectl set-ntp yes/no                      # 远程自动同步开启/关闭
timedatectl set-local-rtc yes/no    # yes使用本地时间 no使用UTC时间

# 2 软件时间
date
date -R
date "+%Y-%m-%d %H:%M:%S"
date -s "2019-10-03 23:00:00" #修改时间

# 3 硬件时间(real-time clock)RTC 建议使用UTC
hwclock         
hwclock --set --date "21 Oct 2019 17:53" --utc  # 修改硬件时间,并设置为utc
hwclock --systohc --utc         # 硬件时钟与系统时间同步,并设置为UTC时间
hwclock --systohc --localtime   # 硬件时钟与系统时间同步,并设置为本地时间
hwclock -w --localtime

# 操作
date        # 查看系统时间
hwclock     # 查看硬件时间
timedatectl set-timezone Asia/Shanghai      # 更新时区
timedatectl set-time 2017-06-13 18:18:00    # 更新日期时间
timedatectl set-local-rtc 1     # 更新硬件时间与系统时间一致
hwclock --systohc --localtime   # 更新硬件时间与系统时间一致
clock –w    # 日期写入cmos

主机名称

# 主机配置
hostname            # 查看主机名称
hostneme 【名称】   # 修改主机名称(临时修改,重启后失效)
vim /etc/sysconfig/network  # 永久修改主机名称(重启后生效) centos 6
# NETWORKING=yes
# HOSTNAME=hadoop01

hostnamectl set-hostname 【名称】   # 修改主机名称,立刻永久生效 centos 7

# 主机映射:给别的机器起别名,也可以给自己起化名
# linux   vim /etc/hosts
# win     c:\\windows\system32\drivers\etc\hosts

# 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
# ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
# 192.198.2.101 centos01
# 192.168.2.102 centos02

系统启动级别

# 系统启动级别
# poweroff.target   0   关机(不要设置为默认)
# rescue.target     1   单用户(救援模式)
# multi-user.target 2   多用户无网络(2和3一致,只是没有网络)
# multi-user.target 3   全功能多用户
#                   4   未使用
# graphical.target  5   图形界面
# reboot.target     6   重启(不要设置为默认)

# centos 7 操作
systemctl get-default   # 查看默认的target
systemctl set-default multi-user.target # 修改启动级别为level3启动

systemctl rescue    # 进入救援模式,会加载驱动
systemctl emergency # 进入救援模式,不会加载驱动系统服务

# centos 6 操作
runlevel    # 查看用户启动级别

vim /etc/inittab    # 系统启动级别配置文件

系统开机自启动服务

# 系统开机自启服务
# centos 7 操作
systemctl list-unit-files --type service    # 查所有服务
systemctl list-dependencies --after         # 指定服务的依赖服务
systemctl list-dependencies --before        # 指定服务的服务对象

systemctl is-enabled name.service       # 查服务是否自启
systemctl status name.service           # 查服务状态
systemctl enable/disable name.service   # 启用/停用

# centos 6 操作
chkconfig --list
chkconfig --list  name
chkconfig name on/off

用户与用户组

# 用户是权限的集合,用户组是权限容器
who              # 查看登陆用户
w 【用户名】     # 查看某一用户
last             # 查看登陆历史记录

# 用户分类
# 管理员用户     root uid --> 0
# 系统用户       保证系统正常运行,没有密码 uid -->  1-499   
# 普通用户       权限受限用户 uid --> 500-60000
cat /etc/passwd     # 查看用户 cat /etc/shadow 密码文件
user add 【用户名】 # 添加用户
passwd 【用户名】   # 修改密码 --> 后续根据提示操作
user mod 【选项】【用户名】  # 修改用户属性
user del 【用户名】 # 删除用户

# 配置sudoer 权限(普通用户临时拥有系统权限)
su 【用户名】     #切换用户
# root用户下操作:
vim /etc/sudoers
# root    ALL=(ALL)       ALL
# 普通用户名  ALL=(ALL)       ALL
# 配置后,普通用户 做root权限操作,需要用sudo开头 
sudo  useradd 【用户名】
exit 退出用户(切换多次用户,换的时候可以退出当前用户)

# 用户组分类
# 系统组       
# 私有组       
# 普通用户组   
cat /etc/group      # 查看组   cat /etc/gshadow
groupadd
groupmod
groupdel
gpasswd -a/-d 【用户名】【组名】

系统进程管理

# 系统进程管理
# 状态:
# 1 就绪状态    除了cpu资源,其他的都已经就绪了
# 2 运行状态    就绪进程获得了cpu资源
# 3 阻塞状态    

ps -aux | grep aaa   # 查看进程状态
pstree  # 查看进程树
top     # 查看动态进程状态 # q退出
jps     # java中的命令,查看jvm中的进程

kill -9 pid     # 强制杀死进程(不可滥用,能正常关闭的不要用kill)

pidof 程序    # 查看某个程序的pid

ctrl+c  # 终止进程
crtl+z  # 挂起进程(暂停执行)

jobs    # 查看任务,后台运行的进程
fg      # 转换到前台运行
bg      # 转换到后台运行

uptime  # 系统负载
lsof    # 查看进程打开的文件,打开文件的进程,进程打开的端口

screen  # 会话管理 # 用于远程登陆,CRT长时间连接,超时断开后脚本也会停止运行

计划任务

# 服务启动 centos  7
systemctl status crond  # 查看计划任务状态
yum install crontabs    # 安装 crontabs

systemctl start crond   # 启动crond服务
systemctl enable crond  # 设为开机启动

vi /etc/crontab         # 设置用户自定义定时任务
# * * * * * user-name command to be executed
crontab /etc/crontab    # 使生效
crontab -l              # 查看计划任务
crontab -u 用户名 -l    # 列出用户的定时任务列表

# centos 6
yum install -y crontabs
service crond start/status

# 2 编辑计划任务
crontab -e  # 分 时 日 月 星期(0-6) command 
# 每分钟执行 # * * * * *date>>/home/a.txt
# 0,30 * * 6
cd /var/spool/cron/ # 用户级计划任务
crontab -r  # 删除计划任务

网络管理

# 网络管理
# 网络通讯模式(三种)
#    桥接模式    宿主机的物理网卡和虚拟交换机之间通过虚拟网桥建立连接   
#                (主机数有限,不利于搭建大型集群)
#    NAT模式     两条路:
#                虚拟网卡(vmnet8)和虚拟交换机(vmnet8)之间建立连接; 
#                虚拟交换机(vmnet8)和物理网卡通过NAT设备建立连接。
#                通过虚拟NAT设备相连:用于网络地址转换
#    仅主机模式  没有外部网络连接,相当于NAT模式中去掉了虚拟NAT设备

# 实操
# NAT 虚拟网络设置子网IP:192.168.2.0
# 查到此时的子网网关(192.168.2.2)

# linux 图形设置
# method:manual
# address:192.168.2.101
# nwtmask:255.255.255.0
# gateway:192.168.2.2
# DNS server:192.168.2.2
serveice network restart

# 命令行设置
inconfig    # 查看网络接口信息,找到网卡名称(ens33)
ip addr     # centos 7 查 ip地址信息

ifconfig ens33 up/dowm  # 开启/关闭网卡

vim /etc/sysconfig/network-scripts/ifcfg-网卡名称
# device=ens33                  # 网卡名称
# uuid=                         # 网卡标识
# onboot=yes/on                 # 是否开机自动连接
# bootproto=dhcp/static/none    # 动态协议/静态/静态
# hwaddr=                       # mac地址
# ipaddr=192.168.2.101          # ip地址
# gateway=192.168.2.2           # 网关
# dns1=192.168.2.2              # dns
# netmask=                      # 子网掩码
service  network restart    # 设置完成后重启服务

# 网络管理命令
ping            # 测试网络联通状态
host            # 根据域名查看IP
netstat         # 查看程序端口占用情况
netstat -nltp   # 查看正在监听TCP协议的程序,(端口相关篇有介绍)

ssh免密登陆

# ssh免密登陆
# 安全外壳协议,实现计算机之间的加密传输。
scp -r /etc/hosts root@centos01 /etc/hosts # 发送文件给01主机的root用户 

# 配置免密登陆
# 1 生成密钥对
ssh-keygen
# 2 发送公钥到对方授权池
ssh-copy-id centos01    # 发送给01机 # 发送前先要做主机映射

集中日志管理

# yum install rsyslog logrotate  (默认已安装)
# systemctl  start  rsyslog.service   //启动

软件 安装

# 软件安装方式:
# 1 二进制发布包      :已经根据平台编译并打包,只需要解压和配置即可使用
# 2 rpm发布包         :采用redhat的包管理规范进行打包。rpm包使用rpm命令安装 
    # 缺点 :不能解决包依赖的问题
# 3 yum在线安装     · :前端包管理的工具  会检测包依赖并自动下载安装
    # 同时提供搜索,以及处理依赖问题
# 4 源码编译安装      :以源码工程方式发布,需要先编译 再安装部署


# rpm 查询与卸载
rpm -q 程序               # 
rpm -qa | grep -i 程序    # 查询已安装包
rpm -ql 程序              # 安装位置

rpm -e 程序包   # 卸载
    --nodeps    # 依赖
    --force     # 强制

rpm -ivh 程序     # 安装
rpm -uvh 程序     # 升级


# yum 在线安装
yum install 程序  # 安装
yum remove 程序   # 卸载
yum update 程序   # 更新

yum -y install/remove/update    # 无需询问,直接安装/卸载/更新

# yum源 配置
cd /etc/yum.repos.d/    # repo文件配置了软件的下载路径

yum repolist    # yum源列表
yum list        # yum源的软件列表
yum list | grep jdk

# 自建本地yum源
# 1 搭建服务器
service httpd start
# httpd 资源路径:/var/www/html/
# httpd 配置文件目录:/etc/httpd/conf.d/

# 2 存放rpm软件到服务器
ln -s /mnt/cdrom/ /var/www/html/

# 3 在yum源配置文件中添加访问路径
cp  # 配置文件模板复制 然后修改模板
【local】
name=
baseurl=
gpgcheck=0
enabled=1

# 4 使用


# java安装流程
# 1 获取安装包 
    # wget http://.......
    # CRT 带有ftp插件  alt+p 调出 用 put -r 命令上传  还有 rz sz 命令进行上传下载
# 查看是否安装软件(java)
java -version
rpm -qa | grep -i jdk   # 查看系统是否安装了java -i忽略大小写
rpm -e --nodeps 软件包     # 卸载软件包
# 2 解压
# 3 配置
    /etc/profile    # 全局配置
        vi /etc/profile     # 打开配置文件
        # G到最后一行
        # 添加:export JAVA_HOME=/opt/...                  export 是提升为全局变量的意思
        # 添加: export PATH=${JAVA_HOME}\bin:${PATH}      PATH注意不能直接等于,要不然会把path原来的路径覆盖掉,要用追加
        source /etc/profile     # 重新加载文件
    /home/用户名/.bash_profile or bashrc # 用户的配置
# 4 测试


# mysql rpm包安装流程
# 1 查看系统是否已经安装mysql
rpm -qa | grep -i mysql  # 查询
rpm -e --nodeps 包名称   # 卸载

# 2 获取安装包并解压

# 3 使用命令安装 server 和 client
rpm -ivh 包名
    #  安装信息中有东西需要注意:
    # 默认密码 :/root/.mysql_secret
    # 修改密码:SET password
    # 配置文件:/usr/my.cnf

# 4 启动服务
service mysql start

# 5 连接mysql
cat /root/.mysql_secret # 查看默认密码 
mysql -uroot -p
set password=password('root');

# 6 配置
# 授权所有数据库的权限给到root用户 
grant all privileges on *.* to 'root'@'%'  identified by 'root' with grant option
# *.*   数据库名,这个代表所有数据库 
# @'%'  是指所有远程地址
# identified by 'root' 这个root是root原密码,也可以直接写密码

flush privileges;   # 刷新权限 

# 其他配置
vim /usr/my.cnf