centos的学习笔记

centos更换yum源

如果不更换yum源的话就可能会出现以下结果,无法安装应用

点击展开~

还源方法

首先进入到/etc/yum.repos.d目录

1
cd /etc/yum.repos.d

对原来的yum源进行备份

形成一个后缀为bak的文件

1
cp CentOS-Base.repo CentOS-Base.repo.bak

更改yum源

1
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

上方链接可以直接在浏览器输入进行下载,下载下来的文件为Centos-7.repo,可以对其打开,复制其内容

清除原来样本缓存

1
yum clean all

生成新的样本缓存

1
yum makecache

更新软件包

1
yum update -y

查看yum仓库

1
sudo yum repolist all

查找yum可以安装的软件包

1
yum search ftp

ftp为软件包名

curl安装

下载curl安装包:wget http://curl.haxx.se/download/curl-7.38.0.tar.gz

解压:tar -xzvf curl-7.38.0.tar.gz

进入解压后的curl文件夹:cd curl-7.38.0

输入: ./configure --prefix=/usr/local/curl

输入:make && make install

xxxxxxxxxx 

html

测试是否可以使用:curl www.baidu.com

centos7 yum 安装nodejs、npm、cnpm、pm2、yarn -

安装DNF

需要先安装依赖然后安装包

1
2
3
4
5
6
7
8
-bash: dnf: command not found

#CentOS 安装
#安装 epel-release 依赖:
yum install epel-release

#安装 DNF 包:
yum install dnf

语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#与 YUM 基本保持一致,少数用法有区别。
##### 版本
dnf --version # 查看DNF包管理器版本

##### 帮助
dnf help # 查看所有的DNF命令及其用途
dnf help <command> # 获取命令的使用帮助
dnf history # 查看 DNF 命令的执行历史

##### 信息查看
dnf repolist # 查看系统中可用的DNF软件库
dnf search <package> # 搜索软件库中的RPM包

dnf list installed # 列出所有安装的RPM包
dnf list available # 列出所有可安装的RPM包
dnf info <package> # 查看软件包详情

dnf provides <file> # 查找某一文件的提供者

##### 软件包操作
dnf install <package> # 安装软件包及其所需的所有依赖
dnf update <package> # 升级软件包
dnf remove <package> # 删除软件包
dnf reinstall <package> # 重新安装特定软件包
dnf distro-sync # 更新软件包到最新的稳定发行版

##### 系统软件包
dnf check-update # 检查系统所有软件包的更新
dnf update # 升级所有系统软件包
dnf clean all # 删除缓存的无用软件包

配置

配置文件位置

1
/etc/dnf/dnf.conf

代理配置

1
2
3
proxy=http://<ip address>:<port>
proxy_username=<username>
proxy_password=<password>

安装卸载 control-center

1
2
3
# sudo dnf install control-center

# sudo dnf remove control-center

更新 升级

1
2
3
4
5
6
7
8
#升级软件
sudo dnf update

#升级系统
sudo dnf upgrade

#清除 RPM 包缓存
sudo dnf clean packages

安装Node.js和npm

在进行任何安装之前,您需要确保系统处于最新状态。可以通过运行以下命令来更新系统:

1
sudo yum update

安装Node.js

1
sudo yum install nodejs

Node.js可以通过EPEL存储库安装。要启用EPEL存储库,请键入以下命令:

1
sudo yum install epel-release

查看版本号是否安装成功

1
node -v

安装npm

1
sudo yum install npm

验证

1
npm -v

更新npm,如果您需要更新npm到最新版本,请运行以下命令

1
sudo npm install -g npm

现在,Node.js和npm已经成功安装在CentOS上,您可以使用npm轻松安装各种常用的Node.js包。例如,以下是安装Express框架的命令:

1
sudo npm install -g express

rpm软件包

rpm安装操作

命令:

rpm -i 需要安装的包文件名

举例如下

rpm -i example.rpm 安装 example.rpm 包;

rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;

rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;

rpm 查询操作

命令

rpm -q …

附加查询命令

a 查询所有已经安装的包以下两个附加命令用于查询安装包的信息;

i 显示安装包的信息;

l 显示安装包中的所有文件被安装到哪些目录下;

s 显示安装版中的所有文件状态及被安装到哪些目录下;以下两个附加命令用于指定需要查询的是安装包还是已安装后的文件;

p 查询的是安装包的信息;

f 查询的是已安装的某文件信息;

举例如下

rpm -qa | grep tomcat4 查看 tomcat4 是否被安装;

rpm -qip example.rpm 查看 example.rpm 安装包的信息;

rpm -qif /bin/df 查看/bin/df 文件所在安装包的信息;

rpm -qlf /bin/df 查看/bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下;

rpm 卸载操作

命令

rpm -e 需要卸载的安装包

在卸载之前,通常需要使用rpm -q …命令查出需要卸载的安装包名称。

举例如下

rpm -e tomcat4 卸载 tomcat4 软件包

rpm 升级操作

命令

rpm -U 需要升级的包

举例如下

rpm -Uvh example.rpm 升级 example.rpm 软件包

rpm 验证操作

命令

rpm -V 需要验证的包

举例如下:

rpm -Vf /etc/tomcat4/tomcat4.conf

输出信息类似如下

S.5….T c /etc/tomcat4/tomcat4.conf

其中,S 表示文件大小修改过,T 表示文件日期修改过。限于篇幅,更多的验证信息请您参考rpm 帮助文件:man rpm

RPM 的其他附加命令

  • --force 强制操作 如强制安装删除等;
  • --requires 显示该包的依赖关系;
  • --nodeps 忽略依赖关系并继续操作;

Nnpm安装卡慢问题

默认是国外镜像源

1
npm config set registry https://registry.npmjs.org

查看是否更换

1
npm config get registry

安装依赖试下速度

1
npm i

在换上 阿里巴巴开源镜像站-OPSX镜像站里的淘宝 NPM 镜像

1
npm config set registry [https://registry.npmmirror.com](https://link.segmentfault.com/?enc=1icsD2iuxeDmobStcJLkSw%3D%3D.wLvUJhcOKz9%2BYDtPUW62hCzcqSj2Ov0hAO0k1jMNSUU%3D)

查看是否更换

1
npm config get registry

如何检查centos版本

命令

1
cat /etc/redhat-release

1
uname -a
1
2
3
4
5
6
7
8
uname -m                                    # 查看指令架构
cat /proc/cpuinfo| grep "processor" # 查看 CPU 信息
lscpu | grep ssse3 # 确认 CPU 是否支持 ssse3 指令集
docker version # 查看 Docker 版本
docker compose version # 查看 Docker Compose 版本
docker-compose version # 查看老版本 docker-compose 版本
free -h # 查看内存信息
df -h # 查看磁盘信息

linux将输出的终端存到文件内

Linux中记录终端(Terminal)输出到文本文件四种方法_linux终端输出到文件-CSDN博客

方法1

直接使用>

例如

1
ls > ls.txt

那么就将ls输出到终端的信息保存在了ls.txt文件中

方法2

centos7添加DNS

修改 /etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 选项:

1
2
[main]
dns=none

NetworkManager重新装载上面修改的配置

1
$ systemctl restart NetworkManager.service

手工修改 /etc/resolv.conf添加

1
2
nameserver 114.114.114.114
nameserver 8.8.8.8

无法ping通IP地址

运行ip addr,找到如下图所示的文件名称

运行命令 cd /etc/sysconfig/network-scripts进入/etc/sysconfig/network-scripts/目录下,并找到ifcfg-ens33文件:

使用命令vi ifcfg-ens33修改该文件,将ONBOOT改为yes:

扩展磁盘空间

vwmare对其进行扩展分区后,需要对系统把分区进行扩容

查看当前磁盘空间

1
2
3
4
5
6
7
8
9
10
11
[name@localhost ~]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 13M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 13G 4.2G 76% /
/dev/sda1 1014M 234M 781M 23% /boot
tmpfs 781M 36K 781M 1% /run/user/1000
/dev/sr0 4.3G 4.3G 0 100% /run/media/lin/CentOS 7 x86_64

执行命令:lsblk 进行查看 ,发现我在虚拟机中扩展的空间在sda中

1
2
3
4
5
6
7
8
9
[root@localhost ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.3G 0 rom /run/media/lin/CentOS 7 x86_64

使用fdisk工具开始扩容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
[root@localhost lin]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):m #输入m查看命令
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

命令(输入 m 获取帮助):n #输入n开始添加新磁盘
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
分区号 (3,4,默认 3):3
起始 扇区 (41943040-83886079,默认为 41943040):
将使用默认值 41943040
Last 扇区, +扇区 or +size{K,M,G} (41943040-83886079,默认为 83886079):
将使用默认值 83886079
分区 3 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w #输入w保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。

结束

vim命令

vim 常用命令删除、撤销、恢复、复制、粘贴、替换_cmd vim命令-CSDN博客

防火墙

查看已经开放的端口:

1
firewall-cmd --list-ports  

开启端口

1
firewall-cmd --zone=public --add-port=80/tcp --permanent
1
firewall-cmd --permanent --add-port=24110-24999 /tcp

命令含义:

1
2
3
–zone  #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

重启防火墙

1
2
3
4
5
6
7
#Linux代码  
#重启firewall
firewall-cmd --reload
#停止firewall
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.service

下面文章原文出处:stnkw -> http://www.stnkw.com/linux/centoschakanduankouzhanyongqingkuanghekaiqiduankoumingling

Centos查看端口占用情况和开启端口命令
Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令:

1
lsof -i tcp:80

列出所有端口

1
netstat -ntlp

1、开启端口(以80端口为例)

方法一:

1
2
3
4
5
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT   写入修改

/etc/init.d/iptables save 保存修改

service iptables restart 重启防火墙,修改生效

方法二:

vi /etc/sysconfig/iptables 打开配置文件加入如下语句:

1
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT   `#重启防火墙,修改完成

2、关闭端口

方法一:

1
2
3
/sbin/iptables -I INPUT -p tcp --dport 80 -j DROP   写入修改
/etc/init.d/iptables save 保存修改
service iptables restart 重启防火墙,修改生效

方法二:

vi /etc/sysconfig/iptables 打开配置文件加入如下语句:

1
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j DROP   #重启防火墙,修改完成

3、查看端口状态

1
/etc/init.d/iptables status

有时启动应用时会发现端口已经被占用,或者是感觉有些端口自己没有使用却发现是打开的。这时我们希望知道是哪个应用/进程在使用该端口。

CentOS下可以用netstat或者lsof查看,Windows下也可以用netstat查看,不过参数会不同

Linux:

1
2
netstat -nap #会列出所有正在使用的端口及关联的进程/应用
lsof -i :portnumber #portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用

检查端口被哪个进程占用

代码如下复制代码

1
netstat -lnp|grep 88   #88请换为你的apache需要的端口,如:80

SSH执行以上命令,可以查看到88端口正在被哪个进程使用。如下图,进程号为 1777 。

2、查看进程的详细信息

1
ps 1777

SSH执行以上命令。查看相应进程号的程序详细路径。如下图。

杀掉进程,重新启动apache

代码如下复制代码

1
2
kill -9 1777        #杀掉编号为1777的进程(请根据实际情况输入)
service httpd start #启动apache

SSH执行以上命令,如果没有问题,apache将可以正常启动。

Windows系统:

netstat -nao #会列出端口关联的的进程号,可以通过任务管理器查看是哪个任务
1
最后一列为程序PID,再通过tasklist命令:tasklist | findstr 2724

再通过任务管理结束掉这个程序就可以了

关闭自动锁屏

解决ssh登录Host key verification failed(主机密钥验证失败)问题

解决方案:

输在主机端(注意不是被连接的服务器)输入以下代码即可。

1
2
3
ssh-keygen -R 你要访问的ip地址
# 比如像
ssh-keygen -R 54.65.82.193