[linux发展史]
一、贝尔实验室 unix 起初免费开源 ---> 伯利克大学 BSD UNIX -->后来收费后--->出现freeBSD --->再后来发展成linux及其众多版本,如今经常使用的centos redhatphp
二、vmware 虚拟机的安装
三、centos安装包的下载及安装,注意linux的分区,/boot (通常200M足够)启动分区, / (10G,若是不配置,默认为剩余所有空间)根分区 swap(2G)交换分区 ,相似于windows的虚拟内存,大小通常 为真实内存的1.5到2倍
四、安装时注意选择自定义,默认最小安装只有300多个包,把基本的开发工具包也选上,有1000多个。
五、桥接和nat及仅主机的区别
六、认证rhcsa (系统管理员) rhce 工程师 rhca 架构师
七、为何要学习linux 90%的互联网企业服务器都使用的linux ,由于其开源,免费,windows的服务器须要受权费用。
八、安装linux系统后,网络没有通,检查了vmware的虚拟网络编辑器,桥接选的自动没有选到本机网卡致使html
[基本命令]java
rpm -q centos-release | lsb_release -a | uname -r | uname -a | cat /proc/version -- 查看操做系统相关信息mysql
mkdir /var/temp/nginx -p -- 建立多级目录linux
cp -r html html81 --复制文件或文件夹nginx
mv zoo_sample.cfg zoo.cfg --修改文件名c++
rm -rf filename or directory --删除文件或目录web
hostnamectl set-hostname qfdqxny -- 修改主机名redis
netstat -tunlp|grep 3306 --查看占用指定端口号的进程 sql
ps aux|grep nginx --查看进程信息
kill -s 9 pid -- 关闭指定进程
ls |wc -l --统计ls结果的行数
ll |grep "^d"|wc -l --查询目录的个数
ll |grep "^-"|wc -l --查询文件的个数
tail -n tail -f head -n -- tail 、head的用法
yum install lrzsz --上传下载工具包
date '+%F' --查看系统时间
hwclock --查看硬件时间
ls /proc/pid/fd --查看指定进程都打开了哪些文件,fd 文件描述符
0 标准输入 (键盘) 1 标准输出(显示器) 2 (标准错误 ) ulimit -n ,默认1024,调优时用,能够查询或临时修改一个进程最大打开的文件数
输出重定向 : > 覆盖 >>追加 和1>等价,只是1被省略了。 2>错误信息重定向,这个2不能够省略,
输入重定向:< << <经常使用于mysql数据库的恢复 <<常和EOF结合使用. 和0<等价,0省略了,
shell 脚本中 >/dev/null 2>&1 错误输出和标准输出都不保存,直接扔到/dev/null
dd if=/dev/zero of=b.txt bs=1M count=50 生成一个50M的空文件
> a.txt 清空a.txt 的内容
df -h | tee disk.log 标准输出磁盘信息的同时,写入disk.log文件中,适合记录日志
df -h | tee -a disk.log 追加
df -h free -h ip addr
which cd -- 查找可执行程序的位置
whereis cd --查找可执行程序的位置及相关文件的位置,比上面的详细点
grep
find
[ip地址配置相关]
NetworkManager -- 此服务为centos7下管理网络的一个服务,具体功能没用过,之后补充
不一样的linux 版本对于网卡接口标识不一样,这里以centos7下的ens33 为例
ifconfig ens33 -- 查看指定接口的网络配置
ifconfig ens33 192.168.0.22 -- 临时改变ip 地址
ifconfig ens33:1 192.168.0.22 -- 同一块网卡添加多个ip
ifconfig ens33:1 del 192.168.0.22 -- 删除临时的ip
systemctl restart network -- 重启网络服务,临时指定的ip 失效
相关配置文件
nmtui -- 图形化界面来修改ip
/etc/sysconfig/network-scripts/ifcfg-ens33 -- 经过修改此配置文件来修改ip,永久生效
/etc/resolv.conf -- dns 配置文件
/etc/hostname -- 主机名配置文件
/etc/hosts -- ip 和域名映射文件,windows下也有此文件
nmcli con --查看网卡的UUID
[防火墙相关]
systemctl [status,start,restart,stop,enable,disable] firewalld --查看状态,启动,重启,中止,开机启动,开机禁用
[service iptables stop chkconfig iptables off --属于centos6的写法,了解便可,用时再查]
systemctl list-unit-files | grep enable -- 查看开机都启动了哪些服务
firewall-cmd --state --查看防火墙是否正在运行。
firewall-cmd --list-ports --查看防火墙都放行哪些端口
firewall-cmd --query-port=3306/tcp --查看指定tcp 端口是否放行
firewall-cmd --zone=public --add-port=3306/tcp --permanent --防火墙永久放行3306端口,重启不失效
firewall-cmd --zone=public --remove-port=3306/tcp --permanent --从防火墙public区域移除指定端口
firewall-cmd --reload --上述添加上删除端口操做,须要此命令从新加载配置才能生效
[selinux相关]
getenforce --查看selinux服务的状态
setenforce 0 --临时关闭selinux
setenforce 1 --临时开启selinux服务
vi /etc/selinux/config 更改selinux=disabled --修改配置文件,永久关闭selinux ,重启生效
备注:线上服务器通常也不用开这个服务,使用配置比较复杂
[挂载光驱到指定目录]
mount /dev/sr0 /mnt/ --挂载,重启失效
echo '/dev/cdrom /mnt iso9660 defaults 0 0' >> /etc/fstab --修改配置文件,开机自动挂载
umount /mnt --卸载目录
mount -a --从新挂载配置文件中还没有挂载的设备
备注:/dev/cdrom 和 /dev/sr0 二者等价,/dev/cdrom 是sr0的软连接
[yum 源相关]
手写一个yum源, 格式以下:
[centos7]
name=centos7-liuping-repo
baseurl=file:///mnt
enable=1
gpgcheck=0 --检查包的完整性和安全性,为0表示不用检查,由于是本地光盘中的
全部yum 源配置文件的目录:/etc/yum.repos.d
yum repolist -- 查看yum源可用的软件包列表
CentOS-Base.repo -- 系统自带的yum源配置文件
yum search ifconfig | yum provides */ifconfig -- 两种方式均可以查找命令应该安装哪一个软件包 ,一个很差使,用另外一个
[免密ssh登陆]
ssh-keygen -t rsa
在grid用户的主目录下(/home/grid)运行此命令, 会生成.ssh目录(隐藏目录)并在及下面生成公钥和私钥(id_rsa id_rsa.pub)
ssh-copy-id h1
把本身生成的公钥copy到h1上的authorized_keys文件中去
scp authorized_keys h2:/home/grid/.ssh scp -r(递归复制目录)
把h1上合并后的authorized_keys文件复制到h2和h3上,首次访问仍是须要输入密码。之后就能够免密互相链接。
完成免密登陆
[80重定向到8080端口]
[压缩归档]
一、 tar -cvf test.tar file 归档
tar -xvf test.tar 解压 -C 解压到指定目录
二、 tar -zcvf test.tar.gz file gzip 方式压缩
tar -zxvf test.tar.gz gzip方式解压
三、tar -jcvf test.tar.bz2 file bz2方式压缩
tar -jxvf test.tar.bz2 bz2方式解压
四、tar -Jcvf test.tar.xz file xz方式压缩
tar -Jxvf test.tar.xz xz方式解压
五、zip -r test.zip file zip要压缩目录时,须要-r参数
unzip test.zip zip方式解压 ,-d 解压到指定目录
xz的压缩比例最高,压缩速度就相对慢
bz2比gzip 的压缩比例也高一些,但gzip 压缩速度最快. 经常使用bz2 或gzip 均可以。
du -sh /etc/ 查看目录下文件及子目录占用空间大小
[磁盘管理]
硬盘接口分类: sas sata ssd scsi ide
两种分区表 MBR GPT
swap分区:当前系统的物理内存不够用时,把硬盘空间腾出一部分当内存使用。(实战扩展swap分区,没啥实际用处。先不看)
[文件权限]
chattr +i hack.txt lsattr hack.txt chattr -i hack.txt ( 6版本之后加的扩展属性 ,参数能够跟a 或 i a表明只能够追加, i 表明不能够作任何修改)
chmod -R 777 logs/ --改变文件权限
chown -R grid:grid hive -- 改变文件属主和属组
[tomcat]
部署时tomcat启动缓慢,解决以下:
修改jvm $JAVA_PATH/jre/lib/security/java.security
把securerandom.source=file:/dev/urandom 替换为 securerandom.source=file:/dev/./urandom 便可
[jdk安装]
官网下载jdk rpm 包或者源码包
rpm -ivh rpm包 ,若为源码包直接解压
/etc/profile文件中加入如下配置项:
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile --刷新配置文件
[redis]
一、yum install gcc-c++
二、上传、解压
三、make MALLOC=libc PREFIX=/usr/local/redis install
若是不带prefix参数,默认安装路径是/usr/local/bin
四、复制解压文件夹下的redis.conf到安装目录,修改daemonize为yes (后台运行)
修改bind 127.0.0.1 为0.0.0.0 否则只限于本机使用.6379端口不通。
五、redis-server redis.conf --启动redis服务
六、redis-cli 登陆后 shutdown --中止redis服务
七、6379端口防火墙放行,若是只是本机使用,则不用放行
八、./bin/redis-cli --raw redis-cli远程登陆时,get键时会中文乱码,解决办法:登陆时加参数
九、chcp 65001 改变cmd页面编码为utf8 chcp 936 改成gbk
[apache]
apache 主目录 /etc/httpd 配置文件目录 /etc/httpd/conf/httpd.conf 网站目录/var/www/html ssl.conf文件位于/etc/httpd/conf.d目录下
一、yum install epel-release
二、rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
三、
yum install -y mod_php72w php72w-common php72w-fpm php72w-opcache php72w-gd php72w-mysqlnd php72w-mbstring php72w-pecl-redis php72w-pecl-memcached php72w-devel
四、配置httpd.conf 文件
<Directory /> 下 Require all denied 改成Require all granted
<IfModule dir_module> 下面加入 index.php
<IfModule mime_module> 下面加入AddType application/x-httpd-php .php
<Directory "/var/www/html"> 下的Options Indexes FollowSymLinks 去掉Indexes
五、yum -y install mod_ssl
六、在ssl.conf中配置虚拟主机和https 证书