配置一台Centos服务器的常用操作

在这篇文章中,记录了我平常在使用Centos的常用操作,一方面将这篇作为自己系统梳理知识的一个记录,另一方面也方便自己今后查阅。主要包括以下内容:

网络配置

vi /etc/sysconfig/network-scripts/ifcfg-em1

TYPE="Ethernet"
HWADDR=78:2b:cb:79:8e:27
BOOTPROTO="static"
DEFROUTE="yes"
UUID="a304206f-6c62-42f5-b473-1239b7da185d"
DEVICE="em1"
ONBOOT="yes"
DNS1="202.120.2.101"
DNS2="202.120.2.100"
NETMASK="255.255.255.0"
IPADDR="202.120.1.125"
GATEWAY="202.120.1.254"
NM_CONTROLLED="yes"

查看网络信息 (当ifconfig不能使用的时候)

ip addr

激活网卡(默认未激活)

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

ONBOOT=no -> ONBOOT=yes

systemctl network restart

安装minial centos缺失的功能

#安装 ifconfig
yum install net-tools
#安装 vim
yum install vim

安装java8

删除旧版本java
#首先查看jdk信息
rpm -qa | grep java
rpm -qa | grep jdk
#如果上面的命令没有找到,那就不必卸载,找到就按找到的名字卸载,比如:
yum -y remove java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
下载JDK1.8
  • 进入官网下载rpm包.

  • 下载最新版,比如:jdk-8u151-linux-x64.rpm

# -O 是为了将文件重命名成我们希望的名字
wget http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm?AuthParam=1515750082_c7badb9d60a673f8d9b72259863f77c3 -O jdk-8u151-linux-x64.rpm
安装 JDK 8

使用yum进行本地安装

sudo yum localinstall jdk-8u151-linux-x64.rpm

jdk会安装在/usr/java/jdk1.8.0_151

cd /usr/java
ls -lsah
验证 java 8
$ java -version

#看到以下信息表示安装成功
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
配置JAVA_HOME

编辑~/.bash_profile 作用于自己,或者编辑/etc/profile 作用于所有用户

这里以/etc/profile为例进行操作:

vim /etc/profile

在文件最后插入以下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

export PATH

让修改的环境变量立即生效

source /etc/profile

测试环境变量是否生效

$ echo $JRE_HOME
/usr/java/jdk1.8.0_151/jre

$ echo $JAVA_HOME
/usr/java/jdk1.8.0_151

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/go/bin:/root/bin:/root/bin:/usr/local/go/bin:/usr/java/jdk1.8.0_151//bin:/root/bin:/usr/local/go/bin:/usr/java/jdk1.8.0_151/bin
删除rpm包

要不要删除安装包视自己的具体需要而定,我一般是将安装包留着。

$ rm ./jdk-8u151-linux-x64.rpm

安装nginx

1.添加Nginx源
sudo yum install epel-release
2.安装
sudo yum install nginx
3.启动
sudo systemctl start nginx
4.有防火墙,需要开启http和https
sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
5.验证
$ nginx -v
nginx version: nginx/1.10.2
6.设置开机启动
#开机启动
systemctl enable nginx.service 

#开机不启动
systemctl disable nginx.service

安装Redis

1.直接安装
yum install redis
2.启动redis
systemctl redis start
3.设置为开机启动
chkconfig redis on
4.设置密码
#进入控制台
redis-cli
#设置密码
config set requirepass test123
#查询密码,会直接报错
config get requirepass
#输入密码
auth fuckyou10086
#查询密码,会显示密码
config get requirepass
5.开放端口
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT 
/sbin/iptables-save
6.允许远程连接
vim redis.conf

注释掉以下配置行:

#bind 127.0.0.1

修改redis的保护模式为no,不启用

127.0.0.1:6379> config set protected-mode "no"  
OK
7.重启redis
systemctl redis restart
8.用密码登录
redis-cli -h host -p port -a password
#eg.
redis-cli -h dev.cangowin.com -p 6379 -a fuckyou10086

安装mysql

1.下载、安装和启动
# 官网下载一个社区版的rpm文件
wget https://repo.mysql.com//mysql57-community-release-el7-10.noarch.rpm

# 采用本地rpm方式安装
sudo rpm -ivh mysql57-community-release-el7-10.noarch.rpm

# 更新yum
yum update

# 开始安装
sudo yum install mysql-server

# 启动mysql
sudo systemctl start mysqld

参考文章1(官方推荐) 参考文章2

2.进入mysql

在进入mysql之前,你得先在这里找密码:

log-error=/var/log/mysqld.log

# 从日志中找到临时密码
$ cat /var/log/mysqld.log | grep "temporary password"
2016-05-16T07:09:49.796912Z 1 [Note] A temporary password is generated for root@localhost: 8)13ftQG5OYl

# 进入mysql
$ mysql -u root -p
# 输入密码
$ 8)13ftQG5OYl

# 立即修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your_Password';
flush privileges;
3.为了使远程能够使用root账户
update mysql.user set Host='%' where User='root' and Host='localhost';
flush privileges;
4.添加一个新的账户

情形一:你可能需要添加一个mysql用户,并给其分配相应权限给用户名为 phplamp,密码为1234的用户,分配phplampDB数据库的所有权限,只能在Localhost连接

grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';


#添加以下两句话能够保证具有备份的权限,一般情况下不应让普通用户有如此高的权限。
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'phplamp'@'%';
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON `phplampDB`.* TO 'phplamp'@'%';


flush privileges;

情形二:给用户名为 phplamp,密码为1234的用户,分配 phplampDB数据库的所有权限,可以再所有的地方连接
·

grant all privileges on phplampDB.* to phplamp identified by '1234'; 

#添加以下两句话能够保证具有备份的权限,一般情况下不应让普通用户有如此高的权限。
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'phplamp'@'%';
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON `phplampDB`.* TO 'phplamp'@'%';


flush privileges;
5.修改密码

Mysql < 5.7

update mysql.user set password=PASSWORD("Your_Password") where User='root'; 
flush privileges;

Mysql >=5.7

UPDATE mysql.user SET authentication_string = PASSWORD('Your_Password') WHERE User = 'root' AND Host = 'localhost';
flush privileges;
6.删除用户

有时候我们需要删除一些用户,用以下指令

drop user 'phplamp'@'%';

安装nodejs

# Install Node.js 7.x repository
curl -sL https://rpm.nodesource.com/setup_7.x | bash -

# Install Node.js and npm
yum install nodejs

安装php+apache

yum update -y

#安装epel,如果你安装过nginx,那么这个包可能已经装好了
yum install epel-release -y

#install and enable the IUS CentOS 7 repository:
rpm -Uvh https://centos7.iuscommunity.org/ius-release.rpm

#搜索一下试试
yum search php7

#安装php7
yum install php70u -y

#检测php7
vim /etc/httpd/conf/httpd.conf

#replace this 

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

# with this

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

# 添加phpinfo
vim /var/www/html/index.php
<?php
phpinfo();

# 访问即可 http://xxx.com/

# 修改apache端口,通常设置为9000
Listen 8000



#开机启动
systemctl enable nginx.service 

#开机不启动
systemctl disable nginx.service



# 开启虚拟主机
sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
sudo vim /etc/httpd/conf/httpd.conf
# 最后一行添加
IncludeOptional sites-enabled/*.conf
# 添加一个虚拟主机
sudo vim /etc/httpd/sites-available/yctank.conf

<VirtualHost *:8000>
    ServerName yctank.liyarou.com
    DocumentRoot /var/www/yctank
    ErrorLog logs/yctank-error.log
    CustomLog logs/yctank-access.log combined
</VirtualHost>

cd /etc/httpd/sites-enabled
ln -s ../sites-available/yctank.conf ./


# 开启rewrite
默认已经开启了,在 /etc/httpd/conf.modules.d/00-base.conf 这个中指定


# 添加php的json插件

# 常用的全在这里,请选择性的安装
yum install php70u-cli php70u-common php70u-bcmath php70u-dba php70u-devel php70u-embedded php70u-fpm php70u-gd php70u-imap php70u-interbase php70u-intl php70u-ldap php70u-mbstring php70u-mcrypt php70u-mysql php70u-odbc php70u-opcache php70u-pdo php70u-pdo_dblib php70u-pear php70u-process php70u-pspell php70u-recode php70u-tidy php70u-xml php70u-xmlrp


# thinkphp5需要安装如下

yum install php70u-json -y
yum install php70u-pdo -y
yum install php70u-mysqli -y

安装locate

sudo yum install mlocate
sudo updatedb

其它软件的安装

yum install dos2unix unix2dos

创建一个新的用户

a)创建一个用户aitri. (以下指令会同时创建一个aitri的组, -m表示要创建家目录)

useradd -m aitri -s /bin/bash

b)为aitri设置密码。

passwd aitri
A_itri@125

c)有可能你需要提升这个用户的权限,使其具有sudo

i) 修改/etc/sudoers文件,进入超级用户,因为没有写权限,所以要先把写权限加上chmod u+w /etc/sudoers。

ii) 编辑/etc/sudoers文件,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"zhc ALL=(ALL) ALL"(这里的zhc是你的用户名),然后保存。  

iii) 最后恢复没有写权限模式,撤销文件的写权限,chmod u-w /etc/sudoers。

检查防火墙

打开http(80) 和 https(443)用如下的方法

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
完整的方式:
Use this command to find your active zone(s):

firewall-cmd --get-active-zones
It will say either public, dmz, or something else. You should only apply to the zones required.

In the case of dmz try:

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent
Otherwise, substitute dmz for your zone, for example, if your zone is public:

firewall-cmd --zone=public --add-port=2888/tcp --permanent
Then remember to reload the firewall for changes to take effect.

firewall-cmd --reload

打开端口3306 有时候这种方法无效

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 
/sbin/iptables-save

有时候你需要查看目的端口是否已经打开了。
http://jingyan.baidu.com/article/455a9950aadeaea16727785e.html

使用netcat来查看端口

查看202.96.128.86的53端口


nc -z -w 1 202.96.128.86 53

用扫描端口更加直观,下面扫描21到24

nc -v -w 2 211.144.76.34 -z 21-24

telnet

因为有的centos上面没有安装netcat,所以有时候不得不用telnet来测试端口连通性

yum install -y telnet
telnet 192.168.0.120 80

telnet 192.168.0.120 3306

babun中 利用ssh-copy-id和服务器建立信任,免去登录


ssh-keygen -t rsa

cd ~/.ssh
chmod 700 id_rsa

ssh-copy-id root@xxx.com

配置Putty

Login without password.

ssh-keygen -t rsa -C "lish516@126.com"

0. On Puttygen
puttygen.exe -> SSH-2 RSA -> Generate 
-> move mouse -> change Key comment -> Save public key
-> Save private key D:/xxx/xxx.ppk -> copy the long string in puttygen.exe

1. On CentOS
vim ~/.ssh/authorized_keys
append string in step 0.
chmod 700 ~/.ssh/authorized_keys


2.On Putty
xxx -> Load -> Connection/SSH/Auth 
-> Private key file for authentication 
-> D:/xxx/xxx.ppk

修改主机名

CentOS > 7 可以用以下方式,而且重启后依然有效。

hostnamectl set-hostname <new hostname>

挂载磁盘

https://help.aliyun.com/document_detail/25426.html?spm=5176.7738005.2.1.SsS0bs


fdisk -l

fdisk /dev/xvdb

    n,p,1,两次回车,wq

fdisk -l

echo /dev/xvdb1 /mnt ext3 defaults 0 0 >> /etc/fstab

mount /dev/xvdb1 /mnt

df -h

安装tree

tree可以以树形结构展示一个目录,对于一个项目来说,特别实用。

sudo yum install tree -y
tree your-derectory

安装git

yum install git

git --version


git remote add origin git@gitee.com:zicla/hi-java.git
git push -u origin master

两台linux来回拷贝文件

scp root@192.168.2.208:/home/a.txt /home

安装locate

yum install mlocate

updatedb
locate httpd.conf

安装golang

1.下载
https://www.golangtc.com/download 下载最新版

比如linux上下载go1.9.2.linux-amd64.tar.gz

wget https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz

2.解压

go1.9.2.linux-amd64.tar.gz,这是绿色软件,解压即可使用,一般情况下我们是将软件解压到 /usr/local 这个文件夹下。

tar  -C /usr/local  -zxf   go1.9.2.linux-amd64.tar.gz

3.配置环境变量

修改 /etc/profile,添加GOROOT环境变量,将$GOROOT/bin加入到$PATH中,添加GOPATH。每台服务器上这个地方的情况可能略有不同,以下是我的配置。

export GOROOT=/usr/local/go
PATH=$PATH:$HOME/bin:$GOROOT/bin
export GOPATH=/data/golang

修改完毕后执行source /etc/profile立即生效

4.验证

go version

得到如下结果表示安装成功

go version go1.9.2 linux/amd64

修改主机名

Centos 低于 7

修改 /etc/sysconfig/network 里的 HOSTNAME=主机名(可自定义),重启生效。

然后修改 /etc/hosts 中对应的127.0.0.1

Centos 等于或高于 7

hostnamectl set-hostname 主机名

然后修改 /etc/hosts 中对应的127.0.0.1

安装docker.

参考阿里云的docker安装和加速部分

安装

使用官方安装脚本自动安装docker-ce

$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

校验

$ docker version

Client:
 Version:    18.03.0-ce
 API version:    1.37
 Go version:    go1.9.4
 Git commit:    0520e24
 Built:    Wed Mar 21 23:09:15 2018
 OS/Arch:    linux/amd64
 Experimental:    false
 Orchestrator:    swarm
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

配置加速镜像

针对Docker客户端版本大于1.10.0的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
(每个阿里云账户的专属加速链接不同)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://p3r8uqn2.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装docker-compose

 curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

如果想用其他方式安装,请参考这里

本文分类: 100 linux
欢迎评论
共7条评论和回复
{{comment.createTime | simpleDateHourMinute}}
{{comment.content}}
{{subComment.name}} (作者) {{subComment.name}} {{subComment.content}}