Linux 基础

一、Linux 命令基础

1.1 linux命令存储以下位置

  • /bin (指向/usr/bin) 目录,包含基本的用户命令,默认全体用户都可使用,例如:curl,ls 命令
  • /sbin (指向/usr/sbin) ,/usr/local/sbin,存放需要 root 权限的命令以及工具,默认 root 用户使用,例如:ip,halt 命令
  • /usr/local/bin,给用户放置自己的可执行程序的地方,不会被系统升级覆盖
  • /usr/local/sbin,给管理员放置自己的可执行程序的地方,不会被系统升级覆盖

说明:如果在每个命令目录都存在某个命令时,通过系统的 $PATH 变量决定优先级

$ echo $PATH 
# 输出:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/protobuf/bin/:/root/bin

1.2 执行当前目录文件

如果你的程序命令没有放在以上文件夹,我们也可通过相对路径以及绝对路径启动该命令:

$ ./php -m # 当你在 php 命令文件目录中时,
$ /www/server/php/72/bin/php -m # 宝塔 php 命令目录

根据这个原理,我们可以安装多个 ph p版本,并启动

$ /www/server/php/72/bin/php -m
$ /www/server/php/56/bin/php -m

二、进程管理

我们可以使用 ps 查看当前进程(相当于windows的任务管理器)

$ ps -ef |grep php

输出:

root       8351   8346  0 09:07 ?        00:00:00 /usr/bin/php /www/wwwroot/es3_demo/test.php
root      10618   8970  0 14:26 pts/0    00:00:00 grep --color=auto php

用于筛选出当前运行中,包含php关键字的进程信息 通过kill -9 PID可杀死某一个进程:

$ kill -9 10618

使用killall 可杀死指定名字的进程:

killall -9 php

说明:kill 和 killall 其实是给进程发送一个进程信号的命令,-9 是 SIGKILL 信号,终止进程,可通过kill,killall 命令发送其他信号

三、扩展安装

3.1 php扩展安装

  • 在windows中,只需要将 dll 文件移动到扩展目录,并在 php.ini 中引入即可
  • linux 中类似,我们需要安装扩展的软件(例如mysql扩展,我们需要先安装mysql),再安装mysql操作扩展(mysqli,pdo),生成.so文件,在php.ini中引入.so文件即可

3.2 编译安装

swoole扩展,先下载swoole官方源码:https://github.com/swoole/swoole-src 解压,进入目录

$ phpize # 当不存在 ./configure 时执行
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make 
$ make install

这时候 .so 文件会自动生成到 php 扩展目录(有些扩展需要自己移动进去), 在 php.ini 最后面加上

extension = swoole.so

然后 php -m 查看扩展,就能看到 swoole 扩展安装好了

四、端口监控

我们知道,开启一个 tcp/udp 服务,都得占用一个端口,所有我们可以通过查看端口的方式去判断服务是否开启成功.

4.1 netstat 命令

使用netstat命令可查看端口占用情况

netstat命令各个参数说明如下:

  • -t : 指明显示 TCP 端口
  • -u : 指明显示 UDP 端口
  • -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
  • -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序
  • -n : 不进行DNS轮询,显示IP(可以加速操作)

查看80端口占用情况:

$ netstat -ntulp |grep 80 

输出:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1036/nginx: master  

4.2 lsof 命令

lsof命令需要自行安装

$ sudo yum install lsof

使用方法如下:

$ lsof -i tcp 	# 列出所有tcp网络连接
$ lsof -i udp 	# 列出所有udp网络连接信息
$ lsof -i :8080 # 列出使用8080端口信息

五、防火墙

当你开启一个 tcp 服务,却发现访问不了,那么你得考虑下是否是防火墙拦截了

目前,最常见的拦截有以下几种情况:

  • 服务器本机防火墙拦截
  • 服务器供应商拦截(阿里云,腾讯云安全组)

服务器本机拦截,可通过防火墙管理软件,开端口或者直接关闭防火墙进行解决(不建议):
例如 centos 7下,防火墙管理软件为 firewalld 基础命令为:

$ systemctl start firewalld # 启动
$ systemctl stop firewalld # 停止
$ systemctl status firewalld # 查看状态
$ systemctl disable firewalld # 开机禁用
$ systemctl enable firewalld # 开启启动
$ firewall-cmd --zone=public --add-port=80/tcp --permanent # 开放80/tcp端口  (--permanent永久生效,没有此参数重启后失效)
$ firewall-cmd --reload # 重新加载配置
$ firewall-cmd --zone= public --query-port=80/tcp # 查看80/tcp端口
$ firewall-cmd --zone= public --remove-port=80/tcp --permanent # 删除该端口开放

你可能感兴趣的:(linux)