我正在参加「掘金·启航计划」
上面这个思维导图有需要的可以私聊我,免费分享
前言
最近想转大数据开发了,不可避免的要从基础开始,一般项目都会部署在Linux系统的服务器上,所以必须重新学习Linux的使用,在这里重新回顾一下我的学习过程吧,供各位参考、批评指正!
Linux入门
为什么要学习Linux?
所谓工欲善其事,必先利其器。与windows相比,Linux系统有着开源、稳定、漏洞少等优势,很适合部署项目,我们学习的大数据,数据量大,在电脑性能方面有一定要求。另一方面服务器使用Linux系统,有着以下一些优势:
- 稳定性高:Linux服务器比Windows服务器稳定性高
- 硬件成本低:相同硬件条件下,Linux服务器能承受负荷普遍比Windows高20%以上。
- 软件成本低:Linux由于开源操作系统,可以免费使用,而Windows服务器端产品价格普遍比较高,以及客户端用户授权费用,是一笔不小开支。
- 维护成本低:专业维护人员仅需要使用命令行就能完成大部分操作。
- 病毒威胁小: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的目录结构,下面我们根据下图所列依次介绍各个目录的作用。
- /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』这个按键即可退出编辑模式。
命令模式
在一般模式当中,输入『 : / ?』3个中的任何一个按键,就可以将光标移动到最底下一行。在指令模式中, 可以实现:存盘、离开、查找、显示行号等操作。
输入冒号:
- w:保存
- q:退出
- !:强制执行
通常这三个符号可以结合使用以满足编辑文件的需要,比如常见的:wq、wq!、q、q!
输入/ :查找 输入查找词
快捷键:n是查找下一个,shift+n是往上查找
输入?:查找 输入查找词
快捷键:n是查找上一个,shift+n是往下查找
vim的命令基本上就是这些,多敲多使用也就会了,不需要花费太多精力记忆。
今天就介绍到这,稍后介绍Linux的一些常见基本命令。