linux-centOS笔记
在windows上漂太久了,终于是下定决心要开始linux的踩坑之路,一个小白就这样上百了,感谢度娘和各位大佬提供的经验,本菜鸟在此留下学习的点点滴滴,以作备忘
linux的安装
这个我直接在华为云申请了一个centos体验,暂时还没接触到安装linux的相关内容
-------------------------------------------------------分割线-------------------------------------------------------
vim - 我把他理解为linux下的记事本
检查vim是否正常安装,显示内容如下,说明安装正确了
[root@Centos ~]# rpm -qa|grep vim
vim-filesystem-7.4.160-4.e17.x86_64 vim-common-7.4.160-4.e17.x86_64
vim-minimal-7.4.160-4.e17.x86_64
vim-enhanced-7.4.160-4.e17.x86_64
如果缺少任何一项,那得重新安装一下啊,比如缺少vim-enhanced
[root@Centos ~]# yum -y install vim-enhanced
如果一项都没有,用下面的命令全新安装
[root@Centos ~]# yum -y install vim*
vim的进入和退出
进入
进入vim并打开con.cfg文件:vim /usr/local/con.cfg,执行此命令,若con.cfg文件存在则打开,若不存在则创建之。进入编辑器后,我们先按"I”(这里是大写字母"I"),即切换到“插入”状态。
退出
首先按"ESC"键退出编辑模式,输入":"冒号,进入命令模式,然后执行以下命令:
a.退出:q
b.保存退出:wq
c.不保存退出:q!
d.前置退出:!
-------------------------------------------------------分割线-------------------------------------------------------
Linux下常用的操作
-------------------------------------------------------
查找文件
locate filename
有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好
[root@CentOS ~]# yum -y install mlocate [root@CentOS ~]# updatedb
-------------------------------------------------------
列出文件
[root@CentOS ~]# ls -al
-------------------------------------------------------
进入目录
- 进入指定目录:cd path
- 直接进入用户的home目录:
cd ~
- 进入上一个目录:
cd -
- 进入当前目录的上一层目录:
cd ..
- 进入当前目录的上两层目录:
cd ../..
一些技巧
- 利用tab键,自动补全目录名称
- 利用ln -s命令,为长目录建立软连接
- 利用export命令,为长目录设置环境变量dirpath,然后通过cd $dirpath的方式进入
- 利用alias命令,设置目录别名
示例:
[~]$ cat ~/.bashrc |grep alias alias ifcfg='cd /etc/sysconfig/network-scripts/' # User specific aliases and functions [~]$ [~]$ source ~/.bashrc # 使配置生效 [~]$ ifcfg [network-scripts]$ pwd /etc/sysconfig/network-scripts [network-scripts]$
清屏
1、clear:刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。
2、Ctrl+l(小写的L):清屏快捷键,清屏效果同clear一样。
3、reset:完全刷新终端屏幕,之前终端输入操作信息将都会被清空,这样虽然比较清爽,但整个命令过程速度有点慢,使用较少。
值得一提的是reset命令在你的终端控制错乱时非常有用。如输入字符不出现在光标的位置的情况。还有当你敲击回车键时,新提示符并没有出现在新行上而是出现在老提示符的前面。此时reset命令就能用来修正这些问题。
4、printf "\033c":这个命令它才是真正的清空了终端屏幕,它的功能跟DOS提供的CLS效果很相似。
但这个命令究竟是做什么的?它的工作原理是什么?
\033 == \x1B == 27 == ESC
于是,这个命令变成了<ESC>c,它是VT-XXX中表示“Full Reset (RIS)”的转义码。现今我们使用的所有的终端都是VT兼容的,它的另一种实现方式也可以这样:
键盘上Ctrl+v--->Esc-->输入c再回加。但如果你发现自己使用的是一个非常奇怪的终端(如笔者曾经在putty上作过测试),那这个命令你可能用不了。
printf是bash里内置的命令,内置命令的优先级比其它可执行文件要高。
通过上面的4个清屏方式比较,有人喜欢,在PATH路径下,如/usr/bin/目录下新建一个名为cls的文件,加上执行权限,写入如下内容:
[root@CentOS bin]# vim cls #bin bash # printf("\033c")
这样的话我们每次需要清屏的时候,只需要输入cls命令就可以了。
-------------------------------------------------------分割线-------------------------------------------------------
搭建LAMP服务器环境
检查服务是否安装
httpd -v --查看apche版本信息
which httpd --查看apche安装位置
yum list installed | grep php --查看已安装的PHP版本
安装Mysql
数据库常用命令:http://www.runoob.com/sql/sql-distinct.html
1.下载mysql-server文件,过程中遇到询问y/n/d,一路y下去
[root@Centos ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2.安装mysql-server服务
[root@Centos ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm [root@Centos ~]# yum install mysql-server [root@Centos ~]# service mysqld restart
3.设置Mysql管理员root密码
[root@Centos ~]# mysql -uroot mysql> set password for 'root'@'localhost' = password('yourpassword');
4.如果需要远程连接Mysql,需要配置Mysql的远程连接
a.授权远程连接用户
mysql> grant all privileges on *.* to 'user'@'%' identified by 'password' with grant option;
b.刷新权限
mysql> flush privileges;
c.检查权限
mysql> select distinct concat('user:''',user,'''@''',host,''';') as query from mysql.user
出现以下内容说明配置正确
+--------------------------+ | query | +--------------------------+ | user:'yourname'@'%'; | #如果结果中包含这一行,说明配置正确,其中的"yourname"是你设置的username | user:'root'@'127.0.0.1'; | | user:'root'@'::1'; | | user:'root'@'localhost'; | +--------------------------+
d.退出MySQL
mysql> exit;
e.查找mysql当前使用的my.cnf路径
- 查看是否指定了my.cnf
[root@Centos ~]# ps aux|grep mysql|grep 'my.cnf'
如果以上命令有输出,那么输出的内容即为指定的my.cnf信息,如果上面的命令没有输出,表示没有设置指定的my.cnf。
- 查看mysql默认读取my.cnf的目录
[root@Centos ~]# mysql --help|grep 'my.cnf'
该命令会列出mysql默认搜寻到的my.cnf的目录,顺序排前的优先。
- 启动时没有使用配置文件
如果没有设置使用指定目录my.cnf文件及默认读取目录没有my.cnf文件,表示mysql启动时并没有加载配置文件,而是使用默认配置。
需要修改配置,可以在mysql默认读取的目录中,创建一个my.cnf文件(例如:/etc/my.cnf),把需要修改的配置内容写入,重启mysql后即可生效。
f.修改my.cnf
[root@Centos ~]# vim /etc/my.cnf
1.将 bind-address = 127.0.0.1 设置成 bind-address = 0.0.0.0(设备地址)
2.重启mysql
[root@Centos ~]# service mysql stop
[root@Centos ~]# service mysql start
补充说明
[root@Centos ~]# service mysql status --查看有没有打开服务 [root@Centos ~]# service mysql start --打开服务
[root@Centos ~]# service mysql stop --停止服务
[root@Centos ~]# service mysql restart --重启服务
g.查看端口号
[root@CentOS ~]# mysql -uroot -p'password' mysql> show global variables like 'port';
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 3306 | +---------------+-------+
h.如果上面的操作都做晚了,远端工具还无法连接mysql,那么需要在防火墙中放开端口3306
先查看3306端口是否打开
[root@CentOS ~]# netstat -nupl (UDP类型的端口) [root@CentOS ~]# netstat -ntpl (TCP类型的端口)
a --表示所有
n --表示不查询dns
t --表示tcp协议
u --表示udp协议
p --表示查询占用的程序
l --表示查询正在监听的程序
systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
systemctl的基本用法 启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service 查看已启动的服务列表:systemctl list-unit-files|grep enabled 查看启动失败的服务列表:systemctl --failed
下面就要用到这个工具在搞事情了
[root@CentOS ~]# systemctl stop firewalld --关闭防火墙,不管防火墙有没有关 都使用该命令关闭防火墙 [root@CentOS ~]# yum install iptables-services --安装|更新iptables服务 [root@CentOS ~]# systemctl enable iptables --设置开机启动iptables [root@CentOS ~]# systemctl start iptables --打开iptables
--执行下面的命令是因为locate iptables没有找到/etc/sysconfig/iptables,如果你的系统中有这个文件,请忽略下面的命令 [root@CentOS ~]# iptables -P OUTPUT ACCEPT --随便写一条iptables命令配置个防火墙规则 [root@CentOS ~]# service iptables save --保存 [root@CentOS ~]# service iptables restart --重启
[root@CentOS ~]# vim /etc/sysconfig/iptables ~ -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -- 看到有个兄弟是下面这样写的,不知道有什么区别 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
添加在-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited或者-A INPUT -j REJECT –reject-with icmp-host-prohibited之前
[root@CentOS ~]# service iptables restart --重启
我执行完上面的所有操作之后,navcat依然是无法连接mysql服务器,最后是在华为云网络控制台编辑安全组,新增了3306端口,然后就可以连接,白折腾半天。。。
至此,mysql远程连接配置完成。
安装apache
apche的安装比较简单
[root@centos ~]# yum install httpd
然后就是修改配置文件
[root@centos ~]# vim /etc/httpd/conf/httpd.conf
- 将#ServerName www.example.com:80 改为 ServerName localhost:80
- 将#Listen 改为 Listen:portnum (portnum是您的linux中已开启的端口号)
配置完成后启动服务、检查服务状态
[root@centos ~]# service httpd start
[root@centos ~]# service httpd status
测试连接
在浏览器地址栏输入 ip:port 访问您的站点,出现下面这样的页面就表示成功了
最后将httpd服务添加到开机启动
[root@CentOS]# systemctl enable httpd
服务目录 | /etc/httpd |
主配置文件 | /etc/httpd/conf/httpd.conf |
网站数据目录 | /var/www/html |
访问日志 | /var/log/httpd/access_log |
错误日志 | /var/log/httpd/error_log |
主配置文件 /etc/httpd/conf/httpd.conf 中常用的参数
ServerRoot | 服务目录 |
ServerAdmin | 管理员邮箱 |
User | 运行服务的用户 |
Group | 运行服务的用户组 |
ServerName | 网站服务器的域名 |
DocumentRoot | 网站数据目录 |
Listen | 监听的IP地址与端口号 |
DirectoryIndex | 默认的索引页页面 |
ErrorLog | 错误日志文件 |
CustomLog | 访问日志文件 |
Timeout | 网页超时时间,默认为300秒. |
Include | 需要加载的其他文件 |
更加详细的内容可以参考https://blog.csdn.net/u011277123/article/details/77847360/
安装PHP
--PHP5.4 yum install -y php --PHP7.0: yum-config-manager --enable remi-php70 yum -y install php php-opcache --PHP7.1: yum-config-manager --enable remi-php71 yum -y install php php-opcache
这些都不是我要的版本,我需要的是5.6的版本,总不能让我一个小白自己动手编译吧。因为在windows平台运维很长一段时间了,所以知道5.6这个版本使用的人还是很有的,所以一定有源,功夫不负有心人,找到了,下面来记录一下是如何安装的
配置yum源
CentOS 6.5
# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
CentOS 7.0
# yum install epel-release
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
使用yum list命令查看可安装的包(Packege)。
# yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
安装PHP5.6
yum源配置好了,下一步就安装PHP5.6。
# yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof
用PHP命令查看版本。
# php --version
PHP 5.6.38 (cli) (built: Oct 24 2018 12:50:38) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans
在这里安装的版本是PHP5.6.38
安装完成,重启apche
# service httpd restart
至此LAMP环境就搭建完成了
测试
# vim /var/www/html/test.php <?php phpifo() ?> :wq
然后在浏览器地址栏输入 ip:port/test.php,出现如图的结果,环境配置成功