在这篇文章中,记录了我平常在使用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
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-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
如果想用其他方式安装,请参考这里