今日内容概要
- 用户操作
- su和shdo
- 普通权限
- 特殊权限
- 解压压缩
- 软件管理、rpm和yum
- 源码安装nginx
- 系统服务
- 进程管理
今日内容详细
用户操作
使用useradd命令,注意: adduser命令软链接指向useradd命令
选项
# -u 指定要创建用户的UID,不允许冲突
# -g 指定要创建用户默认组
# -G 指定要创建用户附加组,逗号隔开可添加多个附加组
# -d 指定要创建用户家目录
# -s 指定要创建用户的bash shell /bin/bash /sbin/nologin
# -c 指定要创建用户注释信息
# -M 给创建的用户不创建家目录
# -r 创建系统账户,默认无家目录
1.创建sa和sutdents组
[root@localhost ~]# groupadd sa
[root@localhost ~]# groupadd students
2.需求:创建bgx用户,UID5001,基本组students,附加组sa 注释信息:2019 new student,登陆shell:/bin/bash
useradd -u 5001 -g students -G sa -c "2019 new student" -s /bin/bash bgx
3.需求:创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统
useradd mysql -M /sbin/nologin # 运行进程 某个用户运行的
useradd -r dba -s /sbin/nologin
4.SELinux
getenforce # 查看
设置密码
passwd bgx
修改用户信息
使用usermod命令修改用户信息
选项
# -u 指定要修改用户的UID
# -g 指定要修改用户基本组
# -G 指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组,-aG追加
# -d 指定要修改用户家目录 -md 旧家搬新家
# -s 指定要修改用户的bash shell
# -c 指定要修改用户注释信息
# -l 指定要修改用户的登陆名
# -L 指定要锁定的用户
# -U 指定要解锁的用户
1.检查此前创建的用户信息
[root@bgx ~]# grep "bgx" /etc/passwd
bgx:x:5001:503:2019 new student:/home/bgx:/bin/bash
2.修改bgx用户uid、gid,附加组 -a表示追加
[root@bgx ~]# groupadd -g 5008 network_sa
[root@bgx ~]# groupadd -g 5009 devops
[root@bgx ~]# usermod -u 6001 -g5008 -a -G 5009 bgx
3.修改bgx用户的注释信息, 用户家目录, 登录shell, 登录名 -l:改名字,-md,把环境也带过去
[root@bgx ~]# usermod -c "2019 new student" -md /bgx -s /bin/sh -l change_bgx bgx
4.检查是否修改成功
[root@bgx ~]# grep "bgx" /etc/passwd
bgx_lqz:x:6001:5008:2019 new student:/bgx:/bin/sh
[root@bgx ~]# id change_bgx
uid=6001(change_bgx) gid=5008(network_sa) groups=5008(network_sa),503(sa),5009(devops)
[root@bgx ~]# ll -d /bgx
drwx------. 2 bgx_lqz network_sa 4096 2014-09-23 00:13 /bgx
5.锁定用户[扩展]
[root@bgx ~]# echo "123" |passwd --stdin change_bgx
[root@bgx ~]# usermod -L change_bgx #锁定后会无法登陆系统
6.解锁用户[扩展]
[root@bgx ~]# usermod -U change_bgx
删除账户
选项 -r 删除用户同时删除它的家目录
1.删除user1用户,但不删除用户家目录和 mail spool
[root@bgx ~]# userdel user1
[root@bgx ~]# ls /var/spool/mail/
2.-r参数可以连同用户家目录一起删除(慎用)
[root@bgx ~]# userdel -r user1
groupmod修改组
锁定用户:usermod -L 用户名
解锁用户:usermod -U 用户名
su和sudo
往往公司的服务器对外都是禁止root用户直接登录,所以我们通常使用的都是普通用户,那么问题来了?
当我们使用普通用户执行/sbin目录下的命令时,会发现没有权限运行,这种情况下我们无法正常的管理服务器,那如何才能不使用root用户直接登录系统,同时又保证普通用户能完成日常工作?
PS: 我们可以使用如下两种方式: su、sudo
1.su切换用户,使用普通用户登录,然后使用su命令切换到root。优点:简单 缺点:需要知道root密码
2.sudo提权,当需要使用root权限时进行提权,而无需切换至root用户,优点:安全、方便 缺点:复杂
su身份切换
在使用su切换前,我们需要了解一些预备知识,比如shell分类、环境变量配置文件有哪些
1.Linux Shell主要分为如下几类
交互式shell,等待用户输入执行的命令(终端操作,需要不断提示)
非交互式shell,执行shell脚本, 脚本执行结束后shell自动退出
登陆shell,需要输入用户名和密码才能进入Shell,日常接触的最多的一种
非登陆shell,不需要输入用户和密码就能进入Shell,比如运行bash会开启一个新的会话窗口
2.bash shell配置文件介绍(文件主要保存用户的工作环境)
个人配置文件:~/.bash_profile ~/.bashrc 。
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc
profile类文件, 设定环境变量, 登陆前运行的脚本和命令。bashrc 类文件, 设定本地变量, 定义命令别名
PS: 如果全局配置和个人配置产生冲突,以个人配置为准。
3.登陆系统后,环境变量配置文件的应用顺序是?
登录式shell配置文件执行顺序: /etc/profile->/etc/profile.d/.sh->/.bash_profile->/.bashrc->/etc/bashrc
非登陆式shell配置文件执行顺序: ~/.bashrc->/etc/bashrc->/etc/profile.d/.sh
PS: 验证使用echo在每行添加一个输出即可
4.说了这么多预备知识,那这些和su命令切换用户有什么关系?
su - username属于登陆式shell,su username属于非登陆式 shell,区别在于加载的环境变量不一样。
su username 属于非登陆式shell
普通用户su -
可以直接切换至root用户,但需要输入root用户的密码。超级管理员root用户使用su - username
切换普通用户不需要输入任何密码。
1.普通用户使用su切换root
[nana@node1 ~]$ su
密码: #输入root的密码
[root@node1 nana]# pwd
/home/nana
2.普通用户使用su -切换到root,会加载root的环境变量
[lqz@node1 ~]$ su -
密码:
[root@node1 ~]# pwd
/root
3.以某个用户的身份执行某个服务,使用命令su -c username
[root@bgx ~]# su - nana -c 'ifconfig'
[root@bgx ~]# su - nana -c 'ls ~'
4.其他
yum provides pstree
yum install psmisc
pstree
5.关闭root远程登陆,普通用户登进来,su - 切换到root用户
vim /etc/ssh/sshd_config
PermitRootLogin yes # 设成no
6.加载当前用户的环境变量
su - username # 加载当前用户的环境变量
[root@localhost ~]# su - cx
上一次登录:四 7月 27 03:32:54 CST 2023pts/0 上
7.环境变量加载顺序
/etc/profile->/家路径.bash_profile->家路径/.bashrc->/etc/bashrc
sudo提权--->能不能干取决于有没有被授予
su命令在切换用户身份时,如果每个普通用户都能拿到root用户的密码,当其中某个用户不小心泄漏了root的密码,那系统会变得非常不安全。为了改进这个问题,从而产生了sudo这个命令。
其实sudo就相当于给某个普通用户埋下了浩克(hulk)的种子,当需要执行一些高级操作时,进行发怒,但正常情况下还是普通人,还是会受到限制
1.普通用户不能创建用户
就是普通用户,就想创建--->问管理员要root密码-->su 成 root--->可以创建了--->完事切回来
我就是普通用户,管理员授予我创建用户权限
sudo useradd lqz
输入密码:普通用户的密码
1.如何快速埋下hulk的种子呢?
1.快速配置sudo方式[先睹为快]
[root@node1 ~]# usermod bgx -G wheel # 把用户加到wheel组中
[root@node1 ~]$ sudo tail -f /var/log/secure #sudo审计日志
"""
wheel组,这个组是root 用户的组,有很多权限
wheel组的成员,跟root是一种权限,跟root用户一样,有一些权限
-删除文件,创建文件夹...
"""
2.一般正常配置sudo方式
[root@www ~]# #visudo => vim /etc/sudoers
#1.用户名 2.主机名=(角色名) 4.命令名
bgx ALL=(ALL) /usr/bin/yum,/usr/sbin/useradd #允许使用sudo执行命令
oldboy ALL=(ALL) NOPASSWD:/bin/cp, /bin/rm #NOPASSWD不需要使用密码
visudo -c # 检查刚刚编辑的是否有错误
sudo -l # 对主机有哪些权限
2.埋下了hulk种子后又如何提权使用呢?
1.切换普通用户
[root@bgx ~]# su - lqz
2.检查普通用户能提权的命令
[lqz@lqz ~]$ sudo -l
User lqz may run the following commands on this host:
(ALL) ALL
3.普通用户正常情况下是无法删除opt目录的
[lqz@lqz ~]$ rm -rf /opt/
rm: cannot remove `/opt: Permission denied
4.使用sudo提权,需要输入普通用户的密码。
[lqz@lqz ~]$ sudo rm -rf /opt
sudo命令的执行流程
1.普通用户执行sudo命令时, 会检查/var/db/sudo是否存在时间戳缓存
2.如果存在则不需要输入密码, 否则需要输入用户与密码
3.输入密码会检测是否该用户是否拥有该权限
4.如果有则执行,否则报错退出
文件的权限
1.权限与用户之间的关系?
在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)。
2.针对文件定义了三种身份,
1.属主(owner):文件属于哪个用户
2.属组(group):文件是属于哪个用户用户组的
3.其他人(others):其他人
3.三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)
rw- r-- r--
当前用户有读写权限 同一个组有读权限 其他人有读权限
d rwx --- ---
4.权限中的rwx分别代表什么含义?
当我们使用ls -l查看一个文件的详细属性时,能看到每个文件都有一个9位基本权限位,比如: rwxr-xr-x其中每三位字符为一组,分别表示属主权限位,属组权限位,匿名权限位。
linux中基本权限位则是使用这9位字符来表示,主要控制文件属主(User)、属组(Group)、其他用户(Other)
字母 | 含义 | 对应权限 |
---|---|---|
r(read) | 读取权限 | 4 |
w(write) | 写入权限 | 2 |
x(execute) | 执行权限 | 1 |
-(没有权限) | 没有权限 | 0 |
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
读取权限(r) | 具有读取阅读文件内容权限 | 具有浏览目录及子目录 |
写入权限(w) | 具有新增、修改文件内容的权限 | 具有增加和删除目录内文件 |
执行权限(x) | 具有执行文件的权限 | 具有访问目录的内容(取决于目录中文件权限) |
授予文件权限
1.方式一:
chmod u=rwx,g=rwx,o=rwx lqz.txt
2.方式二:
r:4
w:2
x:1
ps: 110 rw- 6
chmod 777 cx.txt
chmod 077 cx.txt
chomd +x xx.sh # 对该文件加执行权限(自己,组,其他人都有)
总结rwx对文件的影响
1.读取权限(r)具有读取阅读文件内容权限
1.只能使用查看类命令cat、head、tail、less、more
2.写入权限(w)具有新增、修改文件内容的权限
1.使用vim编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容
2.使用echo命令重定向的方式可以往文件内写入数据,>>可以进行追加
3.不能删除文件,因为删除文件看的不是文件的属性,需要看上级目录是否有w的权限
3.执行权限(x)具有执行文件的权限
1.执行权限什么用都没有
2.如果普通用户需要执行文件,需要配合r权限
特殊权限
特殊权限SUID
1.问题抛出
在 Linux 系统中,每个普通用户都可以更改自己的密码,这是合理的设置。问题是,普通用户的信息保存在 /etc/passwd 文件中,用户的密码在 /etc/shadow 文件中,也就是说,普通用户在更改自己的密码时修改了 /etc/shadow 文件中的加密密码,但是文件权限显示,普通用户对这两个文件其实都是没有写权限的,那为什么普通用户可以修改自己的权限呢?……(难道学了个假的权限)
[root@localhost nana]# ll /etc/passwd
-rw-r--r--. 1 root root 5240 Jul 27 03:15 /etc/passwd
[root@localhost nana]# ll /etc/shadow
----------. 1 root root 3740 Jul 27 03:40 /etc/shadow
2.解决方案
其实,普通用户可以修改自己的密码在于 passwd 命令。该命令拥有特殊权限 SetUID,也就是在属主的权限位的执行权限上是 s。可以这样来理解它:当一个具有执行权限的文件设置 SetUID 权限后,用户在执行这个文件时将以文件所有者的身份来执行。
PS: 当普通用户使用 passwd 命令更改自己的密码时,实际上是在用 passwd 命令所有者 root 的身份在执行 passwd 命令,root 当然可以将密码写入 /etc/shadow 文件,所以普通用户也可以修改 /etc/shadow 文件,命令执行完成后,该身份也随之消失。
3.举个例子,有一个用户 cx,她可以修改自己的权限,因为 passwd 命令拥有 SetUID 权限;但是她不能査看 /etc/shadow 文件的内容,因为査看文件的命令(如 cat)没有 SetUID 权限。
[cx@localhost nana]$ passwd
[cx@localhost nana]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
权限属性chattr
chatrr 只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权。chatrr 命令格式:[root@bgx ~]# chattr [+-=] [选项] 文件或目录名
选项:
+ 增加权限 -减少权限 =等于某个权限
a:让文件或目录仅可追加内容
i:不得任意更动文件或目录
1.创建文件并设置属性
[root@localhost nana]# chattr +a a1
[root@localhost nana]# chattr +i a2
[root@localhost nana]# lsattr a1 a2
-----a---------- a1
----i----------- a2
2.使用chattr设置属性,lsattr查看权限限制
[root@lqz ~]# chattr +a file_a
[root@lqz ~]# chattr +i file_i
[root@lqz ~]# lsattr file_a file_i
-----a---------- file_a
----i----------- file_i
3.a权限,无法写入和删除文件,但可以追加数据,适合/etc/passwd这样的文件
[root@localhost nana]# echo "aa" > a1
bash: a1: Operation not permitted
[root@localhost nana]# rm -f a1
rm: cannot remove ‘a1’: Operation not permitted
[root@localhost nana]# echo "aa" >> a1
[root@localhost nana]# vim a1
4.i权限, 无法写入,无法删除,适合不需要更改的重要文件加锁
[root@localhost nana]# echo "i" > a2
bash: a2: Operation not permitted
[root@localhost nana]# echo "i" >> a2
bash: a2: Operation not permitted
[root@localhost nana]# rm -f a2
rm: cannot remove ‘a2’: Operation not permitted
5.解除限制
[root@localhost nana]# chattr -a a1
[root@localhost nana]# chattr -i a2
6.电脑中毒了,一切皆文件--->查看哪个进程占cpu,内存高,定位到那个可执行文件--->删除可执行文件即可
-删没有权限
-chattr -i 文件
解压压缩
在windows系统下,我们接触最多的压缩格式是 rar 或 zip ,但在Linux上使用最多的压缩格式是 zip 和 tar.gz 。当然不用担心,Linux上的压缩格式放在windows系统下都是可以正常打开的。(Linux不支持 Windows下的 RAR 格式的压缩文件。Windows和Linux互通通常选择 zip)
Linux下压缩包有哪些常见的类型
格式 | 压缩工具 |
---|---|
.zip | zip压缩工具 |
.gz | gzip压缩工具,只能压缩文件,会删除原文件(通常配合tar使用) |
.bz2 | bzip2压缩工具,只能压缩文件,会删除原文件(通常配合tar使用) |
.tar.gz | 先使用tar命令归档打包,然后使用gzip压缩 |
.tar.bz2 | 先使用tar命令归档打包,然后使用bzip压缩 |
gzip打包与压缩
使用gzip方式进行压缩文件
1.仅对文件有效,对文件夹无效,压缩有文件删除,解压后压缩包删除
2.安装:yum install gzip -y
3.压缩:gzip 文件名
4.解压:gzip -d file.gz
5.实际用途:做备份
gzip * 把当前路径下所有文件都压成 gz
gzip -d * 解压当前路径下所有gz文件
6.案例
[root@localhost nana]# touch a.txt
[root@localhost nana]# ls
a.txt
[root@localhost nana]# gzip a.txt #对文件进行压缩
[root@localhost nana]# ls
a.txt.gz
[root@localhost nana]# zcat a.txt.gz #查看gz压缩后的文件
[root@localhost nana]# gzip -d a.txt.gz #解压gzip的压缩包
[root@localhost nana]# ls
a.txt
7.使用场景:当需要让某个文件不生效时,快速关闭和启用配置文件
[root@lqz ~]# cd /etc/yum.repos.d/
[root@lqz ~]# gzip *
[root@lqz ~]# gzip CentOS-Vault.repo --> CentOS-Vault.repo.gz
[root@lqz ~]# zcat CentOS-Vault.repo.gz --> 查看不想解压的压缩包文件内容
zip打包与压缩
使用zip命令可以对文件进行压缩打包,解压则需要使用unzip命令
1.安装:yum install zip unzip -y
2.压缩:zip filename.zip xx.txt
3.压缩:包括目录和文件:zip -r filename1.zip xx.txt a.txt /etc/hosts
4.查看压缩包中有哪些文件:unzip -t filename1.zip
5.解压:unzip filename.zip
6.解压到指定目录下:unzip filename.zip -d /opt/
7.案例
1.压缩文件为zip包
# zip 压缩表名 压缩的文件
[root@lqz ~]# zip filename.zip filename
2.打包不同目录下的不同文件
[root@lqz ~]# zip filename1.zip file1 file2 /etc/hosts
3.压缩目录为zip包 (不加r,只会打包一个文件夹)
[root@lqz ~]# zip -r dir.zip dir/
4.查看zip压缩包是否是完整的
[root@lqz ~]# zip -T filename.zip
test of filename.zip OK
5.不解压压缩查看压缩包中的内容
[root@lqz ~]# unzip -l filename.zip
[root@lqz ~]# unzip -t filename.zip
6.解压zip文件包, 默认解压至当前目录
[root@lqz ~]# unzip filename.zip
7.解压zip内容至/opt目录
[root@lqz ~]# unzip filename.zip -d /opt/
tar打包与压缩
tar是linux下最常用的压缩与解压缩, 支持文件和目录的压缩归档
1.语法:tar [-zjxcvfpP] filename
c #创建新的归档文件
x #对归档文件解包
t #列出归档文件里的文件列表
v #输出命令的归档或解包的过程
f #指定包文件名,多参数f写最后
z #使用gzip压缩归档后的文件(.tar.gz)
j #使用bzip2压缩归档后的文件(.tar.bz2)
J #使用xz压缩归档后的文件(tar.xz)
C #指定解压目录位置
X #排除多个文件(写入需要排除的文件名称)
h #打包软链接
--hard-dereference #打包硬链接
--exclude #在打包的时候写入需要排除文件或目录
2.常用打包与压缩组合
czf #打包tar.gz格式 常用
cjf #打包tar.bz格式 不怎么用
cJf #打包tar.xz格式 不考虑
zxf #解压tar.gz格式
jxf #解压tar.bz格式
xf #自动选择解压模式
xvf #显示解压过程
tf #查看压缩包内容
1.将文件或目录进行打包压缩
#1.以gzip归档方式打包并压缩
tar czf test.tar.gz test/ test2/
#2.以bz2方式压缩
tar cjf test.tar.bz2 dir.txt dir/
#3.打包链接文件,打包链接文件的真实文件
[root@lqz ~]# cd /
[root@lqz /]# tar czfh local.tar.gz etc/rc.local
#4.打包/tmp下所有文件
[root@lqz ~]# cd /
[root@lqz /]# find tmp/ -type f | xargs tar czf tmp.tar.gz
#5.打包/tmp下所有文件
[root@lqz /]# tar czf tmp.tar.gz $(find /tmp/ -type f)
2.排除文件, 并打包压缩
#1.排除单个文件
[root@lqz /]# tar czf etc.tar.gz --exclude=etc/services etc/
#2.排除多个文件
[root@lqz /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/
#3.将需要排除的文件写入文件中
[root@lqz /]# cat paichu.list
etc/services
etc/rc.local
etc/rc.d/rc.local
#指定需要排除的文件列表, 最后进行打包压缩
[root@lqz /]# tar czfX etc.tar.gz paichu.list etc/
3.查看压缩文件
#查看压缩包内容和解压
[root@lqz /]# tar tf test.tar.gz
4.解压缩文件
#1.解压至当前目录
[root@lqz /]# tar xf test.tar.gz
#2.将解压内容存储至指定的/tmp目录
[root@student ~]# tar xf /etc/local.tar.gz -C /tmp
tar命令练习
1.环境准备
[root@lqz ~]# yum install mariadb-server
[root@lqz ~]# systemctl start mariadb
[root@lqz ~]# mkdir /backup
2.案例1.mysql备份及恢复
[root@lqz ~]# tar cJf /backup/mysql.tar.xz /var/lib/mysql
[root@lqz ~]# tar xf /backup/mysql.tar.xz -C /
3.案例2 mysql备份及恢复
[root@lqz ~]# cd /var/lib/mysql
[root@lqz mysql]# tar cJf /backup/mysql.tar.xz
[root@lqz mysql]# tar tf /backup/mysql.tar.xz
[root@lqz mysql]# tar xf /backup/mysql.tar.xz -C /var/lib/mysql
记住
1.压缩:只记这一条即可
tar czf test.tar.gz a.txt ./etc xx.txt
2.解压:
tar -xf test.tar.gz
tar -xvf test.tar.gz
3.查看压缩包内容
tar tf test.tar.gz
软件管理,rpm和yum
RPM
1.RPM全称 RedHat Package Manager 缩写,由红帽开发用于软件包的安装升级卸载与查询
2.rpm包名组成部分
RPM包命名以-将软件分成了若干部分bash-4.2.46-28.el7.x86_64.rpm
bash:软件名
4.2.46-28.el7:4是大版本,2是小版本,46是修订次数,28是发布次数,el7是:enterprise linux 7,使用linux7系统
x86_64:64位架构
rpm包如何安装
以下列出了rpm命令进行安装软件的常用参数
选项 | 描述 |
---|---|
-i | 安装rpm |
-v | 显示安装详细信息 |
-h | 显示安装rpm进度 |
–force | 强制重新安装 |
–nodeps | 忽略依赖关系 |
1.把光驱挂在到某个目录下
mount /dev/cdrom /mnt
2.rpm安装软件命令
rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
3.rpm查看软件
rpm -q 查看是否安装
rpm -ql 释放的目录
4.rpm卸载软件
rpm -qa |grep tree # 从所有安装的软件中过滤一些是否有tree
rpm -q tree # 查看tree有没有装
rpm -e tree # 卸载tree软件
如何查询已安装好的rpm包
选项 | 描述 |
---|---|
rpm -q | 查看指定软件包是否安装(重点) |
rpm -qa | 查看系统中已安装的所有RPM软件包列表 |
rpm -qi | 查看指定软件的详细信息 |
rpm -ql | 查询指定软件包所安装的目录、文件列表(重点) |
rpm -qc | 查询指定软件包的配置文件(只有配置文件,etc下的) |
rpm -qf | 查询文件或目录属于哪个RPM软件 |
rpm -qip | 查询未安装的rpm包详细信息 |
rpm -qlp | 查询未安装的软件包会产生哪些文件 |
查询vsftpd这个rpm包是否安装
[root@lqz ~]# rpm -q vsftpd
模糊查找系统已安装的rpm包
[root@lqz ~]# rpm -qa |grep ftp
查询vsftpd软件包的相关信息
[root@lqz ~]# rpm -qi vsftpd
查询rpm包所安装的文件
[root@lqz ~]# rpm -ql vsftpd
查询rpm包相关的配置文件
[root@lqz ~]# rpm -qc vsftpd
查询配置文件或命令来自于哪个rpm包(只能查已经安装过的)
[root@lqz ~]# rpm -qf /etc/vsftpd/vsftpd.conf # 查看这个配置文件是
[root@lqz ~]# rpm -qf /usr/sbin/vsftpd
[root@lqz ~]# rpm -qf /usr/sbin/ifconfig
想看未安装的
yum provides vim
查询未安装的软件包会产生哪些文件
[root@lqz ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
查询未安装的软件包会产生哪些文件
[root@lqz ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
yum
1.Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装
2.YUM源
1.yum install装软件,它去某个位置下,默认是centos提供的,国外,可能会慢一些
2.国内的阿里云,提供镜像站
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3.epel扩展源
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
4.查询软件
yum list |wc -l # 查看所有可以按装的软件
yum list|grep ftp
yum info ftp
5.安装软件
yum install vim -y
yum install 远程地址rpm包自动处理依赖
yum reinstall vsftpd # 重新安装
rpm -qc vsftpd # 查看改软件安装后的一些目录
5.更新软件
yum update nginx -y
6. 卸载软件
yum remove 软件名 -y
源码安装nginx
yum安装
yum install nginx 简单,不能使用最新版,不能修改源码
源码安装
源码安装,官方下载最新版,改源码,自己编译--->得到软件
1.wget https://nginx.org/download/nginx-1.24.0.tar.gz
2.tar xf nginx-1.24.0.tar.gz
3.配置相关的选项,并生成Makefile
./configure --help
./configure --prefix=/usr/local/nginx # 指定安装路径
yum -y install gcc gcc-c++ make
yum install -y pcre-devel
yum -y install zlib-devel
yum -y install openssl-devel
4.make 编译---》把源码编译成可执行文件--->/usr/local/nginx路径下会不会有?
5.make install 安装
6.cd /usr/local/nginx 可以看到文件夹
conf html logs sbin
配置文件 index.html 日志 可执行文件
7.在任意路径下敲nginx 都能找到
1.软连接
2.把sbin路径加入到环境变量
cd
vim .bash_profile
加入一行:
PATH=$PATH:$HOME/bin
PATH=$PATH:/usr/local/nginx/sbin
export PATH
3.source 一下,让它生效
4.source .bash_profile
8.以后再任意路径敲nginx,都会有响应
"""
1.停止nginx服务:nginx -s stop
2.启动:nginx
"""
系统服务
1.centos7 systemclt :systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令
2.systemctl restart network # systemctl启动服务
3.systemctl status network # systemctl查看服务
4.win上:net start 服务名
5.使用 systemctl 管理nginx
-如果用yum安装的nginx,自动加入到服务中去,就会被systemctl管理
-yum install nginx -y
-systemctl status nginx # 查看nginx服务
-systemctl start nginx # 启动nginx服务
-systemctl stop nginx # 加载nginx服务
-systemctl reload nginx # 重新加载
6.把咱们自己使用源码安装的软件也可以被systemctl管理
1.来到路径下:路径是
cd /usr/lib/systemd/system/
2.新建一个 mynginx.service
vim mynginx.service
[Unit]
Description=xxxx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecRestart=/usr/local/nginx/sbin/nginx -s restart
ExecReload=/usr/local/nginx/sbin/nginx -s reload
[Install]
WantedBy=multi-user.target
3.以后,使用systemctl 管理nginx
-systemctl status mynginx
-systemctl start mynginx
-systemctl stop mynginx
-systemctl reload mynginx
7.开机自启动
systemctl enable mynginx # 开机启动
systemctl disable mynginx # 取消开机启动
8.关闭防火墙,设置不开机自启动
systemctl stop firewalld
systemctl disable firewalld
进程管理
1.ps -aux # 查看进程
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.4 0.3 128148 6800 ? Ss 15:08 0:01 /usr/lib/systemd/systemd
root 2 0.0 0.0 0 0 ? S 15:08 0:00 [kthreadd]
2.需要知道的
1.哪个用户启动
2.进程id是什么,后期杀进程,可以使用进程id号
3.cpu占用率
4.内存占用率
5.COMMAND 进程的命令 [系统进程] 其他进程
3.ps aux | grep redis # guol
4.孤儿进程和僵尸进程
5.ps -ef # 多了ppid
6.top 动态查看进程
7.杀进程
kill -9 进程id号
pkill -9 进程名 批量干掉进程