Linux
<p>Linux</p><h1>Linux介绍</h1>
<h2>Linux是什么?</h2>
<p>linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发能力已经得到业界的认可,目前大多数企业级应用甚至是集群项目都部署运行在linux操作系统之上,很多软件公司考虑到开发成本都首选linux,在中国软件公司得到广泛的使用。</p>
<h2>Linux主要的发行版本</h2>
<p>Ubuntu(乌班图)、RedHat(红帽)、<strong>CentOS</strong>、Debain[蝶变]、Fedora、SuSE、</p>
<p>OpenSUSE、红旗Linux(国产)</p>
<h1>Linux的安装:</h1>
<h2>下载软件</h2>
<ol>
<li>虚拟机软件下载:</li>
</ol>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529960-275404147.png"></p>
<ol>
<li>CentOS下载:</li>
</ol>
<p>网易镜像:http://mirrors.163.com/centos/6/isos/</p>
<p>搜狐镜像:http://mirrors.sohu.com/centos/6/isos</p>
<h2>安装虚拟机:</h2>
<p>参考:“虚拟机安装手册.docx”</p>
<h2>安装CentOS:</h2>
<p>参考:“CentOS安装手册.docx”</p>
<h1>Linux的目录结构</h1>
<h2>Linux目录结构概述</h2>
<p>Linux没有炫目的可视化操作界面,它的操作大部分都是直接执行命令,而可执行文件都是保存在相应的目录中的,所以我们对linux的操作大多数时候都是查找和执行这些可执行文件的。</p>
<p>linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。</p>
<p>在Linux世界里,一切皆文件。</p>
<h2>Linux具体目录结构</h2>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529927-591558286.png"></p>
<ol>
<li>root : 该目录为系统管理员目录,root是具有超级权限的用户。</li>
<li>bin ->usr/bin : 存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行。</li>
<li>usr是linux的系统资源目录,里边存放的都是一些系统可执行文件或者系统以来的一些文件库。</li>
<li>usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行。</li>
<li>lib->usr/lib: 这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。</li>
<li>boot : 这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。</li>
<li>dev: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,Linux中的设备也是以文件的形式存在。</li>
<li>etc: 这个目录存放所有的系统管理所需要的配置文件。</li>
<li>home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。</li>
<li>var : 这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。</li>
<li>mnt : 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容</li>
<li>opt: 这是给linux额外安装软件所存放的目录。比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空。</li>
<li>tmp: 这个目录是用来存放一些临时文件的。</li>
</ol>
<h1>Linux的远程操作工具</h1>
<h2>Linux的远程操作</h2>
<p>在软件公司中,无论是测试服务器还是正式服务器都是部署在公司Linux系统上的,而Linux系统通常是各开发小组共享的,因此程序员需要远程登录到centos进行项目管理或者开发。远程登录客户端有Xshell、Xftp等多种工具 , 我们学习使用Xshell和Xftp , 其它的远程工具大同小异。</p>
<h2>Xshell</h2>
<ol>
<li>简介:</li>
</ol>
<p>Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。它通过互联网到远程系统的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。</p>
<p>Xshell 是目前最好的远程登录到Linux操作系统的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。</p>
<ol>
<li>下载:https://www.netsarang.com</li>
<li>安装和使用:参考 “Xshell安装手册.docx”</li>
</ol>
<h2>Xftp</h2>
<ol>
<li>简介:</li>
</ol>
<p>是一个基于windows平台的功能强大的SFTP、FTP文件传输软件。使用了Xftp 以后,windows 用户能安全地在UNIX/Linux和Windows PC 之间传输文件。</p>
<ol>
<li>下载:https://www.netsarang.com</li>
<li>安装和使用:参考“Xftp安装手册.docx”</li>
</ol>
<h1>Linux系统管理</h1>
<h2>vi和vim的使用</h2>
<h3>vi和vim简介:</h3>
<p>vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。</p>
<p>vim是vi的增强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。</p>
<h3>Vi和vim三种常见模式:</h3>
<p><strong>一般模式</strong>: 以vi/vim 命令打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』快捷键来处理档案内容,也可以使用『复制、贴上』快捷键来处理你的文件数据。</p>
<p><strong>编辑模式:</strong>按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.</p>
<p><strong>命令行模式:</strong>在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的 !</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530895-199226878.png"></p>
<h3>Vi和vim常用快捷键</h3>
<ol>
<li>一般模式拷贝当前行(yy) , 拷贝当前行向下的5行(5yy),并粘贴(p)。</li>
<li>一般模式删除当前行(dd) , 删除当前行向下的5行(5dd)。</li>
<li>一般模式下,在文件中查找某个单词,[命令模式下:(/关键字),回车查找, 输入(n) 就是查找下一个]。</li>
<li>一般模式下,使用快捷键到达文档的最首行和最末行。</li>
<li>一般模式下,在一个文件中输入"xxxx" ,然后又撤销这个动作(u)。</li>
<li>一般模式下,并将光标移动到10行shift+g</li>
</ol>
<p>第一步:输入10</p>
<p>第二步:输入shift+g</p>
<p>第三步:回车</p>
<ol>
<li>命令行模式下,设置文件的行号,取消文件的行号.[命令行下(: set nu) 和(:set nonu)]。</li>
<li>其它快捷键:</li>
</ol>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530924-1495505389.png"></p>
<h2>Linux用户管理</h2>
<h3>Linux用户简介:</h3>
<p>Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。root用户是系统默认创建的管理员账号。</p>
<h3>添加用户:</h3>
<p>useradd [选项] 用户名</p>
<p><em>useradd zhangsan</em>:创建一个账号叫zhangsan,此时会创建账号、创建一个组zhangsan并且把zhangsan分到此组中、还会在/home下创建一个目录叫zhangsan作为新创建用户的根目录。</p>
<p>useradd -d /home/ls lisi:创建一个账号叫lisi,并且给lisi指定家目录/ls。</p>
<p><em>passwd zhangsan</em>:给zhangsan设置密码。</p>
<h3>删除用户:</h3>
<p>userdel[选项] 用户名</p>
<p>userdel zhangsan:删除用户zhangsan,保留zhangsan的主目录。</p>
<p>userdel –r lisi:删除用户lisi,并且把lisi的主目录也删除。</p>
<h3>查询用户信息:</h3>
<p>id 用户名</p>
<p>id zhangsan:查看用户zhangsan的信息。</p>
<h3>切换用户:</h3>
<p>su 用户名</p>
<p>su zhangsan:切换到zhangsan用户。</p>
<p>注意:从高权限用户切换到低权限用户时,不需要输密码;否则,需要输密码。</p>
<p>另:exit命令可以回到原来的用户。</p>
<h2>Linux组管理</h2>
<h3>Linux的组简介:</h3>
<p>Linux的组类似于角色,系统可以对有共性的多个用户进行统一的管理。每一个用户都至少属于一个组,创建用户时如果不指定组,会默认创建一个跟用户名相同的组,并且把新创建的用户分配到组中,root用户默认属于root组。</p>
<h3>添加组:</h3>
<p>groupadd 组名</p>
<p>groupadd devgroup:创建一个组devgroup。</p>
<h3>删除组:</h3>
<p>groupdel 组名</p>
<p>groupdel devgroup:删除组devgroup。</p>
<h3>添加用户时指定组:</h3>
<p>useradd –g 组名 用户名</p>
<p>useradd –g devgroup zhangsan:添加用户zhangsan,并且指定zhangsan属于组devgroup。</p>
<h3>将用户添加到组/从组中移除:</h3>
<p>gpasswd –a/-d 用户名 组名</p>
<p>gpasswd –a zhangsan test</p>
<p>gpasswd –d zhangsan test</p>
<h2>Linux的系统操作</h2>
<p>shutdown now: 立刻进行关机</p>
<p>shudown -h 1: 1小时后会关机了</p>
<p>shutdown –r now: 现在重新启动计算机</p>
<p>reboot: 现在重新启动计算机</p>
<p>sync: 把内存的数据同步到磁盘.</p>
<h1>Linux实操指令</h1>
<h2>帮助指令</h2>
<p>在使用Linux过程中,如果遇到不熟悉的指令,一个是可以到网络上去查找,另一个是可以使用帮助指令。</p>
<h3>帮助指令man</h3>
<h4>基本语法:</h4>
<p>man [命令或配置文件]</p>
<p>功能描述:获得帮助手册上的信息</p>
<h4>实操案例:</h4>
<p>查看命令ls的用法:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530172-1309147024.png"></p>
<h3>帮助指令help</h3>
<h4>基本语法:</h4>
<p>help [命令]</p>
<p>功能描述:获得命令内置的帮助信息</p>
<h4>实操案例:</h4>
<p>查看命令cd的用法:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530893-791848661.png"></p>
<h2>文件目录指令</h2>
<h3>pwd指令</h3>
<h4>基本语法:</h4>
<p>pwd</p>
<p>用于显示当前目录的路径</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529671-1396347210.png"></p>
<h3>ls指令</h3>
<h4>基本语法:</h4>
<ul>
<li>ls [选项] [目录或是文件]</li>
<li>常用选项</li>
<li>-a :显示当前目录所有的文件和目录,包括隐藏的。</li>
<li>-l :以列表的方式显示信息,相当于ll</li>
</ul>
<h4>实操案例:</h4>
<p>列出当前目录下所有的文件和目录:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529806-2136490543.png"></p>
<h3>cd指令</h3>
<h4>基本语法:</h4>
<ul>
<li>cd [参数]</li>
</ul>
<p>功能描述:切换到指定目录</p>
<ul>
<li>常用参数</li>
</ul>
<p>绝对路径(以/开头的目录)和相对路径(以目录名开头的目录,从当前目录下开始查找)</p>
<p>cd ~ 或者cd :回到自己的主目录</p>
<p>cd .. 回到当前目录的上一级目录</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529906-1094299575.png"></p>
<h3>mkdir命令</h3>
<h4>基本语法:</h4>
<ul>
<li>mkdir [选项] 要创建的目录</li>
<li>常用选项</li>
</ul>
<p>-p :创建多级目录</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530680-478912587.png"></p>
<h3>rmdir指令</h3>
<h4>基本语法:</h4>
<p>rmdir 目录</p>
<p>功能描述:删除一个空目录</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530412-658191791.png"></p>
<h3>touch指令</h3>
<h4>基本语法:</h4>
<p>touch 文件名称列表</p>
<p>功能描述:创建一个或多个空文件</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530248-1436297355.png"></p>
<h3>cp指令</h3>
<h4>基本语法:</h4>
<ul>
<li>cp [选项] source dest</li>
<li>常用选项:</li>
</ul>
<p>-r :递归复制整个文件夹</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530289-419875217.png"></p>
<h3>rm指令</h3>
<h4>基本语法:</h4>
<ul>
<li>rm [选项] 要删除的文件或目录</li>
<li>常用选项:</li>
</ul>
<p>-r :递归删除整个文件夹</p>
<p>-f :强制删除不提示</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529886-10273124.png"></p>
<h3>mv指令</h3>
<h4>基本语法:</h4>
<p>mv oldNameFile newNameFile (功能描述:重命名)</p>
<p>mv /temp/movefile /targetFolder (功能描述:移动文件)</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530598-1557054526.png"></p>
<h3>cat指令</h3>
<h4>基本语法:</h4>
<ul>
<li>cat [选项] 要查看的文件名</li>
<li>常用选项</li>
</ul>
<p>-n :显示行号</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529872-244450809.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530366-1769903094.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530007-1048888684.png"></p>
<h3>more指令</h3>
<h4>基本语法:</h4>
<p>more 要查看的文件名</p>
<p>功能说明:more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。</p>
<h4>快捷键:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530251-1903570309.png"></p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530525-1914633593.png"></p>
<h3>less指令</h3>
<h4>基本语法:</h4>
<p>less 要查看的文件名</p>
<p>功能说明:less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。</p>
<h4>快捷键:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529615-1215860798.png"></p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530448-1798243650.png"></p>
<h3>head指令</h3>
<h4>基本语法:</h4>
<p>head 文件(功能描述:默认查看文件头10行内容)</p>
<p>head -n 5 文件(功能描述:查看文件头5行内容,5可以是任意行数)</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530514-130287845.png"></p>
<h3>tail指令</h3>
<h4>基本语法:</h4>
<p>tail 文件(功能描述:默认查看文件尾10行内容)</p>
<p>tail -n 5 文件(功能描述:查看文件尾5行内容,5可以是任意行数)</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530668-612244020.png"></p>
<h3>echo指令</h3>
<h4>基本语法:</h4>
<p>echo [选项] [输出内容]</p>
<p>功能介绍:输出变量或常量内容到控制台</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530217-1036580923.png"></p>
<h3>>指令</h3>
<h4>基本语法:</h4>
<p>查看指令 > 目标文件</p>
<p>功能说明:将前一个查看指令中的结果覆盖写入到目标文件中,如果目标文件不存在,则新建。</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530369-338179465.png"></p>
<h3>>>指令</h3>
<h4>基本语法:</h4>
<p>查看指令 >> 目标文件</p>
<p>功能说明:将前一个查看指令中的结果追加写入到目标文件中,如果目标文件不存在,则新建。</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530104-1052690274.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529820-526162291.png"></p>
<h2>时间日期指令</h2>
<h3>date指令</h3>
<h4>基本语法:</h4>
<p>1) date(功能描述:显示当前时间)</p>
<p>2) date +%Y(功能描述:显示当前年份)</p>
<p>3) date +%m(功能描述:显示当前月份)</p>
<p>4) date +%d(功能描述:显示当前是哪一天)</p>
<p>5) date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)</p>
<p>6) date -s 字符串时间(功能描述:设置日期)</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529833-1487342274.png"></p>
<h3>cal指令</h3>
<h4>基本语法:</h4>
<p>cal [选项](功能描述:不加选项,显示本月日历)</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529873-583428415.png"></p>
<h2>搜索查找指令</h2>
<h3>find指令</h3>
<p>find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。</p>
<h4>基本语法:</h4>
<p>find [搜索范围] [选项]</p>
<p>选项说明:</p>
<p>-name:按名称查找,支持通配符。</p>
<p>-user:按用户名查找</p>
<p>-size:按文件大小查找</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530436-577641487.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529712-1281738609.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529929-1021649904.png"></p>
<h3>locate指令</h3>
<h4>基本语法:</h4>
<p>locate 要搜索的文件名</p>
<p>说明:locate指令可以快速在整个系统中定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530342-1010552786.png"></p>
<h3>grep指令</h3>
<h4>基本语法:</h4>
<ul>
<li>grep [选项] 查找的源文件内容</li>
<li>常用选项:</li>
</ul>
<p>-n:显示匹配行和行号</p>
<p>-i:忽略大小写</p>
<p>说明:grep 过滤查找,管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530503-285539495.png"></p>
<h2>压缩和解压缩指令</h2>
<h3>gzip指令</h3>
<h4>基本语法:</h4>
<p>gzip 文件</p>
<p>功能说明:压缩文件,将文件压缩为*.gz文件存放在原文件所在目录,压缩成功后会把原文件删除。用于压缩单个文件。</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529884-998579280.png"></p>
<h3>gunzip指令</h3>
<h4>基本语法:</h4>
<p>gunzip 文件</p>
<p>功能说明:解压缩文件命令,解压成功后存放在原压缩文件所在目录,并且把原压缩文件删除。</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530301-361484266.png"></p>
<h3>zip指令</h3>
<h4>基本语法:</h4>
<ul>
<li>zip [选项] XXX.zip 将要压缩的内容</li>
</ul>
<p>功能描述:将是指定文件或目录压缩成XXX.zip文件,用于压缩所有文件结构。</p>
<ul>
<li>选项说明:</li>
</ul>
<p>-r:递归压缩,即压缩目录</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529824-102623958.png"></p>
<h3>unzip指令</h3>
<h4>基本语法:</h4>
<ul>
<li>unzip [选项] XXX.zip</li>
</ul>
<p>常用选项:</p>
<ul>
<li>-d 目录:指定解压后文件的存放目录</li>
</ul>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530249-1969711239.png"></p>
<h3>tar指令</h3>
<h4>基本语法:</h4>
<ul>
<li>tar [选项] XXX.tar.gz [打包的内容]</li>
</ul>
<p>功能描述:打包或者解压文件</p>
<ul>
<li>选项说明:</li>
</ul>
<p>-c:产生.tar.gz打包文件</p>
<p>-v:显示详细信息</p>
<p>-f:指定压缩后的文件名</p>
<p>-z:打包同时压缩</p>
<p>-x:解压.tar.gz文件</p>
<p>-C: 指定解压到哪个目录</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529927-1352519260.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530294-1131076521.png"></p>
<h2>组管理指令</h2>
<h3>Linux组的基本介绍:</h3>
<p>在linux中的每个用户必须属于一个组,不能独立于组外,可以改变用户所属组。</p>
<p>在linux中每个文件有所有者、所在的组、其它组,也可以改变文件所在组。</p>
<h3>文件/目录的所有者</h3>
<p>一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者,默认情况下所有者所在的组也即使文件所在的组。</p>
<h4>查看文件所有者和所在组指令</h4>
<h5>基本语法:</h5>
<p>ls –ahl 文件名</p>
<p>(a-all,h-human,l-list)</p>
<h5>实操案例:</h5>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530519-913204641.png"></p>
<h4>修改文件所有者指令</h4>
<h5>基本语法:</h5>
<p>chown 新所有者 文件名</p>
<p>chown newowner:newgroup file 同时修改用户的所有者和所有组</p>
<p>-R 如果是目录则使其下所有子文件或目录递归生效</p>
<p>功能说明:把文件所有者修改为指定的用户。</p>
<h5>实操案例:</h5>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530701-1689127613.png"></p>
<h4>修改文件所在组指令</h4>
<h5>基本语法:</h5>
<p>chgrp 新组名 文件名</p>
<p>-R 如果是目录则使其下所有子文件或目录递归生效</p>
<p>功能描述:把文件所在组改为指定组</p>
<h5>实操案例:</h5>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530369-178581052.png"></p>
<h2>权限管理指令</h2>
<h3>权限基本介绍</h3>
<p>这里所说的权限都是文件和目录的权限。在Linux中,每一个文件和目录都有自己的访问权限,通过文件列表可以查看到。</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529905-850152713.png"></p>
<h3>RWX权限详解</h3>
<p><strong>rwx</strong>作用到文件</p>
<p>1) [ r ]代表可读(read): 可以读取,查看</p>
<p>2) [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.</p>
<p>3) [ x ]代表可执行(execute):可以被执行</p>
<p>rwx作用到目录</p>
<p>1) [ r ]代表可读(read): 可以读取,ls查看目录内容</p>
<p>2) [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录</p>
<p>3) [ x ]代表可执行(execute):可以进入该目录</p>
<p>rwx用数字表示</p>
<p>r=4(即2²),w=2(即2¹),x=1(即2º)</p>
<h3>权限管理指令</h3>
<h4>修改文件/目录权限的指令chmod</h4>
<p>第一种方式:通过r、w、x变更变更权限</p>
<p>1) chmod u=rwx,g=rx,o=x 文件目录名</p>
<p>2) chmod o+w 文件目录名</p>
<p>3) chmod a-x 文件目录名</p>
<p>说明:u、g、o、a分别代表文件所有者、文件所在组用户、其它组用户、所有用户</p>
<p>=、+、-分别代表设置权限、增加权限、去掉权限</p>
<p>第二种方式:通过数字变更权限</p>
<p>chmod 一组三个数字 文件目录名</p>
<p>说明:r=4 w=2 x=1 rwx=4+2+1=7</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530413-1013428243.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529774-1170231068.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529886-1753632816.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530854-1456787838.png"></p>
<h1>网络配置</h1>
<h2>查看和配置网络</h2>
<h3>查看虚拟网络编辑器</h3>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530478-1286258817.png"></p>
<h3>查看IP和网关</h3>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530895-124415010.png"></p>
<h3>查看windows下虚拟网卡VMnet8的IP地址:cmd下ipconfig</h3>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530452-144010788.png"></p>
<h2>配置Linux网络</h2>
<p>修改文件:/etc/sysconfig/network-scripts/ifcfg-eth33</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529906-1850155700.png"></p>
<p>重启网络服务(service network restart)或者重启linux(reboot)即可。</p>
<p>Linux终端查看配置后的IP地址:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530696-1033440835.png"></p>
<p>Linux终端ping外网:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529642-1020721689.png"></p>
<p>Linux终端ping windows:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530409-980929613.png"></p>
<p>windows ping Linux:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530445-1185241632.png"></p>
<p>都是通的。至此,Linux静态IP设置完成。</p>
<h1>进程管理</h1>
<h2>进程介绍</h2>
<p>在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。每一个进程,都会对应一个父进程。</p>
<p>进程有两种运行方式:前台和后台。前台方式是目前用户可以在前台操作的,后台方式是实际在运行,但用户在前台看不见。</p>
<p>一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。</p>
<h2>查看系统运行的进程</h2>
<h3>基本语法:</h3>
<p>ps 参数</p>
<p>参数说明:</p>
<p>ps –a:显示当前终端下的所有进程信息</p>
<p>ps –u:以用户的格式显示进程信息</p>
<p>ps –x:显示后台进程运行的参数</p>
<p>ps –e:显示所有进程信息</p>
<p>ps –f:以全格式显示进程信息</p>
<p>结果说明:</p>
<p>•USER:用户名称</p>
<p>•PID:进程号</p>
<p>•%CPU:进程占用<strong>CPU</strong>的百分比</p>
<p>•%MEM:进程占用物理内存的百分比</p>
<p>•VSZ:进程占用的虚拟内存大小(单位:<strong>KB</strong>)</p>
<p>•RSS:进程占用的物理内存大小(单位:<strong>KB</strong>)</p>
<p>•TT:终端名称,缩写.</p>
<p>•STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等</p>
<p>•STARTED:进程的启动时间</p>
<p>•TIME:CPU时间,即进程使用CPU的总时间</p>
<p>•COMMAND:启动进程所用的命令和参数,如果过长会被截断显示</p>
<p>•PPID 父进程的ID</p>
<p>•C CPU使用的资源百分比</p>
<p>•PRI指进程的执行优先权(Priority的简写),其值越小越早被执行</p>
<p>•SZ 使用掉的内存大小</p>
<h3>实操案例:</h3>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530894-370237810.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530437-76907501.png"></p>
<h2>终止进程</h2>
<h3>基本语法:</h3>
<p>kill 选项 进程ID</p>
<p>killall 进程名称(支持通配符)</p>
<p>选项说明:</p>
<p>-9:表示强迫进程立即停止。</p>
<h3>实操案例:</h3>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529990-189028815.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530545-1688601497.png"></p>
<h2>服务管理</h2>
<h3>服务介绍</h3>
<p>服务是支持Linux运行的一些必要程序,本质上也是进程,叫守护进程。守护进程通常默默地运行在后台,为应用程序提供必要支撑,比如sshd、防火墙等。</p>
<h3>服务管理指令</h3>
<h4>基本语法:</h4>
<p>systemctl 服务名称</p>
<p>CentOS7之前,使用命令service 服务名称 </p>
<p>功能描述:开启、关闭、重启、重新加载、查看服务状态、开机启动</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529988-20414073.png"></p>
<h3>查看网路服务(了解)</h3>
<h4>netstat命令</h4>
<p>netstat命令查看系统网络服务情况</p>
<h5>基本语法:</h5>
<p>netstat 选项</p>
<p>选项说明:</p>
<p>-an 按一定顺序排列输出</p>
<p>-p 显示哪个进程在调用</p>
<h5>实操案例:</h5>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530890-600552593.png"></p>
<h4>ping命令</h4>
<h5>基本语法:</h5>
<p>ping 选项 目标主机</p>
<p>功能描述:是一种网络检测工具,它主要是用检测远程主机是否正常,或是两部主机间的介质是否为断、网线是否脱落或网卡故障。</p>
<h5>实操案例:</h5>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529885-206291414.png"></p>
<h4>curl命令(了解)</h4>
<h5>基本语法:</h5>
<p>curl 选项 url</p>
<p>功能描述:用来发送HTTP请求。</p>
<p>-X参数:指定请求方式</p>
<p>-v参数:显示响应结果</p>
<p>-u参数:携带用户名/密码</p>
<p>-H参数:携带请求消息头信息</p>
<h5>实操案例</h5>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530252-56729722.png"></p>
<h1>Linux软件包管理</h1>
<h2>RPM包的管理(了解)</h2>
<h3>RPM介绍</h3>
<p>一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。Linux的分发版本都有采用(suse,redhat, centos等等),可以算是公认的行业标准了。</p>
<h3>RPM包的查询指令</h3>
<h4>基本语法:</h4>
<p>rpm –qa :查询所安装的所有软件包</p>
<p>rpm –qa|more:分页查询所安装的所有软件包</p>
<p>rmp –qa|grep xxx:过滤查询安装的指定软件包</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529910-1419146723.png"></p>
<h3>RPM包的卸载指令</h3>
<h4>基本语法:</h4>
<p>rpm –e 选项 软件包名称</p>
<p>选项说明:</p>
<p>--nodeps 表示强制删除,用于被删除的软件包有依赖的情况</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530892-78765142.png"></p>
<h3>RPM包的安装指令</h3>
<h4>基本语法:</h4>
<p>rpm 选项 RPM包全路径名</p>
<p>选项说明:</p>
<p>-i=install 安装</p>
<p>-v=verbose 提示</p>
<p>-h=hash 进度条</p>
<h4>实操案例:</h4>
<p>第一步:在虚拟机上挂载centos的iso文件</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530362-1493966030.png"></p>
<p>第二步:在目录/run/media/root/CentOS 7 x86_64/Packages下找到firefox安装包:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529651-1855624018.png"></p>
<p>第三步:拷贝安装包到/opt目录下</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530857-1983266850.png"></p>
<p>第三步:安装firefox</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530693-92548321.png"></p>
<h2>YUM包的管理</h2>
<h3>YUM介绍</h3>
<p>Yum 是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器(在公网上)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。</p>
<p>注意:使用YUM的前提是可以连接外网。</p>
<h3>YUM包的查询指令</h3>
<h4>基本语法:</h4>
<p>yum list[ installed]|grep xx</p>
<p>功能描述:查询YUM服务器上的[已经安装到本地的]软件包</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530173-2117004266.png"></p>
<h3>YUM包的安装指令:</h3>
<h4>基本语法:</h4>
<p>yum install 包名</p>
<p>下载安装</p>
<h4>实操案例:</h4>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530044-2118547901.png"></p>
<p>YUM包的卸载:yum remove firefox.x86_64</p>
<h1>搭建JAVAEE开发环境</h1>
<h2>安装JDK</h2>
<p>第一步:先将软件通过xftp5 上传到/opt 下</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530923-1657938797.png"></p>
<p>第二步:解压缩到/opt目录下</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529630-1871152458.png"></p>
<p>第三步:配置环境变量的配置文件vim /etc/profile</p>
<p>JAVA_HOME=/opt/jdk1.7.0_79</p>
<p>PATH=$JAVA_HOME/bin:$PATH</p>
<p>CLASSPATH=$JAVA_HOME/lib:.</p>
<p>export JAVA_HOME PATH CLASSPATH</p>
<p>第四步:使配置文件生效</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530891-1450830596.png"></p>
<p>第五步:测试安装成功</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530433-818055001.png"></p>
<p>第五步:在目录/home/zhangsan下编写HelloWorld.java编译并运行</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529910-232927003.png"></p>
<h2>安装tomcat</h2>
<p>第一步:先将软件通过xftp5 上传到/opt 下</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530518-565575942.png"></p>
<p>第二步:解压到/opt</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530891-299500578.png"></p>
<p>第三步:启动tomcat</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530304-1127057648.png"></p>
<p>第四步:Linux上访问tomcat</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529985-759500718.png"></p>
<p>第五步:windows上访问tomcat</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529987-1530190245.png"></p>
<p>注意:从其它机器上访问需要关闭linux的防火墙。</p>
<h2>安装mysql</h2>
<p>第一步:查看是否已经安装了mariadb</p>
<p>检查linux是否安装了mariadb数据库,mariadb数据库是mysql的分支。是免费开源的。mariadb和msyql会有冲突。首先要检查安装了mariadb, 卸载掉。</p>
<p>检查命令:yum list installed | grep mariadb</p>
<p>卸载命令:yum –y remove xxxx</p>
<p>*如果卸载不成功,需要去掉参数-y,手动确认卸载。</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529884-783597509.png"></p>
<p>第二步:上传mysql安装包到/opt下</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530537-1804748770.png"></p>
<p>第四步:解压mysql安装包到目录/opt</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529719-523459496.png"></p>
<p>第五步:修改解压后的根目录名</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529770-1802035269.png"></p>
<p>第六步:创建数据文件夹data</p>
<p>data文件夹是mysql用来存放数据库文件的,数据库的表数据都放在data目录。</p>
<p>默认没有data目录,可以手工创建data目录,在mysql-5.7.18文件夹目录下创建一个data文件夹。</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529928-1001168039.png"></p>
<p>第七步:创建用来执行mysqld命令的Linux用户</p>
<p>创建mysql用户,用来执行MySQL的命令mysqld ,此命令用来初始化msyql基础信息。可以使用其他用户,例如叫做 mydb.等,但不推荐。</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530368-1943673923.png"></p>
<p>第七步:初始化mysql</p>
<p>使用mysql的 mysqld 命令初始化数据库的基本信息。切换到mysql-5.7.18/bin目录下执行。</p>
<p>命令:./mysqld --initialize --user=mysql --datadir=/opt/mysql-5.7.18/data --basedir=/opt/mysql-5.7.18</p>
<p>参数说明:</p>
<p>--initialize 初始化mysql,创建mysql的root, 随机生成密码。记住密码,登录msyql使用。</p>
<p>--user执行msyqld 命令的linux用户名</p>
<p>--datadir : mysql数据文件的存放位置,目录位置参照本机的设置。</p>
<p>--basedir : msyql安装程序的目录,目录位置参照本机的设置。</p>
<p>该命令执行后,会生成一个临时的mysql数据库root用户的密码,请先拷贝出来记住,后续第一次登录mysql需要使用</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530589-184675295.png"></p>
<p>密码:iGT#A:CfF7i(</p>
<p>第八步:启用安全功能</p>
<p>在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql命令程序mysql_ssl_rsa_setup提供了开启数据加密功能,生成数字证书。</p>
<p>在mysql-5.7.18/bin目录下执行命令:</p>
<p>./mysql_ssl_rsa_setup --datadir=/opt/mysql-5.7.18/data</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530892-1053471909.png"></p>
<p>第九步:修改mysql安装目录权限</p>
<p>mysql安装后,需要更改mysql-5.7.18整个文件夹目录权限,更改所属的用户和组为之前创建的mysql用户及其所在组。在mysql安装目录的上级(/opt)位置,执行命令chown .</p>
<p>例如:chown -R mysql:mysql /opt/mysql-5.7.18/</p>
<p>chmod 777 /opt/mysql-5.7.18/</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530890-790660747.png"></p>
<p>第十步:启动mysql</p>
<p>启动MySQL服务,mysql-5.7.18/bin目录下执行命令:./mysqld_safe &(其中&符号表示后台启动),输入命令后按Enter。</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529972-1269962247.png"></p>
<p>确认msyql是否启动,查看进程 ,使用ps -ef | grep mysql</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529905-983495132.png"></p>
<p>第十一步:客户端登录mysql</p>
<p>登录进入mysql,mysql-5.7.18/bin目录下执行命令:./mysql -uroot -p</p>
<p>-u表示使用root用户登录系统,使用第7步生成的密码。</p>
<p>-p表示使用密码登录</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530444-1477498399.png"></p>
<p>第十步:修改root密码</p>
<p>第8步的root用户密码是临时密码,要修改才能使用。</p>
<p>执行sql语句 show databases; 第一次使用将会提示修改mysql的root用户密码:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530742-2069773157.png"></p>
<p>修改mysql的密码,命令语法:alter user '用户名'@'主机域名或ip' identified by '新密码'</p>
<p>例如:alter user 'root'@'localhost' identified by 'yf123';</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529631-4260323.png"></p>
<p>第十一步:授权远程访问</p>
<p>授权远程访问,在没有授权之前只能在本机访问msyql,远程授权就是让其他计算机通过网络访问mysql(这样远程客户端才能访问)。</p>
<p>授权命令:grant</p>
<p>语法:grant all privileges on *.* to root@'%' identified by 'yf123';</p>
<p>参数:</p>
<p>其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表;</p>
<p>root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.235.130等。</p>
<p><strong>执行授权命令:</strong>grant all privileges on *.* to root@'%' identified by 'yf123';</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530892-1137186285.png"></p>
<p><strong>更新权限信息,执行flush刷新权限:</strong> flush privileges;</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530410-2085897649.png"></p>
<p><strong>关闭防火墙:</strong>systemctl stop firewalld</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529840-1985807728.png"></p>
<p>远程连接数据库:</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164530847-2050427336.png"></p>
<p>第十二步:关闭mysql服务</p>
<p>mysql-5.7.18/bin目录下执行:./mysqladmin -uroot -p shutdown输入密码关闭</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529928-2132836294.png"></p>
<p>查看mysql进程,已经没有mysqld_safe</p>
<p><img src="https://img2023.cnblogs.com/blog/3201991/202305/3201991-20230531164529906-1756242783.png"></p>
<p>第十三步:修改数据库编码</p>
<p>查看数据库编码:show variables where Variable_name like '%char%';</p>
<p>修改mysql的字符集:在mysql客户端执行如下命令</p>
<p>set character_set_client=utf8;</p>
<p>set character_set_connection=utf8;</p>
<p>set character_set_database=utf8;</p>
<p>set character_set_results=utf8;</p>
<p>set character_set_server=utf8;</p>
<p>set character_set_system=utf8;</p>
<p>set collation_connection=utf8;</p>
<p>set collation_database=utf8;</p>
<p>set collation_server=utf8;</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/lbybasic/p/17446627.html
頁:
[1]