linux/linux系统管理.md
2025-06-19 09:49:48 +08:00

49 KiB
Raw Permalink Blame History

centos官网https://centos.org/

rockylinux官网https://rockylinux.org/zh-CN

nginx官网https://nginx.org/

apache官网https://apache.org/

linux发行版本 centos redhat ubuntu debian

第一章linux系统管理

linux的目录结构及文件类型

目录结构

  • which获取命令对应的二进制文件存放位置
  • bin命令文件 二进制文件 程序文件(普通用户)
  • sbin命令文件 二进制文件 程序文件(管理员用户)
  • root默认存放root用户的家目录 ~/当前用户家目录
  • home默认存放普通用户的家目录
  • var默认存放有变化的文件、比如日志
  • mnt默认挂载
  • dev默认存放设备文件
  • proc虚拟文件
  • etc默认存放配置文件的目录
  • tmp临时文件

文件类型

  • — 普通文件 (文本文件,二进制文件,压缩文件,电影,图片)
  • d 目录文件 (蓝色)
  • b 设备文件块设备存储设备硬盘U盘/dev/sda,/dev/sda1
  • c 设备文件(字符设备)打印机,终端,/dev/tty1,/dev/zero
  • s 套接字文件
  • p 管道文件
  • l 链接文件(深蓝色)

vim编辑器操作及使用

编辑模式使用i键进入编辑模式可以修改

命令模式:默认进入命令模式,该模式可以看到文件内容,不能编辑

可视模式:第一列注释 ctrl + v shift+i # Esc两下

尾行命令模式wq!

GG 光标移动到最后一行
gg 光标到行首
dd 删除光标所在行
dG 删除光标的下面的行
u 撤销
yy 复制
p 粘贴
D 删除光标后的内容

vi编辑器查找替换

语法格式行s/替换的内容/替换成谁/

查找 在命令模式下输入“/”进入行尾命令模式 要查找的内容 /root

n从上往下查看 N从下往上查看

替换:%s/root/ROOT/ 从首行到最后一行替换,只能替换每一行第一个匹配到的

%s/root/ROOT/g 从首行到最后一行,只要匹配到全部替换

510s/.*/#&/ 5行到10行每一行开头加一个#

49s/^#// 4行到9行每行开头的#删除

临时查看和取消行号

set nu
set nonu
set list 查看空格
set ic 不区分大小写

永久设定行号

/etc/vimrc里面加 set nu

如果出现非正常关闭文件


非正常关闭,再次编辑文件以.swp结尾的隐藏文件

解决方案q退出 然后删除.swp结尾的

Linux用户和组管理

特性:多用户多任务 多个用户在同一个系统中同一时间执行的不同的任务,他们互相不影响

权限管理机制:每个用户拥有自己的权限

默认的自带的超级管理用户root

用户管理

  • useradd 用户名字 创建用户
  • useradd -u 1000 用户名字 指定用户uid
  • useradd -d 用户名字 /opt/xiaoshun 指定用户家目录
  • useradd -s /bin/sh 用户名字 指定登录shell
  • useradd -r 用户名称 创建系统用户

设置用户密码

passwd   用户名字  用户设置密码

切换用户

su    -   用户名字

获取当前使用的用户名

id -un 

修改用户

  • usermod -s /sbin/nologin 用户名 禁止用户登录
  • usermod -u 用户名 1000 修改已创用户uid
  • usermod -l 新的用户名 旧的用户名 修改用户名
  • usermod -L 用户名 锁定密码
  • usermod -U 用户名 解开密码
  • usermod -G 用户2 用户1 用户1加入到用户2组里用户1有两个组给用户附加组
  • usermod -aG 组名 用户名 用户附加组 修改用户属组
  • userdel -r 用户 删除用户

添加用户发生变化的文件

/var/spool/mail 邮箱

/etc/group   存放组信息配置文件

/home      家目录

/etc/shadow 存放用户密码的(第二列密码是经过加密处理的)

/etc/passwd 系统中的所有用户的信息

用户组管理

一个用户至少包含一个组

用户组管理

  • groupadd 组名 创建组
  • groups 组名 查看用户组
  • groupmod -n 新组名 旧组名 修改组名字
  • groupmod -g 新GID 组名 修改GID
  • gpasswd -a 用户 组名 添加用户到组
  • gpasswd -M 用户1用户2 组名 添加多用户到组
  • gpasswd -d 用户 组名 从组删除用户
  • groupdel 组名 删除组

用户提权

让普通用户具备管理员权限,执行管理员命令

 root    ALL=(ALL)       ALL

超级管理员用户 root 标识 UID 0

系统用户 标识 UID 1-999 包含14和999 0<UID<999

普通用户 标识 UID UID>=1000

linux系统管理权限

基本权限UGO

  • U 代表user 用户 所有者
  • G 代表Group 组 所属组
  • O 代表Other 其他人

-rw-r--r-- 1 user root 945 Jan 22 18:53 passwd

对应的所有者user 对应的所属组root

基本权限针对文件

  • r 读 4 读取文件的内容 cat vim/vi
  • w 写 2 编辑该文件 vi vim写入文件
  • x 执行 1 执行该文件(脚本) bash sh ./ /

就算一个文件没有执行权限我们可以使用bash或者sh的命令执行文件但是如果一个文件没有执行权限不能用./或者执行文件

文件的默认权限是644

目录的默认权限是755

权限设置

修改基本权限chmod

数字方式chmod 564 tiantian //这个文件权限:所有者读和执行,所属组读和写,其他人读

字母方式: chmod u+x tiantian //增加给tiantian文件所有者增加x权限

将/opt/dir目录下的所有内容设置权限为777包括dir1目录下的所有文件也包括了dir目录

chmod 777  /opt/dir -R

将/opt/dir/目录下所有内容设置权限为644包括dir1目录下的所有文件不包括dir目录

chmod 644  /opt/dir/\*  -R

修改所有者所属组chown

修改tiantian文件所有者为user1000,所属组为group2000

chown  user1000,group2000 tiantian

高级权限

suid权限给命令文件设置权限当给命令文件设置了suid权限后无论那个用户执行该命令都会变成这个命令文件所有者的用户去执行 符合 s 对象 u 文件

 chmod u+s 命令文件

sgid权限组继承权限 对象 g 符号s 针对目录

目录的所属组假设是hr如果设定了sgid权限那么在该目录下创建的新文件都会继承目录的属组hr

chmod g+s 目录名

sticky权限防止别人误删除 符号 t 对象 o 针对目录

chmod o+t  目录名

umask

umask 权限掩码 创建文件的时候文件默认权限跟umask有关联 默认情况下umask的值为022 所以创建的文件默认权限644目录默认权限755

修改umaskumask + 掩码 最大777 最小000

文件默认权限=0666-0022=0644

目录默认权限=0777-0022=0755

文件属性

a能看 能追加 不能删除

i只能看其他啥也干不了

chattr + -

lsattr查看

linux进程使用管理

ps aux

第一列:进程的拥有者

第二列PID 进程ID 唯一标识一个进程

第三列cpu使用的百分比

第四列mem内存使用率

第七列:终端

第八列:进程的状态

  • Ss s进程的领导者父进程
  • S< <优先级较高的进程
  • SN N优先级较低的进程
  • R+ +表示是前台的进程组
  • Sl 以线程的方式运行

最后一列:进程的名字

按照cpu使用率从大到小

ps  aux --sort  -%cpu | less

按照mem使用率从大到小

ps aux  --sort  -%mem |less

按照cpu使用率从大到小查看前四行去掉USER重定向到/tmp/1.txt上

ps aux --sort -%cpu | head -4 | grep -v USER > /tmp/1.txt

获取服务的pid

pidof dockerd

w who 都可以看到谁正在远程链接我能够获取到对方ip地址、终端编号、对应的用户

w 还可以看服务器的运行时间、用户数量、平均负载

uptime 看cpu平均负载

动态进程top

快捷键P将cpu使用率排序 M将%mem使用率排序 R排序反转

操作系统两种cpu状态 内核态 用户态

top的整体信息

top分为上下两部分上面是机器整体负载情况下面是单个进程的负载情况

                 load average代表cpu每1分钟5分钟15分钟的平均负载

                    us 用户空间占用cpu的百分比

                    sy 内核空间占用cpu的百分比

                    ni 调整过优先级的进程占用cpu的百分比

                     id cpu空闲百分比

                     wa io等待占用cpu百分比

                      hi 硬中断占用cpu百分比

                      si 软中断占用cpu的百分比

free -m/h 看内存的使用率

total 总量 used使用量 free空闲量 buff/cache 缓存中的内存

网络进程

netstat -auntpl

ss -auntpl

  • -a所有
  • -u查看upd进程
  • -ppid
  • -n显示数字
  • -l监听
  • -t查看tcp进程

显示所有的 TCP 连接和监听端口,以及与之相关联的进程信息

ss -antpl 

显示所有的 TCP 连接和监听端口,以及与之相关联的进程信息

netstat -antpl

显示所有的 UDP 连接和监听端口,以及与之相关联的进程信息

ss -tnupl 

数据传输

 TCP<font style="color:rgb(51, 51, 51);">传输控制协议</font>

udp用户数据报协议

tcp状态

  • CLOSED(关闭状态)初始状态表示TCP连接未建立
  • LISTEN(监听状态)。服务器等待客户端连接的状态
  • SYN SENT(同步已发送状态)。客户端发送连接请求后等待服务器确认的状态。
  • SYN RECEIVED(同步已接收状态)。服务器接收到客户端连接请求并发送确认后的状态。
  • ESTABLISHED(已建立状态)。表示TCP连接已成功建立双方可以进行数据传输。
  • FIN WAIT 1(等待对方FIN报文状态)。表示TCP连接的一方发送了关闭连接请求。
  • FIN WAIT 2(等待对方关闭连接请求状态)。表示TCP连接的一方等待对方发送关闭连接请求。
  • TIME WAIT(等待状态)。表示TCP连接关闭后的等待状态用于确保数据的可靠传输。
  • CLOSE WAIT(等待关闭状态)。表示TCP连接的一方接收到了对方的FIN报文但尚未发送ACK。1
  • LAST ACK(最后确认状态)。表示TCP连接关闭前的最后确认状态等待对方的FIN报文。3
  • CLOSING(关闭状态)。表示TCP连接正在进行关闭过程

kill

  • kill -1 重新加载进程或重新加载配置文件
  • kill -9 给进程发送一个强行终止的信号
  • kill -15 正常杀死
  • kill -18 激活进程 //挂起在次激活时服务对应进程的PID会改变不能
  • kill -19 挂起进程

pkill

  • pkill -9 -t pts/2 //指定终端干掉
  • pkill -9 -u 用户 //干掉指定用户进程

linux磁盘分区管理

机械硬盘HDD

固态硬盘SSD

分布式存储 HDFS CEPH

云存储

对象存储 minio OSS

raid 0

raid 0分为2种分别为单盘0和全盘0

raid全盘0 最少需要2块盘 磁盘空间利用率为100% 没有冗余没有容错

raid0把连续的数据分散到多个磁盘上存取

raid单盘0 只需要一块磁盘   常用于新服务器安装操作系统

raid 1

raid 1  只能2块磁盘做。

镜像raid通过磁盘数据镜像实现数据冗余在成对的独立磁盘上产生互为备份的数据

优点:提供数据冗余,支持容错,读速度快

缺点:写速度慢,磁盘利用率不高

磁盘利用率50%

raid 5

raid5最少需要3块磁盘。它的校验数据分布在阵列中的所有磁盘上。

优点1.可以找回丢失的数据2.冗余磁盘当某一块磁盘坏掉后冗余磁盘会自动替换上去3.读写速度高4.磁盘利用率高

缺点1.磁盘越多安全性能越差

利用率 n-1/n

raid 6

raid6 两块存校验位。RAID6引入双重校验的概念

最少需要四块磁盘,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。

优点1.容错:允许两块磁盘同时坏掉。读快。

缺点1.写入速度差

2.成本高

3 磁盘利用率 n-2/n

应用场景:对数据安全级别要求比较高的企业

raid1+raid5 全都是机械硬盘

raid1+raid5 机械盘+固态盘 混搭

raid1用机械装系统

raid5用固态存数据

raid1+ssd_raid5

raid 阵列选型: 根据服务特点和数据相关做有冗余的阵列数据要求极高的就做最高的安全性raid。

根据业务特点数据重要程度去选择冗余度高和低的raid阵列

磁盘分区

lsblk 查看磁盘分区

MBR fdisk 命令最多分4个主分区

GPT gidsk 命令可以分128个主分区

磁盘大于2T不可以使用fdisk命令必须要用gdisk命令可以分128个主分区

fdisk

  • n添加分区
  • p主分区
  • e扩展分区
  • w保存退出
  • q退出不保存

gdisk

  • n添加分区1-128
  • p: 查看分区
  • d删除分区
  • w保存退出
  • q退出不保存

文件系统

  • linuxxfs ext4 ext3 nfs
  • windowNTFS FAT32

格式化:磁盘或磁盘分区设定文件系统类型

磁盘有空间本身容量100G现在还显示10G但是无法存放数据ext家族文件系统inodes耗尽造成无法存储文件

格式化方式

  • mkfs.xfs -f 设备名称
  • mkfs.ext4 设备名称

临时挂载(重启失效)

  • mount 设备名称 挂载点(目录)
  • umount 设备名称 挂载点 (目录)

mount -o rw centos-7-x86 64-Minima1-2009.iso /opt/centos/ 把镜像挂载在opt/centos目录上 rw是读写权限

永久挂载

 第一列设备设备名称。设备uuid标识

 第二列:挂载点(本质就是目录)

 第三列文件系统类型xfs ext4 nfs

 第四列: 属性 rw remount defaults

 第五列+第六列: 0 0 不备份 不检查
/dev/sdc     /opt/1     ext4 defaults       0   0

uuid挂载

blkid /dev/sda

/dev/sda: PTUUID="770490bd" PTTYPE="dos"

UUID="25d22b48-8e46-494b-a12c-ae80a4297808"      /opt/1      xfs       defaults    0   0

物理卷

  • pvcreate /dev/磁盘名称(sdb) 创建物理卷
  • pvremove /dev/磁盘名称(sdb) 删除物理卷
  • pvs 查看物理卷
  • pvmove /dev/sdb /dev/sdd 数据迁移 sdb-->sdd

卷组

  • vgcreate 卷组名vg1/dev/磁盘名(sdb) 创建卷组
  • vgextend 卷组vg1 /dev/磁盘名(sdb) 将物理卷加入到卷组
  • vgremove 卷组名(vg1) 删除卷组
  • vgreduce 卷组名vg1 /dev/磁盘名(sdb) 将物理卷从卷组中移除
  • vgs 查看卷组

逻辑卷

  • lvcreate -L 磁盘容量大小(2G) -n 逻辑卷名(lv1) 卷组名(vg1) 创建逻辑卷
  • lvremove /dev/卷组名(vg1)/逻辑卷名(lv1) 删除逻辑卷
  • lvextend -L 磁盘容量(+5G) -n /dev/卷组名(vg1)/逻辑卷名(lv1) 逻辑卷扩容
  • lvreduce -L 20G /dev/centos/root 自定义逻辑卷的容量
  • lvs 查看逻辑卷

扩容/分区

  • pvcreate /dev/sdb 创建物理卷
  • vgextend centos /dev/sdb 将物理卷加入centos卷组
  • lvextend -L +5G /dev/centos/root 逻辑卷扩容5G
  • xfs_growfs 要扩容的lv的path(/dev/centos/root) 整合文件系统

扩容完要整合文件系统

准备一个正在被使用逻辑卷并且文件系统ext4

   -  lvcreate -L 2G -n lv2 vg1
   -  mkfs.ext4 /dev/vg1/lv2
   -  mkdir /opt/lv2
   - vi /etc/fstab    /dev/vg1/lv2 /opt/lv2 ext4 defaults 0 0
   - mount -a   验证 df -Th
   - lvextend -L 5G /dev/vg1/lv2
   - 判断文件系统为ext4 所以使用
   - resize2fs /dev/vg1/lv2

逻辑卷格式化流程

  • 先取消挂载
  • 在删除逻辑卷
  • 删除卷组
  • 删除物理卷
  • 格式化

swap交换分区 防止内存溢出造成系统奔溃

swap分区大小设置规则

内存小于4G时推荐不少于2GB的swap空间

内存4GB~16GB推荐不少于4GB的swap空间

内存16GB~64GB推荐不少于8GB的swap空间

内存64GB~256GB推荐不少于16GB的swap空间

制作swap分区

先用fdisk做一个分区

mkswap /dev/sdb 格式化分区

swapon /dev/sdb 激活swap分区

swapoff /dev/sdb 关闭swap分区

文件链接

软链接

  • ln -s 源文件(/roo/zhangsan) 目的地(/opt)
  • 普通文件和目录都支持软连接
  • 软连接源文件跟链接文件inode号不同
  • 软连接源文件删除后,链接文件不可用
  • 软连接可以跨分区

硬链接

  • ln 源文件 目的地
  • 文件可以创建硬链接,目录不可以
  • 硬链接inode不变
  • 硬链接源文件删除后,链接文件可以使用
  • 硬链接不可以跨分区

linux文件find查找

find 位置/路径 条件 值 动作

条件

  • -name 文件名字
  • -type 文件类型 普通文件 f 其他和文件类型一样
  • -size 文件大小 +5M 大于5M 5M 在5M范围内
  • -user 查找所有者
  • -group 查找属组
  • -perm 权限 指定 644 755
  • -mtime 修改时间 atime 访问时间 ctime 改变时间 mtime 修改时间

多条件

  • -a and // 条件都要满足
  • -o or //条件满足其中一个

动作

find /opt -name "3" -exec mv {} /mnt ;

  • -exec ; 格式
  • {} 承接查到的内容
  • mv 文件操作命令

find /opt/ -name "*2" |xargs -i mv {} /mnt

linux压缩解压缩

window .rar .zip

linux.zip .tar.gz tar.bz2 .tar.xz

打包压缩tar czf 路径/压缩包的名字 压缩的文件

tar czf /opt/docker-ce.tar.gz docker/

解压缩tar xzf 压缩包名字

指定位置解压: -C

tar tf 不解压直接查看内容

tar xzf docker-ce.tar.gz -C /root/

查看/etc目录下所有以.conf结尾的文件并进行压缩压缩到/opt目录下命名为conf.tar.g


 find /etc  -name "\*.conf" |xargs  -i  tar rf /opt/conf-1.tar.gz{}

zip包

解压缩unzip 压缩包名字

指定位置解压: unzip -d /opt/ nextcloud-22.0.0.zip

gunzip

解压.gz结尾的包 如果没有gunzip,使用yum -y install gzip

linux软件包管理

rpm包管理

rpm网站https://rpmfind.net/

二进制包 .rpm结尾 有依赖关系

  • rpm -qa | grep 服务名 找安装包
  • rpm -ql 服务名 启动服务
  • rpm -e s1-5.02-1.e17.x86 64.rpm 卸载
  • rpm -qa 获取已经安装的所有包
软件名字   版本号  发行版本  平台架构   后缀

yum软件包管理

  • install
  • remove
  • reinstall 重新安装
  • provides 查找包名
  • info 查找包的详细信息
  • update 更新服务
  • list 列出所有包
  • repolist 列出所有的仓库
  • clean all 清除缓存
  • makecache fast 快速生成缓存

yum list | grep show

yum list --showduplicates docker-ce服务名全称 列出你可以安装的版本都有哪些
yum -y install docker-ce-3:20.10.12-3.el7 指定版本安装

内网下载

dnf -y install  --downloadonly --downloaddir=docker-ce/  docker-ce-3:20.10.24-3.el9.x86_64

--downloadonly   只下载不安装
--downloaddir    指定安装目录
dnf -y install ./*rpm 内网直接安装

yum仓库

[base]

name=CentOS-\$releasever - Base - mirrors.aliyun.com   指定仓库的名字

baseurl=<http://mirrors.aliyun.com/centos/>           仓库地址

enabled=1                                              1开启    0关闭   仓库是否启用

gpgcheck=1                                         是否校验  1开启 0关闭

gpgkey=<http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7>

源码包

源码编译安装nginx

源码编译安装nginx https://nginx.org/ nginx的官网

1.获取nginx的源码包

wget https://nginx.org/download/nginx-1.24.0.tar.gz

tar xf nginx-1.24.0.tar.gz

2.编译安装准备所需要的环境

yum -y install apr apr-util ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make

3.配置

./configure  --prefix=指定位置(/opt/nginx

4.编译

make

5.安装

make install

测试

获取项目源码包wget <http://10.9.12.206:30120/directlink/1/safeware/love.zip>
安装解压工具yum -y install unzip
解压源码包unzip love.zip
拷贝源码到网站发布目录下cp -r love/\* /opt/nginx/html/

启动nginx : /opt/nginx/sbin/nginx   执行的是安装目录下的sbin目录下nginx的文件
关闭nginx killall -9 nginx

第二章linux网络协议

linux网卡解析

DNS解析

  1. 输入网址

用户在浏览器中输入网址(例如www.example.com)并按下回车。

  1. 本地 DNS 缓存查询

计算机首先检查本地 DNS 缓存,看看是否已经保存了该域名对应的 IP 地址。

  1. 向本地 DNS 服务器发起请求

如果本地 DNS 缓存中没有找到对应的 IP 地址,计算机会向本地 DNS 服务器发起请求。

  1. 递归查询开始

本地 DNS 服务器开始递归查询过程,向根域名服务器发起查询请求。

  1. 向根域名服务器查询

根域名服务器知道整个互联网的域名分布情况,但它不知道具体域名对应的 IP 地址。根域名服务器会将查询转发给顶级域名服务器。

  1. 向顶级域名服务器查询

顶级域名服务器知道每个顶级域名(如.com、.net、.org等的权威 DNS 服务器地址。本地 DNS 服务器向顶级域名服务器查询该域名的权威 DNS 服务器的 IP 地址。

  1. 向权威 DNS 服务器查询

顶级域名服务器返回权威 DNS 服务器的 IP 地址后,本地 DNS 服务器向权威 DNS 服务器发起查询请求,请求该域名对应的 IP 地址。

  1. 返回 IP 地址

权威 DNS 服务器查询到该域名对应的 IP 地址后,将其返回给本地 DNS 服务器。

  1. 返回给客户端

本地 DNS 服务器收到 IP 地址后,将其缓存,并将其返回给客户端(例如您的计算机)。客户端收到 IP 地址后,就可以使用它来建立与目标网站的连接,开始浏览网页或进行其他网络活动。

第三章linux常用命令指南

linux重定向

  • 0 标准输入
  • 1 标准正确输出
  • 2 标准错误输出
  • 覆盖

  • 追加

1> 标准正确输出重定向覆盖

1>> 标准正确输出重定向

2> 标准错误输出重定向覆盖

2>> 标准错误输出重定向追加

& === 1+2 混合输出

重定向案例

cat >>/opt/tiantian.b <\<eof

tiantian

tianjin

hello

hi

eof

| 管道的作用 前一条命令执行后的结果交给后一条的执行

linux三剑客

  • cat 参数-n显示行号文件名
  • head 指定行数 从前往后 默认看前10行
  • tail 指定行数 从后往前 默认看后10行
  • tail -f 实时的查看
  • more less 翻页查看

sort 排序 默认从小到大

  • -r 反转
  • -n 按照数值排序
  • -k 指定字段(按列分)

uniq 去重复(只能对一个字段,必须要排序在去重复)

  • -c 去重

awk 字符处理工具

cat 1.txt | awk -F':' 'NR==10{print $5}' ##NR指定目标所在行

awk <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">$NF 最后一列 $</font>`(NF-1) 倒数第二列

  • -F 指定分隔符

grep 过滤

  • -v 反向查找,只打印不匹配的行
  • -i 忽略大小写进行匹配
  • -n 显示匹配行的行号

wc 统计

  • -l 统计行数

access.log 日志文件 nginx访问日志

获取到所有的ip地址

cat access.log | awk '{print \$1}'

获取到所有ip的个数统计某一网站访问次数统计某一网站pv量

cat access.log | awk '(print \$1)' |  wc -l

获取所有的IP地址去重统计某个网站访问的人有那些

cat access.log | awk '{print \$1}' | sort -n | uniq

统计某一网站访问人数uv

cat access.log | awk '{print \$1}' | sort -n | uniq | wc -l

每个ip地址的个数每次ip访问的次数

cat access.log | awk '{print \$1}' | sort -n | uniq

获取访问次数前三的人/ip地址

cat access.log | awk '{print \$1}' | sort | uniq -c | sort -rn | head -3

linux基础命令

ls参数使用

ls  -l :显示文件的详细信息 或者 使用 ll
ls -lh :以单位显示
ls -i 显示文件的inode号
ls -a :显示隐藏文件

date时间使用

date:查看时间和日期、修改时间和日期

 获取当前日期date +%F       F日期

 获取当前时间date +%H:%M:%S     H时 M分 S 获取周几: date +%w  w 获取日期+时间 date +%F-%T

 touch `date +%F` 创建当前时间的文件

 date -s 3:00 //指定时间

第四章linux常用服务管理

ntp时间服务

timedatectl set-timezone Asia/Shanghai 设置时区为上海

安装时间服务

yum  -y install ntp

修改配置文件

restrict default nomodify   ##不允许客户端登录,也不允许客户端修改

server 127.127.1.0  ##使用本地的bios时间自己跟自己同步
 
fudge 127.127.1.0 stratum 10  ##定义级别范围0-16越小越精准

启动服务

systemctl start ntpd && systemctl enable ntpd

同步阿里云时间

ntpdate ntp.aliyun.com

计划任务服务

一次性计划任务

安装一次性计划任务服务

yum -y install at && systemctl start atd

时间:只能指定某一个时间点

任务/命令/动作

100 5/1/2024 ##小时:分钟 月:日:年

案例

[root@localhost ~]# at 8:01
at> touch /opt/test 
at> <EOT>      ##ctrl +d 结束计划任务创建 
job 2 at Thu Apr 10 08:01:00 2025

at -l 查看计划任务

at -d 任务序列号

循环性计划任务

crontab执行时间计算 (https://tool.lu/crontab/)

crond服务

systemctl status crond  ## 默认开机自启

crontab -e 创建计划任务

crontab -l 查看计划任务

crontab -r 删除计划任务

/var/spool/cron 里面存放了循环计划任务的文件 以用户命名

ftp服务

服务端:

安装vsftp服务

yum -y  install vsftpd

启动服务并设置开机自启

systemctl start vsftpd && systemctl enable vsftpd

## 浏览器或者文件资源管理器访问测试

客户端:

安装lftp服务

yum -y install lftp

连接服务端

lftp 192.168.198.129

基本概要

/var/ftp/   ## 对外共享目录,要共享的文件放到该目录下

/var/log/xferlog  ## 用户的上传和下载都会被该文件记录 vsftpd日志文件

mirror ## 下载目录       

get  ## 下载文件

开启匿名用户上传模式

mkdir /var/ftp/date

chmod 777 /var/ftp/date/

修改文件实现上传功能

anon_upload_enable=YES    # 是否允许匿名用户上传文件
anon_mkdir_write_enable=YES  # 是否允许匿名用户允许创建目录

验证上传功能

lftp 192.168.198.129

put +文件名(绝对路径)上传的文件本地有

mirror -R 目录名(绝对路径)  上传的目录本地有

注意:
1.对外共享目录自身不能使用777权限否则会报错
2.上传文件前先要进入对应的目录下,否则无法上传
3.所有服务器都要关闭防火墙和SELinux

密钥远程管理服务

ssh服务

/etc/ssh/sshd_config 服务端配置文件

/etc/ssh/ssh_config 客户端配置文件

/root/.ssh/ 密钥存放的位置

ssh-keygen 生成密钥

  • id_rsa 私钥
  • id_rsa.pub 公钥
  • authorized_keys 存放对方的公钥

拷贝私钥到B机器

scp id_rsa 192.168.0.1:/root

给192.168.0.1机器拷贝密钥(默认是公钥)

ssh-copy-id  192.168.0.1 

scp远程拷贝

scp -r 源文件/源目录  192.168.0.1:/root