yhcs

[linux发展史]
  1、贝尔实验室 unix 起初免费开源 ---> 伯利克大学 BSD UNIX -->后来收费后--->出现freeBSD --->再后来发展成linux及其众多版本,现在常用的centos redhat

  2、vmware 虚拟机的安装
  3、centos安装包的下载及安装,注意linux的分区,/boot (一般200M足够)启动分区, / (10G,如果不配置,默认为剩余全部空间)根分区 swap(2G)交换分区 ,类似于windows的虚拟内存,大小一般 为真实内存的1.5到2倍
  4、安装时注意选择自定义,默认最小安装只有300多个包,把基本的开发工具包也选上,有1000多个。
  5、桥接和nat及仅主机的区别
  6、认证rhcsa (系统管理员) rhce 工程师 rhca 架构师
  7、为什么要学习linux 90%的互联网企业服务器都使用的linux ,因为其开源,免费,windows的服务器需要授权费用。
  8、安装linux系统后,网络没有通,检查了vmware的虚拟网络编辑器,桥接选的自动没有选到本机网卡导致

[基本命令]

  rpm -q centos-release |  lsb_release -a | uname -r  |  uname -a     |  cat /proc/version | cat /etc/os-release      -- 查看操作系统相关信息

  mkdir /var/temp/nginx -p                   -- 创建多级目录

  cp -r html html81                       --复制文件或文件夹

  mv zoo_sample.cfg zoo.cfg                    --修改文件名

  rm -rf filename or directory                  --删除文件或目录

  hostnamectl set-hostname qfdqxny              -- 修改主机名

  netstat -tunlp|grep 3306                   --查看占用指定端口号的进程 

  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 --zone=public --list-services --permanent   --查询有哪些服务正在使用互联网

  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端口]

  1. iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
  2. iptables-save >/etc/iptables-script
  3. echo \'/sbin/iptables-restore /etc/iptables-script\' >>/etc/rc.d/rc.local
  4. chmod +x /etc/rc.d/rc.local
  5. 查看是否生效  iptables -L -t nat

[压缩归档]

  1、 tar -cvf   test.tar   file               归档

    tar -xvf  test.tar                        解压            -C 解压到指定目录

  2、 tar -zcvf  test.tar.gz file             gzip 方式压缩

    tar -zxvf test.tar.gz                   gzip方式解压

  3、tar -jcvf test.tar.bz2 file             bz2方式压缩

     tar -jxvf test.tar.bz2                   bz2方式解压

  4、tar -Jcvf test.tar.xz file               xz方式压缩

     tar -Jxvf test.tar.xz                     xz方式解压

  5、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分区,没啥实际用处。先不看)

  1. 查看所有磁盘               fdisk -l      或者  ls  /dev/vd*
  2. 分区                             fdisk   /dev/vdb  (m,n,p,默认默认,wq)
  3. 格式化                          mkfs.ext4 /dev/vdb1   使用xfs 或ext4 文件系统都可以  centos7 建议使用xfs文件系统
  4. 挂载                        mount /dev/vdb1 /mnt/data
  5. 开机挂载                      echo /dev/vdb1 /mnt/data ext4 defaults 0 0 >> /etc/fstab
  6. 卸载                             umount /mnt/data,如果报错,说明磁盘正在使用, lsof  /mnt/data 查看谁在用这个磁盘,结束掉相关进程,然后再卸载
  7. blkid                             查看每个分区的uuid
  8. mount -a                      不用重启, 自动挂载fstab文件中没有挂载的分区
  9. gdisk                            大于2t的磁盘,fdisk就搞不定了,需要使用这个命令 ,用法基本和fdisk一致
  10. wipefs  -a /dev/vdb  删除所有分区

[文件权限]

  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] 

  1、yum install gcc-c++
  2、上传、解压
  3、make MALLOC=libc PREFIX=/usr/local/redis install
  如果不带prefix参数,默认安装路径是/usr/local/bin
  4、复制解压文件夹下的redis.conf到安装目录,修改daemonize为yes (后台运行)
  修改bind 127.0.0.1 为0.0.0.0 不然只限于本机使用.6379端口不通。

  5、redis-server redis.conf         --启动redis服务
  6、redis-cli 登录后   shutdown                  --停止redis服务

  7、6379端口防火墙放行,如果只是本机使用,则不用放行
  8、./bin/redis-cli --raw       redis-cli远程登录时,get键时会中文乱码,解决办法:登录时加参数
  9、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目录下

  1、yum install epel-release

  2、rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

  3、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

  4、配置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

  5、yum -y install mod_ssl

  6、在ssl.conf中配置虚拟主机和https 证书

[nload] 

  网络流量监测工具  nload eth0

  incoming   入网流量           outgoing 出网流量    单位为kbit/s   

  入网的统一都为100M ,比如阿里云主机从别的别处下载文件

  出网流量指用户访问阿里云服务器,服务器返回给用户的数据产生的流量

  通常在阿里云上购买的1 M  2M   3M   4M  5M  带宽说 的是出网带宽限制,  

分类:

技术点:

相关文章: