linux系统
linux 发行版安装:
1、linux操作系统下载:https://blog.csdn.net/qq_40827780/article/details/83385464
【作为服务器的linux系统,一般都使用 Ubuntu 或 Centos】
2、pc上linux系统安装:https://blog.csdn.net/NightSky10/article/details/78538705 或 https://blog.csdn.net/Blazar/article/details/79168116 或 https://jingyan.baidu.com/article/d5a880eb5b0aa153f147cced.html
注意:linux系统 可能是不支持通过pe安装的,需要把U盘做成光盘映像文件。
概念:
linux系统 分 linux内核版 和 linux发行版
1、linux系统的 下载命令 也是有仓库源的,这点和npm的下载包一样。指令下载的内容,都有一个 远程 仓库源的。
2、一般掌握 linux基础 知识就可以了。 https://blog.csdn.net/weixin_34111819/article/details/91375436
3、linux的目录结构:https://www.cnblogs.com/0zcl/p/6815417.html
linux目录:一切从“根”开始,“/”是所有目录的起点(定点)
注:查看当前目录的绝对路径,可以使用命令 pwd 。
inux系统的命令上不一定显示当前目录的绝对路径,需要pwd命令打印出来。如:
4、linux几个常用命令:https://blog.csdn.net/qq_23329167/article/details/83856430
a、删除目录:https://www.cnblogs.com/fuhaots2009/p/3435798.html【使用 rm 参数】
b、删除文件:https://www.cnblogs.com/heyboom/p/11459042.html
c、wget命令:下载文件的工具 https://www.cnblogs.com/sx66/p/11887022.html
d、vim编辑器,有两种模式。编辑模式 和 命令模式。要保存退出,必须是命令模式下。【vim是vi的加强版】
f、netstat命令:端口开放查看 https://blog.csdn.net/chenlixiao007/article/details/124639562 或 https://www.cnblogs.com/lemon-flm/p/7396536.html
netstat -tunlp
重点说明:0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口。【0.0.0.0是一个特殊的IP地址,指的是本机的全部IP地址】
127.0.0.1 只能对本机 localhost访问,也是保护此端口安全性
::: 这三个: 的前两个”::“,是“0:0:0:0:0:0:0:0”的缩写,相当于IPv6的“0.0.0.0”,就是本机的所有IPv6地址,第三个:是IP和端口的分隔符
5、文件权限问题:https://blog.csdn.net/qq_42139745/article/details/129715343
- 用户默认的权限:不同用户因为权限不同,他们创建的文件默认的文件权限也是不同的。
文件权限分为:所有者权限、所属组权限、其它人权限。
root用户创建文件时,默认的给的权限是 "rw-r--r--",即 root创建的文件 其它用户 自有读的权限。
注:所以linux系统中,一般不推荐直接在root用户下创建文件。 - 读写文件的权限:
通常查看应用是否拥有权限,先看用户是不是文件所有者,再看是不是所属组,最后看是不是其他用户,如果是其中一个,就有权限;
查看文件权限方式:https://blog.csdn.net/ifubing/article/details/100190291
- 对普通用户来说,没有权限是不能访问资源的;
- 读写权限对root用户不受限制,但x权限受控制;
需要注意的是:对root用户来说,如果root没有x权限,只要属组和其他有x权限,root用户就能执行,而普通用户不行。
- 上调权限:这种是针对 执行文件的权限。
执行命令:上调权限:chmod 777 test.php - 改为root权限:需要root的密码
su root 即可 - 修改/etc/ssh/sshd_config文件:这种情况表示ssh没有给root权限。
切换root用户名的权限:https://www.cnblogs.com/sunyllove/p/9771626.html
sudo -i
6、linux 中 安装 软件(如nginx): https://blog.csdn.net/liu_xzhen/article/details/79516303
注意:tar包解包出来的软件,可能是源码,也可能是编译好的。.tar.xx 的tar包,这种是进行了压缩的tar包,需要解压解包。
linux中,不同类型的程序,有不同的安装方式:
- rpm包 或 deb包安装:这两个比较简单,有点类似window中exe包。(linux系统一般都有软件包管理器)可以直接安装的。这里不讲
- 源代码包:需要通过编译进行安装。https://blog.csdn.net/waS_TransvolnoS/article/details/90257593
1、下载源码:官网下载 或 包管理器下载(一般都是官网下载下来)
2、解压缩你下载的tar.gz包,得到一个文件夹。
tar -zvxf ***.tar.gz
3、进入解压后的目录,运行 configure 文件:
cd xxx ##xxx 为解压后的文件夹 ./configure
4、编译:生成二进制程序(二进制文件还没有安装)
make
5、安装生成的二进制文件:
make install ##安装软件
- 已编译好的包:不需要安装,解包后就可以使用。有点类似window中,绿色免安装的软件。如,nodejs 二进制文件,解压后 就可以使用。(如果要全局使用node命令,需要配置,类似window系统的环境变量)
./node -v # v.12.16.3
7、设置全局命令 两种方式:环境变量 或 软链接 【这个逻辑和window系统上是一样的】
推荐使用软链接的方式 配置全局命令。
- 配置系统环境变量:https://blog.csdn.net/qq_52385631/article/details/123881751
# 打开配置文件 vim /etc/profile # 添加环境变量 PATH="$PATH:/opt/tngx230/sbin:/opt/s19luffy/node-v8.6.0-linux-x64/bin" # 刷新 source /etc/profile
- 软链接:本质就是在已配置环境变量的目录下,放置我们的程序。https://www.cnblogs.com/peteremperor/p/14778034.html
linux默认配置环境变量的目录有:usr/bin/、/usr/local/bin/
如,nodejs可以通过创建软链接实现全局命令。【推荐 把软链接放在/usr/local/bin/ 目录下,因为这个文件下默认是空的】ln -s /usr/local/node/bin/node /usr/local/bin/node --将node源文件映射到usr/bin下的node文件 ln -s /usr/local/node/bin/npm /usr/local/bin/npm
9、tar包和gzip压缩包的概念:https://zhuanlan.zhihu.com/p/82747913 或 https://blog.csdn.net/weixin_30652897/article/details/98926822
通常你见到的各种源码包都是 .tar.gz 的格式。这种都是先通过 tar 打包,然后在通过 gzip 压缩生成的。因为 gzip 无法压缩目录,他需要用 tar 先打包一下,所以看起来是双后缀的格式。
所以这种包要解包,先要解压,然后再解包。因为麻烦,后来tar命令通过参数直接实现了解压再解包。有的压缩方式,tar命令可能还不支持解压。
常用的是 tar 命令。他的语法为: tar [-选项] [文件名] [打包目录]
它有一下几个选项
- -c 打包
- -x 解包
- -v 显示详细信息
- -f 指定文件名 | 指定解压文件名
- -z 打包同时压缩 | 解压
// 打包压缩 tar -zcvf web.tar.gz web // 解压 tar -zxvf web.tar.gz
10、linux 卸载软件:https://jingyan.baidu.com/article/a24b33cd5678bd19fe002bf6.html
sudo apt-get autoremove --purge 软件名
sudo ———— 获取 root 权限
apt-get ——— 执行安装卸载功能的软件
autoremove — 告诉 apt-get 我们所要做的操作是移除软件
--purge ——— 注意这前面是两个短划线,这个参数是告诉他们要完整的干净的彻底的移除
11、linux系统的包管理器:
12、linux系统中文件目录存放规范【个人习惯】
- /usr/local/src: 下载下来的源文件放在这里
- /usr/local/softwareName : 自己安装的软件放在/usr/local/目录下,如 nodejs、nginx 等
- /usr/local/project : 自己开发的程序放在这里,如java、nodejd等;
- /usr/local/bin : 设置软链接时,软链接的文件放在这里。如:ln -s /usr/local/node/bin/pm2 /usr/local/bin/
- /var/lib:程序本身执行的过程中,需要使用到的数据文件放置的目录。如MySQL的数据库/var/lib/mysql
【/var 该目录主要针对经常性变动的文件,包括缓存(cache)、日志文件(log file)以及某些软件运行所产生的文件,包括程序文件,或例如MySQL数据的文件等】 - /var/log:日志文件放置目录。
13、/bin、/usr/bin和/usr/local/bin 的区别:https://blog.csdn.net/weixin_45649763/article/details/104635869
- /bin: 存放所有用户皆可用的系统程序,即普通的基本命令,如:touch ls等。(centos7.0后,/bin全部移到/usr/bin)
- /usr/bin: 存放所有用户都可用的应用程序,一般是已安装软件的运行脚本,如:free、make、wget等。
- /usr/local/bin: 存放所有用户都可用的第三方软件程序。一般都是放一些的程序软链接,程序本身一般放在/usr/local/name
centos发行版(服务器常用的,标准版centos是没有图形界面的)
我安装的就是标准版的 centos7,下面就以这个版本说明:
重点说明:centos7 默认安装后,网络 和 wifi都是关闭的。 https://blog.csdn.net/b078109/article/details/101774077【开启以太网和wifi,这里的步骤有些是多余的。直接看下面几个步骤就可以了】
1、开启以太网:这个必须先开启,启动wifi,在有网的情况下可以测试是否开通。https://www.cnblogs.com/zxcnn/p/10409482.html【推荐】
- 修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 不同的系统可能最后的ens33名称不同
修改这文件最后的 ONBOOT=yes 。保存就可以了
ONBOOT=yes #设置为yes,开机自动启用网络连接
- 重启网络
service network restart # 重起服务
2、开启 wifi 连接:
- 安装NetworkManager-wifi
yum -y install NetworkManager-wifi
安装完后,reboot,wifi网卡应该已经启动。
我电脑到这一步,wifi就启动了。后面的步骤就不需要操作了。 注意:这应该是我在安装时,连接了wifi,已经输入的wifi密码。wifi的账户密码已经写到配置里面去了。所以安装包后,重启就可以了。
如果安装系统时,没有输入过wifi密码,还需要执行下面的程序。https://www.cnblogs.com/asker009/p/10212045.html
#系统内置网络配置界面
nmtui
#扫描可用于连接wifi
nmcli dev wifi
#添加一个wifi的连接
nmcli dev wifi con “无线网络名称” password “无线网络密码” name “任意连接名称(删除,修改时用)”
#添加成功后查看已创建的wifi连接
nmcli conn
#如果wifi没有连接上
nmcli con up wifi连接名(刚才nmtui创建的连接)
#修改该连接为开机自动连接
nmcli con mod wifi连接名 connection.autoconnect yes
3、centos7 安装桌面环境:https://www.cnblogs.com/u-drive/p/9832356.html【亲测有效】 或 https://blog.csdn.net/xm393392625/article/details/82145242【有多种桌面包】
4、笔记本centos7合盖不休眠的设置方法:https://www.sohu.com/a/273053815_639793 或 https://blog.csdn.net/seaship/article/details/100030247
1、配置 HandleLidSwitch = lock 2、启用生效:systemctl restart systemd-logind
5、centos关闭防火墙:https://www.freesion.com/article/67071126917/ 或 https://blog.csdn.net/shubingzhuoxue/article/details/84578749
centos不关闭防火墙,安装好的nginx服务器,在局域网中其它电脑无法访问。
systemctl status firewalld.service # 查看防火墙状态
systemctl stop firewalld.service # 关闭防火墙【当前有效,重启后,防火墙还是会开启的】
systemctl disable firewalld.service # 执行开机禁用防火墙自启命令
6、内网穿透 :https://www.jianshu.com/p/7ffc40fc4013【有多种工具实现】或 https://blog.csdn.net/tys87198312/article/details/108658581【亲测有效,使用natapp实现的内网穿透】
natapp 实现挺简单的:两个步骤
1、natapp 官网上 获取一个隧道。 【如果是要远程ssh连接的话,获取的是 TCP 隧道。https://blog.csdn.net/Return_0_/article/details/86745225】
2、在centos中启动下载下来的软件。【官网上下载的软件,都不需要安装,直接用命令启动的就可以了】
./natapp -authtoken=你的authtoken
【这里启动的natapp,如果关掉窗口,就是关掉了natapp程序,所以会掉线.】
3、natapp 进程守护。https://natapp.cn/article/nohup
说明:最后还是选择了 网云穿 ,这个域名和端口是固定的,不会像natapp一样,强行给你换了。
安装都是 差不多 简单的,就是服务器上的软件,启动下就可以了。
7、后台运行并查看日志:
- 后台运行命令:nohup ./wyc_linux_64 -token=令牌 &
- 查看日志命令:tail -f nohup.out
8、停止后台运行:
- 查看 后台运行 的 pid : ps -ef | grep nginx
- 若在运行,则直接使用kill命令 杀掉进程
9、centos 开机自动启动 设置:https://blog.csdn.net/qq_25508039/article/details/82783953【以nginx为例】 或 https://www.shenzhuohl.com/linux_read.html【看下面配置开机自启动部分】
开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:/lib/systemd/system/
- 在系统服务目录里创建.service文件,如 nginx.service文件。
vi /lib/systemd/system/nginx.service
- 设置开机自启动
systemctl enable nginx.service
- 停止开机自启动
systemctl disable nginx.service
- 启动nginx服务
systemctl start nginx.service
- 停止nginx服务
systemctl stop nginx.service
注意:/lib/systemd/system/ 与 /etc/systemd/system/的区别:https://www.jianshu.com/p/32c7100b1b0c
对于那些支持 Systemd(YUM/DNF/RPM/APT/etc) 的软件,安装的时候,会自动在 /usr/lib/systemd/system 目录添加一个配置文件。
对于非软件包形式的临时软件安装,系统操作员应将文件手动放置在 /etc/systemd/system
个人电脑使用,推荐直接 /etc/systemd/system/ 设置
10、