linux学习
九.linux磁盘分区、挂载
3.磁盘情况查询
命令:df -h
 注意:使用率到80%以上就要清理了
 查询指定目录的磁盘占用情况:du -d 目录
 其它参数:
 -s:指定目录占用大小汇总
 -h:带计量单位
 -a:含文件
 –max-depth=1:子目录深度
 -c:列出明细的同时,增加汇总值
4.磁盘使用指令
①统计/opt文件下文件的个数:ls -l /opt | grep “^-” | wc -l
 其中ls -l /opt是展示/opt目录下所有文件
 | grep "^-“表示将前面的结果传给此处处理,处理方式是过滤出开头是-的文件(”^-"是正则表达式,表示以-开头)
 | wc -l:再传给此处,wc -l即是统计数量并列出来
②统计/opt文件下目录的个数:ls -l /opt | grep “^d” | wc -l
③统计/opt文件下文件的个数(包括文件夹里的):ls -lR /opt | grep “^-” | wc -l
④统计/opt文件下目录的个数(包括文件夹里的):ls -lR /opt | grep “^d” | wc -l
⑤以树状显示目录结构:tree 目录
 注意:如果没有tree,则使用yum install tree安装
十.网络配置
1.NAT网络原理图
 
vmnet8是VMware虚拟机软件中创建的虚拟网络接口之一。在VMware的网络配置中,每个虚拟网络接口都由一个唯一的标识符(如 vmnet0、vmnet1 等)来表示。vmnet8 通常是默认用于 NAT(网络地址转换)网络的接口
 linux与vmnet8相连,然后vmnet8与主机的无线网卡相连,网卡可以发送请求到局域网的网关(如路由器),然后网关可以发送请求到互联网,实现linux到互联网的连接
2.网络配置指令
查看虚拟网络编辑器和修改IP地址:
 
查看网关:
 
查看windows环境中的vmnet8网络配置(ipconfig指令)
 查看linux的网络配置:ifconfig
 测试主机之间网络连通性:ping 目标主机,如:ping baidu.com
3.linux网络环境配置
方案一:自动获取,若设置自动,则登录后自动获取一个ip
 
缺点:ip地址可能不一样
方案二:直接修改配置文件来指定ip,并可以连接到外网
 编辑 /etc/sysconfig/network-scripts/ifcfg-ens33文件
 ifcfg-ens33文件说明:
 
注意:要将vmnet8和网关的ip也改掉
 重启网络服务器或者重启系统才会生效(命令:service network restart或reboot)
4.主机名和host映射
为了方便记忆,可以给linux系统设置主机名
 指令hostname查看主机名
 修改文件在/etc/hostname指定(修改后,重启生效)
如何通过主机名能够找到某个linux系统
 在windows中,C:\windows\System32\drivers\etc\hosts文件指定
 如:192.168.200.130 hspedu100
 在linux中,/etc/hosts文件指定
 如:192.168.200.1 ThinkPad-PC
hosts:一个文本文件,用来记录IP和Hostname(主机名)的映射关系
 DNS(Domain Name System):域名系统,是互联网上作为域名和IP地址互相映射的一个分布式数据库
 主机名解析机制分析:
 
十一.进程管理
1.基本介绍
在linux中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号(pid,进程号)
 进程分前台和后台,前台是指用户当前屏幕中可以交互的前台进程
 一般系统的服务都是以后台进程的方式存在,它们会常驻在系统中,知道关机才结束
2.显示系统的进程
ps命令是用来查看目前系统中的进程,及其各种信息,可以不带参数
 常用参数:
 
ps详解
ps -aux | grep xxx:查看带xxx字样的进程
 指令说明:
 ·System V展示风格
 ·USER:用户名
 ·PID:进程号
 ·%CPU:进程占CPU的百分比
 ·%MEM:进程占物理内存的百分比
 ·VSZ:进程占用的虚拟内存的大小(KB)
 ·RSS:进程占用的物理内存大小(KB)
 ·TT:终端名称,缩写
 ·STAT:进程状态,其中S表示睡眠,s表示该进程是会话的先导进程,N表示进程拥有比普通优先级更低的优先级,R表示正在运行,D表示短期等待,Z表示僵死进程,T表示被跟踪或者被停止
 ·STARTED:进程的启动时间
 ·TIME:CPU时间,即进程使用CPU的总时间
 ·COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
3.父子进程
父进程就是创建子进程的进程
 当一个新的子进程被创建时,它会继承很多特性和资源,其中包括它的父进程
 所有进程的祖先进程即PID为1的进程,我们称它为系统进程或init进程,它是固定的
4.终止进程
基本语法:
 kill [选项] 进程号
 killall 进程名称(支持通配符)
 注意:如果父进程忽略(ignore)了SIGTERM信号(默认行为是忽略),那么当使用kill或者killall终止父进程时,其子进程将会被保持运行
 常用选项:-9:表示强制停止
5.pstree
基本语法:pstree [选项]:可以更加直观地查看进程树
 常见选项:
 -p:显示进程号
 -u:显示进程的所属用户
6.服务管理
服务的本质就是进程,但是是在后台运行的,通常都会监听某个端口,等待其它程序的请求,因此又称为守护进程
 service管理指令:
- service 服务名[start | stop | restart | reload | status]
 - 在CentOS7后很多服务不再使用service管理,而是systemctl
 - service指令管理的服务在/etc/init.d查看
 
查看服务名:
- 方式1:使用setup -> 点击系统服务,就可以看到所有服务名,带*的表示自启动
 - 方式2:/etc/init.d看到service指令管理的服务,命令:ls -l /etc/init.d
 
运行级别
linux系统有7中运行级别:
 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
 1:单用户工作状态,root权限,用于系统维护,禁止远程登录
 2:多用户状态(没有NFS),不支持网络
 3:完全的多用户状态(有NFS),无界面,登录后进入控制台命令行模式
 4:系统未使用,保留
 5:X11控制台,登录后进入图形GUI模式
 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
 运行级别在/etc/initab中
 命令:
 systemctl get-default可以查看默认运行级别
 systemctl set-default可以设置默认运行级别
开机的流程说明:
 
chkconfig命令
介绍:
- 通过chkconfig可以给服务的各个运行级别设置自启动或者关闭
 - chkconfig指令管理的服务在/etc/init.d中查看
 - CentOS7后,很多服务使用systemctl管理
 
基本语法:
 chkconfig --list [| grep xxx]:查看服务
 chkconfig 服务名 --list:可以列出特定服务在各个运行级别下的启动状态,即服务是否随着系统的启动而启动
 chkconfig --level 5 服务名 on/off:设置服务在运行级别5时自启动或关闭
 使用细节:chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效
systemctl
基本语法:systemctl [start | stop | restart | status] 服务名:开始/停止/重启/查看服务
 systemctl指令管理的服务在/user/lib/systemd/system查看
 systemctl设置服务的自启动状态:
- systemctl list-unit-files [| grep 服务名]:列出服务开机启动状态
 - systemctl enable 服务名:设置服务开机自启动
 - systemctl disable 服务名:关闭服务开机自启动
 - systemctl is-enabled 服务名:查询某个服务是否自启动
 
注意:
- 关闭或启动防火墙后,立即生效
 - systemctl [start | stop…]这种方式只是暂时生效,系统重启后失效
 - systemctl enable/disable可以永久生效
 
firewall
当防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯,这时就需要打开指定的端口
 打开端口:firewall-cmd --permanent --add-port=端口号/协议
 关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
 重新载入,才能生效:firewall-cmd --reloaded
 查询端口状态:firewall-cmd --query-port=端口号/协议
7.动态监控进程
top与ps命令相似,都可以显示正在执行的进程。最大的不同在于top在执行一段时间可以更新正在运行的进程
 基本语法:top [选项]
 常用选项:
 
操作交互:
 
如果按u然后回车,再输入用户名,即可监听特定用户
 如果按k然后回车,再输入进程ID号,即可终止指定的进程
8.监控网络状态
基本语法:netstat [选项]
 选项说明:
 -an:按一定顺序排序输出
 -p:显示哪个进程在调用
ping是一种网络检测工具,它主要是检测远程主机是否正常,或是两部主机间的网线或网卡故障,如:ping 对方ip地址
十二.rpm与yum
1.rpm基本介绍
rpm是用于互联网下载包的打包及安装工具,它包含在某些linux分发版中。它生成具有.RPM拓展名的文件。RPM是RedHat Package Manager的缩写,类似于Windows的setup.exe
 linux的分发版本都有采用(suse,redhat,centos),可以算是公认的行业标准
 rpm包的简单查询指令:rpm -qa|grep xx:查询已经安装的rpm列表
 rpm包名基本格式:
 案例:firefox-60.2.2-1.el7.centos.x86_64
 firefox:名称
 60.2.2-1:版本号
 el7.centos.x86_64:适用操作系统
 如果是i686,i386表示32位系统,noarch表示通用
 rpm的其它查询指令:
 
2.rpm包的管理
卸载rpm包:rpm -e RPM包的名称
 如:rpm -e firefox
 注意:
- 如果其它软件包依赖于要卸载的软件包,则卸载时会产生错误信息
 - 如果要强制卸载,可以加参数–nodeps
 
安装rpm包:rpm -ivh RPM包全路径名称
 参数说明:i=install 安装,v=verbose 提示,h=hash 进度条
3.yum
yum是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包
 基本指令:
 yum list | grep xx软件列表:查询yum服务器是否有需要安装的软件
 yum install xxx:下载安装
十三.java配置
1.安装jdk
步骤:
 
2.安装Tomcat
步骤:
 
3.idea安装
步骤:
 
4.mysql安装
步骤:
 

十四.shell编程
1.快速入门
shell是一个命令行解释器,它为用户提供了一个向linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止、编写一些程序
 脚本格式要求:
- 一般以.sh为文件后缀
 - 以#!/bin/bash开头
 - 脚本需要可执行权限
 
脚本的常用执行方式:
- 输入脚本的绝对路径或相对路径(需要先赋予脚本+x权限)
 - sh+脚本(不需要权限)
 
2.shell变量
介绍:
- linux Shell中的变量分为系统变量和用户自定义变量
 - 系统变量:$HOME,$PWD,$SHELL,$USER等等
 - 显示当前shell中所有变量:set
 
变量的定义:变量名=值(没有空格)
 撤销变量:unset 变量名
 声明静态变量:readonly 变量(不能unset)
 定义变量的规则:
- 变量名可以由字母、数字和下划线组成,但是不能以数字开头
 - 等号两侧不能有空格
 - 变量名一般习惯为大写
 
将命令或函数的返回值赋给变量:
- A=`date`:反引号,运行里面的命令,并把结果返回给A
 - A=$(date):等价于反引号
 
3.设置环境变量
基本步骤:
- export 变量名=变量值(将shell变量输出为环境变量/全局变量)
 - source 配置文件(让修改后的配置信息生效
 - echo $变量名(查询环境变量的值)
 
4.注释
单行注释:#内容
 多行内容:
:<<!
内容  
!
 
5.位置参数变量
当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用位置参数变量
 比如:./myshell.sh 100 200,其中参数就是100和200,位置参数变量可以将它们的信息反映出来
 基本语法:
- $n($0代表命令本身,$1-9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
 - $*(代表命令行中所有的参数,它将所有的参数看成一个整体)
 - $@(代表所有的参数,它将每个参数区分对待)
 - $#(代表命令行中所有参数的个数)
 
6.预定义变量
基本介绍:就是shell设计者事先定义好的变量
 基本语法:
- $$(当前进程的进程号)
 - $!(后台运行的最后一个进程的进程号)
 - $?(最后一次执行的命令的返回状态,如果这个变量为0,则证明上一个命令正确执行,非0则不正确)
 
7.运算式
基本语法:
- $((运算式))或$[运算式]或expr m + n
 - 注意expr运算符间要有空格,如果希望将expr的结果赋给某个变量,要使用``
 - expr m - n
 - expr \*,/,%:乘,除,取余
 
8.条件判断
基本语法:[ 条件语句 ](注意条件语句前后要有空格,若为空则返回false)
常用判断条件:
字符串比较: =
整数比较:
 ①-lt(little):小于
 ②-le(little equal):小于等于
 ③-eq:等于
 ④-gt(great):大于
 ⑤-ge:大于等于
 ⑥-ne(not equal):不等于
文件权限判断:
 -r:有读的权限
 -w:有写的权限
 -x:有执行的权限
按照文件类型判断:
 -f:文件存在并且是一个常规的文件
 -e:文件存在
 -d:文件存在并是一个目录



















