linux常用命令

查看Linux发行版本

1
cat /etc/issue

查看centos版本

1
cat /etc/redhat-release

查看32位还是64位

1
getconf LONG_BIT

查询本机IP

1
2
#除了常用的ifconfig外,还可以:
curl ifconfig.me

查看CPU型号

1
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

修改操作系统语言

1
2
3
4
5
6
#编辑文件保存并退出
vi /etc/sysconfig/i18n
LANG="en_US.UTF-8"
#使其立即生效
source /etc/sysconfig/i18n
注:centos7的环境对应的配置文件为:/etc/locale.conf

修改时间

快速同步北京时间

1
2
tzselect
#按照要求选择 5 -> 9 -> 1 -> 1 即可配置成中国北京的时间

使用ntpdate

1
2
3
4
5
#如果没有安装ntpdate需要先安装
yum install ntpdate
#与阿里云服务器时间同步
ntpdate ntp1.aliyun.com //直接用域名同步中国上海时间 是阿里云的服务器
#同时还可以添加定时任务,每天定时同步时间

手动修改时间

1
2
3
date -s "2020-04-11 18:44:50"
#将时间写入bios避免重启失效
hwclock -w

Centos7设置系统时间为北京时间

1
2
3
cp /etc/localtime /etc/localtime.org
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

yum源

查看yum源

1
yum repolist

更改yum源为国内源

默认带的yum镜像源一般都是国外的,导致在线安装的时候,速度很慢。这个时候需要你更换yum镜像源为国内的。

修改CentOS默认yum源为阿里云

  1. 备份系统自带的yum镜像源
1
2
3
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak
  1. 下载对应yum源配置文件
1
2
3
4
5
cd /etc/yum.repos.d/
## 适用于CentOS7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
## 适用于CentOS8
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  1. 运行yum生成缓存
1
yum makecache

yum命令

查找yum已安装的包

1
yum list installed | grep "httpd"

查看正在运行的进程

1
ps -elf

查询某个进程服务的PID值

1
pidof <服务名>

设置系统环境变量

系统环境变量对全部用户有效。可以直接在/etc/profile文件中设置,但是Linux不建议在/etc/profile文件中设置系统环境变量。

/etc/profile.d目录中增加环境变量脚本文件。

/etc/profile在每次启动时会执行/etc/profile.d下全部的脚本文件。/etc/profile.d/etc/profile好维护,如在/etc/profile.d目录下增加my_env.sh脚本文件,其中配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
#JAVA_HOME
export JAVA_HOME=
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#MAVEN_HOME
export MAVEN_HOME=
export PATH=$PATH:$MAVEN_HOME/bin
#HBASE_HOME
export HBASE_HOME=
export PATH=$PATH:$HBASE_HOME/bin

让环境变量生效

1
source /etc/profile

文件远程复制

从A服务器复制文件到B服务器(A、B服务器都是Linux操作系统),命令格式:

1
2
3
4
5
6
scp  -P 22 -r  remote_username@remote_ip:remote_folder  local_folder
DEMO1: scp -r ./* root@47.110.xxx.xxx:/www/wwwroot/folder/
表示将运行当前命令所在目录下的所有文件上传至远程服务器(47.110.xxx.xxx)的/www/wwwroot/folder/文件夹
DEMO2: scp -r root@47.110.xxx.xxx:/www/wwwroot/folder_remote /www/wwwroot/folder_local
表示从远程服务器拷贝文件到当前服务器,将会在当前服务器的/www/wwwroot/folder_local目录下,新建名称为folder_remote的文件夹
指定了用户名,命令执行后需要输入用户密码;

防火墙相关

CentOS6.5查看防火墙的状态:

1
service iptable status

CentOS 7.2查看防火墙的状态:

1
firewall-cmd --state

关闭防火墙:

1
2
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

CentOS 7 查看已经开放的端口:

1
firewall-cmd --list-ports

centoos防火墙打开指定端口

1
2
3
firewall-cmd --zone=public --add-port=8384/tcp --add-port=22000/tcp --add-port=21027/udp --permanent
#重启防火墙
firewall-cmd --reload

设置selinux为diabled

1
2
vi /etc/sysconfig/selinux
#改为:SELINUX=disabled

centos7屏蔽ip

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#屏蔽124.115.0.199这个IP
iptables -I INPUT -s 124.115.0.199 -j DROP
#屏蔽124.115.*.*这段IP
iptables -I INPUT -s 124.115.0.0/16 -j DROP
#屏蔽61.37.80.*这段IP
iptables -I INPUT -s 61.37.80.0/24 -j DROP
#屏蔽124.*.*.*这段IP
iptables -I INPUT -s 124.0.0.0/8 -j DROP

#打开屏蔽
#只要把 I 改为 D 就好了,然后后面可以写IP或者IP段
iptables -D INPUT -s 124.0.0.0/8 -j DROP

#查看已添加的iptables规则

iptables -L -n

#v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
#x:在 v 的基础上,禁止自动单位换算(K、M)
#n:只显示IP地址和端口号,不将ip解析为域名

zip、tar命令

zip压缩:

1
2
3
4
zip -q -r 压缩包名.zip 压缩的路径

#例如:将/home/data 这个目录下的所有文件打包压缩为当前目录下的data.zip
zip -q -r data.zip /home/data

tar压缩

1
2
#例如:要将/home/img目录压缩到当前目录下:
tar -czf img.tar.gz -C /home/ img

tar解压

1
tar -xvf 压缩包名.tar.gz

备份数据库

1
2
3
4
5
6
#新建一个dbbak.sh,内容如下:
filename=`date +%y%m%d`
mysqldump --opt -h127.0.0.1 数据库名 -u数据库用户 -p数据库密码 | gzip > /home/mysqlbak/bak$filename.sql.gz

#添加可执行权限:
chmod u+x dbbak.sh