Linux基本使用

文章目录

  • 【JavaEE】Linux基本使用
    • 1. 如何获取一个Linux的环境
    • 2. 终端软件来远程登录
    • 3. Linux基本使用
      • 3.1 命令提示符
      • 3.2 ls
      • 3.3 cd
      • 3.4 pwd
      • 3.5 touch
      • 3.6 cat
      • 3.7 man
      • 3.8 echo
      • 3.9 vim
        • 3.9.1 打开文件
        • 3.9.2 编辑文件
        • 3.9.3 保存退出
        • 3.9.4 vimtutor
      • 3.10 mkdir
      • 3.11 rm
      • 3.12 cp 与 mv
      • 3.13 grep
        • 3.13.1 grep 和 ll
        • 3.13.2 grep 和 ps
        • 3.13.3 grep 和 netstat

【JavaEE】Linux基本使用

我们已经解决了一个项目的前后端部分,而我们就差这临门一脚,就是“发布”,让别人通过网络可以访问你的网站!

而我们由于没有外网ip,导致别人访问不到!

而这跟Linux有着千丝万缕的关系!

Linux准确来说,是一个“统称”,或者可以认为是一个“操作系统内核”

一个完整的系统 = 操作系统内核 + 配套的应用程序

  • Linux就是内核

基于Linux黑河,搭配了不同的应用程序,诞生了不同的“操作系统”

  • 发行版

有如下这些:

他们都内置了Linux内核,所以这类操作系统都可以说是Linux系统~

重点介绍这几个:

  1. redhat

    • 源码免费,但是服务收费(出问题了可以联系专业人员去解决)
  2. Centos
    • 完全免费,用了redhat的源码,不过官方宣布,后续发布新版本(不过也得几年后)
  3. ubuntu
    • centos和Ubuntu在使用上有95%是意义的,只有个别是存在差异的~
    • 很有必要去学习,有发展潜力

不过我们学习以centos为主~

1. 如何获取一个Linux的环境

  1. 使用虚拟机软件

    • 此乃下策,主要是不能解决发布项目的问题,bug还很多
    • 电脑上装一个程序,这个程序通过软件来模拟硬件(装了个假电脑)
    • 接下来就可以在虚拟机里按照Linux
  2. 使用windows自带的WSL功能,windows subsystem linux
    • 此乃中策,还是解决不了发布项目的问题
    • windows内部集成了Linux的内核!
  3. 租一个云服务器
    • 此乃上策
    • 大的厂商,有很多的服务器,这些机器闲置了,所以他们就将多余的机器,租出去,供一些中小企业使用~
    • 人家机器的各种环境都配置好的,有专业人员维护~
    • 最重要的是,有一个外网ip!

云服务器,贵不贵?

  • 对于学生,有很大的优惠!甚至1折!

  • 有几个选择:腾讯云、华为云、阿里云…

  • 差不多平均10块/月

你可以注册个阿里云,免费送3个月的云服务器

  • 之后再考虑付费的就行了~

具体的我不说,大概就是

  1. 搜索阿里云云服务器
  2. 注册,免费试用
  3. 选择7开头版本的Centos服务器
  4. 重置密码

  • 这样的配置对于我们的需求已经够用了!

现在我们有了三个信息:

  1. 服务器的ip
  2. 服务器的用户名(固定为root)
  3. 服务器的密码(重置后的)

2. 终端软件来远程登录

我们讲的是老牌终端工具:XShell

  • 我们选择不收费的版本即可~
  • 去官网下载最新版本即可~

在一开始,我们一个会话都没有,所以要建立一个

  • 主机填写刚才的公网ip!

  • 用户名是刚才的用户名
  • 密码是刚才的密码
  • 成功,双击进入

  • 这样就算成功了~

  • 通过这两个可以去设置一些个性化的东西~

工具的选项的查看里,可以设置透明度:

  • 还可以全屏显示

3. Linux基本使用

  • 为了方便,我关闭了透明的和进入简单模式

退出的话,上方右键取消即可

3.1 命令提示符

快捷键ctrl + L 可以清空屏幕剩下最后一条(当然向上滚动可以看到之前的内容)

  • Ctrl + shift + L则是清空全部

  • 这就是命令提示符


  • 简单了解即可

可能命令行的操作不是很好上手,Linux也有对应的图形库

  • 但是这个图形库很老,相当于十年前的windows页面,难以忍受
  • bug还很多
  • 不方便进行重复的文件操作
  • Linux带宽占用第,系统资源占用低,没必要浪费在图形库上

命令行则很便捷的去操作,甚至适用一些脚本~

  • 在后续学习,体现明显!

接下来,我们开始学习Linux最常见的命令~

  • 我们不会很专业的去学习Linux,因为Linux本身就是一个很大的科目~

其中相当一部分命令都是跟文件和目录相关的操作

3.2 ls

在Linux系统中,"ls"是"list"的缩写,表示列出目录中的内容。因此,“ls"的全称是"list”。

就是列出当前目录/指定目录中都有哪些文件~

跟windows图形化对应的就是,打开目录,映入眼帘文件/目录列表

  • 在Linux的学习中,可以适当的联想到图形化界面,“想象一下”,在脑中会更加清晰~
  • 在脑中去联想就是最好的图形化了~

看似啥都没有,但是要记住:“没有现象就是最好的现象”

  • 因为出问题,肯定返回一大堆东西给你
  • 因为你的Linux设备刚租的,所以很干净,啥也没有~

没有调配色方案的话

  • 蓝色的是目录
  • 白色的是普通文件
  • 红色的是特殊文件

但是这不是绝对的,之后遇到我们各自对应好就行~

ls 后接目录,可以查看指定的目录的列表

/ 表示Linux的“根目录”,对标windows中的“此电脑”

云服务器上任何一个文件,都从属于 /目录~

ls /root:

  • 效果和直接敲 ls 一样的

因为root用户的home目录就是/root,所以我们默认所在的home目录就是/root,也就是~

ls -l:

  • 以列表的形式排列
  • 区别于不加的,就是排列是纵向的,而不是横向的

类似于,windows中图形化的平铺与列表

  • 这个操作可以用 ll 代替

除了-l,Linux还提供了一些其他的选项:

  • -a 列出目录下的所有文件,包括以.开头的隐含文件。
  • -d 将目录象文件一样显示,而不是显示其下的文件。如: Is -d指定目录
  • -k 以k字节的形式表示文件的大小。Is -alk指定文件
  • -l 列出文件的详细信息。
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -R 列出所有子目录下的文件。(递归)

这些选项,也叫做“命令行参数”

  • 参数与参数之间吗,需要至少用一个空格来分割
  • 选项在搭配不同命令时也有不同含义~

3.3 cd

在Linux中,"cd"是"Change Directory"的缩写。

意思就是,切换目录

  • 语法为:cd xxx,这样就会进入对应的目录里

注意:

  1. 目录可以是绝对路径也可以是相对路径
  2. 如果既不是绝对路径,又不存在于当前目录下的目录,就会出错
  1. / 为根目录,并不是当前目录
  2. ./ 为当前目录,经常省略
  3. ../为上级目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们常常进入一个目录后,ll 一下看看有什么,再决定接下来进入哪里

  • 就相当于我们图形化的操作(适度联想一下)

进入etc然后ll:

列出了很多内容,现在提交教一个方法

  • ll | grep yum

    • 这样可以筛选出含yum的行
    • 后续讲解~

进入yum后ll:

验证绝对路径:

  • 给一个小技巧:按tab可以自动补全,可以补全目录或者文件

    • 如果tab后符合的东西比较多,会提示你需不需要罗列~

后面加/代表后续还有目录可以加入

进入bin目录:

  • 有很多可执行程序,其实就是咱们使用的Linux命令!

cd后面不添加任何路径:回到home目录~

cd 和 ls 可以说是最常见的linux的两个命令

3.4 pwd

"pwd"在Linux中是"Print Working Directory"的缩写。该命令用于在命令行界面中显示当前工作目录的完整路径。

就是防止你迷路的,我们cd很多次后,可能会很混乱,我们就可以通过pwd,查看我们“现在在哪”,即完整路径

对应到windows中图形化的这个:

3.5 touch

这个命令的用途是创建一个空的文件

  • 没提示就是成功:“no news is good news”,“没消息就是最好的消息”

  • 大小是0,所以是空文件

如果原本这个文件名就存在,并不会改变其内容,而只是改变文件的创建时间为现在

3.6 cat

在Linux中,“cat"的全称是"concatenate”,而不是"Concatenate"。"Cat"是一个用于连接文件内容并输出到标准输出的命令工具。

意思就是读文件

  • 没有任何输出,代表这是一个空的文件~

我们找一个不空的文件来演示:

针对短小的文件,这个使用cat就不太好

3.7 man

查看用户手册的命令

"man"在Linux中是"manual"的缩写。"man"命令是一个用于查看系统或命令的在线帮助文档的命令。使用"man"命令可以获取关于特定命令、工具或系统函数的详细说明和用法。

输入man cat后:

按q即退出~

man ls …都可以查看对应的手册~

通过上下键滚动哦,而不是鼠标~

3.8 echo

"echo"在Linux中并没有具体的全称,它只是一个简单的命令行工具。"echo"命令用于在终端中打印出给定的字符串或变量的值。

意思就是写文件

  • 默认情况下,echo后接字符串,仅仅是回显到命令行~

如何写文件呢?

echo string > filename

  • 以这样的格式

>可以认为是“重定向”,字符串原本回显到命令行,现在重定向到test.txt

但是每次都会将之前的内容清空

对于编辑的需求复杂,用echo和cat来操作很复杂~

3.9 vim

“vim"在Linux中的全称是"Vi IMproved”。"vim"是一款强大而流行的文本编辑器,它是原始的Unix编辑器"vi"的增强版。"vim"提供了许多增强功能和命令,以便更高效地进行文本编辑和编程工作。

是Linux上自带的文本编辑器,相当于windows的记事本

  • vim功能更强,上手也更难

我们只需要掌握这三个~

  1. 打开文件
  2. 编辑文件
  3. 保存退出

3.9.1 打开文件

vim filename

  • 或者后接文件的路径

3.9.2 编辑文件

vim为了追求编辑效率,引入大量快捷键~

  • 导致我们默认情况下,键盘上的按键,都是快捷键
  • 此时,键盘按键都有特殊的含义,不再是单纯的输入文本~

vim中的模式(mode)

  • 默认情况下,vim处于normal mode(普通模式)

我们要进入编辑文本,就得进入insert morde(插入模式)

  • 此时的键盘按键才能输入文本

按 i 进入insert mode:

输入文本:

  • 输入右侧数字,当前行下降一行,多出来那一行,也就是原来的位置,则是所按数字对应的是字母,输入数字要在26位键盘上面的数字按钮

复制粘贴在linux不是Ctrl c 和 Ctrl v,因为这两个快捷键有其他的含义

复制为:Ctrl insert

粘贴为:Shift insert

现在,vim的基本行为跟记事本一致

3.9.3 保存退出

记事本就是,ctrl s然后点叉

千万别太习惯地去按ctrl s

  • ctrl s 是xshell的功能:冻结画面(但是期间输入的东西依旧有效)
  • 解冻:Ctrl q
  1. 回到普通模式

按esc回到普通模式

  • 左下角insert消失代表回到普通模式
  • 多按几下没有副作用~
  1. 输入 :wq 再按回车

    • 先冒号,再w,再q!

  • 接下来的操作就是vim命令

“wq"代表"write and quit”

  • 可以:w 后 :q,就是不能先q后w~

  • qw的后果

  • 退出成功~

其他的十几种模式,就不进行讲解了~

  • 我们只需要掌握最基本的就行了~

cat test.txt 去检查一下:

3.9.4 vimtutor

  • 这个就是vim相关的教程了,感兴趣的可以去学习
  • 命令行输入vimtutor即可~
  • :wq退出即可~

3.10 mkdir

“mkdir"在Linux和其他类Unix系统中的全称是"make directory”。它是一个用于创建新目录的命令。

  • 这个命令不能一次创建多级目录~

一次创建多个目录:空格分割每个目录名

通过路径创建目录:

3.11 rm

就是remove,删除文件/目录

我们先创建即可普通文件在一些目录里:

  • 他会询问~
  • 如果你不想他询问,就加一个参数:“-f”,表示force强制

删除目录的话要加 -r 为参数,代表的含义是“递归”

  • 目录是树形结构,所以需要递归删除

  1. 选择是否进入目录
  2. 选择是否删除文件
  3. 选择是否删除目录(不为空的目录不能删)

如果你嫌麻烦,就多加一个 -f 参数,强制删除

  • 与输入 -rf 或者 -fr 一样

删除多个目录:

在linux中是可以删除本目录和上级目录的:

其实我很疑惑居然可删除本目录,并且还显示存在于aaa

并且rm删除后就是完全的删除,没有后悔的余地,也没有回收箱之类的!

因此,有时候人会小心会出现,

  1. rm -r / xxxx,就是斜杠后多了个空格,也就是分割了两个元素!认识的话就是删除多个目录,就会演变成===> rm -r / ,而/是根目录,删除它就相当于删除整个linux系统!
  2. xshell中有定义变量的机制:

这样,如果输入rm -fr /$DIT。没错,打错了一个字,系统不认识这个变量,当做空字符串处理,那么就相当于:

  • rm -fr / !!!
  • -r还好,会问,而一般情况下我们常常搭配 -rf 去使用,这样一下子就全删了,没了商量的余地~

我就不演示了,我可不想重装系统,如果有重要的数据,那么这是一个巨大的损失!

删除本目录下的所有文件和目录:

3.12 cp 与 mv

在Linux中,“cp"的全称是"复制”(Copy),“mv"的全称是"移动”(Move)或"重命名"(Rename)。

我用windows的图形化界面辅助理解:

  • 后续做这些操作有可以联想这个

cp:

  • 按住ctrl拖动

可见,是一个复制粘贴操作

mv:

  • 直接拖动

可见是一个剪切粘贴的操作

  • mv不仅可以移动文件/目录,还能重命名~

演示:

cp:

  • cp A B
  • 代表A复制到B

mv:

  • mv A B
  • 代表将A移动到B

关于重命名:

  • cp a.txt b.txt
  • 含义为复制一份a.txt在本目录下,并命名为b.txt,由于复制不会删除原来文件,所以现在是有两个文件

  • mv a.txt b.txt
  • 含义为移动a.txt在本目录下,并命名为b.txt,由于是剪切会删除原文件,所以现在是一个文件

移动目录是一样的:

  • 不要尝试一些不合理的操作即可
  • 例如目录移动到文件,是不合理的

文件移动到目录,如果后面没写文件名,就不会触发重命名~

复制目录的话还得加上 -r ~

  • 因为不像mv是“更换位置/修改路径属性”这种O(1)操作这么简单
  • cp操作就很慢

重命名目录的操作类似,只不过如果新目录名存在,就会触发移动/复制

边移动/复制 边重命名的操作:

注意:

cp和mv操作也是一个危险的操作

  1. 移动/拷贝到某目录下,重命名后/没有重命名,如果重名文件,是直接覆盖的
  2. 移动/拷贝到本目录下,重命名为某个名字,如果本目录本来就有该文件,原本的数据会被覆盖掉

虽然有一些Linux系统有提示,但是一些没有~

还有,父目录无法移动/复制到子目录,这是合理的,合理才怪了!

之前提到的,Linux是没有回收站的,所以rm操作会导致文件/目录永久消失。

所以我们可以建一个目录,模拟回收站,删除的目录和文件就mv到里面~

3.13 grep

在Linux中,grep的全称是"Global Regular Expression Print",它是一个强大的命令行文本搜索工具,用于在文件中查找匹配指定模式的行,并输出结果。

即“字符串匹配”

  • 可用于查找那些文件里包含指定字符串~
  1. 指定文件

    • 查看文件里有没有
  2. 指定目录
    • 知道目录下的所有文件,或者子目录的子文件,有没有
  3. 不指定,默认查找对象为当前目录(其实就是省略了 通配符,前提是加了 -r 选项)*
    • 不加 -r 选项,则代表在整个系统的所有东西中去查找字符串,会卡死,按ctrl c 终止

准备测试案例省略~

测试:

  • -n选项表示显示文件中关键字出现在第几行
  • -r / -R选项表示递归,没有这个指定不了目录
  • 多提一嘴:–include A* --exclude B
    • 代表,找A开头的目录/文件,不找B目录/文件

可以不带双引号,因为根据默认这个命令顺序代表这个就是个字符串

但是如果目录内容太多,可能会卡半天,按Ctrl C终止

grep不仅仅能搜索文件中的内容,还可以跟其他命令形成联动,打一套“组合拳”

3.13.1 grep 和 ll

  • 这就是一个应用,列出匹配字符串的文件名的文件~
  • 前面提到的~

命令:命令语句 | grep String

  • 顺序不能对换了~

我们已学的命令,只要是列出东西的,都是可以跟grep进行组合的~

3.13.2 grep 和 ps

在Linux中,ps的全称是"Process Status",它是一个常用的命令行工具,用于显示当前运行的进程信息。

直接使用ps查看的内容非常有限,往往得搭配一些选项

例如:ps aux,列出系统的所有进程

  • 相当于开了任务管理器~

列出很多很多,而怎么找到我们想要看的进程?

  • 搭配grep

命令:ps aux | grep String

  • 甚至刚才的这条语句,也被找出来了~

而这个 | 竖线,的形象说法叫做“管道”

  • 代表,左边的输出,通过管道,输入给右边(成为右边的输入),然后语句的结果就是右边的输出

3.13.3 grep 和 netstat

在Linux中,netstat的全称是"Network Statistics",它是一个常用的命令行工具,用于显示网络连接、路由表和网络接口的详细信息。netstat可以提供有关网络连接状态、端口占用情况、IP地址等方面的信息。

用来查询网络状态,可想而知信息很多

  • 搭配grep来筛选~

直接敲netstat:

我们要搭配选项:-anp

如果我们要查询mysql服务器的端口号,我们就可以这样操作:

  • 即3306

我们常常ps来搭配grep查看某个进程的pid,还有netstat搭配grep查看某个进程的端口号

  • 高频面试题~

文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭

【JavaEE】Linux基本使用相关推荐

  1. JavaEE - Linux基本使用和程序部署

    Linux 基本使用和 web 程序部署 Linux 背景知识 Linux 是什么 Linux 是一个操作系统. 和 Windows 是 "并列" 的关系. Unix & ...

  2. 就业指导——招聘信息的获取、简历投递和指导、HR面试指导

    文章目录 1. 招聘信息的获取 1.1 公司招聘官网 1.2 第三方招聘网站 1.3 微信公众号 1.4 微信群和QQ群 1.5 时间表 2. 简历投递 2.1 网申 2.2 邮件 3. 简历指导 4 ...

  3. Ubuntu 下eclipse安装

    一.安装JDK 1.先检测操作系统有没有已经安装好JDK环境,按"Ctrl+Alt+T"呼出终端,输入命令: java –version 如果出现JDK版本信息,则说明已经安装好, ...

  4. Java基础教程-05-面向对象

    Java基础教程-05-面向对象 1. 面向过程和面向对象解释 1.1 面向过程 1.1.1 简述 我们回想一下, 前面我们完成一个需求的步骤是怎样的? 首先是搞清楚我们要做什么. 然后在分析怎么做. ...

  5. Linux学习(十三)---搭建JavaEE环境

    文章目录 一.概述 1.1 示意图 二.安装 JDK 2.1 安装步骤 2.2 测试是否安装成功 三.安装 tomcat 3.1 安装步骤 3.2 测试是否安装成功 四.Eclipse 的安装 4.1 ...

  6. l源码安装mysql升级_[Linux]javaEE篇:源码安装mysql

    javaEE :源码安装mysql 安装环境 系统平台:CentOS-7-x86_64 数据库版本:mysql-5.6.14 源码安装mysql步骤: 一.卸载mysql 安装mysql之前,先确保l ...

  7. Linux+javaEE学习笔记之Linux网络环境配置

    Linux+javaEE学习笔记之Linux网络环境配置 网络知识简单介绍: Ip地址是:IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物 ...

  8. 【Java全栈】Java全栈学习路线及项目全资料总结【JavaSE+Web基础+大前端进阶+SSM+微服务+Linux+JavaEE】

    目录 jdk api 1.8中文版 jdk api 1.8_google.CHM 零:Java 全栈知识体系 第一阶段:JavaSE 一,程序应用(★★) 二,面向对象程序设计基础(★★★) 面向对象 ...

  9. 软件开发全套视频教程汇总(javaSE,javaEE,linux,android开发,C# ,web前端,大数据云计算,数据挖掘,web前端,php开发,UI设计,C++开发,3D视频)

    软件开发全套视频教程汇总(javaSE,javaEE,linux,android开发,C# ,web前端,大数据云计算,数据挖掘,web前端,php开发,UI设计,C++开发,3D视频) 这是我以前学 ...

最新文章

  1. $\mathbf{R}^n$中的紧集是闭有界集
  2. 利用Github搭建自己的图床
  3. GitHub回应突然断供:身在美国不由己,无权提前通知预警
  4. 四、物理优化(1)范式化
  5. java知识回顾_Java – 2012年回顾和未来预测
  6. ACM训练计划建议(转)
  7. asp.net错误处理的三种方法
  8. Vue基本使用---vue工作笔记0002
  9. JavaScript之变量对象
  10. gridview生成的html,.NET_GridView生成的HTML代码示例对比,复制代码 代码如下: asp:GridV - phpStudy...
  11. 会议摘要怎么写?这篇论文手把手教你
  12. 基于java+jsp+ssm工程车辆租赁系统
  13. 微信支付--网页版-V3-(3)
  14. java多线程百米赛跑_JAVA CountDownLatch(倒计时计数器)用法实例
  15. 深入理解 iOS 开发中的锁
  16. 如何让cmd全屏显示?
  17. Debug和Release是什么意思?
  18. 20210427瑞芯微RK3399在Android10下查看芯片温度
  19. 青龙面板快手极速版教程
  20. Web3中文|42岁退休身价百亿,王慧文高调复出再创业只为Ta

热门文章

  1. linux 文件大小转换,linux下创建一个指定文件大小,并实现从ext2到ext3的转换
  2. 抑郁症:抑郁症带来的危害 这几个特征希望你一个都没有
  3. winfrom窗体, C#开源第三方控件库推荐~
  4. ClickHouse安装部署流程(tgz版)
  5. 健身房管理有必要用专业的管理软件吗?
  6. 学习笔记(3):零基础掌握 Python 入门到实战-一个圆点的何去何从(二)
  7. Python问题:bash: syntax error near unexpected token `newline'
  8. PHP相关系列 - 蚂蚁变大象:浅谈常规网站是如何从小变大的
  9. 一个简单可以聊天的聊天界面
  10. Java 中的中文编码问题(非常详细)