centos
配置yum源
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
sudo yum makecache
初始化配置
查看端口占用
# 网络工具netstat
yum install net-tools -y
# 查看监听的端口
netstat -lnpt
# 查看端口占用
netstat -lnpt |grep 5672
# ping端口
telnet 192.168.0.11 50890
防火墙常用命令
# 查看firewall服务状态
systemctl status firewalld
# 查看firewall运行状态
firewall-cmd --state
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口 常用80,443,22,21,3306,8080
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
# 重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;
修改主机名/DNS
# 查看主机信息
hostnamectl
# 设置主机名
hostnamectl set-hostname xxx
查看DNS
cat /etc/resolv.conf
VIM
# 搜索xxx
/xxx
取消搜索结果高亮
:noh
SED
添加
# 在第1行的上一行追加内容
sed -i 1i追加内容 index.conf
# 在第1行的下一行追加内容
sed -i 1a追加内容 index.conf
# 正则匹配
# 在匹配到的行的上/下一行追加内容
sed -i '/内容/i222' index.conf
sed -i '/内容/a222' index.conf
# 在最后一行添加内容
sed -i '$a内容' index.conf
删除
# 删除第1行
sed -i 1d index.conf
# 从第一行开始删除,每隔2行就删掉一行,即删除奇数行
sed -i '1~2d' index.conf
# 删除1~2行
sed -i '1,2d' index.conf
#删除1~2之外的所有行
sed -i '1,2!d' index.conf
#删除最后一行
sed -i '$d' index.conf
#删除空行
sed -i '/^$/d' index.conf
#删除匹配到
sed -i '/123/d' index.conf
替换
# 替换第一行的内容
sed -i 1c替换内容 index.conf
# 正则匹配
# 替换匹配到的行全部内容
sed -i '/111/c222' index.conf
# 替换最后一行
sed -i '$c333' index.conf
建议使用'\' 包括内容
SCP
scp -P 端口 c://xxxx.txt user@ip:/home/root
1、从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录)
例如scp root@192.168.0.101:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)
2、上传本地文件到服务器
scp /path/filename username@servername:/path
例如scp /var/www/test.php root@192.168.0.101:/var/www/ 把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中
3、从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
例如:scp -r root@192.168.0.101:/var/www/test /var/www/
4、上传目录到服务器
scp -r local_dir username@servername:remote_dir
例如:scp -r test root@192.168.0.101:/var/www/ 把当前目录下的test目录上传到服务器的/var/www/ 目录
5 后台执行
nohup /path/filename username@servername:/path
不加末尾&,执行命令后会提示输入密码,
输入密码之后,按Ctrl+Z退出
运行bg命令,查看命令信息.
exit退出终端
最后,如果发现关闭窗口,后台scp进程可能也会中断,可以输入exit命令退出终端,关闭ssh连接,这样后台程序可以保持运行。
关闭当前后台运行的命令
ps -aux | grep "test.sh" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
kill命令:结束进程
(1)通过jobs命令查看jobnum,然后执行 kill %jobnum
(2)通过ps命令查看进程号PID,然后执行 kill %PID
如果是前台进程的话,直接执行 Ctrl+c 就可以终止了
SSH免密
本地机器执行 ssh-keygen -t rsa 命令,生成密钥文件其中id_rsa为私钥文件,id_rsa.pub为公钥文件
本地机器执行命令如:ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器IP, 将公钥文件传输的远程机器,并生效
查看远程机器的~/.ssh/authorized_keys文件,可以看到对应的变化:本地机器的公钥已经增加到远程机器的配置文件中了。
如果你现在以本地的root身份生成密钥并上传到服务器的话,你用root去SSH连接服务器的话是不需要密码的,但是别的用户连接是仍然需要密码的:
因为免密码登录的处理是用户对用户的,切换其他用户后,仍然需要输入密码,这个时候可以用别的用户再次生成密钥上传到服务器就行。
公钥传到远程机器并生效的操作,可用其他方式实现,如scp后修改authorized_keys。
远程机器的.ssh目录需要700权限,authorized_keys文件需要600权限。
SSH超时
用SSH客户端连接linux服务器时,经常会出现与服务器会话连接中断现象,造成这个问题的原因便是SSH服务有自己独特的会话连接机制。
解决方案:
1、设置服务器向SSH客户端连接会话发送频率和时间
#vi /etc/ssh/sshd_config,添加如下两行
ClientAliveInterval 60
ClientAliveCountMax 86400
注:ClientAliveInterval选项定义了每隔多少秒给SSH客户端发送一次信号;ClientAliveCountMax选项定义了超过多少秒后断开与ssh客户端连接
2、重新启动系统SSH服务
service sshd restart
Cron
root用户下 输入 crontab -l
显示no crontab for root
这个问题非常简单,同样在 root 用户下输入 crontab -e
按 Esc 按: wq
回车
在输入 crontab -l
就没有问题了
主要原因是由于这个liunx服务器 第一次使用 crontab ,还没有生成对应的文件导致的,执行了 编辑后 就生成了这个文件
NTP时间服务器
# 查看是否安装ntp
rpm -qa ntp
# 没有使用yum安装
yum -y install ntp
# ntp 服务器默认是不运行客户端进行时间同步的,所有我们需要配置文件设置允许。NTP服务的默认配置文件是/etc/ntp.conf
# vim /etc/ntp.conf
………省略内容………
#restrict default kod nomodify notrap nopeer noquery 注释此行内容
# nomodify 客户端不可以修改时间参数但是可以同步时间服务器,添加以下内容
restrict default nomodify
以下为 NTP服务默认的时间同步源,先将其注释
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
添加新的时间同步源
server time1.aliyun.com
………省略内容………
## 客户端先将系统优化是定时任务自动同步时间服务器的定时任务注释,如果不注释的话可能会冲突提示:本地的 ntp 时间服务器会跟互联网的时间服务器冲突,只能选择一个进行同步。
## 查看是否存在定时同步时间脚本需要删除或注释
crontab -l
## 设置开机启动并启动
systemctl enable ntpd.service && systemctl start ntpd.service
## 查看ntp服务器的详细状态
ntpq -p
# 显示网络时间同步状态
# 使用ntpstat 命令查看时间同步状态,这个一般需要5-10分钟后才能成功连接和同步。所以,服务器启动后需要稍等下
ntpstat
# 客户机要等几分钟再与新启动的 ntp 服务器进行时间同步,否则会提示 no server suitable for synchronization found 错误。
ntpdate 192.168.66.11
centos安装高版本git
默认安装版本是1.8,高版本 git 增加了一些好用的功能,比如"git pull 支持指定项目目录"等。
安装 git 仓库
# 如果是 CentOS 6 系统就安装这个吧
yum install http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm
# 如果是 CentOS 7 系统就安装下面两个之一吧
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
# 或者
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
安装新版本git
yum install git
升级 centos7 的 git 版本
卸载旧版本 git
yum remove git
安装 git 仓库
rpm -ivh http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
安装 高版本 git
yum install git -y
常用环境
export JAVA_HOME=/usr/local/java/jdk1.8.0_361
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export MAVEN_HOME=/usr/local/apache-maven-3.8.8
export PATH=${PATH}:${MAVEN_HOME}/bin
export NODE_HOME=/usr/local/node/node-v14.21.3-linux-x64
export PATH=${NODE_HOME}/bin:$PATH