【JavaEE】Linux

努力经营当下,直至未来明朗!


普通小孩也要热爱生活!

一、Linux概述

  1. Linux这个系统是现在全世界第一大操作系统:

① 服务器领域:绝大多数都是Linux(Windows的服务器也有,但是非常少)
② 嵌入式设备:路由器、冰箱、洗衣机、空调等大多都是linux
③ 移动端:Android系统本质上也是linux

  • 程序员确实是和linux打交道更多的

(桌面PC领域,Windows是绝对的王者)

  1. 我们需要掌握的是通过命令行来操作Linux。

  2. Linux是1991年Linus发布的操作系统,而Linus也是Git的作者。(了解)

  3. Linux重要的概念:发行版
    ① 当前所谈到的Linux,其实不是完整的操作系统,而是操作系统内核。(内核就是系统的最核心功能)
    ② 完整的操作系统=内核+配套的应用程序
    ③ Linux内核是开源的,就有很多的公司/组织基于这个内核搭配了不同的应用程序,于是就构成了不同的“发行版”。
    ④ 所以:Linux是一个系统家族,这个家族的成员很多。其中Android就是成员之一。
    ⑤ 常见Linux发行版,如redhat、ubuntu、centos等。企业中最常用的是redhat,但是redhat开源收费;所以我们目前使用centos来代替,centos就是社区版的redhat。

  4. 咱们暂时先使用的是centos7(这是一个比较老的版本了)

  5. 为啥要使用Linux?
    ① 要部署程序到云服务器上,云服务器上才有外网IP,才能被访问,而云服务器系统主要都是Linux
    ② 工作中也经常会使用


二、 云服务器安装Linux环境 + Xshell登录

  1. 安装Linux环境方法:

1)使用虚拟机:vmware
虚拟机是一个软件,通过软件代码来模拟硬件,即模拟构造出一个“虚拟的计算机”,然后就可以在上面安装Linux系统。 (并不推荐
2)使用Windows 2019年左右引入的功能WSL
在Windows内核里继承了一个Linux的内核(本质上也还是虚拟机的方案)
不推荐,这个WSL和原生的Linux相比差异是比较大的)
3)直接把Linux装在物理机上(不用Windows)
特别不推荐!!
4)云服务: 相当于你租了个电脑,这个电脑你看不见摸不着,它存在于云服务器厂商的机房中,但是你可以通过网络来远程访问。
最推荐的方案!!
理由:
①简单;
②一旦出问题需要重装系统也很好处理;
③遇到问题可以咨询客服解决;
④外网IP!!这是部署程序最重要的环节!

  1. 准备工作:
    ① 买云服务器:阿里云、腾讯云、华为云…(挑最便宜的买就ok)
    ② 官网下载xshell(Xshell):点击免费下载页面 -》姓名随便写就行 -》 会有邮件发送到邮箱上
    ③ 然后根据邮件链接进行下载安装就行

① 通过网络访问是需要使用“终端工具”的,终端工具很多,但是我们目前就使用xshell
② Xshell是一个终端,不是Linux,只是用来网络访问Linux的工具

0
1

  1. 使用终端(xshell)登录到云服务器上,需要知道三个信息:
    ① 云服务器的外网IP
    ② 服务器的用户名
    ③ 服务器的密码

  2. 使用xshell登录云服务器操作方法
    ① 打开服务器后台网站 =》 登录 =》 控制台 =》 然后根据自己所购买的服务器类型进行选择 =》 然后就可以看到外网IP,后面使用该服务器都是都是使用该外网IP(其实也是会发信息通知的)
    ② 用户名(固定):root
    ③ 首次使用的时候是需要在后台设置初始密码的:选择重置密码 =》 建议云服务器的密码设置复杂一些(可能会有黑客尝试破解你的密码,使用你的服务器挖坑or种点勒索病毒之类的)
    2

  3. 打开Xshell终端 =》 点击“新建” =》 设置好“名称”、“主机” =》 连接:首次登录需要配置,后面再登录直接点现成的会话即可(直接双击就行) =》 连接会话的时候会提示输入用户名和密码(用户名root,密码是后台自己设置的密码) =》 可以勾选记住用户名和密码
    3

  4. 登录成功后,看到的Linux是命令行界面(不是像Windows一样的图形化界面),Linux也是有图形化界面的,但是在服务器上基本不会安装。
    5

  5. 使用命令行,其实相比于图形化界面是有很大优势的:
    ① 生产力工具,没那么容易上手,但是一旦熟练了之后,其操作效率是比图形化界面高很多的;
    ② 在网络远程操作过程中,传输命令的成本要比传输图形低很多;
    ③ 命令行特别适合进行“自动化”,把一些重复性的操作批量的自动完成。

  6. 学习Linux主要就是学习Linux的命令行

  7. 连上Linux之后需要把Xshell稍微配置下,主要就是改字体,Xshell的默认字体非常小,伤眼睛,可以稍微改大点(根据自己喜好修改就行):
    6

  8. [root@…]命令提示符:提示我们可以在这儿输入命令
    ① root:用户名。Linux天然是支持多个用户的,可以创建新用户,但是没必要。
    ② @后面的内容:主机名,是买服务器的时候自动生成的,可以手动更改,但是没必要。
    ③ ~ 所在位置 表示当前处于哪个目录(工作目录)中,~本身表示当前用户的“home”目录

① 相对路径的基准就是 工作目录
② 这里的“home”目录就相当于Windows的8

# 表示当前用户是管理员, $ 表示当前用户是普通用户
注:sudo su - 是从普通用户切到管理员
7

  1. Linux上的指令是很多的,我们只需要掌握其中常用的十几个就行。

Linux的指令没有任何的难度,只是一个熟练度的问题。
(但是该熟练度会影响到未来的升职加薪)

补充:alt + 回车 =》 切换全屏


三、Linux中常用指令介绍

1. ls

  1. ls: 也就是list,列出当前目录下都有啥
  2. 如果输入ls啥都没有,那可以在ls后面跟上个具体的目录,比如跟上个/(Linux中/表示根目录

【中间的空格可以有多个,但是不能没有!!】

  1. ls -l / :以列表的形式展示根目录下的内容

其中:深蓝色是的文件夹(目录),白色的是普通文件,浅蓝色的是链接文件(快捷方式)

  1. ls -l 是一个非常高频的操作,还可以使用缩写形式ll

  2. / 根目录
    Linux文件目录结构和Windows也是类似的,也是一个树形结构(N叉树)。
    ① Windows中最上层的根节点是“此电脑”
    Linux中没有盘符这样的概念,即没有C盘D盘这样子,所有的目录都是直接放在根目录/底下的

10
最前面的一串表示文件的权限,权限管理是由“管理员”负责的;而公司里服务器的管理员是运维工程师。

  1. 【补充】
    ① 语法: ls [选项] [目录或文件]
    ② 常用选项:
  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息。
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -R 列出所有子目录下的文件。(递归)
  1. 【小结ls】
    ① ls 直接敲可以查看当前目录中的内容
    ② ls后面跟上具体的路径可以查看指定目录的内容
    ③ ls -l 可以以列表形式查看,可以缩写为ll

  2. 【补充】
    total 意思是:列表中所有文件的磁盘空间占用总和,也就是资源占用总和,它的统计单位是kb。(注意:linux下一切皆文件的概念)
    详细参考:total含义
    09


2. pwd 查看当前路径对应的绝对路径

  1. 效果就跟Windows中的效果差不多11

  2. 如下表示当前所在位置是/根目录下的root目录中。
    12


3. cd 切换当前的工作目录

  1. cd,其实也就是change directory

cd的效果其实就是鼠标在Windows上双击某个目录进去这个动作

  1. 如:cd / 就是切换到根目录

补充:在xshell中,按下 ctrl+l 就可以实现清屏
12

  1. cd 在切换目录的时候,可以跟上绝对路径(以/开头的就是绝对路径),也可以跟上相对路径(以. or . . 开头的就是相对路径, .可以省略

.表示当前目录, . . 表示当前目录的上级目录
12

  1. 之所以说使用命令更快,其实就是要善于使用补全功能:
    tab键补全
    输入一个命令 or 输入一个目录,不必敲完整,只需要敲前几个部分,然后按tab键就可以触发补全。如果匹配结果只有一个就会立即补全,如果匹配结果有多个,按两下tab就会把可能的结果都列出来。
    ctrl+c 重新输入
    如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令。

注:如果不是管理员登录,home目录~ 就不是root


4. touch:创建一个空文件

如果是touch一个已经存在的文件,对文件的内容不会有任何的影响。(即:不会清空文件的内容)
13


5. cat: 显示文件内容到控制台上

15
(没有任何显示就说明是空文件)


6. echo: 借助echo可以把想要的内容写到文件中

  1. echo本来是一个回显/打印 操作
    16

  2. 但是可以借助 > 这个重定向操作把显示到控制台的内容写到文件中
    17

  3. 使用cat 和 echo 确实能够读写文件,但是其实非常不好用:
    ① cat 将所有的文件内容直接输出
    ② echo 相当于把文件清空后重新写入

我们更常使用的是针对文件进行“编辑”,后面介绍vim

  1. 【小结】
    ① touch 创建空文件(已存在不覆盖
    ② cat读取文件内容
    ③ echo 显示内容到控制台上,搭配 > 写文件

7. mkdir:创建目录

  1. mkdir:即make directory,创建目录

  2. 可以同时创建多个目录,使用空格进行分割

  3. mkdir 后面跟上目录名就可以创建出目录了,进一步就可以使用cd进行目录切换了。
    20

  4. 如果目录创建层次比较多,tree 命令就可以树形的展示当前目录结构(tree 后面加路径,如 tree . 就是针对当前目录展示树形结构)
    ① 此时可能会出现以下问题:
    21
    ② 原因:tree这个命令,有的可能是自带的,有的是不自带的。
    ③ 解决方法:没有自带就手动安装一下:yum install tree

① yum 包管理器,就类似于maven中央仓库一样
② 安装操作需要管理员权限,也就是在root用户下安装
22

23
(中间跳出的输入选择 要选择y!)

(y:yes, N:no, d:download,只下载不安装)

25 (安装成功!)

  1. 如果输入错误想要删除,按下 ctrl + backspace<-(回退键)

  2. 【补充】
    ① 想要提前终止命令,按下 ctrl+C。Linux中ctrl+c不是复制,是终止运行。
    ② 如果想要复制粘贴:(先选中)ctrl + insert 复制,粘贴:shift + insert(Windows也是支持这种方式复制粘贴的)


8. rm:删除文件 or 目录

  1. rm:remove,删除文件or目录
  2. 删除文件: rm 文件名

30
(输入y就是确认删除)

(如果加上-f就表示强制删除,即force)
31

  1. rm后面的名字也得是一个绝对路径or相对路径。直接写文件名就相当于省略了./当前目录。

  2. 补充:
    ① 可以通过上下键找到之前的命令!
    ② 可以通过history命令查看命令的历史记录
    33

  3. 删除目录: 需要指定-r选项(r 表示递归)
    ① 目录里面可能包含文件,也可能包含子目录,子目录中还可能有孙子目录…
    ② 删除目录,并不是只删除中一个,而是把下面所有的子节点都删除,也就是递归地将子目录中的内容全删除
    35

③ 可以直接加上 -f 进行强制删除,也就是不必进行确认。
如: rm -r -f a 或者 rm -rf a

  1. 有的是默认不带提示的,这和云服务器厂商的出厂设置有关系。如果想要提示,就可以加上 -i 进行提示,如 rm -i a

  2. 【rm 是一个危险操作,因为Linux是没有“回收站”这个概念的。】
    ① 尤其是针对一些特殊的目录可不能随便乱删。
    rm -rf / 这个操作是非常危险的!!!
    / 是整个Linux系统的顶级目录,其他所有的目录和文件都在/下面,一旦删除就寄了!
    ② 如: rm -rf / root/test.txt
    rm是支持一次删除多个文件的,一旦在中间多了一个空格,此时就会认为删除的是两个文件,一个是/,另一个是相对路径下root中的test.txt文件。)


9. mv:move移动

  1. mv:相当于 剪切+粘贴

  2. 语法:mv [想要移动的文件] [目标文件]
    50

  3. 移动操作还可以一边移动一边改名
    mv [想要移动的文件] [目标文件/新的名字]
    51

  4. mv 还可以只改名不移动:
    53

  5. mv中目录可以直接移动:
    55

  6. 【小结】
    ① mv 既可以移动目录/文件,又可以针对文件/目录进行重命名!
    ② 移动的目标的名字如果不存在就是重命名,如果目标存在且是个目录就移动到该目录下。
    ③ mv中目录是可以直接移动的


10. cp:copy复制

  1. 和mv类似,也是有两个参数:要复制谁和复制到哪里去;当然也可以一边复制一边改名。
    56

  2. cp如果是拷贝目录,就需要加上-r选项来递归进行拷贝(这和mv是不同的,mv可以直接操作目录
    语法: cp [源目录] [目的目录] -r
    57

  3. 【小结】
    ① mv 和 cp都是带有两个参数的(都是路径)。第一个参数是“源”,第二个参数是“目标”
    ② 都支持一边操作一边重命名,mv 还可以只重命名不移动
    ③ cp目录的时候记得加上 -r选项即可

以上十个命令(ls /pwd/ cd/ touch/ cat / echo/ mkdir / rm /mv /cp)是日常开发中最常用的是个命令,务必要熟练掌握 !


四、 其他重要命令

1. vim文本编辑器

  1. vim文本编辑器:就是Linux上的记事本,可以针对文件进行编辑

  2. vim使用起来非常别扭(当然如果熟练掌握,确实能够大大提高输入速度),引入了很多快捷键。

  3. 只介绍简单的三个操作:
    1)如何打开文件
    一般是 vim 文件名(绝对路径or相对路径都ok,存不存在都是ok的),如果只是输入vim就是打开一个空文件。
    2)如何编辑文件
    ① 默认情况下很多内容是输入不了的,此时按下的键盘按键都是“快捷键”,不是真正的输入。(普通模式)
    ② 要想真的输入就需要进入“插入模式(insert mode)”,默认情况下是“普通模式(normal mode)”。
    ③ 有很多方式可以进入“插入模式”,最简单的一种就是按i来进行插入模式,插入到光标之前

60
(已经在插入模式下了)

④ 从“插入模式”回到“普通模式”:按下 Esc。

补充:在“普通模式”下每个按键都有特殊的含义:

①按下数字,意思就是接下来的操作重复N次
②按下a:表示进入到插入模式并插入到光标之后
③按下b:表示光标往前移动一个单词
④按下c:表示删除光标内容同时进入插入模式
⑤按下d:表示删除一个对象
⑥按下e:表示光标往后移动一个单词
⑦按下f:表示光标跳转到这一行的指定列

3)如何保存退出
① 先按Esc回到普通模式下(任意模式回到普通模式都是按Esc),然后按下:wq进行保存并退出。

输入:之后,光标来到了最底行,也就是进入底行模式last-line mode。底行模式下输入的内容是一些控制命令

② ( :q! 强制退出,不保存退出)

③ 如果是直接vim进入了新文件, 会发现当:wq时因为no file name并不能成功保存退出,此时可以直接 :q! 进行强制退出,也可以 :w 文件名 ,然后再:wq保存退出。

  1. 至少要掌握上述三个操作,工作中经常会登录到Linux上查看日志文件/修改配置文件

  2. 【注意】
    在vim中按ctrl+z并不是退出!!按 ctr+z 其实vim并没有退出,只是放到后台了而已,随时按fg就能切换回来!!

(在ctrl+z状态下,再次使用vim打开文件可能会有问题!)


2.grep文本查询

  1. grep文本查询:查询一个文件中是否包含匹配的字符串,将匹配的行获取到。

  2. 语法:grep [字符串] [文件]
    61

  3. grep的效果其实就是进行字符串匹配,把文件内容进行逐行匹配,如果该行包含要查询的字符串就将整个行获取到。


3. ps显示进程

  1. ps: process show,用于显示进程
  2. ps 其实就相当于任务管理器
    ① 直接输入ps,显示的只是和当前终端相关的进程
    62

② 需要使用 ps aux 就可以看到更完整的进程列表了
63

③ 如果只想查看某些进程,也就是进行筛选操作: ps aux | grep xx
其中 | 是管道操作,把前一个进程的输出作为后一个进程的输入。
63


4.netstat: 查看网络状态。

  1. netstat:查看网络状态。尤其是可以用来查看某个进程绑定的端口如何,或者是查看某个端口是否被某个进程绑定。
    netstat -anp :查看网络连接状态
    65
    ② 只想关注某个具体程序 or 端口 (就进行筛选)
    66

  2. 比如:启动一个服务器,该服务器是启动成功or失败?
    ① 通过ps aux 看这个服务器的进程是否存在
    ② 通过 netstat -anp 查看服务器的端口号是否正确绑定


五、用户权限(了解,没时间跳过)

1. 用户操作

  1. Linux下有两种用户:超级用户(root)、普通用户。

① 超级用户:可以再linux系统下做任何事情,不受限制
② 普通用户:在linux下做有限的事情。

  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
  1. 我们的服务器买好了, 默认是 root 用户。 但是 root 用户权力比较大, 一旦使用不当可能会造成严重后果
    (例如 rm -rf /)。因此我们真正在公司中不会直接使用 root 用户来操作服务器。
  2. 创建用户
    命令: useradd [用户名]
    示例:useradd dream
  3. 配置密码
    命令: passwd [用户名]
    示例:passwd dream
    注意:输入密码的时候控制台是不会有提示的,但是实际上已经输入进去了。
  4. 切换用户
    命令:su [用户名]
    示例:要从root用户切换到普通用户dream,则使用 su dream。

要从普通用户切换到root用户:
① 使用 su root(root可以省略),此时系统会提示输入root用户的 口令。
② 或者是:**sudo su -**切换到超级用户


2. 三种角色

访问一个文件的人可能分成三种类别.
① 文件和文件目录的所有者:u—User
② 文件和文件目录的所有者所在的组的用户:g—Group
③ 其它用户:o—Others


3. 文件类型和访问权限

  1. 命令ll显示了一个文件的详细信息:
    70

  2. 文件类型:

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

  1. 基本权限:

① 读(r/4):Read。对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
② 写(w/2):Write。对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
③ 执行(x/1):execute。对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
④ “-” 表示不具有该项权限


4. 修改文件权限

  1. 功能:设置文件的访问权限
  2. 格式:chmod [参数] 权限 文件名
  3. 常用选项:
  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限
  1. chmod命令权限值的格式
    ① 用户表示符+ / - / =权限字符

+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
=: 向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

示例:# chmod u+w /home/abc.txt

② 三位8进制数字
示例:# chmod 664 /home/abc.txt

  1. 类似的还有 chgrp, chown 命令,感兴趣的可以自行了解。

总结

  1. Linux安装(推荐使用云服务器+Xshell控制终端)
  2. Linux常用十个命令:ls/ pwd/ cd/ touch /cat /echo /mkdir /rm /cp /mv
  3. Linux其他重要命令:vim(重点)/ grep/ ps/ netstat
  4. 用户权限(了解)

yy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'Dream是普通小孩耶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值