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:文件存在并是一个目录