Linux 的基本使用(上)· 背景故事 · 环境搭建 · 常用命令 vim less cp mv等(基本能覆盖 Linux 日常使用80%场景)· Linux 文件结构的意义 · 相对路径和绝对路径


一、Linux 背景知识

Linux 是什么

Linux 是一个操作系统,和 Windows 是 “并列” 的关系。

Unix & Linux 发展历程图

  1. 1969-1970年,贝尔实验室的 Dennis Ritchie (左图) 和 Ken Tompson (右图) 开发了 Unix 操作系统。
    这俩大佬本来是想开发一个操作系统,但是开发着开发着,,发现现有的编程语言不太好使,于是俩人一合计, 先整个编程语言出来吧。于是 C 语言 就诞生了。
    Dennis Ritchie 大佬 2011 年就去天堂写代码了。Ken Tompson 大佬后来在 google,又参与发明了 Go 语言。

  2. Unix 火了之后,衍生出很多的分支。其中有一只为 “Minix”。由荷兰的Andrew S. Tanenbaum 教授开发。MINIX 含义为 “小型的UNIX”,源代码开放给大学教学和研究工作。

  3. 1991 年,还在读大学的 芬兰人 Linus Benedict Torvalds (1969年12月28日出生,当时 22 岁) 基于Minix 的启发,开发出了 Linux 的第一个版本。
    值的一提的是,Linus 在开发 Linux 的时候,觉得现有的 版本管理工具 并不太方便。于是开发了一个新的版本管理工具,也就是现在最广泛使用的 git。
    Linus 大佬现在 50 多岁了,但是仍然在互联网上非常活跃。经常会拍一些视频。在 油管 或者 B站 上就可以找到。

经过这么多年的发展,Linux 已经成为了 世界第一大操作系统


二、Linux 发行版

Linux 严格意义来说只是一个 “操作系统内核”。
一个完整的操作系统 = 操作系统内核 + 配套的应用程序。
由于 Linux 是一个完全开源免费的内核,因此有些公司/开源组织又基于 Linux 内核,提供了不同的配套程序。这就构成了不同的 “发行版”。

企业中最主要使用的发行版是 RedHat (红帽)。但是 RedHat 是一个收费的系统。因此我们使用的是基于红帽系统的的社区免费版本 CentOS。

CentOS 和 RedHat 的关系
RedHat 一直都提供源代码的发行方式,CentOS 就是将 RedHat 发行的源代码去掉 RedHat 的 logo 商标,重新编译一次。
RedHat 对这种发行版的态度是:“我们其实并不反对这种发行版,真正向我们付费的用户,他们重视的并不是系统本身,而是我们所提供的商业服务。”
所以,CentOS 可以得到 RedHat 的所有功能,甚至是更好的软件。但 CentOS 并不向用户提供商业支持,当然也不负上任何商业责任。


三、关于 Linux 我们学什么

  1. 基础命令
    Linux 虽然也有图形化界面,但是在 服务器 / 嵌入式设备上往往都是通过命令行的方式操作的。因此学习Linux 命令就是使用 Linux 的重要基础。
    使用命令相比于使用图形界面主要有以下好处
    节省系统资源:运行图像系统界面,需要让系统付出一些额外的资源开销。
    节省网络带宽:如果通过网络访问服务器,使用图像需要传输一帧一帧的图像,而使用命令只需要传输简单的字符串。
    便于批量完成任务:可以通过脚本代码,一次批量执行一些任务。

  2. 系统编程 & 网络编程
    Linux 自身提供了一些 API,给程序员使用来完成一些更复杂的编程任务,如文件操作,多线程编程。
    但是由于 Java 的跨平台性,这部分功能已经被 Java 自身封装好了,所有我们不必重复学习这部分知识。

  3. 部署 Java Web 项目
    我们自己编写的程序,想要让网络上其它用户访问,就需要部署到云服务器上。


四、Linux 环境搭建

要想学习 Linux,需要先有一个 Linux 的环境。

环境搭建方式

主要有四种:

  1. 直接安装到虚拟机上,但是由于 Linux 桌面使用起来非常不友好。[不推荐]
  2. 使用虚拟机软件,将 Linux 搭建在虚拟机上。但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug,会导致环境上出现各种莫名其妙的问题,比较折腾。 [不推荐]
  3. 使用 WSL (Windows Subsystem for Linux)。这个是 Windows 近几年开发的新功能,在 Windows 系统内集成了一个 Linux。但是目前这个技术还不够成熟。[暂时不推荐]
  4. 使用云服务器,可以直接在 腾讯云,阿里云或华为云 等服务器厂商处直接购买一个云服务器。[墙裂推荐]

使用云服务器不仅环境搭建简单,避免折腾,同时还有一个最大的好处,部署在云服务器上的项目可以直接被外网访问到,这个时候就和一个公司发布一个正式的网站没有任何区别。也就能让我们自己写的程序真的去给别人去使用。

怎么使用 Xshell 7 来连接云服务器可以看下文👇
https://blog.csdn.net/sfg0861/article/details/129040080(花了一个半小时才把错误干掉)


废话不多说,开始 Linux 学习!

五、Linux 常用命令

关于 Xshell 下的复制粘贴(与 Windows 系统有区别)
复制:ctrl + insert (有些同学的 insert 需要配合 fn 来按)
粘贴:shift + insert


第一组命令

ls 列出该目录下所有子目录和文件命令

功能:该命令能列出此目录下所有子目录和文件。

常用选项:
-a 列出目录下的所有文件,包含隐藏文件
-d 将目录想文件一样显示,而不能显示文件夹里面的文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息
-r 对目录反向排序
-t 以时间排序
-R 列出所有子目录下的文件

举例:ls -l

指令 ls -l 和 指令 ll 的效果是一样的


Linux 文件的结构意义

和我们 Windows 打开文件夹,使用详细信息排列文件一样,Linux 使用 ll 命令也能将文件信息排列出来。


pwd 显示用户当前所在的目录

举例:pwd


cd 进入其它目录

Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

功能:改变工作目录,将当前工作目录改变到指定的目录下。

举例:
cd ~ :进入根目录
cd - :返回最近访问目录
cd .. :返回上级目录
cd 目录名 :进入目录名


相对路径和绝对路径

Linux 上就认为

以 / 开头的就是绝对路径,从根目录往下数,能获取到完整的路径

以 . 或者 .. 开头的就是相对路径,从当前目录开始往下找,找到一个相对不太完整的目录

例如
要找到 root 目录下的 aaa 文件夹中的 aa 文件夹中的 a 文件夹的 a.txt 文件。

绝对路径:要从 root 出发,到 aaa 文件夹,再到 aa 文件夹,最后找到 a.txt。路径是 root / aaa / aa

相对路径:首先要看你所在的位置,如果你已经在 aaa 文件夹中了,那么要找到 a.txt,有两种方法。
不需要返回 root 根目录,直接从 aaa 目录出发,路径是 ./aa/a/a.txt;

可以返回 root 根目录,然后再去找 a.txt

总而言之,绝对路径和相对路径就两个最大的区别:

  1. 两个路径的出发点不同
  2. 一个是完整的路径,一个是不太完整的路径

扩展:小功能命令

tree 查看文件结构命令

Linux 上有一个专门查看当前目录结构的命令,顾名思义就是把目录结构像一棵树一样展开。

tree 命令不是 Linux 自带的,需要安装,通过下面的命令

yum install tree -y

找不到 tree 命令

通过命令安装,这个过程需要本机有网络

等待片刻,显示 complete 即可

使用一下 tree .


tab 键补全

遇到很长很复杂的文件名时,我们可以使用 tab 帮忙补全。


ctrl + c 重新输入

如果命令或者目录搞错了,可以使用 ctrl + c 取消当前命令。


clear 或者 ctrl + l 清空屏幕

黑窗口命令敲多了很难看,可以使用 ctrl + l 的快捷键清空屏幕,也可以使用 clear 命令清空屏幕。


第二组命令

touch 创建或者更改文件夹或文件

touch 命令可以更改文档或者目录,也可以创建一个不存在的文件。

举例:


cat 查看目标文件的内容

该命令查看目标文件的内容,可以加上 -n 输出所有行编号。

举例:
文件为空,无法显示

往里面添加字符串,再使用 cat 查看


echo 简单的输出数据到黑窗口

简单的输出数据到黑窗口,也可以使用重定向将数据输出到文件中。

举例:


mkdir 创建文件夹

在当前目录下创建文件夹。

-p 如果路径中的某些目录不存在,系统将自动创建那些不存在的目录,即一次性建立多级目录。

普通创建文件夹


rm 删除文件或目录

删除文件或目录,Linux 没有回收站的概念,删了就没了!

-f 即使文件的属性只是可读,也直接删除
-i 删除前逐一询问确认
-r 删除目录以及其下所有文件

举例:
普通删除

将目录下的所有文件删除

组合:将目录下的所有文件删除,不必询问y/n

命令:rm -rf /
极其危险,一旦执行整个系统都需要重置。


第三组命令

cp 复制文件或目录

cp 用于复制文件或目录,如果同时指定两个以上的文件或目录,而且最后的目的地是一个已经存在的目录,那么它会把前面指定的所有数据都复制到此目录中。

cp 还能一边拷贝,一边重命名。

-f 强行复制文件或目录,无论目的地文件或目录是否存在
-i 覆盖文件之前询问用户
-r 递归处理,将指定目录下的所有文件和子目录一起处理,无论什么类型
-R 递归处理,将指定目录下的文件以及子目录一并处理

举例:将 java101.txt 文件复制到 aaa 目录中

将 bbb 整个目录复制到 aaa 中

将 aaa,bbb,ccc 文件夹复制到 ddd 文件夹中

一边拷贝,一边重命名

但是不能对同目录下的文件进行重命名


mv 移动数据 或重命名

  1. mv 也能一边移动,一边重命名。
  2. 如果目的地文件夹存在,可以将多个源文件或目录一起移动到目的地文件夹中。

-f 强制,如果目标文件已存在,不会询问直接覆盖
-i 如果目标文件已存在,询问是否覆盖

举例:
普通移动

边移动边重命名

把原目标所有数据移动到目的地

对着同目录下的文件进行重命名


第四组命令

man 查看帮助手册命令

上面介绍了一堆命令,命令又有一堆选项,看都看累了,别说记忆了。

所以,我们可以百度查!也可以通过 Linux 自带的 man 命令进行查询~

举例:
我们可以看看 mv 的帮助手册

一堆 mv 命令的选项,记得用上下键移动查看

可以使用 q 键退出


前面介绍的这些操作,都是围绕文件和目录展开的,还缺少一个重要的功能,就是查看 / 编辑文件。

虽然 cat 能查看,echo 能进行编辑,都是有点捞。


less 查看一个大文件

主要用于查看大文件,可以秒开。
进入文件中,通过上下键进行翻页,按 q 退出。

多大的文件都能秒开的原理是,less 只是把当前一个屏幕的内容显示出来,显示多少就从硬盘读取多少,所以很快。

举例:
进入 Linux 日志管理中,随便打开看看


vim 查看文件,同时也能编辑文件

Linux 上记事本有很多,vim 是其中最流行的一个~
但是 vim 学习成本极高!熟练掌握(以 年 为单位)之后,代码编辑效率会提高不少。

难点

  1. vim 自身支持大量快捷键操作。
  2. vim 扩展能力很强,内置了 vimscript 编程语言,还能一直写插件,给 vim 扩展。
  3. vim 有一套自己的 “哲学” …

所以咱们只讲讲 vim 的最基本使用即可!

  • 打开 vim
  • 如何进行编辑
  • 如何保存退出

创建 / 打开文件


进入插入模式

vim 进入文件后默认是普通模式,普通模式下就是 vim 的一大堆快捷键,需要进入插入模式才能进行文本编辑。

使用 i 键即可进入插入模式,最下面会提示


保存

插入模式不能保存文件,要先退回普通模式,按下 esc 回到普通模式。
在普通模式下输入 :w 再回车就可以保存文件


退出

插入模式不能退出,要先退回普通模式,按下 esc 回到普通模式。
在普通模式下输入 :q 再回车就可以退出

也能直接保存退出 : wq

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值