linux 学习总结

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

  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

[压缩归档]

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

  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] 

  一、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 证书

相关文章
相关标签/搜索