Linux入门(一)

809 阅读7分钟

我正在参加「掘金·启航计划」

Linux.png

上面这个思维导图有需要的可以私聊我,免费分享

前言

最近想转大数据开发了,不可避免的要从基础开始,一般项目都会部署在Linux系统的服务器上,所以必须重新学习Linux的使用,在这里重新回顾一下我的学习过程吧,供各位参考、批评指正!

Linux入门

为什么要学习Linux?

所谓工欲善其事,必先利其器。与windows相比,Linux系统有着开源、稳定、漏洞少等优势,很适合部署项目,我们学习的大数据,数据量大,在电脑性能方面有一定要求。另一方面服务器使用Linux系统,有着以下一些优势:

  1. 稳定性高:Linux服务器比Windows服务器稳定性高
  2. 硬件成本低:相同硬件条件下,Linux服务器能承受负荷普遍比Windows高20%以上。
  3. 软件成本低:Linux由于开源操作系统,可以免费使用,而Windows服务器端产品价格普遍比较高,以及客户端用户授权费用,是一笔不小开支。
  4. 维护成本低:专业维护人员仅需要使用命令行就能完成大部分操作。
  5. 病毒威胁小:Linux是开放源代码操作系统,即使出现有针对性病毒,开源社团也会从底层进行修正,从根本上杜绝类似病毒后续造成的危害

什么是Linux?

简单来说Linux就是和我们熟悉的Windows一样是一个操作系统,在计算机系统中,它是最接近硬件的部分,提供处理机管理、进程管理、文件管理和设备管理等功能。

Linux的发行版本

Linux 的各个发行版本使用的是同一个 Linux 内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。

Linux 的发行版本可以大体分为两类:

  • 商业公司维护的发行版本,以著名的 Red Hat 为代表;
  • 社区组织维护的发行版本,以 Debian 为代表。

我主要使用的是Centos、ubuntu,当然还有很多其他版本,根据自己实际需要选择即可,比如我介绍一下我选择的使用场景:

  • 习惯windows的桌面操作,需要用户友好的桌面系统,而又必须使用Linux开发运行项目,则可以选择Ubuntu
  • 如果只是需要一个服务器,不需要桌面系统,则可以选择centos,不过其实centos也有桌面系统。

这些系统都是开源的,可以免费下载。

Linux目录结构

我刚接触Linux时,就知道了一句话:一切皆文件。在Windows中是文件的东西,它们在Linux中也是文件,而一些在windows中不是文件的东西, 比如进程、磁盘设备也被抽象成了文件。这样做最明显的好处是,开发者仅需要使用一套 API 和开发工具即可调取 Linux 系统中绝大部分的资源。比如:

  • Linux 中几乎所有读(读文件,读系统状态,读 socket,读PIPE)的操作都可以用read函数来进行
  • Linux 中几乎所有更改(更改文件,更改系统参数,写 socket,写 PIPE)的操作都可以用write函数来进行。

所以在学习Linux时必须掌握Linux的目录结构,下面我们根据下图所列依次介绍各个目录的作用。

Linux目录结构.jpg

  • /root:超级权限管理员的用户主目录
  • /bin:存放这经常使用的命令
  • /sbin:存放系统管理员使用的系统管理程序
  • /home:存放普通用户的主目录,每个用户在创建时都会自动创建,比如/home/hong
  • /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装程序不能放这里
  • /dev:类似于windows的设备管理器,把所有的硬件设备用文件的形式存储
  • /etc:所有系统管理所需要的配置文件和子目录
  • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件
  • /lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
  • /usr:存放用户的应用程序和文件,类似windows中的program files目录
  • /media:linux系统会自动识别一些设备,例如u盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
  • /tmp:存放临时文件
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了
  • /opt:这是给主机额外安装软件所摆放的目录。比如安装一个MySQL数据库则就可以放到这个目录下。默认是空的。
  • /usr/local:这是另一个给主机额外安装软件所摆放的目录。一般是通过编译源码方式安装的程序

这里不包括所有文件,只是一些常用的,其他的可以在使用中不断发现。

vim编辑器

Linux一切皆文件,所以必须一个强大的文本编辑工具来操作文本,现阶段Linux发行版本最常见的就是vi 和 vim。

  • VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。
  • VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。
  • VIM与VI编辑器完全兼容。

这里我只介绍如何使用,因为大多数情况下我们只需要会使用即可。vim按使用情况可以分为:一般模式、编辑模式和命令模式。掌握每个模式下的基本命令就可以愉快的使用vim敲代码了。

一般模式

以 vi/vim打开一个文档就直接进入一般模式了(这是默认的模式)。在这个模式中, 可以用『上下左右』按键来移动光标,可以用『删除字符』、『删除整行』、『复制、粘贴』按键来处理文件内容。

快捷键作用
yy复制一行
y数字y复制多行
dd删除一行
d数字d删除多行
u撤销
p粘贴
x删除一个字母,相当于del
X删除一个字母,相当于Backspace
yw复制一个单词
dw删除一个单词
shift+^光标移动到行首
shift+$光标移动到行尾
数字+shift+g光标移动到某行
shift+g移动到页尾

编辑模式

在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容! 要等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式。

通常在 Linux 中,按下这些按键时,在界面的左下方会出现『--插入--』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

Snipaste_2023-02-23_17-36-27.jpg

命令模式

在一般模式当中,输入『 : / ?』3个中的任何一个按键,就可以将光标移动到最底下一行。在指令模式中, 可以实现:存盘、离开、查找、显示行号等操作。

输入冒号:

  • w:保存
  • q:退出
  • !:强制执行

通常这三个符号可以结合使用以满足编辑文件的需要,比如常见的:wq、wq!、q、q!

输入/ :查找 输入查找词

Snipaste_2023-02-23_17-42-50.jpg

快捷键:n是查找下一个,shift+n是往上查找

输入?:查找 输入查找词

Snipaste_2023-02-23_17-44-25.jpg

快捷键:n是查找上一个,shift+n是往下查找

vim的命令基本上就是这些,多敲多使用也就会了,不需要花费太多精力记忆。

今天就介绍到这,稍后介绍Linux的一些常见基本命令。