目录
2.NAT(Network Address Translation)模式
一.Linux的概述
1.Linux和Unix的关系
2.Linux的应用领域
-
个人桌面领域的应用
-
服务器领域
linux在服务器领域的应用是最强的。
linux免费、稳定、高效等特点在这里得到了很好的体现,尤其在一些高端领域尤为广泛( c/c++/phpljava/python )。
二.Linux和VM的安装
学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习
1.先安装virtual machine 15.5.1
2.再安装Linux (CentOS 7.6/centOS8.1)
1.安装virtual machine 15.5.1
在官网上安装:VMware – Delivering a Digital Foundation For Businesses
安装完成
2.安装CentOS 7.6
下载地址:http://mirrors.163.com/centos
一系列的配置…
3.网络连接的三种方式
1.桥接模式
虚拟系统和外部系统可以相互通信,但是容易造成ip冲突(以192.168.0.开头的最多有255个,当用户量大于这个数时候,就造成了ip冲突)
2.NAT(Network Address Translation)模式
网络地址转换模式,虚拟系统可以和外部系统进行通讯,不造成ip冲突
可以与外部通信,但外部无法找到
3.主机模式
独立的系统
三.虚拟机的相关操作
1.虚拟机的克隆
如果你已经有一台linux操作系统,没有必要重新安装,只需要自己克隆一个就可以了
- 方式1,直接拷贝一份安装好的虚拟机文件
- 方式2,使用vmware的克隆操作注意,克隆时,需要先关闭linux系统
2.虚拟机快照
如果你在使用虚拟机系统的时候(比如linux),你想回到原先的某一个状态,也就是说你担心可能有
些误操作造成系统异常,需要回到原先某个正常运行的状态,vmware也提供了这样的功能,就叫快照管理
操作:
- 安装好系统以后,先做一个快照A
- 进入到系统。创建一个文件夹,再保存一个快照B
- 回到系统刚刚安装好的状态,即快照A
- 试试看,是否还能再次回到快照B
转到快照B,并在B上面创建helloWorld3并且拍摄快照之后的快照管理器是这样子的
3.虚拟机的迁移和删除
我在前面讲过,虚拟系统安装好了,它的本质就是文件(放在文件夹的)。因此虚拟系统的迁移很方便,你可以把安装好的虚拟系统这个文件夹整体拷贝或者剪切到另外位置使用。删除也很简单,用vmware进行移除,再点击菜单->从磁盘删除即可,或者直接手动删除虚拟系统对应的文件夹即可。
此种方法的移除只是将这个系统从虚拟机上删除,真正的文件并没有删除,需要手动从本机上删除
四.安装vmtools
- vmtools安装后,可以让我们在windows下更好的管理vm虚拟机
- 可以设置windows和centos的共享文件夹
注意:一定要为root用户登录才可以进行操作
- 进入centos
- 点击vm菜单的->install vmware tools
- centos会出现一个vm的安装包,xx.tar.gz
- 拷贝到/opt
- 使用解压命令tar,得到一个安装文件 cd /opt[进入到opt目录]
- 进入该vm解压的目录,/opt目录下
- 安装./vmware-install.pl
- 全部使用默认设置即可,就可以安装成功
- 注意:安装vmtools需要有gcc .
第一步:弹出CentOS驱动
第二步:点击vm菜单的->install vmware tools
看到光盘驱动重新出现,打开进入,拷贝 VMware Tools到opt目录下
4.拷贝到/opt
鼠标右键,打开终端
cd /opt[进入到opt目录]
tar -zxvf VMwareTools-10.3.25-20206839.tar.gz 解压文件
cd vmware-tools-distrib 进入到解压的文件
一直enter过去就行了
显示如下安装成功
共享文件夹
1.点击设置
选项————共享文件夹—-总是启用—-添加你所需的共享文件夹
主文件夹—-其他位置——-计算机——mnt——–hgfs—-里面就是共享文件夹
在这里进行修改的时候,主机上面也同时进行修改
注意事项和细节说明
windows和contos 就可以共享文件了,但是在实际开发中,文件的上传下载是需要使用远程方式完成的
五.Linux的目录结构
1.基本介绍
- linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“”,然后在此目录下再创建其他的目录。
- 深刻理解linux树状文件目录是非常重要的,这里我给大家说明一下。
- 记住一句经典的话:在Linux世界里,一切皆文件
2.具体的目录结构
- /bin[常用](usr/bin /usr/local/bin) 是Binary的缩写,这个目录存放着最经常使用的命令
- /sbin (usr/sbin /usr/local/sbin) s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /home[常用] 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
- /root[常用] 该目录为系统管理员,也称作超级权限者的用户主目录
- /lib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
- /lost+ found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
-
/etc[常用]
所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库my.conf -
/usr[常用]
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。 -
/boot [常用] 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
-
/proc [不要修改] 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信
-
/srv [不要修改] service缩写,该目录存放一些服务启动之后需要提取的数据
-
/sys [不要修改] 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs
-
/tmp这个目录是用来存放一些临时文件的
-
/dev
类似于windows的设备管理器,把所有的硬件用文件的形式存储 -
/media[常用]linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录
-
/mnt[常用]
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在 /mnt/上,然后进入该目录就可以查看里的内容了。d:/myshare -
/opt 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认为空
-
/usr/local[常用]
这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序 -
/var [常用]
这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件 -
/selinux [security-enhanced linux]
SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置.
六.Linux远程登录
- linux服务器是开发小组共享
- 正式上线的项目是运行在公网
- 因此程序员需要远程登录到Linux进行项目管理或者开发
- 画出简单的网络拓扑示意图(帮助理解)
- 远程登录客户端有Xshell6, Xftp6,我们学习使用Xshell和Xftp6,其它的远程工具大同小异
1.Linux–Xshell6
1.介绍
说明: Xshell 是目前最好的远程登录到Linux操作的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。
Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2,以及Microsoft Windows 平台的TELNET协议。
Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的
下载free- for-home-school版本
网站下载:家庭/学校免费 – NetSarang Website
2.准备工作
在Linux上输入ifconfig查看linux的ip地址
在本机上的cmd输入ping 192.168.93.128查看是否网络通畅
3.新建会话属性
4.实施操作
输入用户名和密码登录成功之后就可以看到进行操作Linux系统
2.Linux–Xftp6
1.介绍
Xftp6是一个基于windows 平台的功能强大的SFTP、FTP文件传输软件。使用了 Xftp 以后,windows用户能安全地在UNIX/Linux和Windows PC之间传输文件。
安装和上面的一样 略
2.新建会话属性
3.连接登录完成之后会出现以下页面
左边为本机的文件, 右边为linux系统的文件
可以选择要传输的文件,右键传输即可传输过去
七.vi和 vim
1.基本介绍
Linux系统会内置vi文本编辑器
Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
2.三种常用的模式
- 正常模式
以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、粘贴』来处理你的文件数据。
- 插入模式
按下i, L o, 0, a, A, r, R等任何一个宇母之后才会进入编辑模式,一般来说按i即可.
- 命令行模式
输入ESC 再输入:即可进入 在这个模式当中,可以提供你相关指令,完成读取、存盘替换、离开vim、显示行号等的动作
则是在此模式中达成的!
3.vi和vim的基本使用
使用vim 开发一个 Hello.java程序,保存.步骤说明和演示
输入i进入插入模式,输入完想输入的内容之后,先按”Esc”键,然后:wq即可保存成功
注意:要在root权限下进行
4.各种模式的相互切换
看看vi和vim各个模式的切换图
5.各种快捷键
在正常模式下
- 拷贝当前行yy,拷贝当前行向下的5行 5yy,并粘贴(输入p)。
- 删除当前行dd,删除当前行向下的5行5dd
- 编辑/etc/profile文件,使用快捷键到该文档的最末行[G]和最首行[gg]
- 在一个文件中输入”hello”,然后又撤销这个动作u
- 编辑/etc/profile 文件,并将光标移动到20行 :输入20,再输入shift+g
在命令行模式下
- 在文件中查找某个单词[命令行下/关键字,回车查找,输入n就是查找下一个
- 设置文件的行号,取消文件的行号.[命令行下: set nu和:set nonu]
- 更多的看整理的文档
键盘图
八.开启,重启,用户的登录和注销
1.关机重启命令
- shutdown-h now 立该进行关机
- shudown -h 1 ” hello,1分钟后会关机了”
- shutdown -r now 现在重新启动计算机
- halt 关机,作用和上面一样.
- reboot 现在重新启动计算机
- sync 把内存的数据同步到磁盘。
注意:
- 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
- 目前的shutdown/reboot/halt等命令均已经在关机前进行了sync,小心驶得万年船
2.用户的登录和注销
1.基本介绍
- 登录时尽量少用roo1帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su-用户名’命令来切换成系统管理员身份.
- 在提示符下输入logout即可注销用户
注意:logout 注销指令在图形运行级别无效,在运行级别3下有效.
九.用户管理
1.基本介绍
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号卜然后以这个账号的身份进入系统
2.添加用户
●基本语法
useradd 用户名
●应用案例
案例1:添加一个用户zxn,默认该用户的家目录在/home/zxn
●细节说明
1.当创建用户成功后,会自动的创建和用户同名的家目录
2.也可以通过useradd -d 指定目录新的用户名,给新创建的用户指定家目录
3.设置/修改密码
●基本语法
passwd 用户名(如果不加用户名,默认给当前用户修改密码)
补充:显示当前用户所在的目录 pwd
●应用案例
给zxn设置一个密码
4.删除用户
●基本语法
userdel用户名
应用案例
1.删除用户zxn,但是要保留家目录 userdel zxn
2.删除用户以及用户主目录 userdel -r zxn (谨慎使用)
细节说明
讨论是否保留家目录的
一般情况下建议保留家目录
5.查询用户信息指令
●基本语法: id 用户名
应用实例
●案例:请查询 root 的信息
●细节说明
当用户不存在时,返回无此用户
6.切换用户
●介绍
在操作Linux中,如果当前用户的权限不够,可以通过su -指令,切换到高权限用户,比如root
●基本语法
su – 切换用户名
●应用实例
创建一个用户jack,,指定密码,然后切换到jack
●细节说明
1.从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
2.当需要返回到原来用户时,使用exit/logout指令
7.查看当前用户
●基本语法
whoami/ who am I
注意:显示的是第一次登录的用户的信息,并不是当前用户的信息,
比如:如果第一次用zxn登录,然后切换到root用户 who am i显示的是zxn信息
8.用户组
●介绍
类似于角色,系统可以对有共性/权限的多个用户进行统一的管理
(将具有共同权限的用户分为同一个组,将这个组赋予一个权限,那么在这个组的都有这个权限)
●新增组
指令:groupadd组名案例演示
●删除组
指令(基本语法):groupdel组名案例演示
●增加用户时直接加上组
指令(基本语法): useradd -g 用户组 用户名
增加一个用户zwj,直接将他指定到wudang
注意:如果没有在添加的时候加上组,那么将会自己新建一个和自己名字相同的组加入
●修改用户的组
指令(基本语法):usermod -g 用户组 用户名
案例演示
创建一个组mojiao 把zwj放入到mojiao
9.用户和组相关的文件
●/etc/passwd 文件
用户( user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
●/etc/shadow文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
●/etc/group 文件
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
十.实用指令
1.运行级别
基本介绍
运行级别说明:
- 关机 0
- 单用户【找回丢失密码】 1
- 多用户状态没有网培服务 2
- 多用户状态有网络服务 3
- 系统未使用保留给用户 4
- 图形界面 5
- 系统重启 6
常用运行级别是3和5,也可以指定默认运行级别
应用实例
命令:init [0 1 2 3 4 5 6]
应用案例:通过init来切换不同的运行级别,比如动5-3,然后关机.
CentOS7后运行级别说明
在centos7以前,/etc/inittab文件中.进行了简化,如下:
multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
# To view current default target,run: systemctl get-default
# To set a default target, run: systemctl set-default TARGET.target
注意:如果修改默认级别,下次启动的时候直接按默认级别启动
2.找回root密码
●面试题
如何找回root密码
课堂练习
1.假设root密码忘记了,请问如何找回密码
2.设置运行级别,linux运行后,直接进入到命令行终端(3)
- 首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图
- 进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““Linux16”开头内容所在的行数”,在行的最后面输入:init=/bin/sh。如图
- 接着,输入完成后,直接按快捷键:Ctrl+x 进入单用户模式。
-
接着,在光标闪烁的位置中输入:mount -o remount,rw /(注意:各个单词间有空格),完成后按键盘的回车键(Enter)。如图
- 在新的一行最后面输入:passwd, 完成后按键盘的回车键(Enter)。输入密码,然后再次确认密码即可,密码修改成功后,会显示passwd…..的样式,说明密码修改成功
-
接着,在鼠标闪烁的位置中(最后一行中)输入:touch /.autorelabel(注意:touch与 /后面有一个空格),完成后按键盘的回车键(Enter)
- 继续在光标闪烁的位置中,输入:exec /sbin/init(注意:exec与 /后面有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码,完成后,系统会自动重启, 新的密码生效了
3.帮助指令
- man获得帮助信息
- 基本语法:man[命令或配置文件](功能描述:获得帮助信息)案例:查看ls命令的帮助信息 在linux下,隐藏文件是以,开头的 选项可以组合使用
- help指令
- 基本语法:help命令(功能描述:获得shell内置命令的帮助信息)
- 应用实例
- 案例:查看cd命令的帮助信息
- 百度帮助更直接
- 如果英语不太好的,也可以直接百度靠谱。
4.文件目录类
-
pwd 指令 基本语法: pwd
(功能描述:显示当前工作目录的绝对路径)
应用实例:案例:显示当前工作目录的绝对路径(以根目录位置定位 相对路径,以目前位置定位)
- ls指令 基本语法: ls [选项] [目录或是文件] 常用选项
-a:显示当前目录所有的文件和目录,包括隐藏的。
-I:以列表的方式显示信息
- cd指令
基本语法:cd[参数] (功能描述:切换到指定目录) 理解:绝对路径和相对路径
cd ~或者cd :回到自己的家目录 如果是root用户回到/root zxn用户回到/home/zxn cd ..回到当前目录的上一级目录 -
应用实例
案例1:使用绝对路径切换到root目录, cd /root 案例2:使用相对路径到/root目录,比如在/home/tom cd ../../root 案例3:表示回到当前目录的上一级目录 cd .. 案例4:回到家目录 cd ~
-
mkdir指令
mkdir指令用于创建目录
基本语法: mkdir [选项] 要创建的目录· 常用选项
-p: 创建多级目录· 应用实例
案例1:创建一个目录/home/dog mkdir /home/dog
案例2:创建多级目录/home/animal/tiger: mkdir -p /home/animal/tiger-
rmdir指令
-
rmdir指令删除空目录· 基本语法
rmdir[选项]要删除的空目录 应用实例
案例删除一个目录/home/dog 使用细节
rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录 -
touch指令
touch指令创建空文件 基本语法
touch 文件名 应用实例
案例:创建一个空文件hello.txt -
cp指令
cp指令拷贝文件到指定目录 基本语法
cp[选项]】source dest 常用选项
-r:递归复制整个文件夹 应用实例
案例1:将 /home/hello.txt拷贝到 /home/bbb目录下 案例2:递归复制整个文件夹,举例
使用细节
强制覆盖不提示的方法:\cp -
rm指令
说明: rm 指令移除文件或目录 √基本语法
rm [选项] 要删除的文件或目录 √常用选项
-r :递归删除整个文件夹 -f :强制删除不提示
√应用实例
案例1:将/home/hello.txt 删除
案例2:递归删除整个文件夹/home/bbb √使用细节
强制删除不提示的方法:带上-f参数即可 -
mv指令
mv移动文件与目录或重命名 √基本语法
mv oldNameFile newNameFile(功能描述:重命名) mv /temp/movefile /targetFolder (功能描述:移动文件) √应用实例
案例1: 将/home/cat.txt文件重新命名为pig.txt 案例2:将/home/pig.txt文件移动到 /root目录下 案例3.将/home/dog.txt文件移动到/root目录下,并且重命名为lion.txt案例4:移动整个目录 将/opt/bbb移动到/home目录下
-
cat指令 cat查看文件内容 √基本语法
cat [选项] 要查看的文件 √常用选项
-n:显示行号 √应用实例
案例1:/etc/profile 文件内容,并显示行号 √使用细节
cat只能浏览文件,而不能修改文件,为了浏览方便
一般会带上 管道命令| more 将前边的命令交给后面的命令 cat -n /etc/profile | more -
more指令
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明
-
less指令
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
[pageup]=[Fn]+[↑] [pagedown]=[Fn]+[↓]
-
echo指令
echo输出内容到控制台 √基本语法
echo [选项] [输出内容] √ 应用实例
案例:使用echo指令输出环境变量 比如输出$PATH $HOSTNAME, echo $PATH
案例:使用echo指令输出hello,world! -
head指令 head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容 √基本语法
head文件 (功能描述:查看文件头10行内容)
head -n 5文件 (功能描述:查看文件头5行内容,5可以是任意行数) √应用实例
案例:查看/etc/profile的前面5行代码 head -n 5 /etc/profile
-
- tail指令
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。
√基本语法
1) tail文件(功能描述:查看文件尾10行内容)
2) tail -n 5文件
(功能描述:查看文件尾5行内容,5可以是任意行数)
3) tail -f 文件(功能描述∶实时追踪该文档的所有更新)
√应用实例
案例1查看/etc/profile最后5行的代码 tail -n 5 /etc/profile
案例2:实时监控mydate.txt,看看到文件有变化时,是否看到,实时的追加日期 tail -f /home/mydata.txt [Ctrl]+c退出
- >指令和>>指令
>输出重定向 >>追加指令
√基本语法
1) ls-I>文件
(功能描述∶列表的内容写入文件a.txt中(覆盖写))
2) Is -al >>文件
(功能描述∶列表的内容追加到文件aa.txt的末尾)
3) cat文件1>文件2(功能描述:将文件1的内容覆盖到文件2)
4) echo “内容”>>文件
√应用实例
案例:将/home目录下的文件列表写入到/home/info.txt中[如果文件不存在,会自动创建]
案例2:将当前日历信息追加到/home/mycal文件中
ln指令
软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
√基本语法
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
应用实例
案例1:在/home目录下创建一个软连接myroot,连接到/root目录
案例2:删除软连接myroot
rm /home/myroot
√细节说明
当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。
history指令
查看已经执行过历史命令,也可以执行历史指令
√基本语法
history(功能描述:查看已经执行过历史命令)
√应用实例
案例1:显示所有的历史命令 history
案例2:显示最近使用过的10个指令。 history 10
案例3∶执行历史编号为5的指令 !5
5.时间日期类
- date指令-显示当前日期
√基本语法
1) date (功能描述:显示当前时间)
2) date +%Y (功能描述:显示当前年份)
3) date +%m (功能描述:显示当前月份) 4) date +%d (功能描述:显示当前是哪一天)
5) date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
√应用实例
案例1显示当前时间信息 案例2:显示当前时间年月日
案例3:显示当前时间年月日时分秒
- date指令-设置日期
√基本语法
date -s字符串时间√应用实例
案例1:设置系统当前时间,比如设置成2022-11-11 11:11:11
date -s “2022-11-11 11:11:11”
- cal指令
查看日历指令
√基本语法cal[选项]
(功能描述:不加选项,显示本月日历)
√应用实例
案例1显示当前日历 cal 案例2:显示2022年日历 cal 2022
6.搜索查找类
- find指令
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在端。 基本语法
find[搜索范围][选项]
√选项说明
√应用实例
案例1:按文件名:根据名称查找/home目录下的hello.txt文件 案例2∶按拥有者:查找/opt目录下,用户名称为nobody的文件
案例3:查找整个linux系统下大于200M的文件(+n大于 -n小于 n等于 单位有:K,M,G)
- locate指令
locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻
√基本语法
locate 搜索文件
√特别说明
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
√应用实例
案例1:请使用locate指令快速定位hello.txt 文件所在目录
which指令,可以查看某个指令在哪个目录下,比如ls指令在哪个目录 which ls
grep指令和管道符号l
grep过滤查找,管道符,”l”,表示将前一个命令的处理结果输出传递给后面的命令处理。
√基本语法
grep[选项]查找内容源文件
√常用选项
选项功能
显示匹配行及行号。忽略字母大小写
√应用实例
案例1:请在hello.txt文件中,查找“hello”所在行,并且显示行号
7.压缩和解压类
- gzip/gunzip指令
gzip 用于压缩文件,gunzip 用于解压的
√基本语法
gzip文件
(功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz(功能描述:解压缩文件命令)
√应用实例
案例1:gzip压缩,将/home下的hello.txt文件进行压缩
案例2: gunzip压缩,将/home下的hello.txt.gz文件进行解压缩
- zip/unzip指令
zip用于压缩文件,unzip 用于解压的,这个在项目打包发布中很有用的
√基本语法
zip[选项]XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip[选项]XXX.zip(功能描述:解压缩文件)
√zip常用选项
-r:递归压缩,即压缩目录
√unzip的常用选项
-d<目录>:指定解压后文件的存放目录
√应用实例
案例1:将/home下的所有文件进行压缩成 myhome.zip zip -r myHome.zip /home/
案例2:将myhome.zip 解压到/opt/tmp目录下 unzip -d /opt/temp /home/myHome.zip
- tar 指令
tar指令是打包指令,最后打包后的文件是.tar.gz的文件。
√基本语法
tar[选项]XXX.tar.gz 打包的内容(功能描述:打包目录,压缩后的文件格式.tar.gz)
选项说明
√应用实例
案例1:压缩多个文件,将/home/pig.txt和/home/cat.txt压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt 案例2:将/home的文件夹压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
案例3:将pc.tar.gz解压到当前目录,切换到/opt/
tar -zxvf pc.tar.gz 案例4:将myhome.tar.gz解压到/opt/tmp2目录下
tar -zxvf /home/myhome.tar.gz -C /opt/temp2
十一.组管理和权限管理
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
1.所有者
2.所在组 3.其它组
4.改变用户所在的组
1.所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者.
●查看文件的所有者
指令:ls -ahl
应用实例
●修改文件所有者
指令:chown用户名文件名应用案例
要求:使用root 创建一个文件apple.txt,然后将其所有者修改成tom
2.所在组
基本指令
groupadd 组名
应用实例
创建一个组,monster groupadd monster
创建一个用户 fox,并放入到monster组中 useradd -g monster fox
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。查看文件/目录所在组
√基本指令
ls -ahl
√应用实例
修改文件所在的组
使用fox来创建一个文件,看看文件属于哪个组
√基本指令
chgrp 组名 文件名
√应用实例
使用root用户创建文件orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到fruit组。
3.其他组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。
改变用户所在组
1.usermod -g 新组名 用户名
2.usermod -d 目录名 用户名 改变该用户登陆的初始目录。特别说明:用户需要有进入新目录的权限
应用实例
将zwj这个用户从原来所在组,修改到wudang组。
4.权限的基本介绍
ls -l中显示的内容如下:
–rwxrw-r– 1 root root 1213 Feb 2 09:39 abc
0-9位说明
1.第0位确定文件类型(d,-,l,c, b)
-是普通文件
I是链接,相当于windows的快捷方式
d是目录,相当于windows的文件夹
c是字符设备文件,鼠标,键盘
b是块设备,比如硬盘
2.第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User
3.第4-6位确定所属组(同用户组的)拥有该文件的权限, —Group
4.第7-9位确定其他用户拥有该文件的权限 —Other
1.rwx权限
- rwx作用到文件(-)
- [r]代表可读(read):可以读取,查看
- [w]代表可写(write):可以修改,但是不代表可以删除该文件删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
- []代表可执行(execute):可以被执行
- rwx作用到目录(d)
- [r]代表可读(read):可以读取,ls查看目录内容
- [w]代表可写(write):可以修改,对目录内创建+删除+重命名目录
- [x]代表可执行(execute):可以进入该目录
2.权限举例说明
ls -I中显示的内容如下:
-rwxrw-r– 1 root root 1213 Feb 2 09:39 abc
√10个字符确定不同用户能对文件干什么
第一个字符代表文件类型: -l d c b
其余字符每3个一组(rwx)读(r)写()执行(x)第一组rwx:文件拥有者的权限是读、写和执行
第二组rw-:与文件拥有者同一组的用户的权限是读、写但不能执行
第三组r–:不与文件拥有者同组的其他用户的权限是读不能写和执行√可用数字表示为: r=4,w=2,x=1因此rwx=4+2+1=7
√其它说明
1 文件:硬连接数或目录:子目录数
root 用户
root 组
1213 文件大小(字节),如果是文件夹,显示4096字节
Feb 2 09:39 最后修改日期
abc 文件名
3.修改文件权限 —chmod
基本说明:
通过chmod指令,可以修改文件或者目录的权限。
第一种方式:+、-、=变更权限
u:所有者g:所有组o;其他人a:所有人(u、g、o的总和)
1) chmod u=rwx,g=rx,o=*文件/目录名
2) chmod o+w文件/目录名
3) chmod a-x文件/目自录名
案例演示
1)给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
2)给abc文件的所有者除去执行的权限,增加所在组写的权限
3)给abc文件的所有用户添加读的权限
第二种方式:通过数字变更权限
r=4 w=2 x=1rwx=4+2+1=7
chmod u=rwx,g=rx,o=x文件目录名相当于chmod751 文件目录名
√案例演示
要求:将/home/abc.txt 文件的权限修改成rwx r-x r-x,使用给数字的方式实现;
chmod 755 /home/abc.txt
4.修改文件所有者 —-chown
●基本介绍
chown newOwner 文件/目录改变所有者
chown newOwner:newgroup 文件/目录 改变所有者和所在组
-R 如果是目录则使其下所有子文件或目录递归生效
●案例演示
请将/home/abc.txt文件的所有者修改成 tom
请将/home/bbb目录下所有的文件和目录的所有者都修改成tom
5.修改文件所在的组 —chgrp
基本介绍
chgrp newgroup 文件/目录 改变所在组
●案例演示
请将/home/abc文件的所在组修改成 shaolin(少林)
请将/home/bbb目录下所有的文件和目录的所在组都修改成shaolin(少林)
6.权限管理应用实例
小游戏一:
police , bandit
jack, jerry:警察 xh, xq:土匪
1.创建组 2.创建用户
3. jack 创建一个文件,自己可以读r写w,本组人可以读r,其它组没人任何权限
4. jack修改该文件,让其它组人可以读,本组人可以读写
5.xh投靠警察,看看是否可以读写.
结论:如果要对文件夹内部的文件进行操作,需要先拥有对该目录的相应权限
小游戏二:
- 建立两个组(神仙(sx),妖怪(yg))
- 建立四个用户(唐僧,悟空,八戒,沙僧)
- 设置密码
- 把悟空,八戒放入妖怪 唐僧,沙僧在神仙
- 用悟空建立一个文件(monkey.java 该文件要输出i am monkey)
- 给八戒一个可以r w的权限
- 八戒修改monkey.java 加入一句话( i am pig)
- 唐僧沙僧对该文件没有权限
- 把沙僧放入妖怪组
- 让沙僧修改该文件monkey,加入一句话(“我是沙僧,我是妖怪!”);
- 对文件夹rwx的细节讨论和测试!!
x:表示可以进入到该目录,比如cd r:表示可以ls,将目录的内容显示
w:表示可以在该目录,删除或者创建文件
十二: 定时任务调度
1.crontab
crontab 进行定时任务的设置
概述
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
基本语法
crontab [选项]
常用选项
设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab -e命令。
接着输入任务到调度文件
如:*/1 * * * * ls -l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行ls -l /etc/ >/tmp/to.txt命令
参数细节说明
√5个占位符的说明
√特殊符号的说明
√特定时间执行任务案例
√应用案例
案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
*/1 * * * * date >> /temp/mydate
案例2:每隔1分钟,将当前日期和日历都追加到/home/mycal文件中
案例3:每天凌晨2:00将mysql数据库testdb,备份到文件中。 提示:指令为,mysqldump -u root -p密码数据库>>/home/db.bak
步骤(1) crontab -e
步骤(2)0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
√crond相关指令
conrtab -r :终止任务调度。
crontab -l:列出当前有那些任务调度 service crond restart[重启任务调度]
2.at
基本介绍
1. at命令是一次性定时计圳任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
2.默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
3.at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
4.在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看 ps -ef | grep atd //可以检测atd是否在执行
at命令格式
at [选项] [时间]
Ctrl +D 结束at命令的输入
at时间定义
at指定时间的方法:
1接受在当天的hh:mm (小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如: 04:00
2使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模湖的词语来指定时间。
3.采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如:12pm 4、指定命令执行的具体日期,指定格式为month day(月日)或mm/dd/yy(月/日/年)或dd.mm.yy
(日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
5、使用相对计时法。指定格式为:now + count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes (分钟)、hours (小时)、days (天)、weeks(星期)。count是时间的数量,
几天,几小时。例如: now + 5 minutes
6.直接使用today (今天)、tomorrow(明天)来指定完成命令的时间。
应用实例
案例1:2天后的下午5点执行/bin/ls /home案例2: atq命令来查看系统中没有执行的工作任务
案例3∶明天17点钟,输出时间到指定文件内比如/root/date100.log 案例4∶2分钟后,输出时间到指定文件内比如/root/date200.log
案例5:删除已经设置的任务,atrm编号
十三.Linux磁盘分区,挂载
1.Linux分区
原理介绍
- Linux来说无论有几个分区,分给哪一旦录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用了一种叫“载入的处理方法,它的整个文件系统中包含了一整套的文件和且录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
- 示意图
硬盘说明
- Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
- 对于IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“X”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),”~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
- 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。
查看所有硬盘的挂载情况
命令:Isblk或者Isblk -f
案例介绍
说明:
下面我们以增加一块硬盘为例来熟悉下磁盘的相关指令和深入理解磁盘分区、挂载、卸载的概念.如何增加一块硬盘
虚拟机添加硬盘 步骤1
2.分区
3.格式化 4.挂载
5.设置可以自动挂载
虚拟机增加硬盘 步骤2
分区命令fdisk /dev/sdb
开始对/sdb分区
- m显示命令列表
- p显示磁盘分区同fdisk -l
- n新增分区
- d删除分区
- w写入并退出
说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q
虚拟机增加硬盘步骤3—– 格式化磁盘
分区命令:mkfs -t ext4 /dev/sdb1 其中ext4是分区类型
虚拟机增加硬盘步骤4
挂载:将一个分区与一个目录联系起来, mount 设备名称 挂载目录
例如: mount /dev/sdb1 /newdisk umount设备名称或者挂载目录
例如:umount /dev/sdb1 或者umount /newdisk 注意:用命令行挂载是临时的,重启后会失效
虚拟机增加硬盘步骤5
永久挂载:通过修改/etc/fstab实现挂载 添加完成后执行mount -a即刻生效
2.磁盘情况查询
查询系统整体磁盘使用情况
√基本语法
df -h
√应用实例
杳询系统整体磁盘使用情况
查询指定目录的磁盘占用情况
√基本语法
du -h /目录
√查询指定目录的磁盘占用情况,默认为当前目录 -s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度 -c列出明细的同时,增加汇总值
√应用实例
查询/opt目录的磁盘占用情况,深度为1
工作实用指令
- 统计/opt文件夹下文件的个数
- 统计/opt文件夹下目录的个数
- 统计/opt文件夹下文件的个数,包括子文件夹里的
- 统计/opt文件夹下目录的个数,包括子文件夹里的
- 以树状显示目录结构 tree 目录名 注意:如果没有命令,yum install tree
十四.网络配置
1.Linux网络配置
2.查看网络IP和网关
查看虚拟网络编辑器和修改IP地址
编辑——>虚拟网络编辑器
查看网关
查看windows环境的中VMnet8网络配置(ipconfig指令)
查看linux的网络配置ifconfig
ping 测试主机之间网络连通性
基本语法
ping 目的主机(功能描述:测试当前服务器是否可以连接目的主机)
应用实例
测试当前服务器是否可以连接百度ping www.baidu.com
3.Linux网络配置
第一种方法(自动获取)∶
说明:登陆后,通过界面的来设置自动获取ip,特点:linux启动后会自动获取IP 缺点是每次自动获取的ip地址可能不一样,
第二种方法(指定ip)
√说明
直接修改配置文件来指定IP并可以连接到外网(程序员推荐) 编辑 vi /etc/sysconfig/network-scripts/ifcfg-ens33
要求:将ip地址配置的静态的, 比如: ip地址为192.168.200.130
√ifcfg-ens33 文件说明
DEVICE=eth0 #接口名(设备,网卡)
HWADDR=00:0C:2x:6x:Ox:xx #MAC地址 TYPE=Ethernet #网络类型(通常是Ethemet )
UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44 #随机id
#系统启动的时候网络接口是否有效(yes/no) ONBOOT=yes
#IP的配置方法[nonelstatic|bootp|dhcp] (引导时不使用协议|静态分配IP|BOOTP协议
DHCP协议)
BOOTPROTO=static #IP地址
IPADDR=192.168.200.130 #网关
GATEWAY=192.168.200.2 #域名解析器
DNS1=192.168.200.2
修改VMnet8的ip
重启网络服务或者重启系统生效
service network restart .,rebool
4.设置主机名和hosts映射
设置主机名
- 为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名
- 指令hostname :查看主机名
- 修改文件在/etc/hostname 指定
- 修改后,重启生效
设置hosts映射
思考:如何通过主机名能够找到(比如ping)某个linux系统? √windows
在C:\Windows\System32\drivers\etc\hosts文件指定即可 案例:192.168.200.130 chooker100
√linux
在/etc/hosts文件指定
案例:192.168.200.1 ThinkPad-PC
5.主机名解析过程分析(Hosts、DNS)
●Hosts是什么
一个文本文件,用来记录IP和Hostname(主机名)的映射关系
DNS
1. DNS,就是Domain Name System的缩写,翻译过来就是域名系统 2.是互联网上作为域名和IP地址相互映射的一个分布式数据库
●应用实例:用户在浏览器输入了www.baidu.com
1。浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有,就检查操作系统DNS解析器缓存,如果有直接返回IP完成解析。这两个缓存,可以理解为本地解析器缓存 2.一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录).如在cmd窗口中输入
ipconfig /displaydns //DNS域名解析缓存 ipconfig /flushdnsM //手动清理dns缓存
3.如果本地解析器缓存没有找到对应映射,检查系统中hosts文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回
4.如果本地DNS解析器缓存和hosts文件中均没有找到对应的IP,则到域名服务DNS进行解析域
十五.进程管理
1.基本介绍
- 在LINUX中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)。
- 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
2.显示用户执行的进程
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数
ps详解
1.指令:ps -aux l grep xxx ,比如我看看有没有sshd服务 2.指令说明
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:启动进程所用的命令和参数,如果过长会被截断显示
●应用实例
要求:以全格式显示当前所有的进程,查看进程的父进程。 ps-ef是以全格式显示当前所有的进程
-e显示所有进程。 -f全格式
ps -ef | grep XXX
·是BSD风格
.UID:用户ID PID:进程ID PPID:父进程ID
C: CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称 TIME: CPU时间
CMD:启动进程所用的命令和参数
3.终止进程
●介绍:
若是某个进程执行一半要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kil命令来完成此项任务。
●基本语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程) 注意:杀掉父进程同时也会杀掉子进程
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
●常用选项
-9:表示强迫进程立即停止
●最佳实践
案例1:踢掉某个非法登录用户
案例2:终止远程登录服务sshd,在适当时候再次重启sshd服务 案例3:终止多个gedit
案例4∶强制杀掉一个终端
.
4.查看进程树
基本语法
pstree [选项],可以更加直观的来看进程信息
常用选项
-p:显示进程的PID -u;显示进程的所属用户
应用实例:
案例1:请你树状的形式显示进程的pid 案例2:请你树状的形式进程的用户id
5.服务管理
●介绍:
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld , sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。【原理图】
●service管理指令
1.service服务名[start | stop | restart | reload | status] 2.在CentOS7.0后很多服务不再使用service ,而是systemctl (后面专门讲)
3.service指令管理的服务在/etc/init.d/查看
●service管理指令案例
请使用service 指令,查看,关闭,启动network [注意∶在虚拟系统演示,因为网络连接会关闭
●查看服务名
方式1:使用setup ->系统服务就可以看到全部。
方式2:/etc/init.d看到service指令管理的服务
●服务的运行级别(runlevel)
√Linux系统有7种运行级别(runlevel):常用的是级别3和5
- 运行级别0∶系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1∶单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2∶多用户状态(没有NFS),不支持网络
- 运行级别3∶完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4∶系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6∶系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
√开机的流程说明:
●CentOS7后运行级别说明在 /etc/initab进行了简化,如下:
multi-user.target: analogous to runlevel 3 graphical.target: analogous to runlevel 5
# To view current default target, run: systemctl get-default
# To set a default target, run: systemctl set-default TARGET.target
chkconfig指令
√介绍
1.通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭 2.chkconfig指令管理的服务在/etc/init.d查看
3.注意:Centos7.0后,很多服务使用systemctl管理(后面马上讲)
√chkconfig基本语法
查看服务 chkconfig –list [| grep xxx]
chkconfig 服务名 –list
chkconfig –level 5 服务名 on/off
√案例演示:
对network服务进行各种操作,network 在3运行级别,关闭自启动
√使用细节
chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效.
systemctl管理指令
1.基本语法: systemctl [start | stop | restart | status] 服务名 2. systemctl指令管理的服务在/usr/lib/systemd/system查看
systemctl设置服务的自启动状态
1. systemctl list-unit-files [| grep服务名](查看服务开机启动状态,grep可以进行过滤) 2. systemctl enable服务名(设置服务开机启动)
3. systemctl disable服务名(关闭服务开机启动)
4.systemctl is-enabled 服务名(查询某个服务是否是自启动的) ●应用案例:
查看当前防火墙的状况,关闭防火墙和重启防火墙。
●细节讨论:
1.关闭或者启用防火墙后,立即生效。[telnet测试某个端口即可] 2.这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
3.如果希望设置某个服务自启动或关闭永久生效,要使用systemctl [enable|disable] 服务名.[演示]
●打开或者关闭指定端口
在真正的生产环境,往往需要将防火墙打开,但问题来了,如果我们把防火墙打升,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。比如80.22、8080等
●firewall指令
打开端口:firewall-cmd –permanent –add-port=端口号/协议
关闭端口: firewall-cmd –permanent –remove-port=端口号/协议
重新载入,才能生效:firewall-cmd –reload
查询端口是否开放:firewall-cmd –query-port=端口/协议
●应用案例:
1.启用防火墙,测试111端口是否能telnet
2.开放111端口
3.再次关闭111端口
6.动态监控进程
●介绍:
top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程。
●基本语法
top[选项]
●选项说明:
●交互操作说明
●应用实例
案例1.监视特定用户
top:输入此命令,按回车键,查看执行的进程。 u∶然后输入“u”回车,再输入用户名,即可
案例2∶终止指定的进程。
top:输入此命令,按回车键,查看执行的进程。 k:然后输入“k”回车,再输入要结束的进程ID号 案例3:指定系统状态更新的时间(每隔10秒自动更新): top -d 10
7.监控网络状态
●查看系统网络情况 netstat
√基本语法
netstat [选项]
√选项说明
-an 按一定顺序排列输出 -p 显示哪个进程在调用
√应用案例
请查看服务名为sshd的服务的信息。
●检测主机连接命令ping :
是一种网络检测检测工具,它主要是用检测远程主机是否正常,或是两部主机间的网线或网卡故障。如: ping对方ip地址
十六.RPM和YUM
1.rpm包的管理
●介绍
rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似windows的
setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
Linux的分发版本都有采用(suse,redhat, centos等等),可以算是公认的行业标准了。
●rpm包的简单查询指令
查询已安装的rpm列表 rpm -qalgrep xx
●rpm包名基本格式
一个rpm包名:firefox-60.2.2-1.el7.centos.x86_64 名称:firefox
版本号:60.2.2-1
适用操作系统:el7.centos.x86_64 表示centos7.x的64位系统
如果是i686、i386表示32位系统,noarch表示通用。
●rpm包的其它查询指令∶
rpm -qa :查询所安装的所有rpm软件包rpm -qa | more
rpm -qa l grep X [rpm -qa | grep firefox ]
rpm -q 软件包名:查询软件包是否安装
案例:rpm -q firefox
rpm -qi 软件包名:查询软件包信息 案例: rpm -qi firefox
rpm -ql 软件包名:查询软件包中的文件 比如:rpm -ql firefox
rpm -qf 文件全路径名 查询文件所属的软件包 rpm -qf /etc/passwd
rpm -qf /root/install.log
●卸载rpm包:
√基本语法
rpm -e RPM包的名称 √应用案例
删除firefox软件包 √细节讨论
1.如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。 如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
1.如果我们就是要删除foo这个rpm包,可以增加参数–nodeps ,就可以强制删除,但是一般不推荐
这样做,因为依赖于该软件包的程序可能无法运行
如:$ rpm -e –nodeps foo
●安装rpm包 √基本语法
rpm -ivh RPM包全路径名称 √参数说明
i=install安装 v=verbose提示 h=hash进度条 应用实例
演示卸载和安装firefox浏览器
2.yum
●介绍:
Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
●yum的基本指令
查询yum服务器是否有需要安装的软件yum listlgrep xx软件列表
●安装指定的yum包
yum install xxx下载安装yum ●应用实例:
案例:请使用yum的方式来安装firefox
十七.搭建JavaEE环境
如果需要在Linux下进行JavaEE的开发,我们需要安装如下软件
1.安装JDK
- 安装步骤
- mkdir /opt/jdk
- 通过xftp6上传到/opt/jdk下3.cd /opt/jdk
- 解压tar -zxvf jdk-8u261-linux-x64.tar.gz
- mkdir /usr/local/java
- mv /opt/jdk/jdk1.8.0_261 /usr/local/java
- 配置环境变量的配置文件vim /etc/profile
- export JAVA_HOME=/usr/local/java/jdk1.8.0_261
- export PATH=$JAVA_HOME/bin:$PATH
- source /etc/profile[让新的环境变量生效]
√测试是否安装成功
编写一个简单的Hello.java输出”hello,world!”
2.tomcat的安装
步骤:
1.上传安装文件,并解压缩到/opt/tomcat
2.进入解压目录/bin,启动tomcat ./startup.sh3 3.开放端口8080
测试是否安装成功:
在windows、Linux下访问http://linuxip:8080
3.idea的安装
1.下载地址: https://www.jetbrains.com/idea/download/#section=windows 2.解压缩到/opt/idea
3.启动idea bin目录下./idea.sh,配置jdk 4.编写Hello world程序并测试成功!
4.Mysql的安装
1.下载mysql 2.解压缩到/opt/mysq
3.运行rpm -qa | grep maril,查询mariadb相关安装包
4.运行rpm -e –nodeps mariadb-libs,卸载
5.然后开始真正安装mysql,依次运行以下几条
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
6.运行systemctl start mysqld.service启动mysql 7.然后开始设置root用户密码
Mysql自动给root用户设置随机密码,运行grep “password” /var/log/mysqld.log可看到当前密码8.运行mysql -u root -p,用root用户登录,提示输入密码可用上述的,可以成功登陆进入mysql命令行
9.设置root密码,对于个人开发环境,如果要设比较简单的密码(生产环境服务器要设复杂密码),可以运行set global validate_password_policy=0; 提示密码设置策略(validate_password_policy默认值1)
10.set password for ‘root’@’localhost’ =password(‘hspedu100’); 11.运行flush privileges;使密码设置生效
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/101063.html