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系统~
重点介绍这几个:
- redhat
- 源码免费,但是服务收费(出问题了可以练习专业人员去解决)
- Centos
- 完全免费,用了redhat的源码,不过官方宣布,后续发布新版本(不过也得几年后)
- ubuntu
- centos和Ubuntu在使用上有95%是意义的,只有个别是存在差异的~
- 很有必要去学习,有发展潜力
不过我们学习以centos为主~
1. 如何获取一个Linux的环境
- 使用虚拟机软件
- 此乃下策,主要是不能解决发布项目的问题,bug还很多
- 电脑上装一个程序,这个程序通过软件来模拟硬件(装了个假电脑)
- 接下来就可以在虚拟机里按照Linux
- 使用windows自带的WSL功能,windows subsystem linux
- 此乃中策,还是解决不了发布项目的问题
- windows内部集成了Linux的内核!
- 租一个云服务器
- 此乃上策
- 大的厂商,有很多的服务器,这些机器闲置了,所以他们就将多余的机器,租出去,供一些中小企业使用~
- 人家机器的各种环境都配置好的,有专业人员维护~
- 最重要的是,有一个外网ip!
云服务器,贵不贵?
-
对于学生,有很大的优惠!甚至1折!
-
有几个选择:腾讯云、华为云、阿里云…
-
差不多平均10块/月
你可以注册个阿里云,免费送3个月的云服务器
- 之后再考虑付费的就行了~
具体的我不说,大概就是
- 搜索阿里云云服务器
- 注册,免费试用
- 选择7开头版本的Centos服务器
- 重置密码
- 这样的配置对于我们的需求已经够用了!
现在我们有了三个信息:
- 服务器的ip
- 服务器的用户名(固定为root)
- 服务器的密码(重置后的)
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,这样就会进入对应的目录里
注意:
- 目录可以是绝对路径也可以是相对路径
- 如果既不是绝对路径,又不存在于当前目录下的目录,就会出错
/
为根目录,并不是当前目录./
为当前目录,经常省略../
为上级目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
我们常常进入一个目录后,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功能更强,上手也更难
我们只需要掌握这三个~
- 打开文件
- 编辑文件
- 保存退出
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
- 回到普通模式
按esc回到普通模式
- 左下角insert消失代表回到普通模式
- 多按几下没有副作用~
- 输入
: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 为参数,代表的含义是“递归”
- 目录是树形结构,所以需要递归删除
- 选择是否进入目录
- 选择是否删除文件
- 选择是否删除目录(不为空的目录不能删)
如果你嫌麻烦,就多加一个 -f 参数,强制删除
- 与输入 -rf 或者 -fr 一样
删除多个目录:
在linux中是可以删除本目录和上级目录的:
其实我很疑惑居然可删除本目录,并且还显示存在于aaa
并且rm删除后就是完全的删除,没有后悔的余地,也没有回收箱之类的!
因此,有时候人会小心会出现,
- rm -r / xxxx,就是斜杠后多了个空格,也就是分割了两个元素!认识的话就是删除多个目录,就会演变成===> rm -r / ,而/是根目录,删除它就相当于删除整个linux系统!
- 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操作也是一个危险的操作
- 移动/拷贝到某目录下,重命名后/没有重命名,如果重名文件,是直接覆盖的
- 移动/拷贝到本目录下,重命名为某个名字,如果本目录本来就有该文件,原本的数据会被覆盖掉
虽然有一些Linux系统有提示,但是一些没有~
还有,父目录无法移动/复制到子目录,这是合理的,合理才怪了!
之前提到的,Linux是没有回收站的,所以rm操作会导致文件/目录永久消失。
所以我们可以建一个目录,模拟回收站,删除的目录和文件就mv到里面~
3.13 grep
在Linux中,
grep
的全称是"Global Regular Expression Print",它是一个强大的命令行文本搜索工具,用于在文件中查找匹配指定模式的行,并输出结果。
即“字符串匹配”
- 可用于查找那些文件里包含指定字符串~
- 指定文件
- 查看文件里有没有
- 指定目录
- 知道目录下的所有文件,或者子目录的子文件,有没有
- 不指定,默认查找对象为当前目录(其实就是省略了 通配符,前提是加了 -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查看某个进程的端口号
- 高频面试题~
文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆!Linux基本的使用已经讲解完毕了,接下来就是部署项目了,由于本文篇幅较长,就安排在接下来的文章!