Linux常用知识

Linux系统使用xsh软件进行连接

ssh root@服务器ip
# 修改主机名称
hostnameatl set-hostname 主机名称

Linux文件系统常用命令

Linux命令   一些功能性的参数   要操作的对象
# 查看当前目录下的所有文件
ls
ls默认等于  ls .
ls /root # 查看root目录下的所有文件
../     ./
# 查询当前所在目录
pwd
# 进入到某个路径目录
cd /
cd /use
# 查看当前系统登陆的用户
whoami

# 创建文件夹 -p是递归创建多级目录,如果有就不创建,没有就创建
mkdir -p /tmp/xiaoming/linux -p
# 创建一个文件
touch ./aa.txt
# 删除文件夹 rm删除,-rf递归强制删除 /*删除当前目录下的所有文件
rm -rf /*
# 删除某个目录下的所有内容
rm -rf /tmp/*
# 删除某个文件
rm -rf /tmp/xiaoming.txt

# 创建一个文件
touch 小明.png
# 查看一个文件或文件夹的详细信息
ls -l ./
- rw- rw- r-- 1 xiaoming xiaoming 0 Jul 10 23:08 xiaoming.txt
- 表示这个是一个普通的文件
rw- 表示这个文件可以读取,可以写入,但是不能执行

第一个xiaoming 表示这个文件属于谁的
第二个xiaoming表示这个文件属于哪个分组,因为每个用户都有属于自己的分组文件夹


# 打开一个文件并且写入内容
vi 文件路径
打开文件后输入 i 进入编辑模式。
按下ESC 结束编辑模式,然后在输入 :wq! (注意,冒号必须是英文状态下,不然没用)  回车,保存退出

# 查看一个文件内容
cat 文件路径及名称
# 搜索文件
rpm -ql nginx
# 搜索文件并过滤
rpm -ql nginx | grep 'nginx'
# 查看nginx首页的位置
rpm -ql nginx | grep 'index'
#移动文件
mv 文件  要移入的路径
# 拷贝文件
cp -r 要复制的文件  新的路径

用户相关命令

# 创建新用户,并且创建用户只能root才能创建
useradd xiaoming
# 修改账户密码 指定修改谁的密码,输入两次密码后修改成功
passwd xiaoming
# 每个用户在登录之后都在当前的目录下

Linux目录结构

在这里插入图片描述

Linux系统安装软件

  • 安装阿里云yum

  • https://developer.aliyun.com/mirror/?spm=a2c6h.13651102.0.0.3e221b11YpPENp&serviceType=mirror&tag=%E7%B3%BB%E7%BB%9F

  • 找到对应系统的对应版本进行安装,这里安装的版本如下

  • https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.affe1b11KOnIfv

# 先安装一个工具 wget 下载工具
yum install wget -y
# 备份老的yum配置
cd /etc/
cd ./yum.repos.d/
mkdir repo-clone
#移动所有文件到新创建的文件夹中
mv ./* ./repo-clone/
# 更新阿里云yum
# 从https://mirrors....的服务上下载文件,下载到/etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repoCentos-7.repo
# 安装epel
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
  • 下面就可以开始安装应用程序了

安装nginx(普通安装)

yum install nginx -y
# nginx启动
systemctl start nginx
# 停止nginx服务
systemctl stop nginx
# 查看系统内的进程信息,相当于windows的任务管理器
ps --ef
# 查看进程并筛选
# grep 用于筛选
ps -ef | grep 'nginx'

# 查看系统的端口信息 
netstat -tunlp
# 有可能会出现说 netstat不是命令的情况,需要一个工具
yum install net-tools -y
# 查看并筛选
netstat -tunlp | grep 'nginx'
# nginx暂用了80端口   状态是listen 监听中
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1823/nginx: master  
tcp6       0      0 :::80                   :::*                    LISTEN      1823/nginx: master 

# 启动后可以直接访问服务器ip地址,正常是可以访问

# 如果不能访问可能是防火墙或者端口没有放行

# 查看已放行的端口
firewall-cmd --list-ports 
# 放行指定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 然后重启防火墙 应该就可以了
systemctl restart firewalld.service


#重新载入配置
firewall-cmd --reload

#查看防火墙
systemctl status firewalld #查看firewall防火墙服务状态

#开启防火墙
service firewalld start #开启firewall防火墙服务


安装Apache服务器

yum install httpd
# 启动Apache服务器 先要停止80端口的程序,比如上方的nginx
# 启动后无法访问可能是因为防火墙没放行端口
systemctl start httpd
# 查看服务的端口信息
netstat -tunlp | grep 'httpd'

删除卸载一个应用程序

yum remove httpd -y

使用Linux服务器发送一个请求

# 拿到服务器的响应
curl https://www.taobao.com/
# 查看服务器信息 -- 请求头信息
curl -I https://www.taobao.com/

修改nginx的首页 , 修改Apache首页也是一样的手法

文件搜索
rpm -ql nginx
# 搜索文件并过滤
rpm -ql nginx | grep 'nginx'
# 查看nginx首页的位置
rpm -ql nginx | grep 'index'
# 安装vim编辑器,是一个提供颜色区分,以及更多强大功能的编辑器
yum install vim -y
# 用vim编辑器打开index.html
# 按下 dG 删除全部内容 按 i进入编辑模式,按ESC推出编辑,按:wq!保存退出

# 将淘宝的网站原代码写入到index.html中,就可以访问淘宝了

安装部署mysql

yum install mariadb-server mariadb -y
# 启动mysql
systemctl start mariadb
# 验证mysql是否启动成功,mysql服务默认端口3306
netstat -tunlp | grep 'mysqld'
# 连接mysql 
mysql -uroot
# 查看所有数据库
show databases
# 进入某个数据库
use mysql
# 查询某张表中的数据
select * from user;

安装服务器解压缩工具

yum install unzip -y
# 解压缩文件
unzip 文件名称

进程及防火墙相关

# 查看系统内的进程信息,相当于windows的任务管理器
ps --ef
# 查看进程并筛选
# grep 用于筛选
ps -ef | grep 'nginx'
# 查看系统的端口信息 
netstat -tunlp
# 有可能会出现说 netstat不是命令的情况,需要一个工具
yum install net-tools -y
# 查看并筛选
netstat -tunlp | grep 'nginx'
# nginx暂用了80端口   状态是listen 监听中
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1823/nginx: master  
tcp6       0      0 :::80                   :::*                    LISTEN      1823/nginx: master 
# 启动后可以直接访问服务器ip地址,正常是可以访问
# 如果不能访问可能是防火墙或者端口没有放行
# 查看已放行的端口
firewall-cmd --list-ports 
# 放行指定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 如果上面的不行就下面这个
firewall-cmd --permanent --zone=public --add-port=3000/tcp
# 然后重启防火墙 应该就可以了
systemctl restart firewalld.service
#重新载入配置
firewall-cmd --reload
#查看防火墙
systemctl status firewalld #查看firewall防火墙服务状态
#开启防火墙
service firewalld start #开启firewall防火墙服务
# 结束某个端口进程
kill $(lsof -i :3000)

nginx源码安装

  • 之所以要编辑源码安装,是为了更好的自定义功能
  • 下载软件云代码,在系统上安装编辑环境
# 安装nginx源码编译工具gcc
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readlinedevel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

# 开始下载nginx源代码
cd /opt
mkdir ngx
cd ./ngx/
# 下载
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
# 解压
tar -zxvf nginx-1.12.0.tar.gz
# 进入nginx目录中
cd ./nginx-1.12.0
# 执行当前目录下的 .configure脚本进行配置编译安装信息
# --prefix 是一个参数,指定要将nginx安装到哪里 后面的是支持一些其他功能
./configure --prefix=/opt/nginx1-12/ --with-http_ssl_module --with-http_stub_status_module
# 开始编译安装
make && make install
# 编译完成后进入上面配置的安装目录
cd /opt/nginx1-12
# nginx启动命令就放在sbin目录中 进入这个目录
cd ./sbin
# 执行当前目录下的nginx文件进行启动nginx
./nginx

# 到此 nginx就安装并启动成功了
nginx的静态网站配置
  • 通过修改配置文件,部署不同的项目
  • 修改配置文件后需要重载配置文件
# nginx配置文件路径 (每个机器安装的路径不一样)
/opt/nginx1-12/conf/nginx.conf
# cd到nginx的sbin目录下 重载配置
./nginx -s reload
  • 配置
server {
        listen       80; # 端口
        server_name  localhost; # 域名
 
        #charset koi8-r;

        #access_log  logs/host.access.log  main; # 用于日志输出

        location / {
            root   html; # 网页文件的路径
            index  index.html index.htm; # 要相应的文件
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
nginx支持多端口部署web项目
# 在nginx.conf配置文件中,每一个server对象就是一个端口
server {
        listen       80; # 端口
        server_name  localhost; # 域名
 
        #charset koi8-r;

        #access_log  logs/host.access.log  main; # 用于该端口的日志配置

        location / {
            root   html; # 网页文件的路径
            index  index.html index.htm; # 要相应的文件
        }
}
# 添加一个端口服务
# 配置之后重启就可以访问了,如果配置没错还是访问不了那可能是端口没放行
server {
 	listen 8808;
	server_name  localhost;
	access_log  logs/host.access.log  main; # 用于日志输出
	location / { # 当前请求location:8808/ 时响应下面配置的页面
		root /web;
		index test.html;
	}
}
nginx请求日志输出
# 需要输出日志需要配置以下操作
 # 全局开启日志输出
 http {
     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;
    # 下面是局部开启某个端口服务的日志
     server {
        #access_log  logs/host.access.log  main;
     }
 }
  • 终端日志输出
日志输出 (输出文件内容
 tail -f /opt/nginx1-12/logs/access.log
 # 输出错误日志
 tail -f /opt/nginx1-12/logs/error
nginx代理模式
server {
	listen 8808;
	server_name  localhost;
	location /api {
		# 当前收到请求时向这个地址转发,
		proxy_pass https://www.taobao.com/;
	}
}

git安装

yum install git -y
  • 在服务器上生成一个公钥,配置在git代码管理平台上,这样在服务器上拉代码就不用每次都输入密码
ssh-keygen -t RSA -b 4096 (一直回车)
# ssh-keygen 生成公钥的意思
# -t rsa 使用rsa算法
# -b 4096 公钥的大小 4096个字节

# 查看公钥 公钥创建之后会显示公钥的所在目录
cat /root/.ssh/id_rsa.pub

# 将公钥配置到git上,一个账号可以配置公钥,一个项目也可以配置公钥。
# 这里已gitee的单个项目配置为例(也可以全局配置):打开项目/管理/部署公钥管理/添加公钥。 其他平台也差不多 ,全局配置:打开设置/ssh公钥。这个配置不止能服务器上用,在windos电脑的git也一样能用
# 然后在服务器上克隆代码,先cd 进入项目文件夹
git clone ssh克隆地址 (注意:必须用ssh拉取地址)

nodejs安装

# 下载node包
wget https://nodejs.org/dist/v14.21.2/node-v18.16.0-linux-x64.tar.xz
# 如果下载不了可以手动到官网下载服务器版后在把文件手动上传到服务器
#解压
tar -xvf node-v18.16.0-linux-x64.tar.xz
#重命名
mv node-v18.16.0-linux-x64 nodejs
# 通常我会把nodejs放在 /usr/local/
# 可以直接下载或上传文件到这个目录进行解压
# 准备好之后创建软连接
# 需要注意的是你的目录不能弄错了不然不得行
ln -s /usr/local/node/bin/node /usr/local/bin/node
ln -s /usr/local/node/bin/npm /usr/local/bin/npm
# 删除一个软连接
rm /usr/local/bin/node
# 然后应该就可以了,可以执行node -v查看版本
# 更换npm镜像为淘宝地址
npm config set registry https://registry.npm.taobao.org
  • 建议可以安装nvm,这样切换版本更灵活

安装pm2工具

  • 用普通的nodejs启动方式一旦窗口关闭后项目就停止了,pm2 可用于在后台启动node项目,并且当node项目报错挂机了并会自动重启
npm i pm2 -g
# 安装完成后在需要被启动的项目中的package.json配置启动命令
  "scripts": {
    "start": "pm2 start ./app.js --name webhook --watch",
    "stop": "pm2 stop webhook" # 用于停止服务
  },
  
# 有时候可能会出现pm2 不是命令错误,这是pm2没有被安装在指定的目录下,需要手动处理一下
# 先通过find / -name pm2 找到pm2的路径
接着执行ln -s /root/home/installation-packages/node.js/node.js/bin/pm2 /usr/local/bin命令为pm2程序添加软链接。其中/root/home/installation-packages/node.js/node.js/bin/pm2就是上一步查找到pm2程序的所在路径,而/usr/local/bin是根据$PATH环境变量得到的路径,在这些目录下的程序可以在系统的任意位置直接调用执行,所以将软链接添加到此目录下。
# 一般pm2安装之后目录都是在node/bin/pm2 ,
# 最后在执行pm2 -v看看是否可以用
  • pm2常用的命令 pm2 start 启动项目 pm2 list 查看进程 pm2 show 0 或者 # pm2 info 0 查看进程详细信息,0为PM2进程id pm2 monit 进入监视页面,监视每个node进程的CPU和内存的使用情况 pm2 stop all 停止PM2列表中所有的进程 pm2 stop 0 停止PM2列表中进程为0的进程 pm2 reload all 重载PM2列表中所有的进程 pm2 reload 0 重载PM2列表中进程为0的进程 pm2 restart all 重启PM2列表中所有的进程 pm2 restart 0 重启PM2列表中进程为0的进程 pm2 delete 0 删除PM2列表中进程为0的进程 pm2 delete all 删除PM2列表中所有的进程 pm2 logs 显示所有进程的日志 pm2 logs 0 显示进程id为 0 的日志 pm2 flush 清空所有日志文件 pm2 reloadLogs 重载所有日志 npm install pm2@lastest -g 安装最新的PM2版本 pm2 updatePM2 升级pm2 pm2 --help 查看更多的命令
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值