linux

2023-05-16

目录

基本命令

文件和用户管理

用户

创建用户

 删除用户

 修改用户属性

用户组

创建组

组的类型

提权

用户的权限

基本权限UGO

权限的三类对象

权限的三种类型

设置权限

 编写程序

增加执行权限

 更改属主,属组

基本权限ACL(access control list)

语法

设置

特殊权限

特殊位suid

 文件属性

进程掩码(umask)

 进程管理

什么是进程?

静态查看进程ps

进程排序

进程的父子关系

自定义显示字段

动态查看进程top

 使用信号控制进程

信号种类

进程优先级nice

简介

查看进程的nice级别

启动具有不同nice级别的进程

更改现有进程的nice级别

作业 控制jobs

简介

jobs查看后台进程

 把后台程序调回前台

 当一个后台程序运行停止时

消灭后台进程

虚拟文件系统proc

虚拟文件系统

cpu

内存

内核

重定向

FD简介(文件描述符)

示例

编写邮件

利用重定向快速创建邮件

管道

tee管道

参数传递Xargs

案例

切割cut

存储管理

基本分区

磁盘简介

 管理磁盘流程三部曲

查看磁盘信息 

 创建分区

创建文件系统

挂载mount

 创建挂载点,一个分区一个挂载点

交换分区管理Swap

简介

逻辑卷LVM

高级课程

文件系统详解

文件链接

RAID

查找和压缩

文件查找

简介

命令文件查找

find

打包压缩

简介

打包,压缩

软件安装

RPM包管理

简介

​编辑

YUM工具

YUM本地源:系统安装光盘 

 使用YUM管理RPM

RPM工具

 先找到包

缺点:

源码包

获得源码包

计划任务

一次性调度执行at

语法格式

示例

循环调度执行cron

查看进程状态

日志管理

简介

任务一详解

任务二详解:日志轮转


基本命令

1.云计算? 相关职位

开源软件和linux起源:

  1. 自由软件之父:理查德.斯托曼
  2. linux之父:林纳斯.本纳第克特.托瓦兹

linux发行版

  1. RHEL:Red Hat Enterprise Linux  红帽linux商业公司
  2. CentOS:Community Enterprise Operating System 社区企业操作系统 免费的商业软件
  3. Ubuntu:桌面应用为主的开源GUN/Linux操作系统
  4. Debian

RHCE:红帽认证工程书

  1. RHCSA:红帽认证系统管理员
  2. RHCE:红帽认证工程师
  3. RHCA:红帽认证架构师

服务器分类:

  1. 塔式服务器
  2. 机架式服务器
  3. 刀片服务器

VMware-真机服务器 

启动分区 交换分区 系统分区

处理Centos7/8系统输入用户名密码后界面卡住故障记录:设置用户名有限制

注销设置的用户-以超级管理员root登录

设置网卡-网络连接

 XShell链接虚拟机

一次性创建多个文件touch file{yufeng,a,c}

拍摄快照

 文件管理

cd /到根目录

bin:普通用户使用,二进制 boot:启动 dev:硬件 etc:设备文件 home:用户主目录 root:root用户的HOME  run:临时  sbin:特权

tmp:临时  usr:应用程序  var:日志,邮件

文件类型

- 普通文件(文本文件,二进制文件,压缩文件,电影,图片)

d 目录文件(蓝色)

命令 选项 参数  ls  /        ls -l  /

ctrl+l清屏

yum install tree

touch 路径和名字

mkdir -p  路径文件 :连续创建

cp 源文件路径 目标文件 :复制

table键补齐目录  两次tab键列出所有

cp -r 源文件 目标文件 :是否将源文件夹下的所有都拷贝

cd ~:进入根目录下的root文件夹

 cd /进入根目录

mv 源文件路径 目标文件路径:移动

mv /home/a1/b1/c1/d1 /home/a1/b1/ 将d1移动到b1的文件夹下

mv /home/a1/b1/c1/d1  /tmp/d222移动并将d1改名为d222

mv /tmp/d222  /tmp/d333只改名

ctrl+shift++:屏幕放大

cat  文件 :查看全部内容

head -3 文件:查看前三行

tail

more 文件:翻页  空格翻篇回车换行

grep c /1.txt:过滤

ls 路径 >文件名:将路径下的目录信息放入文件中

gedit 文件名:打开文件

vim 文件名 i :wq         yy复制,p粘贴 dd删除 5dd一下删除5行  u撤销  x删除一个字

文件和用户管理

用户

创建用户

 /etc/passwd(冒号分割为7列字段)root:x:0:0:root:/root:/bin/bash  

用户名:x:uid:gid:描述:HOME:shell

x密码占位符,具体的内容不在这里

uid用户的身份证号 0特权用户 1~499系统用户 1000+普通用户  

gid组号

root:描述:比如经理

/root:家目录:登录系统时所在目录

/bin/bash:登录shell:命令解释器

 /etc/shadow(8列):密码加密后

  /etc/group的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户

(User)

用户创建:useradd 用户名

查询用户命令:id 用户名

修改密码:passwd 用户名

普通用户上述命令显示权限不够

指定uid: useradd user01 -u 1503

指定家目录:useradd user02 -d /aaa

useradd --help

查看所有创建的用户:cat /etc/passwd

 删除用户

userdel -r 用户名 -r删除主目录文件夹

 修改用户属性

禁用:usermod -s /sbin/nologin 用户名 (路径ke'yi'sui'yi)

用户组

创建组

groupadd hr(用户名和组名不能用纯数字)

groupadd net01 -g 2000(指定组号)

groupdel 组名

-u指定用户的UID

-g指定用户的基本组

-G指定用户的附加组

/etc/passwd 可以查看的是用户的基本组

/etc/group可以查看用户的附加组

创建用户AAA,同时生成基本组AAA

useradd AAA

grep AAA /etc/passwd

修改用户AAA的基本组为CCC

usermod AAA -g CCC

修改用户BBB的附加组为CCC

usermod BBB -G CCC

查看BBB的基本组

grep BBB /etc/passwd

查看BBB的附加组

grep CCC  /etc/group

id AAA

 gpasswd -d A GROUP

A是用户 GROUP是组名

把A从GROUP移除

 指定组的gid:groupmod -g 1512 DDD

组的类型

基本组:随用户创建的组,同用户名

附加组:

提权

永久提权su

  • 普通用户没有特权
  • 尽量少用root
  • 需要执行特殊指令时使用su,切换到超管身份

        切换用户:su  -  root

        退出root的登陆身份:exit

临时提权sudo

  • 使用普通登录服务器时
  • 完成部分特权指令

以root身份授权普通用户xulei

vim /etc/sudoers

%wheel ALL=(ALL) NOPASSWD:ALL

第107行:允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令

useradd xulei -G wheel

在xulei用户下:sudo useradd guoguo(无sudo不能创建)

用户的权限

基本权限UGO

权限的三类对象

  • 属主:u
  • 属组:g
  • 其他人:o
  • 所有人:a(u+g+o)

权限的三种类型

  • 读:r=4
  • 写:w=2
  • 执行:x=1

设置权限

更改权限:

  • 使用符号
  • 使用数字

更改属主,属组

使用符号

语法:

  • 使用符号:u用户 g组 o其他 r读 w写 x执行
  • 语法:chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x)文件/目录

 chmod (-R) u+r 1.txt(如果是文件夹加-R)

ls -l file1与ll file1 相同

 给file授予。其他用户没有读写执行的权力

chmod o=  file

chmod o-rwx file

chmod o=--- file

查看文件夹权限:ls -l -d /tmp/

使用数字

chmod 000(数字代表) file.txt

 编写程序

 file.txt

echo "hello world"
read -p "请输入姓名:" name
echo "$name是主题"

增加执行权限

chmod u+x file.txt   

./file.txt

 更改属主,属组

chown命令:

设置一个文件属于谁,属主

语法:chown 用户名.组名 文件

groupadd hr

chown user01.hr /tmp/file.txt

chown alice file1//只改属主

chown  .hr file1只改属组

chogrp命令

语法:chgrp 组名 文件 -R是递归的意思

基本权限ACL(access control list)

ACL是UGO的补充

ACL文件权限管理:设置不同用户,不同的基本权限(rwx)对象数量不同

UGO设置基本权限:只能一个用户,一个组和其他人

语法

setfacl -m u:alice:rw /home/test.txt

命令  设置 用户或组:用户名:权限 文件对象

设置

准备文件:

  • touch /home/test.txt
  • ll /home/test.txt

设置ACL:

  • 查看文件有哪些ACL权限:getfacl /home/test.txt(ll会出现权限叠加现象)
  • 设置用户alice.jack权限

        useradd alice   useradd jack

        setfacl -m u:alice:rw /home/test.txt

        setfacl -m u:jack:r /home/test.txt

请思考命令中的o是什么作用:

        setfacl -m o::rw /home/test.txt

删除权限:setfacl -x u:alice /home/test.txt

        setfacl -b /home/test.txt擦除所有信息

        

 watch -n1 'ls -l file.txt':每隔1秒查看

特殊权限

特殊位suid

1.suid是针对文件所设置的一个特别的权限

功能:使调用文件的用户,临时具备属主的能力

 

 文件属性

lsattr:查看文件的属性

chattr +i file1(无法操作此文件包括删除)

chattr -i file1

进程掩码(umask)

chmod 0777 file9999(四位第一位为特殊位,4代表suid)

系统为什么创建文件夹时,权限是755(0777-0022)

文件的权限是644,系统为了保护自己,所以在创建的文件上,去掉了所有的执行(0755-0111)

可以这只umask 0000创建的文件权限相应变换

 进程管理

什么是进程?

进程是已启动的可执行程序的运行实例,进程有以下组成部分:

  • 一个文件
  • 被分配的的地址空间
  • 有权限限制
  • 程序代码的一个或多个副本(也叫执行线程)

像人一样拥有状态

1.什么是程序

具有执行代码和执行权限的文本文件

2.什么是进程

        是运行起来的程序。获得计算机各方面的资源(CPU,MEM,DISK,NETWORK,PID)

3.进程的生命周期

        由系统程序,fork出来的子程序。具备一定父的资源(权利,内存空间,PID),直到运行完毕,退出系统。

4.进程又那些状态?

静态查看进程ps

ps aux:查看进程

ps a:显示现行终端机下的所有程序

ps u:以用户为主的格式来显示程序的状况

ps x:不以终端机来区分

ps aux|head -3查看前三行

字段含义:

user:运行进程的用户

pid:进程id

%cpu:cpu占用率

%MEM:内存占用率

VSZ:占用虚拟内存

RSS:占用实际内存

TTY:进程运行的终端

STAT:进程状态

time:进程占用cpu总时间

COMMAND:选择文件,进程名

stopped running sleeping zombie

进程排序

ps aux --sort -%cpu(加-是降序)

进程的父子关系

ps -ef

自定义显示字段

ps axo user,pid,ppid,%mem,command|head -3

动态查看进程top

top  按q退出 

top -d 1 每一秒刷新

 使用信号控制进程

信号种类

给进程发送信号(kill -l列出所有支持的信号)

tty显示当前窗口的名称

编号 信号名

1.sighup 重新加载配置

2.sigint键盘中断ctrl+c

3.sigquit键盘退出ctrl+\

9.sigkill 强制终止,无条件

15.sigterm 终止(正常结束),缺省信号

18.sigcont继续

19.sigstop 暂停

20sigtstp 键盘暂停ctrl+z(扔到后台)

ps aux命令展示了进程的哪些方面的命令

user:用户

PID:进程的编号

%CPU:占用cpu时间的百分比

%MEM:占用内存时间的百分比

VSZ RSS:虚拟内存和实际内存占用的大小

TTY:终端的类型

STAT:运行,睡眠。。。

START:进程启动的时间

command:程序的路径和名称

进程优先级nice

简介

linux进程调度及多任务,每个cpu在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序

查看进程的nice级别

ps axo pid,command,nice --sort=-nice | head -5

启动具有不同nice级别的进程

默认情况:启动进程时,通常会继承父进程的nice级别,默认为0

更改现有进程的nice级别

1.创建一个睡眠示例程序

sleep 7000 &

2.查看进程号

ps axo pid,command,nice | grep sleep

3.renice -20 2669

2669进程id,旧优先级为0,新优先级为-20,观察修旧的nice值

作业 控制jobs

简介

作业控制是一个命令行功能,也叫后台运行

关键词介绍:foregroud前台进程是在终端中运行的命令,占领终端

                      backgroud后台进程没有控制终端,它不需要终端的交互。看不见,但是在运行

jobs查看后台进程

jobs

 把后台程序调回前台

 当一个后台程序运行停止时

bg 4(上面ctrl+z前台程序放到后台停止运行)后台程序继续运行

消灭后台进程

kill %4(%是后台进程)

虚拟文件系统proc

虚拟文件系统

采用服务器自身内核,程序运行的状态信息

cpu

/proc/cpuinfo

内存

/proc/meminfo

内核

/proc/cmdline

重定向

date > time.txt

输出重定向:进程产生的信息。存放到文件中

输入重定向:以文本内容作为进程的标准输入

FD简介(文件描述符)

file descriptors,FD,文件描述符,文件句柄进程使用文件描述符来管理打开的文件

fd是访问文件的标识,即链接文件。省去了冗长的绝对路径

  • 0 是键盘只读
  • 1,2是终端可以理解是屏幕
  • 3+ 是文件,可读可写

示例

1.通过一个终端,打开一个文本 vim 1.txt

2.通过另一个终端,查询文本程序的进程号

3.在/proc目录中查看文本程序的FD

ls /proc/5912/fd

 

 > 覆盖  >>追加

2>:专门引导错误输出

把正确的和错误的放在一起:

 分开存放:

ls /home/ /aaaaaaa 1> yes.txt  2> no.txt

&> /dev/null 将生成的内容丢入垃圾桶

编写邮件

mail -s "ssss" alice(sssss为标题)

输完内容后.退出

查看:

  • 切换账号 su - feng
  • mail之后按1查看内容
  • 按q退出

利用重定向快速创建邮件

  • 准备文件内容vim 。。。
  • mail -s "fsfa" feng < 文件名
  • 原理:利用输入重定向,把文件内容代替人为的输入

管道

管道命令可以将多条命令组合起来,一次性完成复杂的处理任务

tee管道

cat /etc/passwd|tee file88.txt|tail -1(teee接收的是cat的内容)

参数传递Xargs

cp rm一些特殊命令就是不服其他程序

案例

  • 环境准备,准备一些文件。touch /home/file{1..5}生成五个文件
  • vim files.txt:/home/file1 /home/file3/ /home/file5

切割cut

cat /etc/passwd | grep ntp | cut -d: -f1 (以:进行分割,切取第一列)

存储管理

基本分区

磁盘简介

  • 名词:磁盘、硬盘、disk是同一个东西,不同于内存的是容量比较大。
  • 原理分区:机械硬盘即是传统普通硬盘,主要由盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成
  • 固态:固态驱动器,俗称固态硬盘,固态硬盘是由固态电子存储芯片而制成的硬盘
  • 命名:kernel对不同接口硬盘命名方式(RHEL7/centos7)IDE并口

        sata(串口): 1.   /dev/sda:/dev设备文件目录  s代表sata就是串口 d代表磁盘 a第一块

                            第二块:、dev/sdb

  • 分区方式:MBR和GPT MBR支持最大的磁盘容量是<2TB.设计时分配4个分区如果希望超过四个分区,需放弃主分区,改为扩展分区和逻辑分区

 管理磁盘流程三部曲

新硬盘:分区(MBR或者GPT)——》格式化/文件系统Filesystem——》挂载mount

查看磁盘信息 

ll /dev/sd*

lsblk

 创建分区

MBR:把房子分成我是和客厅

  • 启动分区工具:fdisk /dev/sdb
  • Select(default p):p  敲击数字1 (选择分区号)
  • 分区号(1-4,默认1):1起始扇区(2048-10485759,默认为2048)
  • 输入w保存分区信息,自动退出分区工具
  • 刷新分区表:partprobe /dev/sdb
  • 查看分区结果:fdisk -l /dev/sdb

创建文件系统

文件系统:房子里的格子柜

mkfs.ext4 /dev/sdb1或者mkfs -t ext4 /dev/sdb1

挂载mount

 创建挂载点,一个分区一个挂载点

  • mkdir /mnt/disk1
  • mount -t ext4 /dev/sdb1 /mnt/disk1
  • df  -hT查看

只能创建四个主分区,之后创建不了

  • 一块硬盘使用MBR,划分分区。数量上只能有如下选择:4主或3主+1扩展(N个逻辑)

删除分区命令:d

按n创建主分区,按e扩展分区

 扩展分区包含三个逻辑分区

交换分区管理Swap

简介

作用:‘提升容量’,防止OOM(Out of Memry)

推荐:设置交换分区大小为内存的2倍

重启:init 6或者reboot

查看内存状态:free -m

将sde2挂到虚拟内存上:

  • 分区:
  • 格式化:mkswap /dev/sde2
  • 挂载:swapon /dev/sde2

dd if=/dev/zero of=/mnt/disk4/1.txt  bs=1M count=1000将一个文件抄到另一个文件(大小,抄多少次)

逻辑卷LVM

目的:管理磁盘的一种方式,性质与基本磁盘无异

特点:随意扩张大小

术语:

  • PV物理卷
  • VG:卷组
  • LV:逻辑卷

创建物理卷:pvcreate /dev/sdf

创建卷组:vgcreate name /dev/sdf

创建逻辑卷:lvcreate -L 200M -n lv2 vg1        (在卷组中抽调空间制作逻辑卷-分区)

        指定大小,单位M,G  -L大小 -n卷名 vg1组名
创建文件系统并挂载
mkfs.ext4 /dev/vg1/lv1 注意:/dev/卷组名/逻辑卷名                                                                创建挂载点:mkdir /mnt/lv1                                                                                                       挂载:mount /dev/vg1/lv1 /mnt/lv1
 
卷组扩容:
环境:/dev/vg1 容量由4G扩容到6G
步骤一:创建PV。而后使用第二步,将PV增加到VG中。 pvcreate /dev/sdd1
步骤二:扩展VG,同时包含方法一
vgextend vg1 /dev/sdd1
pvs:查看卷组信息
 
LV扩容:
  1. lv扩容:lventend -L +200M /dev/vg1/lv1
resize2fs /dev/vg1/lv2        扩容磁盘

高级课程

文件系统详解

windows:FAT16 FAT32 NTFS
LINUX:EXT3/4 XFS文件系统

  • 类型:索引(index)文件系统
  • 系统限制:
  • 磁盘空间的限制根据inode和block两方面

block:

  • 存储文件的实际数据
  • 实际存储文件的内容,若文件较大,会占用多个block
  • block大小默认为4K

inode

  • 记录文件的属性(文件的元数据metadata) 元数据包括:文件的属性,大小,权限等
  • 一个文件占用一个inode,同时记录此文件数据所在的block number
  • inode大小为128bytes

superblock

  • block与inode的总量
  • 未使用与已使用的inode/block数量

ls -l | wc -l    文件的个数

文件链接

符号链接:(软链接)

  1. 创建一个文件,并输入内容。 echo 111 > /file1
  2. 创建一个软连接    ln -s /file1 /home/file11
  3. 观察软链接 ll /home/file11(类型不同l链接,权限提高)
  4. 删除链接文件内容在?在的   删除源文件? 不在
  5. 软连接像快捷方式,可以对文件和目录做软连接
  6. 软连接记录的只是源文件的绝对路径
  7. 软连接失去源文件不可用

硬链接:

  1. echo 222 > /file2
  2. ln /file2 /file2-h1
  3.  硬链接只能针对文件做。不能对目录做
  4. 硬链接只能在同分区做

RAID

  • 简介:廉价磁盘冗余阵列
  • 作用:容错、提升读写速率
  • 类型:RAID0,RAID1,RAID5
  • RAID1镜像集2块磁盘,容量50%
  • RAID5,至少三块等大小的硬盘(数据盘 数据盘 校验盘 热备盘)
  • 不同场景RAID的使用
  1. 硬RAID:需要RAID卡,有自己的CPU,处理速度快,有电池和无电池
  2. 软RAID:通过操作系统实现,如Windows,Linux
  • 软RAID示例:
  1. 准备四块硬盘:RAID(3块数据盘)+1块热备

  1.  创建RAID:mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{b,c,d,e}
  2. 格式化挂载:
    1. mkfs.ext4 /dev/md0
    2. mkdir /mnt/raid5
    3. mount /dev/md0 /mnt/raid5
    4. cp -rf /etc /mnt/raid5/etc1

mdadm -D /dev/md0

       mdadm /dev/md0 -f /dev/sdb -r /dev/sdb(模拟一块硬盘损坏,并移除)

  • -C 创建RAID
  • /dev/md0 第一个RAID设备
  • -l5 RAID5
  • -n RAID成员数量
  • -x 热备磁盘数量

查找和压缩

文件查找

简介

  • which:命令查找
  • find:文件查找,针对文件名
  • locate:文件查找,依赖数据库(updatedb)

命令文件查找

查找ls命令的位置:which ls 

alias ls='ls --color=auto -l'起别名

find

find [path] [options] [expression] [action]

命令 路径 选项 表达式 动作 例:find /etc -name '77551.txt'

  • iname 不区分大小写
  • find /etc/ -size +5M 文件大小在5M以上
  • find / -maxdepth 2 -a -name ifcfg- en* 两级目录
  • find /home -user jack//属主是jack的文件
  • find /home -group hr//属主是hr的文件
  • find /dev -type f 按文件类型
  • find /dev -type d
  • find . -perm 714 -ls 按文件权限
  • find /etc -name "111*" -delete 找到后删除
  • find /etc/ -name ifcfg* -ok cp -rvf {} /tmp \; 找到后复制

打包压缩

简介

tar命令是Unix、Linux系统中备份文件的可靠方法

几乎可以工作于任何环境中,它的使用权限是所有用户。建议针对目录

打包,压缩

  • 语法:tar 选项  压缩包名称 源文件   tar -cf 1.tar /etc(-cf 创建文件 -czf 打包并压缩,z是gzip)  -cjf j是bzip -cJf J是xzip
  • 压缩原理:去重法(文件的体积小,缺点无法直接使用)
  • 解压缩:tar -xf 111 -C 路径

软件安装

RPM包管理

简介

  • RPM Package Manager(原Red Hat Package Manager,现在是一个递归缩写)
  • 由Red Hat公司提出,被众多Linux发行版所采用
  • 也称二进制无需编译,可以直接使用
  • 无法设定个人设置,开关功能
  • 软件包示例(注意示例):mysql-community-common-5.7.12-1.el7.x86_64.rpm

YUM工具

是一个在Fedora和RedHat以及CenOS中的Shell前端软件包管理器

基于RPM包管理器,能够从指定的服务器自动下载RPM包并安装,安装

可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须频繁的一次次下载

YUM本地源:系统安装光盘 

  • 目的:通知linux服务器,通过本机的系统光盘获得软件包,并安装软件
  • 观察YUM核心配置目录:
    1. 记住这个目录/etc/yum.repos.d/
    2. 打开一个*.repo
    3. 观察国外地址(下载慢)
  •  删除官方yum库:  mv /etc/yum.repos.d/* /tmp

  • 编写本地YUM库配置文件

    1. vim /etc /yum.repos.d/dvd.repo

    2. [dvd]——name=dvd——baseurl=file:///mnt/cdrom——gpgcheck=0

  • mkdir /mnt/cdrom(装载软件包)

  • 挂载mount /dev/cdrom /mnt/cdrom/(光盘 挂载点)要有光盘而且要插上电

  • init 6重启后挂载失效 

  • vim /root/.bashrc(开机自动执行)——写入之前挂载的命令

  • systemctl start httpd(127..0.0.1)

  • systemctl stop firewalld

  • systemctl disable firewalld(证明程序安装成功)

  • 请理原有的yum配置
  • 下载阿里巴巴开源镜像站官网配置
  • 更新YUM仓库
  • 执行安装

 

 查看下载源:yum repolist

 使用YUM管理RPM

安装

  • 全新安装:yum -y install httpd vsftpd(-y yes自动确认 软件包1 软件包2)
  • reinstall 重新安装
  • 升级安装: yum -y update httpd

查询

  • 查看是否安装;yum list httpd

卸载

  • yum -y remove httpd

yum makecache更新yum源

RPM工具

 先找到包

  • cd /mnt/cdrom/Packages检查包是否存在
  •  rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm(ivh 安装可视百分比)
  • rpm -q wget 查询,看到软件包的名字,就说明rpm -q查询成功,已经安装软件
  • 卸载:rpm -evh wget-....后面不要加后缀.rpm

缺点:

        RPM无法处理依赖

源码包

  • source code需要经过GCC,C++编译环境编译才能运行
  • 可以设定个人设置,开关功能
  • 软件包示例:nginx-1.8.1..tar.gz
  • 认识源码包
  • 配置复杂
  • 认识源码包:nginx 包名 -1.8.1版本号 .tar.gz压缩格式

获得源码包

官方网站可以获得最新的软件包

  • Apache:www.apache.org
  • Nginx:www.nginx.org
  • Tengine:tengine.taobao.org
  1. 直接浏览器下载
  2. 命令下载——wget 网址
  3. yum install -y wget
  4. wget 下面网址
  •  准备编译环境如解释器——yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
  • useradd www
  • tar xf tengine-2.3.3.tar.gz
  • cd tengine-2.3.3
  • ./configure --user=www --group=www --prefix=/usr/loca/ngimx(指定路径)
  • 编译make
  • 安装 make install

启动测试

  • 可能之前的实验,安装过httpd服务,如果直接使用nginx会与冲突,请确保关闭httpd
  • systemctl stop httpd
  • /usr/loca/ngimx/sbin/nginx
  • systemctl stop firewalld
  • 使用浏览器访问本机的IP,127.0.0.1,如果能看到NGINX网页,说明部署成功
     

计划任务

一次性调度执行at

语法格式

at <TIMESPEC>

<TIMESPEC>示例

now +5min

teatime  tomorrow

at now +2min——>useradd uuu——>ctrl+d退出

atq查看

循环调度执行cron

  • cron的概念和crontab是不可分割的
  • crontab是一个命令,常见于Unix和Linux的操作系统中
  • 用于设置周期性被执行的指令
  • 该命令从标准输入设备读取指令,并将其存放再“crontab”文件中,以供之后读取和执行

查看进程状态

  • systemctl status crond.service
  • ps aux|grep crond
  • ls /var/spool/cron
  • crontab -e
  • 分 时 日 月 周 命令或执行脚本(六个部分用空格隔开)
  • * *  * * * 命令

日志管理

简介

任务一(rsyslog系统日志管理):关心问题:哪类程序——产生什么日志——放到什么地方

任务二(logrotate日志轮转):将大量的日志,分割管理,删除旧日志

任务一详解

处理日志的进程

第一类:

  • rsyslogd:系统专职日志程序
  • 处理绝大部分日志记录
  • 系统操作有关的信息,如登录信息,程序启动关闭信息

第二类:

  • httpd/nginx/mysql:各类应用程序,可以以自己的方式记录日志、讲解对应程序时会逐步介绍

观察rsyslogd程序

  • ps aux|grep rsyslogd

常见的日志文件(系统、进程、应用程序)

  • tail -10 /var/log/messages   系统主日志文件
  • tail -f /var/log/messages    动态查看日志文件的尾部
  • tailf /var/log/secure  认证安全
  • tail /var/log/yum.log //yum
  • tail /var/log/maillog 根邮件postfix相关

rsyslogd配置

1.相关程序

  • yum install rsyslog logrotate(默认已安装)

2.启动程序

  • systemctl start rsyslog.service

3.相关文件

        rpm -qc rsyslog(查询软件包的安装情况,c配置文件)

  • /etc/rsyslog.conf——rsyslogd的主配置文件(关键)
  • /etc/rsysconfig/rsyslog——rsyslogd的相关文件 
  • /etc/logrotate.d/syslog——和日志办轮转(切割)相关(任务二)

主配置文件:

  • 告诉rsyslogd进程什么日志,应该存在哪里
  • vim /etc/rsyslog.conf(:set nu显示全部)
  • 设备——级别——路径

man rpm(查看咋用)

特性:rsyslog程序 /etc/rsyslog.conf           ssh程序 /etc/ssh.conf

任务二详解:日志轮转

工作原理:

  • 按照配置进行轮转
    • 配置文件种类(主文件:/etc/logrotate.conf决定每个日志文件如何轮转  子文件:/etc/logrotate.d/*)
    • 观察主文件和子文件        
  • vim /etc/logrotate.conf  
    • weekly  //轮转的周期,一周轮转
    • rotate 4 //保留4份
    • create //轮转后创建新文件
    • dateext //使用日期作为后缀
    • compress //是否压缩
    • include /etc/logrotate.d //包含该目录下的配置文件
    • /var/log/wtmp{  days}这里为什么出现了,用户登录日志文件。在配置文件中,书写日志的名字和大括号。就可以独立的设定该日志的轮转规则
    • minsize 1M //最小达到1M才轮转,monthly and minsize
    • create 0664 root utmp //轮转后创建新文件,并设置权限(权限 属主 属组)
    • missingok //丢失不提示
    • notifempty //空文件不论转
    • maxsize 30K //达到30k轮转 daily or size
    • date 04011000 修改时间
    • /usr/sbin/logrotate(命令) -s /var/lib/logrotate/logrotate/logrotate.status(时间戳)  /etc/logrotate.conf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux 的相关文章

  • 用另一个文件的标签为图表(ggplot2)中的标题添加下标

    在我的程序中 我有两个主要文件 第一个包含数据 第二个包含标签 或图形标题 文件总数1 数据 3 10000 3 32039232 1 0 0017290351 2 0 0002781092 3 10001 3 32101193 1 0 0
  • linux新手关于嵌入式linux设备驱动的问题

    最近在研究linux驱动 正如我读过的那些文章所说 设备驱动程序模块很可能会根据内核的需要自动加载 因此我想知道内核如何确定为特定设备 声卡 I2C spi 设备 等 我也无法彻底想象内核如何在启动时检测每个硬件设备 与嵌入式linux相关
  • Xvfb 冻结初始化 GLX 扩展

    我正在尝试运行无头 Xvfb 服务器来捕获 Amazon EC2 micro 上的屏幕截图 但它在 GLX 上陷入了困境 我使用此脚本安装了 GLX Xvfb 和所有库 https gist github com joekiller 414
  • Bash:检查是否给出了参数(例如是否有参数“-a”?)

    我有一个脚本 它应该接受 2 个参数 s 和 d 如果未给出 d 参数 我想删除我的调试文件 与 s 相同 如何检查 1 或 2 是否为 s 或 d 舒尔有两个参数 我可以做到 蛮力 if test 1 d test 2 d then rm
  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Python glob,操作系统,相对路径,将文件名放入列表中[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个目录中所有文件的列表 其中文件名以 root 结尾 在阅读了论坛中的一些文章后 我尝试使用 glob 和 os listdir 的基本策略 但我都遇到了麻烦 首先 当我使用 import glo
  • 为什么此 NASM 代码会打印我的环境变量?

    本学期我刚刚完成计算机体系结构课程 除其他外 我们一直在涉足 MIPS 汇编并在 MARS 模拟器中运行它 今天 出于好奇 我开始在我的 Ubuntu 机器上摆弄 NASM 基本上只是将教程中的内容拼凑起来 并感受一下 NASM 与 MIP
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 在汇编中使用 printf 会导致管道传输时输出为空,但可以在终端上使用

    无输出 https stackoverflow com questions 54507957 printf call from assembly do not print to stdout即使在终端上 当输出不包含换行符时也有相同的原因
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String

随机推荐

  • 51红外循迹智能车——红外循迹模块设计

    目录 赛道环境 红外传感器的特征 TCRT5000传感器 LM339单限电压比较器 LM339简介 编辑 单限电压比较器仿真 红外循迹模块的设计 红外循迹模块原理图 红外循迹模块原理图讲解 赛道环境 上图为赛道示意图 xff0c 两端为黑色
  • 开发板烧写程序方法

    开发板烧写程序方法 如果开发板上没有预装bootloader程序 xff0c 那么可以通过JTAG进行烧写 常用的JTAG工具有并口JTAG xff0c 它的特点是便宜但是速度比较慢 USB转JTAG RS232串口二合一的工具OpenJT
  • 51单片机——汇编指令合集

    目录 指令格式 编译语句实例 单片机的寻址方式 立即数 xff08 Immediate Constants xff09 寻址方式 直接 xff08 Direct Addressing xff09 寻址方式 寄存器 xff08 Registe
  • 电子专业英语(持续更新)

    前言 23考研刚刚结束 xff0c 但在我复试的两个学校的专业英语翻译我都不会 发现自己在专业英语方面很差 xff0c 故写此文章记录我专业英语的学习历程 2023 4 17日学习 Analog n l signal 模拟信号 Contin
  • HttpServletRequest详解

    HttpServletRequest 详解 HttpServletRequest对象代表客户端的请求 xff0c 当客户端通过HTTP协议访问服务器时 xff0c HTTP请求头中的所有信息都封装在这个对象中 xff0c 通过这个对象提供的
  • 串口通信协议---UART

    串口通信的分类 UART属于串行 异步 全双工通信 串行通信与并行通信 根据传输数据的位宽 xff0c 串口通信可分为串行通信与并行通信 xff0c 串行通信是指设备之间通过少量数据信号线 一般是 8 根以下 xff0c 地线以及控制信号线
  • Django request请求和response响应介绍

    目录 一 request请求 1 request GET 2 request POST 3 request META 4 request headers 5 request method 6 request path 二 response对
  • 2022电赛C题——跟随小车 总结

    目录 一 前言 二 电赛回顾 三 比赛原因总结 1 准备不充分 2 队友配合不好 3 总体进程安排有问题 四 小车题经验和教训 五 电赛总结与收获 一 前言 今年参加了省电子设计大赛 xff0c 做的是控制类的小车题目 xff0c 今天下午
  • 设计一个代码,可以把int类型数据从小端序转成大端序

    设计一个代码 xff0c 可以把int类型数据从小端序转成大端序 1 位移 include lt stdio h gt 把int类型数据从小端序转成大端序 void main int n 61 0x12345678 char p 61 ch
  • 使用select函数搭建TCP客户端和服务器

    select的TCP服务器 include lt stdio h gt include lt sys types h gt include lt sys socket h gt include lt arpa inet h gt inclu
  • Linux--UDP编程

    目录 一 实现的过程 二 代码 xff1a 1 ser c 2 cli c 三 运行结果 四 服务器端断开重运行 xff0c 客户端还能发送吗 xff1f xff08 可以 xff09 五 可以同时运行两个客户端吗 xff1f xff08
  • 51单片机串行通信奇偶校验的设置方法

    51单片机串行通信奇偶校验的设置方法 悬赏分 xff1a 10 解决时间 xff1a 2009 12 5 10 21 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 6
  • pycharm连接VMware

    一 上传目录的配置 1 打开虚拟机 xff0c 进入终端查看host ip addr 输出此命令 记住下面会用到 2 打开pycharm新建一个py文件 3 点击ok后会出现如下图 设置好后先点击1 xff0c 测试是否连接成功 xff0c
  • 请确保您已登录客户机操作系统。在客户机中装载CD驱动器启动终端,使用tar解压缩安装程序,然后执行vmware-insall.pl安装VMware Tools。

    解决Ubuntu安装VM Tools请确保您已登录客户机操作系统 在客户机中装载CD驱动器启动终端 xff0c 使用tar解压缩安装程序 xff0c 然后执行vmware insall pl安装VMware Tools whafal的博客
  • 使用SSH远程连接工具(MOBAXTERM)连接虚拟机时输入中文乱码问题

    使用SSH远程连接工具连接虚拟机时输入中文乱码问题 一 xff1a 出现的中文输入问题 二 xff1a 造成的可能原因和出现原因的环境 出现原因的环境 xff1a 本机环境win10 xff0c 虚拟机环境centos7 出现这样情况的可能
  • vscode的alt+b失效解决

    1 先安装插件 xff0c 如下 2 一共有两种方式打开浏览器 xff0c 一个是alt 43 b xff0c 还有一个是alt 43 shift 43 b 但是对于刚安装上open in browser插件 xff0c alt 43 b是
  • 解决ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)

    如何解决ERROR 2003 HY000 Can t connect to MySQL server on localhost 10061 1 登录到安装Mysql的主机 xff0c 打开cmd命令行工具 xff0c 执行命令mysql u
  • vscode中converting to execution character set: Illegal byte sequence

    我的这个问题是由于之前跟博主安装的时候在tasks json文件中添加了 34 fexec charset 61 GBK 34 删除后便可以正常运行了 当时即使我没添加这个代码控制台也没出现乱码的情况 xff0c 但还是加上了 xff0c
  • 工作日志day04

    再次安装虚拟机时常见的不确定点 软件选择 安装位置 点击完成 设置用户名的时候可能与数字 xff0c 以及强度有关 注销以管理员身份登录填写root用户名和自己设的密码 网络设置之后可以ping通 sudo yum y install tr
  • linux

    目录 基本命令 文件和用户管理 用户 创建用户 删除用户 修改用户属性 用户组 创建组 组的类型 提权 用户的权限 基本权限UGO 权限的三类对象 权限的三种类型 设置权限 编写程序 增加执行权限 更改属主 xff0c 属组 基本权限ACL