玩转Linux系统06
一、软件安装方式
1.yum安装(较常用,推荐使用)
yum的命令形式一般是如下:yum [option][command] 其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为”yes”),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package …]是操作的对象
【常用指令】
yum install -y 包名 (y代表yes,中间的询问环节跳过)===安装
yum remove -y 包名=====卸载包
yum search 查看是否安装了yum
yum list installled 查看安装了哪些
yum info 查看帮助信息
[root@localhost ~]# yum install wget #例如安装wget
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
可以只下载安装包,不安装
yum install -y --downloadonly --downloaddir=./wget
下载就是.rpm的包
2.rpm安装(redhat package manager红帽子包管理)
不论你用的是yum还是用的rpm安装,其实安装的都是rpm包。在linux里面,安装软件的时候,不仅仅是安装这么一个软件,与之对应的要按照很多的依赖软件。
a ==》 b===》c==》d
如果使用rpm安装,你要知道软件依赖关系才能安装,但是使用yum的话,不用知道依赖关系,yum自动为你解决
比如 yum install -y --downloadonly --downloaddir=./ vim
包含vim的包以及vim依赖的包,全部下载下来之后,估计10个包,这10个都是rpm,
请问先装哪个后装哪个。
yum install -y vim 依赖关系自动解决
常用指令
-ivh :安装 rpm -ivh 包.rpm
-e :卸载 rpm -e wget
-ql : 列出包安装路径 rpm -ql wget
-qi : 列出指定包的详细信息 rpm -qi wget
-qa :查找
3.编译安装(源代码安装)
相对来说,编译安装是需要编译源码的,安装的软件更加适合你的电脑,你的软硬件环境,更加的稳定,相比较yum来说稳定,例如python3、redis安装
编译安装步骤
(1)配置
./configure --prefix=你安装的路径 --以及其他参数
(2)编译
linux中的软件都是用C、C++编写的,所以需要编译器来编译
gcc gcc-c++
【指令】yum install -y gcc gcc-c++
make
[root@localhost ~]# yum install gcc-c++
Loaded plugins: fastestmirror
Setting up Install Process
(3)安装; make instal
l
走完一步之后,可以执行一个指令 echo $? ,如果返回0,代表上面指令执行成功,如果返回其它,说明执行失败指令可以连写: make && make install
确认成功否echo $?
显示为0则成功
二、python3.6安装
linux系统会自带python2.6,保留即可
1.python3.6搭建步骤
1、下载源码
Gzipped source tarball 这种后缀是 .tar.gz
yum install -y zlib* (必须的哥们)
tar -zxvf Python-3.6.4.tgz #解压
cd Python-3.6.4 #进入文件
2.编译(要进入所在的文件夹)
./configure --prefix=/usr/local/python3 --enable-optimizations
(必须的)
3.改设置(进入编辑器,去掉366行#)
vi Modules/Setup
将第366行的那个#号去掉
366 zlib zlibmodule.c -I$(prefix)/
include -L$(exec_prefix)/lib -lz
4.安装python
make && make install
5、链接过来指令包
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
终端输入python3,即可进入python3的终端模式
2.pip3设置
(1)找到文件
find / -name pip3
(2)链接过来指令包
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
(3)查看版本
pip3 -V 查看pip3版本信息
(4)升级pip
pip3 install --upgrade pip
3.安装成功测试
[root@localhost ~]# python3
Python 3.6.4 (default, Aug 31 2018, 20:20:12)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for
more information.
>>>
注意:
# !/usr/bin/python写的绝对路径,python解释器的保存路径
4.方式二:(备用)
CentOS安装Python3k步骤:
1. 安装GCC及依赖库:yum -y install gcc zlib-devel bzip2-devel
tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2. 从官方网站下载Python源代码:wget
https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
3. 解压缩:xz -d Python-3.6.5.tar.xz
4. 解归档:tar -xvf Python-3.6.5.tar
5. 配置安装信息(生成构建文件Makefile):
cd Python-3.6.5
./configure --prefix=/usr/local/python3/ --enable-optimizations
6. 执行构建和安装:make && make install
7. 配置PATH环境变量:
cd ~
vim .bash_profile
PATH=$PATH:/usr/local/python36/bin
source .bash_profile
echo $PATH
8. 创建符号链接:
ln -s /usr/local/python36/bin/python3 /usr/bin/python3
三.用yum方式安装MySQL数据库
(1)先查看是否安装MySQL——yum search MySQL
官网:MySQL.com—>下载—->找到社区版community server(不用商业版,需要付费)–>选择5.7.22版本(不选8版)—->系统选择红帽子
(2)下载安装包步骤
共下载四部分:
common依赖库
libs 底层依赖库
client
server
在linux中用阿里云下载
右击复制链接地址==mkdir mysql(建新文件夹命名为“mycql”)—>cd mysql进入文件夹 —>wget 粘贴网址(下方网址) ,
MySQL官方下载地址:(按照这个顺序下载)
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.22-1.el7.x86_64.rpm
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.22-1.el7.x86_64.rpmhttps://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.22-1.el7.x86_64.rpm
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-server-5.7.22-1.el7.x86_64.rpm
下载完毕ls命令检查下载好没有
(3)卸载—安装前先用yum安装libaio,卸载mariadb-libs
安装libaio====yum install libaio
卸载mariadb-libs======yum remove mariadb-libs
可以把这几个文件下载到一个单独的目录下然后再用 ls | xargs rpm -ivh
(4)安装
**【命令】**xargs 把前一个命令的输出作为后一个命令的参数
ls| xargs rpm -ivh 把前一个命令的输出作为后一个命令的参数
报错:依赖库缺失: yum-y reseach
yun -install
依赖库冲突: yum - remove
(5)确认装好了没有=====systemctl start mysqld
版本7以前 ===service mysqld start
( 6 )ps命令 ===查看进程状态
ps -aux或者ps -ef====== 查看所有进程状态( 减号可有可无)
【例】
ps -ef | grep mysql 搜索是否有mysql进程
ps -ef | grep mysql | grep - v grep
搜索mysql时但是不要搜索grep(grep -v代表不搜索)
(7)卸载MySQL====== rpm -e <文件名> 移除
五、服务和进程相关指令
1.linux的启动等级
vi /etc/inittab
[root@localhost ~]# vi /etc/inittab #进入编辑模式查看
。。。。。
Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not
have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
id:3:initdefault: #默认等级是3
。。。。
【含义】
0 : 关机等级
1 : 单用户模式
2 : 多用户的无网络模式
3 : 多用户模式,有网络
4 : 保留模式
5 : 界面模式
6 : 重启模式
切换等级: init 0 init 1 init 6
查看当前等级:runlevel
或者who -r
whoami 查看当前用户
2.查看随开机启动的服务chkconfig --list
[root@localhost ~]# chkconfig --list
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off #ip
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off #网卡
nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off #远程
。。。。
随开机启动的服务,我们给他们起了一个非常好听的名字,叫做守护进程(daemon)
3.开启、关闭服务(centos 6.8为例)
要有控制开启、关闭服务的脚本,比如iptables(防火墙)
/etc/init.d/iptables start | stop | restart
/etc/init.d/network start | stop | restart
经常找脚本,太不方便了,将服务脚本放到 /etc/init.d ,如果支持服务模式,那么就可以使用如下指令开启和关闭
service iptables start | stop | restart
service network start | stop | restart
一般情况,安装服务的时候,控制服务的脚本在安装包就有,但是有的没有,比如nginx没有
自己按照的服务,你就可以将脚本放到 /etc/init.d 里面,然后通过service控制它的开启和关闭
service nginx start
4.自己安装的服务随开机启动
hkconfig nginx on 默认设置的等级为2345
chkconfig nginx off
还得给脚本权限,权限一般设置为755
通过chkconfig --list 查看有没有配置成功
5.进程 相关指令
top :实时查看系统的运行状况,q退出
w : 查看系统的当前用户的链接情况
free -h:内存的使用情况
ps: 查看进程相关信息 #查看目的是为了找到PID,结束进程用的
-ef
aux
-ef | grep ssh 配合管道使用,查看ssh相关进程
ps aux | grep ssh
kill : 杀死一个进程
kill -9 进程id
6.端口相关指令
netstat -lnp : 查看网络和端口使用情况
netstat -lnp | grep 80
六、ftp服务搭建
1.ftp是什么?
文件传输协议,用在将本地文件上传到服务器
2.服务搭建步骤
关闭防火墙和selinux
依赖 gcc和openssl-devel和perl
0、yum install -y gcc openssl-devel perl
1、去pureftp官网
download==》releases==》pure-ftpd-1.0.41.tar.gz
2、下载
wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.41.tar.gz
3、解压
tar -zxvf 文件名
4、配置
./configure #进行配置 -h 查看配置参数
--prefix=/usr/local/pureftpd #安装目录
--without-inetd #不使用ineted 超级服务器管理
--with-altlog #采用alt日志
--with-puredb #采用puredb来存储ftp虚拟用户信息
--with-throttling #开启带宽控制
--with-tls #开启ftps支持
./configure --prefix=/usr/local/pureftpd --without-
inetd --with-altlog --with-puredb --with-throttling --with-tls
echo $? 如果是0说明上一步成功,其它为错误
make && make install
5、修改配置文件
cd configuration-file/
mkdir /usr/local/pureftpd/etc 创建目录
cp pure-ftpd.conf /usr/local/pureftpd/etc/
修改:vi /usr/local/pureftpd/etc/pure-ftpd.conf 如下
在文件最后添加如下两行
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
PIDFile /var/run/pure-ftpd.pid
6、拷贝控制文件
cp pure-config.pl /usr/local/pureftpd/sbin/
chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
7、启动服务
cd /usr/local/pureftpd
./sbin/pure-config.pl ./etc/pure-ftpd.conf
检查:ps -ef | grep ftp
8、添加管理用户
useradd test
mkdir -p /var/www/html/
chown -R test:test /var/www/html/
./bin/pure-pw useradd ftp_user1 -u test -d /var/www/html
ftp_user1:ftp登录用户名
-u:指定系统中存在的用户
-d:指定访问的目录
9、创建虚拟的用户数据库
./bin/pure-pw mkdb
/usr/local/pureftpd/bin/pure-pw list #查看用户列表
/usr/local/pureftpd/bin/pure-pw userdel 用户名#删除用户
10、通过ftp链接工具(FileZilla)测试
七、nfs搭建
1.什么是nfs
可以实现linux之间的文件共享,分为客户端和服务端
2.nfs搭建
服务器上操作
关闭防火墙 service iptables stop
关闭selinux setenforce 0
1、yum install -y nfs-utils
2、编辑配置文件
vi /etc/exports #进入编辑
/nfstest 10.0.144.0/24(rw, sync) #将这段代码复制进去
这是要共享的目录 网段
3、创建目录
mkdir /nfstest
vi /nfstest/lala.txt #进去编辑内容
4、启动服务
nfs是基于rpc协议的,所以首先启动rpc
service rpcbind start
service nfs start
客户端上操作
1、yum install -y nfs-utils
2、查看对应ip地址上面共享的目录
showmount -e 10.0.144.156
3、挂载nfs
mount -t nfs 10.0.144.156:/nfstest /mnt/usb
4、配置开机挂载
vi /etc/fstab
10.0.142.34:/test/ /root/nfs nfs defaults 0 0
地址 目录
八、nginx服务搭建
1.什么是Nginx
就是web服务器,常用的有Nginx和Apache(阿帕奇),都是免费的。
一般需要在云服务器上需要搭建web服务器
2.nginx安装步骤
nginx安装
1、关闭防火墙和selinux
2、安装依赖软件
yum install -y gcc gcc-c++ autoconf automake zlib
zlib-devel openssl openssl-devel pcre pcre-devel
3、tar -zxvf nginx-1.11.5.tar.gz
4、创建www用户,不允许以www用户登录系统
useradd www -s /sbin/nologin--with-http_stub_status_module --with-http_ssl_module
6、make && make install
7、cp nginx /etc/init.d/ #将文件复制到etc下面的init.d中
8、开启服务
service nginx start
若报“权限不够”错误,执行下面一行代码修改权限
chmod 755
9、设置开机启动
chkconfig nginx on
chkconfig --list 查看是否开机启动
10、查看网络和端口使用情况
netstat -lnp | grep nginx
nginx默认监听的端口为80端口
2.虚拟主机配置步骤
nginx服务器的根目录(www)在 /usr/local/nginx/html
ip:端口 域名(jd.com baidu.com taobao.com mi.com) sb.com
DNS服务商,阿里云、腾讯云都有。
一个服务器是否能放多个网站呢?可以的,配置虚拟主机
(1)修改nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
在第116行加一行代码
include vhost/*.conf;
(2)新建一个vhost文件夹
mkdir /usr/local/nginx/conf/vhost
(3)来到vhost下,新建一个虚拟主机配置文件
vi /usr/local/nginx/conf/vhost/www.lala.com.conf
server
{
server_name www.lala.com;
root html/lala;
index index.html;
}
[说明]:
server_name : 域名
root : 网站的根目录
index : 网站的默认首页
(4)新建虚拟主机根目录
mkdir /usr/local/nginx/html/lala
vi /usr/local/nginx/html/lala/index.html
service nginx restart 重启服务
(5)编辑本机的hosts文件
C:\Windows\System32\drivers\etc\hosts
10.9.151.154 www.lala.com
九、不同系统指令区别总结
1.CentOS和Ubuntu的区别
(1)centos中新建的非root用户是没有sudo的权限的,如果需要使用sudo权限必须在/etc/sudoers 中加入账户和权限,所以切换到root账号的时候只需要输入:su,加入root账号的密码即可。 在Ubuntu中,一般使用sudo+命令,如果是第一次使用会提示输入当前用户的密码(而不是root的密码)
(2)在线安装软件中,centos使用的是yum命令,而ubuntu中使用的是apt-get命令。除此之外yum中还有一个从软件源中搜索摸个软件的方法:yum search + 软件名
2.CentOS 7.x系列新指令:
centos7.0 没有netstat 和 ifconfig命令问题
yum -y install wget
yum -y install net-tools
systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
任务 | 旧指令 | 新指令 |
---|---|---|
使某服务自动 启动 | chkconfig –level 3htpd on | systemctl enable httpd.service |
使某服务不自动启动 | chkconfig –level 3 httpd off | systemctl disable httpd.service |
检查服务状态 | service httpd status | systemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active) |
显示所有已启动的服 务 | chkconfig –list | systemctl list-units –type=service |
启动某服务 | service httpd start | systemctl start httpd.service |
停止某服务 | service httpd stop | systemctl stop httpd.service |
重启某服务 | service httpd restart | systemctl restart httpd.service |
下面以nfs服务为例:
1.启动nfs服务
systemctl start nfs-server.service
2.设置开机自启动
systemctl enable nfs-server.service
3.停止开机自启动
systemctl disable nfs-server.service
4.查看服务当前状态
systemctl status nfs-server.service
5.重新启动某服务
systemctl restart nfs-server.service
6.查看所有已启动的服务
systemctl list -units --type=service
开启防火墙22端口
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
如果仍然有问题,就可能是SELinux导致的
关闭SElinux:
修改/etc/selinux/config文件中的SELINUX=”” 为 disabled,然后重启
彻底关闭防火墙:
sudo systemctl status firewalld.service
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
centos7.0服务管理相关指令
https://www.cnblogs.com/lgqboke/p/6069170.html
十、Linux其它指令补充
who 看到现在有谁登录系统(时间。地点)
who am i 查自己
whoami 可以查到用户名
w 比who更详细登录信息
last 最近谁登录系统
log out 或exit 退出登录
whatis查看命令的说明
例如:whatis python 什么是python
>>>quit()从命令退出
whereis 查看命令的路径位置
man+命令名字===查看命令参考手册
方法二:用--help(减减help)查看该命令的用法
wget :非交互式下载器
history查看历史命令===>!编号:可以调用历史命令
hisorty -c清除历史命令
!v===将最近的v打头的代码重新运行一遍