系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
Linux 学习
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Linux命令
命令 选项 参数(Linux格式)
1.文件管理
命令如下:
# 文件访问
ls -l 访问目录 长模式输出
ls -lt 按照修改时间 (--reverse 相反顺序输出)
ls -a 查看隐藏文件 (隐藏文件的首位为 .)
ls /usr
pwd 打印当前目录
# cd(change directory)
cd 绝对路径 cd /home/yjmmqy (根目录起的路径)
cd 相对路径 cd ./yjmmqy (当前目录起的路径)
../ 上一级目录
../../../ 前三级目录
cd 移动到家目录
cd -更改工作目录到先前的工作目录
cd ~ user01 移动到用户家目录
# 创建文件
touch 路径/文档名
touch /file.txt
touch /home/{demo1,demo2,.demo3} (.文件名是隐藏文件)
file file.txt (查看文件具体类型)
# 创建目录
mkdir 路径/目录
mkdir dir1 dir2 dir3 创建三个目录
# 连续创建目录(父目录和子目录一起创建)
mkdir -p /
mkdir dir1
mkdir /home/dir2 /home/dir3
mkdir -v /home/{dir4,dir5} (v指的显示创建过程)
mkdir -pv /home/dir8/111/222
mkdir -pv /home/{yjm/{dir1,111},天下} (p 父系 v 显示)
# 复制
cp /home/a1/file.txt /home/a2 (只复制文件)
cp -r /home/a1/file.txt /home/a2 (-r 将文件夹也一同复制)
# 移动
mv /home/a1/file1.txt /home/a2
mv /home/a1/file1.txt /home/a2/dome1.txt (修改文件名称)
mv /home/a2/dome1.txt /home/a2/dome1.txt (只修改文件名称,并不移动)
# 删除
rm -rf /* */
rm -rf 强制删除
rm -rf /home/a1/* */
rm -rf /home/a1/a* (可以将该目录下a开头的文件都删除)
rm -i file1 dir1
# 查看文件内容
cat /home/demo1.txt (长文件一下就结束)
head -5 /home/demo1.txt (查看头部5行)
tail -5 /home/demo1.txt (查看尾部5行)
more /home/demo1.txt (翻页查看 空格下翻页)
grep a /home/demo1.txt (查看关键字)
# 修改文件内容
重定向
ls / > demo1.txt (将内容写进文档中)
gedit /demo1.txt (图像修改)
# 创建硬链接和符号链接
ln
# 通配符号
* 匹配任意多个字符 所有文件
[[:class:]] 匹配任意一个属于指定字符类中的字符
[characters] 匹配任意一个属于字符集中的字符
ls a[characters]来匹配这些文件。这将匹配所有以"a"开头且接着是任意一个字符的文件
[!characters] 匹配任意一个不是字符集中的字符
[:alnum:] 匹配任意一个字母或数字
[:alpha:] 匹配任意一个字母
[:digit:] 匹配任意一个数字
[:upper:] 匹配任意一个大写字母
g* 文件名以“g”开头的文件
b*.txt 以”b” 开头,中间有零个或任意多个字符,并以”.txt” 结尾 的文件
Data??? 以“Data”开头,其后紧接着 3 个字符的文件
[[:upper:]]* 以大写字母开头的文件
[![:digit:]]* 不以数字开头的文件
命令总结
2.Vim 编辑
2.1 Vim一般操作
# 进入vim编辑
vim /home/demo1.txt
# 修改 i(直接插) o(换行插入) ; 退出编辑 Ese ; 保存并退出 shift + : wq
# 另存为
:w /home/a2/aaa.txt
# 可视化 V
# 文本编辑
复制 y ; 删除 d ; 粘贴 p ; 撤销 u ;
--(hjkl 上下左右)
# 0 $ 行首行尾
# gg G 页首页尾
3G 进入指定行位置
# /符号 (n N 可以循环) 查找字符
# 设置环境
:set nu 设置行号
:set nonu 取消设置行号
:set list 显示控制字符
:set nolist 取消控制字符
# 查看文件
less file.txt 允许前后滚动浏览
2.2 Vim自动备份文件
E325 备份文件
1、 查看隐藏文件 ls -a / (查看全部文件,swp后缀为备份文件)
2、 使用rm删除即可
由于服务器报错,会自动备份文件
3. 用户管理
创建 查找 修改
3.1 用户组信息存储文件
#管理
/etc/passwd (7列字段)
root : x : 0 : 0 : root :/root:/bin/bash # 用户名:x: uid: gid: 描述:HOME:shell
用户名:登录系统的名字
X:密码占符位
uid: 用户的身份证号 系统约定 : 0特权用户 ;1~499 系统用户 1000+ 普通用户
gid: 组号
描述:
/root:登录系统时,所在目录
shell: 命令解释器(定义 接收 执行) bin/bash /bin/nologin(用户不允许登录)
# 用户信息密码文件
/etc/shadow (8列字段)
root:$6$Ilbd9Dr/$h7t/yNT/RWdInxBXCPBYeYAWMxrkTiEBLX.HOfa13jQoOOmBuuJIrW6jQ51fxts/Z8p6JhgiEimf6yJtyJR6Y.:19906:0:99999:7:::
1用户名: 2加密方式和值: 3最后修改时间: 4最小间隔(两次密码修改的最小时间): 5最大时间间隔(修改密码时间上述无限期: 6:警告时间(密码过期的提示) 7: 不活动时间(用户不登录系统但保留用户信息) 8: 失效时间(账号生命时间)
# $6$ 表示用SHA-512加密 ;$1$ 表明用MD5加密
口令:存放加密后的用户口令,*代表账号被锁定
!!表示密码过期
用户感受:需要输入用户名和密码;提示:你的密码已过期,请修改你的密码; 输入框,输入密码
# 组信息文件
/etc/group
root:x:0: 组名: 组密码: 组ID: 组成员
3.2 用户/组管理
useradd --help
# 创建用户
# 未指定项
useradd mars1 (Ubuntu存在登陆界面循环问题)
id mars1
passwd mars1 (修改密码)
/var/spool/mail/mars1 (邮件)
# 指定项
useradd mars1 -u (uid)
useradd mars1 -d (directory) (指定一个目录)
# 删除用户
userdel -r mars1 (删除用户信息和文件)
# 修改用户密码
# cat /etc/passwd (查找其他存在的用户)passwd 用户信息 shadow 用户
passwd mars2 (修改其他用户密码)
# 修改用户信息
usermod -s
usermod -s /sbin/nologin mars (不允许登录)
# 用户组管理
groupadd hr
groupadd net01 -g 2000 (创建组,组号)
cat /etc/group (查看组)
grep hr /etc/group (查看指定组)
groupdel net01 (删除组)
groupmod -g 1512 DDD (修改基本组)
# 创建用户 1 产生基本组 (附加组)2 加入其它组
-G 指定用户的附加组
-g 指定用户的基本组
/etc/password (查看基本组)
/etc/group/ (查看用户附加组)
groupadd CCC -g 1510 (创建组,组号)
usermod AAA -g CCC (修改AAA的基本组号为CCC)
usermod BBB -G CCC (修改BBB的附加组号为CCC)
grep CCC /etc/group
gpasswd -d BBB CCC (把用户BBB从CCC组移除)
# 提权
# 永久提权 Switching users with su
# 临时提权 Running commands as root with sudo (指定部分特权)
vim /etc/sudoers
% wheel ALL=(ALL) NOPASSWD:ALL
允许wheel用户组中的用户在不输入该用户密码的情况下使用所有命令
3.3 基本权限 UGO
# 权限的三类
属主:u
属组:g
其他人:o
特殊对象:所有人:(u+g+o)
# 权限的三种类型
读:r=4
写:w=2
执行:x=1 (可执行的文件) 目录文件夹都要带执行
# 语法
chmod (-R 所有权限)对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x)文件/目录
-rw-r--r-- 1 root root 3576296 2007-04-03 11:05 Experience ubuntu.ogg
"-" (首部): 表示普通文件
"1": 表示链接数目
"3576296": 文件字节数
-rw-r--r--. root:属主 root:属组 6 2月 12 16:49 file
(类型和权限11个)-没有权限 中间九个 第一个链接 6:多少字节
用户 组 其他人
rwx rwx rwx
u g o a(包含三个对象)
+:添加权限
-:去掉权限
=:覆盖
ls -l file.txt 查看文件权限
ls -d 查看文件夹权限
# 数字方式
chmod 000(777) file.txt 7=4+2+1; 6=4+2; 0=0+0+0
# 编写程序 (vim编写)
# echo " " 输出
# read -p "input name:" name(收集信息)
# 改变属主
chown user.hr file.txt (该属主 组)
用户名:组名 文件
chown user file.txt (只改属主)
chown .hr file.txt (只改属组)
# 改小组
chgrp it file.txt (改文件属组)
chgrp -R file.txt (-R 递归的意思 对目录修改权限后,目录下的权限都更改)
# 针对hr部门的访问目录设置权限,root用户和hr组的员工可以读写执行
groupadd hr
useradd hr01 -G hr
useradd hr02 -G hr
mkdir /home/hr
chgrp hr /home/hr
ls -dl /home/hr
chmod 770 /home/hr
3.4 基本权限 ACL
# ACL access control list
访问 控制 列表
限制用户对文件的访问,对UGO的补充
# setfacl -m(添加)(-b移除所有权限)u:user:rwx/g:hr:rwx /home/file1.txt
setfacl -x g:hr /home/file.txt //删除组hr的acl权限
置文件访问
getfacl /home/file.txt
watch -n1 'ls -l /tmp/file.txt' (实时观察该命令)
3.5 特殊权限
# 特殊位suid (sgid)针对文件/程序,具备临时提升权限
使调用文件的用户,临时具备属主能力
chmod u+s /usr/bin/cat (普通用户可以用cat查看root下的文件)
chmod u-s /usr/bin/cat
# 文件属性chattr
i 在文件上启动该属性,不能更改、重命名或者删除这个文件
chatter +i(-i) file1
a 允许在文件中追加,
# 进程掩码 umask
新建文件、目录默认权限受到umask影响,表示要减掉权限
chmod 7777 file 第一位 suid
** 权限777 rwx rwx rwx
4 进程管理
4.1 进程
# 已启动的可执行程序的运行实例,进行有以下组成部分:
文件 内存地址空间 有权限限制 执行线程 状态
# 目标
## PID 进程号 PPID
## 当前进程状态
R T Z S
fork (父进程睡眠,子程序运行) exit(退出程序) sleep(休眠) zomble (阻塞)
(父进程复制自己的地址空间(fork),创建一个新的子进程结构。每个进程分配一个唯一的PID)
# 内存分配情况
# CPU和已花费实际时间
# 用户UID,决定进程特权
## 进程名称
# 静态查看进程 ps
ps aux | head -2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 5.4 0.2 77812 8648 ? Ss 15:29 0:01 /sbin/init splash
ps a 显示终端正在运行的程序
ps u 以用户为主的格式来显示程序状态
ps x
# 进程父子关系
ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 15:29 ? 00:00:01 /sbin/init splash
root 2 0 0 15:29 ? 00:00:00 [kthreadd]
root 4 2 0 15:29 ? 00:00:00 [kworker/0:0H]
# 自定义显示字段
ps axo user,pid,ppid,%mem,command |head -3
查看内存 free -m
# 动态查看进程 top
top -d 1 每秒刷新
top -d 1 -p 10126 查看指定进程的动态信息
top -d 1 -p 10126,1 查看10126和1号进程
top - 16:36:11 up 1:06, 1 user, load average: 0.00, 0.00, 0.00
程序名:系统时间 运行时间 登陆用户 CPU负载 5分钟 10 15
任务:245 total, 3 running, 176 sleeping, 0 stopped, 1 zombie
总进程数 运行数1 睡眠数175 停止数0 僵死数1
%Cpu(s): 0.2 us, 1.3 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st (百分之98.3空闲)
us用户,sy系统,ni优先级,id空闲, wa等待, hi硬件,si软件, st虚拟机
KiB Mem:4013244 total,1712824 free,1106180 used,1194240 buff/cache
物理内存K total总共4G free空闲1G userd使用500M cache 缓存硬盘内容 2G
KiB Swap:1942896 total, 1942896 free, 0 used. 2629208 avail Mem
进程 USER PR NI VIRT RES SHR � %CPU %MEM TIME+ COMMAND
交换分区(硬盘的一部分空间,存放常用数据)
# 使用信号控制进程
kill -l 列出所有支持的信号 编号 信号名
kill -9 (-15)
# 进程排序
ps aux --sort % cpu (以cpu来排序)
# 进程优先级 nice
Linux进程调度及多任务,每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序
# 优先级范围和特性
-20 19 (优先级越高值越小)
# 查看进程和nice级别
ps axo pid,command,nice --sort=-nice (排序降序)
# 启动不同nice级别的进程
继承父进程nice值(一般默认为0)
ps axo pid,command,nice | grep sleep
nice -n -5 sleep 7000 设置优先级
sleep 8000 (进程)
renice -20 3881 (修改进程sleep(PID)优先级值)
ps aux | grep sleep
# jobs:查看后台进程
# fg 1 将进行1调回前台
# bg 1 将后台进程运行
# 消灭进程 (后台进程)
kill % 2
# 更改现有进程的nice
# proc 虚拟文件(进程信息)
ls /proc
/proc/cpuinfo /proc/meminfo /proc/cmdline
## 进程fork过程
4 管道与重定向
4.1 重定向
">" : 将内容直接输入文件中
"FD": 文件描述符,文件句柄,进程使用文件描述符来管理打开的文件
(为了省去冗长的绝对路径)
0: 键盘只读
1,2: 是终端可以理解是屏幕
3+: 是文件,可读可写
FD=0,stdin 键盘输入程序 stdout FD=1
# ls /proc/5912/fd (查看文件fd)
echo 123 > /dev/pts/0 (pts 虚拟终端)
data 1> /dev/pts/0 (屏幕输出)
data 1> /dev/pts/1
data >> time.txt (>>追加内容,单>覆盖)
# 邮箱
mail -s "sssss" alice(账号)
按邮件编号:1,即可查看邮件
按q退出
# mail -s "sssss" alice <word.txt
# 输出重定向 >
进程产生的信息,存放到文件中
标准正确输出: ls /home > 1.txt
标准错误输出: ls /aaa 2> 2.txt
标准混合: &> 3.txt
# 输入重定向 < (编程时会使用)
以文本内容,作为进程的标准输入
chmod +x 111.sh
./111.sh
cat 1.conf
4.2 管道
# 管道命令可以将多条命令组合起来,一次性处理复杂的任务
# 进程管道 Piping
cat /etc/passwd | grep "root" | head -1 (多条命令叠加)
# tee管道 把输出保留副本
cat /etc/passwd | tail -1
cat /etc/passwd |tee file88.txt | tail -1 (复制输出)
cat /etc/passwd | grep "root" | head -1
cat /etc/passwd | grep "root" | tee file99.txt |head -1
# 参数传递 xargs (转换格式)
# cp rm一些特殊命令不服从其他程序
cat files.txt | xargs rm -rvf
cat /etc/passwd |grep ntp
cat /etc/passwd |grep ntp |cut -d: -f1 (-fn 切割第几列)
5 磁盘管理
5.1 基础知识
# 磁道 扇区 扇面
# 命名:
SATA(串口):
/dev/sda 第一块磁盘
/dev 设备文件目录
sda 一个文件
s 代表sata就是串口
d 代表磁盘
a 第一块
/dev/sdb 第二块磁盘
# 磁盘分区方式
# MBR 分配几个分区 (支持单块硬盘<2G)
如超过4个分区,需放弃主分区,改为扩展分区和逻辑分区
# GPT 分区表 超2T硬盘
# 添加硬盘( 关机状态下 )
# 查看磁盘 ll -/dev/sd*
lsblk(列出块状设备)查看分区
# 分区(MBR)
fdisk /dev/sdb
进入会话模式:欢迎使用 fdisk (util-linux 2.31.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x9aa215f9 的新 DOS 磁盘标签。
命令: n
Partition type:
p primary(0 primary,0 extended, 4 free)
e extended
Select(default p): p
分区编号(1-4,默认1): 1
起始扇区:默认
last 扇区 : +1G (分盘)
创建了一个新分区 1,类型为“Linux”,大小为 1 GiB。
命令(输入 m 获取帮助): w (保存分区信息)
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
***(可以继续分区)
# 分区准备
partprobe /dev/sdb
# 查看新分区
fdisk -l /dev/sdb
# 格式化/文件系统 Filesystem
mkfs.ext4 /dev/sdb1 (分区格式化)
make file system extend4 /dev/sdb1 第一块串口硬盘的第一个分区,准备格式化
# 挂载/mount
mkdir /mnt/disk1
mount -t ext4 /dev/sdb1 /mnt/
df -hT 查看挂载信息 (分区 文件系统 大小 占用 空闲 占比 挂载点)
/dev/sdb1 ext4 974M 24K 907M 1% /mnt/disk1
cp -rf /etc/ /mnt/disk1/ (验证变化)
mkfs.ext4 /dev/sdb2 (mkfs -t ext4 /dev/sdb2)
mkdir /mnt/disk2
mount -t ext4 /dev/sdb1 /mnt/disk2
umount 卸载挂载
# 扩展分区,放弃一个主分区作为扩展分区 (逻辑分区数量不限制)
# 创建磁盘 挂载
fdisk /dev/sd*
partprobe /dev/sdb
fdisk -l /dev/sdb
mkfs.ext4 /dev/sdb2 (mkfs -t ext4 /dev/sdb2)
mkdir /mnt/disk1
mount -t ext4 /dev/sdb1 /mnt/disk1
# 格式化 swap
mkswap /dev/sdd2
swapon /dev/sdd2 (这部分再学习下)
5.2 交换分区管理 Swap
作用: 提升内存容量,防止溢出
# 放热点数据 大小为内存的2倍, 16G内存,10G左右交换空间.
t 修改类型,选择82 Linux swap/Solaris
ll /dev/sdc (查看)
mkswap /dev/sdc1 (格式化)
swapon /dev/sdc1 (挂载) swapoff /dev/sdc1
free -m 查看内存
两者不能同时存在(挂载相当于给了一个去磁盘的链接
1-5为sdb的文件,6-10为sda的文件)
5.3 逻辑卷LVM
物理硬盘-> 变成物理卷-> 加入卷组-> 在卷组中,抽取空间,制作逻辑卷-> 格式化-> 挂载
# 创建 LVM
# PV 物理卷
将物理盘,转为物理卷
# pvcreate /dev/sdd
# VG 管理 (卷组)
# vgcreate vg1 /dev/sdd
# LV 扩容 (逻辑卷)
# lvcreate -L 200M -n lv1 vg1
-L 大小 -n 卷名 vg1 组名
# mkfs.ext4 /dev/vg1/lv1 (格式化)
# mkdir /mnt/lv1 (创建挂载点)
# mount /dev/vg1/lv1 /mnt/lv1 (挂载)
首先扩卷组,再扩逻辑卷
# 扩大卷组
# pvcreate /dev/sde
# vgextend vg1 /dev/sde
# lvextend -L +2G /dev/vg1/lv1
# df -hT
# resize2fs /dev/vg1/lv1 (刷新文件系统)
5.4 磁盘卸载
5.5 存储管理高级
# 文件系统详解(ext4文件系统)
分区 创建空间
格式化 创建文件系统
挂载 找一个入口进入磁盘
# 索引文件系统
# inode (128 bytes)
ll -i 文件名
记录文件的属性,大小、权限、属主、属组、连接块、块数量、块编号
df -i |grep sdd
# block
存储文件的实际数据,文件较大会占用多个block,大小4K
# superblock
block与inode 的总量 ,使用和未使用的数量
# 文件链接
# 符号链接
symbolic link/软链接
创建一个文件:echo 111 > /file1
创建一个软链接: ln -s /file1 /home/file11(/root/桌面/file11)
观察软链接: ll /home/file11 (l 链接文件)
查看两个文件: cat /home/file11
删除源文件:rm -rf /file1
# 硬链接
echo 222 > /file2
ln /file2 /file2- h1
ls -l /file2 /file2- h1
ls -l /file2 /file2- h1 /file2- h2 /file2- h3
硬链接 删除源文件,还保留文件
RAID
RAID0 RAID1 RAID5
# 软RAID
创建RAID -> 格式化,挂载 -> 查看RAID信息 -> 模拟一个块硬盘损坏,并移除 -> 设置RAID 开机生效
# RAID5 (三块数据盘) + (1块热备盘) + (校验)
ll /dev/sd*
# 创建RAID
mdadm -C /dev/md0 -l5 -n2 -x1 /dev/sd{d,e,f,g}
-C 创建RAID; /dev/md0 第一设备名称; -l5 RAID5 ;-n RAID 成员数量
-x 热备磁盘的数量
# mkfs.ext4 /dev/mod0
# mkdir /mnt/raid5
# mount /dev/md0 /mnt/raid5/etc1
# df -hT
# mdadm -D /dev/md0
# mdadm /dev/md0 -f /dev/sde -r /dev/sde (去掉数据盘)
5.4 磁盘卸载
6 文件管理
6.1 文件查找
# which :命令查找
which ls (直接跟命令) 应用程序的找出所在文件夹
# alias yjm='ls -- color=auto - l' 代替ls (修改)
# find: 文件查找,针对文件名
命令 路径 选项 表达式 动作
# 根据文件名
find /etc/ - name '123.txt' (iname忽略大小写)
find /etc/ -iname "hos*"
# 根据文件大小
find /etc -size 5M -5M +5M 小于 大于
# 按照目录深度(几级目录)
find / -maxdepath 2 -a -name ifcfg- en*
# 按属主
find /home -user jack
fing /home -group hr
ls -l -d ./1.txt /tmp /dev/sda /dev/cdrom
# 按照文件类型
find /dev/ -type f 普通
find /dev/ -type b 设备
find /dev/ -type l 链接
# 按照文件权限
find . -perm 644 -ls (限制长输出)
find . -perm
# 找到后的动作
find /etc -nmae "775*" -delete (删除)
find /etc -name "775*" - ok cp -rvf {} /tmp \;(复制)
6.2 文件压缩与解压
# tar - f 1.tar /etc
选项 压缩包名称 源文件
# tar -cf etc.tar /etc
# tar -czf etc- gzip.tar.gz /etc z是gzip ,压缩包名称中有压缩方式
tar -cjf - etc.tar.bz /etc
tar -cJf - etc.tar.xz /etc
ls -lh | grep etc
# tar -xf 111 (解压)
tar -cf
tar -tf etc.tar
tar xf etc.tar.xz
tar -xvf etc.tar.bz -C /tem //-C 压缩到指定位置
7 软件管理
# RPM 包管理
# YUM 工具 (自动处理依赖关系,并一次安装所有依赖软件包,指定服务器自动下载RPM包并安装)
YUM 本地
# 系统安装光盘(本地源)
0 观察YUM核心配置目录
/etc/yum.repos.d/
*.repo
1 删除官方YUM库
mv /etc/yum.repos.d/ /tmp
2 编写本地YUM库配置文件
# mkdir /mnt/cdrom
# vim /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd1
baseurl=file:///mnt/cdrom
gpgcheck=0
ebable=1 (开关)
[cvc]
name=dvd1
baseurl=file:///mnt/cdrom
gpgcheck=0
ebable=0
3 挂载安装光盘
mount /dev/cdrom /mnt/cdrom/
(开电源,虚拟机下标小光盘)
vim /root/.bashrc
4 使用YUM安装和卸载程序
yum install -y httpd 安装软件
systemctl start httpd 启动软件
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 禁用防火墙
5 模拟客户机访问
h
# 阿里源
# 清理原来配置
# 下载阿里开源镜像站
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
makecache (更新库)
yum repolist
# YUM 管理RPM 包
# 安装
全新安装: yum -y install httpd vsftpd (后面两个软件包)
重新安装: yum -y reinstall httpd
升级安装: yum -y update httpd
# 查询安装包(带@ 说明已经安装)
yum list httpd
# 移除软件包
yum -y remove httpd
# RPM 工具 (无法处理依赖)
cd /mnt/cdrom/Packages
rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm (直接安装)
rpm -q wget (查询软件包)
rpm -evh wget (卸载软件包)
# 源码包管理
umount /dev/cdrom
mount /dev/cdrom /mnt/cdrom/
# 安装编译器
yum -y install gcc make zlib-devel pcre pcre-level openssl-devel
# 解压
tar xf tengine-2.3.2.tar.gz
# 配置
cd tengine-2.3.2/
./configure --user=www --prefix=/usr/loca/nginx
用户 组 功能模块
# 编译
make
# 安装
make install
# /usr/local/nginx/sbin/nginx
8 任务计划
8.1 计算任务
# 一次调用执行
# at +
now +5min
teatime tomorrow
noon + 4 days
# at> useradd uuu
# ctrl + D
# 循环调度执行
# cron
systemctl status crond.service
ps aux | grep crond
# ls /var/spool/cron/
# crontab -e Edit jobs for the current user
*****(time)command
*mintue * hour * day of month * month * day of week OR sun,mon,tue,wed,thu,fri,sat
# 实例
1)
5 1 15 * * /mysql_back.sh
* 代表每天 or 每月 or 每年
*/5 每隔五分钟
2)
0 2 1,2,5 * * (每月的1、2、5日的2点执行)
3)
0 2 1-5 * * (每月1到5日)
4)
0 * * * * (每小时的整点)
5)
00 02 * * *
# crontab -l List the jobs for the current user
# crontab -r Remove all jobs for the current users
8 日志管理
# rsyslogd 系统日志管理
ps aux | grep rsyslogd
http/nginx/mysql
# 常见的日志文件(系统、进程、应用程序)
tail -10 /var/log/messages // 系统主日志文件
tail -f /var/log/messges //动态查看日志文件尾部
tailf /var/log/secure // 认证、安全
tail /var/yum.log // yum
tail /var/log/cron // crond 、at
# rsyslogd 配置
yum install rsyslog logrotate
systemctl start rsyslog.service
rpm -qc rsyslog // config
/etc/rsyslog.conf //主配文件
*.emerge 设备 级别 位置
/etc/sysconfig/rsyslog //
/etc/logrotate.d/syslog // 日志轮转
# RULES (rsyslog.conf)设备 级别 位置
# grep Faciltiy /etc/ssh/sshd_config
LOG_SYSLOG
LOG_AURHPRIV 安全认证
LOG_FTP 文件服务
# 级别
LOG_EMERG 紧急
LOG_INFO 标准信息
LOG_DEBUG 调试
# 修改配置文件规则后 重启
systemctl restart rsyslog
kill -1 1284 // 进程重新加载
# logrotate (日志轮转)
# 按照配置轮转
/etc/logrotate.conf //主文件,决定日志文件如何轮转
/etc/logrotate.d/* (*/) //子文件夹(自定义文件)
see man logrotate for detials //详细日志信息
rotate log files weekly
rotate 5 //保留几份
create //轮转后创建新文件
dateext //使用日期作为后缀
include /etc/logrotate.d //包含该目录下的子配置文件
/var/log/wtmp //对某日志文件设置轮转的方法
{ monthly //每月轮转一次
minsize 1M //大小达到1M
create 0064 root utmp // 轮转后创建新文件
rotate 1 //保留一份
}
/var/log/btmp{
missingok //丢失无提示
monthly //每月轮转
create 0600 root utmp //轮转后创建新文件,并设置权限
rotate 1
}
# 实例
# vim /etc/logrotate.d/yum
# /var/log/yum.log //对某日志文件设置轮转的方法
{ yearly //每年轮转一次
missingok
notifempty // 空文件也要轮转
maxsize 30K //大小达到30K ,daily or size
create 0600 root root // 轮转后创建新文件, 用户 组
rotate 1 //保留一份
}
/usr/sbin/lograotate /etc/logrotate.conf //动手轮转
date 04011000 //时间戳
/usr/sbin/lograotate -s /var/lib/logrotate.status /etc/logrotate.conf
ls /
9 网络管理
9.1 网络配置
# 网络接口名称规则
网络适配器 交换机NAT
# 设置网络适配器
# 打开网卡
# IP设置
# 认识网卡
# 查看网卡
ls /etc/sysconfig/network- scripts/
ifcfg-ens33
# 备份
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /tmp
# 查看服务是否运行
systemctl status NetworkManager //总程序
system status network //子程序
# 配置网络工具
vim /etc/sysconfig/network- scripts/ifcfg-ens33
nmcli device yum -y install NetworkManager
# 图形界面
nm-connection-editor
nmtui
# 配置IP
配置网卡信息
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /tmp
vim /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=yes //是否启用该设备
BOOTPTOTO=none //手动(none/static) 还是自动(dhcp)
IPADDR=192.168.91.133
NETMASK=255.255.255.0
GATEWAY=10.18.43.1
DNS1=8.8.8.8
DNS2=114.114.114.114
# 网卡信息
NAME="ens33"
UUID="8b6ec686-a678-4a52-b69d-4b413ecbce9a"
DEVICE="ens33"
systemclt restart network //配置完重启网络
# 查看本机自动IP
ip a
ip route //查看网关
ip neigh //另一台主机ping,查看邻居
ping 192.172.186.12
# 查看主机名
hostnamectl set-hostname yjm
cat /etc/hosthome
vim /etc/hostname
reboot
# 网络测试工具
ports and service
# Show TCP sockets
ss -tnl //查看端口号检验
State Recv-Q Send-Q
netstat -anpt
# 初始化服务器
最小化安装
1、为服务器配置root密码
2、配置IP地址(VMNAT8)
3、配置YUM源
* 能上网配置阿里源
4、关闭防火墙
5、selinux
6、安装常用程序
7、关机快照
9.2 网络管理实践
IP地址
10 文件管理
10.1 文件服务
# FTP (文件传输协议)
vsftpd
yum list | grep vsftp
yum -y install vsftp
# 分发文件
touch /var/ftp/abc.txt
vim /var/ftp/abc.txt
# 启动服务
systemctl start vsftpd
systemctl enable vsftpd
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
#
systemctl start vsftpd
systemctl enable vsftpd
# lftp 访问客户端
yum -y install lftp
lftp ip
ls
get abc.txt
mirror pub
# wget
ls /var/ftp/ (在ftp目录的文件)
wget ftp://192.168.142.132/pub/333.txt -0 /home/12.txt
wget -m http://
# 启动上传功能
# 客户机
touch 5.txt
echo hello1 > 5.txt
vim /etc/vsftpd/vsftpd.conf
# anonymous_enabe=YES // 启用匿名账号
anon_upload_enable=YES // 启动上传
anon_mkdir_write_enable=YES
mkdir /var/ftp/upload // 创建独立文件夹
chmod 777 /var/ftp/upload // 授权
lftp 192.168.91.133
cd upload/
put 5.txt
# 服务器
lftp 192.168.91.133
cd upload
put 2.txt
mkdir 222
mirror -R aaa
# NFS
nas 192.168.142.133
web1 192.168.142.130
web2 192.168.142.131
web1 web2 // 客户端
nas //存储端
yum -y install nfs-utils
mkdir /webdata // 存储网站代码
echo "nfs test" > /webdata/index.html // 放置测试页面
vim /etc/exports
/webdata 192.168.142.0/24(rw)
# 启动
systemctl start nfs-server
systemctl enable nfs-server // 开机自启
exportfs -v // 检查
# 客户端
yum -y install nfs-utils
mount -t nfs 192.168.142.133:/webdata /var/www/html/
umount /var/www/html/ // 取消挂载
yum -y install nfs-utils httpd
systemctl start httpd
systemctl enable httpd
# 查看存储端共享
showmount -e 192.168.142.133 //查看NFS服务器可用目录
Export list for 192.168.142.133:
/web/data 192.168.142.0/24
mount -t nfs 192.168.142.133:/webdata /var/wwww/html/
cat /var/www/html/index.html
# 查看挂载
df
ls /var/www/html/
# 其他客户端查看
elinks http://192.168.142.132
# 重新配
yum -y install nfs-utils
yum -y install nfs-utils httpd
systemctl start httpd
systemctl enable httpd
mount -t nfs 192.168.142.133:/webdata /var/www/html/
ls /var/www/html/
echo 2222 > /webdata/index.html //nas 修改内容
# SSH
ssh root@ 192.168.142.132
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。