工作生活

是你见过最全面、最系统、最详细的Linux的基本操作和概念

2019-07-04  本文已影响0人  淡定_蜗牛
Java知己

本文章主要是总结 Linux 的基础操作以及一些简单的概念~ 如果不熟悉的同学可下个 Linux 来玩玩 (或者去买一个服务器玩玩【学生版的不是很贵】),对于开发者来说,能使用 Linux 做一些基本的操作是必要的!

那么接下来就开始吧,当然了我的 Linux 仅仅是入门水平,如果有错的地方还需请大家多多包涵,并不吝在评论区指出错误~

一、为什么我们要学习 Linux

相信大部分人的 PC 端都是用 Windows 系统的,那我们为什么要学习 Linux 这个操作系统呢???Windows 图形化界面做得这么好,日常基本使用的话,学习成本几乎为零。

而 Linux 不一样,可能刚接触 Linux 的人会认为:Linux 好麻烦哦,不好玩,都是字符界面。不直观、这个破系统是用来干嘛的~~

日常用的话 Windows 是比较顺手的,但是我们要知道的是:我们开发出来的程序一般都是放在 Linux 下运行的。

那可能就会有人提出疑问了:Windows 同样是操作系统,为啥要放在 Linux 下,而不放在 Windows 下呢??相信 Windows 也是可以运行我们写出来的程序的。

关注公众号:「Java知己」,发送「Linux」,免费领取最全面系统Linux视频教程。与 10 万程序员一起进步。每天更新Java/Linux知识哦,期待你的到来!

我总结了 Linux 的几个优点

  1. 免费
  2. 很多软件原生是在 Linux 下运行的,庞大的社区支持,生态环境好
  3. 开源,可被定制,开放,多用户的网络操作系统
  4. 相对安全稳定

参考资料: https://www.zhihu.com/question/19738282

所以开发者选择了 Linux 来跑我们自己写出来的程序。

二、Linux 的基础知识

Linux 系统的组成

  1. linux 内核(linus 团队管理)
  2. shell:用户与内核交互的接口
  3. 文件系统:ext3、ext4 等。windows 有 fat32 、ntfs
  4. 第三方应用软件

2.1 Shell 的基本知识

除了 Shell、其他的都应该挺好懂的,那么 Shell 是什么东西呢???

Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口 (命令解释器)

Shell 可以执行:

image

使用 type 命令可以区分内部命令和外部命令

于是乎,我们利用 Shell 就可以干下面这些事了:

Shell 的主要版本有以下这么多:

image

使用 ps 命令观察正在执行的 shell

image

2.2 Linux 基本目录结构

在 Windows 下,会有基本的目录结构的:

image image

Linux 下也不例外了,也是有基本的目录结构的:

image

Linux 文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中又可以有任意多个文件和子目录

2.3 命令基本格式

cmd [options] [arguments],options 称为选项,arguments 称为参数

选项和参数都作为 Shell 命令执行时的输入,它们之间用空格分隔开

一般来说,后面跟的选项如果单字符选项前使用一个减号 -。单词选项前使用两个减号 --

在 Linux 中,可执行的文件也进行了分类:

2.4 通配符

学过一些正则表达式的或者有点基础的同学对通配符应该就不陌生的了,在 Linux 也有通配符 (在搜索的时候挺有用的)

2.5 文件的类型

在 Linux 下文件的类型有这么多:

我们常见的就是普通文件,目录和符号链接。其他的了解一下即可~

符号链接参考资料: https://www.jianshu.com/p/dde6a01c4094

2.5.1 用户主目录

可能在网上查阅资料的时候会出现用户主目录这么一个名词,那他是什么呢???

前面已经说了,我们的 Linux 是多用户的网络系统!所以,我们可以在 Linux 下创建多个用户,每个用户都会有自己专属的空间

用户对自己主目录的文件拥有所有权,可以在自己的主目录下进行相关操作。

三、常用的命令

上面说了一堆的基础概念,这是给我们敲命令之前打了一点基础,在敲命令的同时也会遇到一些比较重要的知识点的。那就到时候再说说了~~~

3.1 常用的文件、目录操作命令

这是我们使用得最多的命令了,Linux 最基础的命令

绝对路径:

相对路径 :

tips: 输入命令的时候要常用 tab 键来补全

学了这些命令我们能干嘛?其实就是在 Windows 下复制文件、粘贴文件、创建文件、查看文件这几种~~~

3.1.1 常用的文件、目录操作练习题

巩固一下基础,来做做题目:

进入 / tmp 目录,建立一个文件,goldXX(XX 为学号的末两位),查看文件的时间

image

在账户的主目录中,建立一个 dog 目录,进入 dog 目录后,建立一个 catXX(XX 为学号的末两位)目录, 进入 catXX 目录,显示当前目录;然后返回上一级目录,删除 catXX 目录;

image

复制 / etc/passwd 文件到账户主目录,修改账户主目录下 passwd 为 passwdXX(XX 为学号的末两位)

image

查找文件名叫做 zcat 的文件;复制该文件到 / tmp 目录;用长格式列出该文件;然后删除 / tmp 目录下的所有文件,并检查文件是否已被删除

image

复制 / etc/hosts 文件到账户主目录下;在账户主目录中建立一个硬链接文件(文件名为 hostsYYY(YYY 为学生姓名拼音缩写)),链接到主目录下的 hosts 文件;分别查看 hosts 和 hostsYYY 的文件的 inode 信息

image

复制 / usr/bin/vdir 文件到账户主目录下;在账户主目录中建立一个软链接文件(文件名为 newdir),链接到主目录下的 vdir 文件;分别查看 vdir 和 newdir 的文件的 inode 信息

image

用长格式列出目录 / usr/bin 目录下的所有文件,输出重新定向到文件 outXX(XX 为学生学号末两位),检查结果;用长格式列出目录 / etc 目录下的所有文件,输出结果补充到文件 outXX 末尾

image

用长格式列出 / usr/bin 目录下的所有文件,通过管道与 more 命令连接,实现对文件列表的浏览

image

>和 >> 有何区别?

答:> 是覆盖方式重定向到新的文件;>> 是以补充方式,添加到原文件的末尾。

通过管道和 more 命令,浏览文件列表方便在哪里?

答:对于文件列表超出一个屏幕显示的情况,这种方式可以分屏浏览,比较方便

3.2 文件打包和压缩命令

在 Windows 操作系统下,我们会使用 WinRAR 或者快压等等的压缩软件来进行压缩或者解压。

在 Linux 下当然也存在压缩或解压的操作咯,下面我们就来学习一下在 Linux 下是怎么压缩和解压的!

[站外图片上传中...(image-49f0f7-1562207882873)]

[站外图片上传中...(image-41e887-1562207882873)]

压缩的方式也是有好几种,我们常用的有下面这三种:

常用的压缩的命令就有:

常用的解压命令有:

3.3 正则表达式 + grep

上面我们已经学过了 cat、more、less、tail 这些查看文本文件的命令了,但是我想快速查看这个文本文件下的某些关键字是否存在,那怎么办???

在 Windows 下就比较简单的,几乎所有的文本编辑器 (记事本) 都支持 CTRL+F,往里面输入关键字就可查找出来:

image

那在 Linux 下,没有图形界面,没有 CTRL+F 的情况下,如果不懂一些命令的话,那还真是难找对应的字符出来。下面我就来说说如何快速查找一个文本文件下的某些字符

3.3.1 正则表达式

首先我们就来说说正则表达式,如果接触过的同学就知道:这玩意并不好记。一旦不用就很容易就忘记了,所以只能在用的时候查查了~~~ 所以下面我就直接给出一些规则了,不多说啦。

image image
3.3.2 grep 命令

grep(global search regular expression) 是一个强大的文本搜索工具。grep 使用正则表达式搜索文本,并把匹配的行打印出来。

格式:grep [options] PATTERN [FILE...]

例子:

用 grep 查找 / etc/passwd 文件中以 a 开头的行,要求显示行号;查找 / etc/passwd 文件中以 login 结束的行;

image

3.4 几种提高工作效率的方法

这里感觉要说说的就只有别名 alias 了,我们下面看看例子就懂了!

显示 shell 当前已经定义的别名;执行其中的两个定义别名的命令;定义一个别名 grep,要求其采用彩色方式显示结果

image image

3.5 Shell 变量 和 Shell 环境

在 Windows 下有用户的环境变量,系统的环境变量。在 Linux 一样也是有的。

image

Shell 变量大致可以分为三类

Shell 变量的作用域

export 命令

Shell 环境变量:

image

Shell 变量:查询、显示和取消

3.5.1 Shell 变量 和 Shell 环境练习题

定义 Shell 变量 stuXX(XX 为学生学号末两位),初值为学生姓名全拼,用 echo 命令显示 stuXX 变量的值;用 unset 命令取消 stuXX 变量,检查结果;用 env 命令观察当前有哪些已经定义好的 shell 环境变量

image image

Shell 环境变量的值是否可以修改?为什么?

答:环境变量的值一般情况下,可以修改。但一定要慎重修改,因为一旦修改错误,对 shell 正常运行造成严重影响,甚至导致 shell 无法运行。

四、VI 编辑器

相信没有用过 Linux 的同学在看一些段子的时候都会看到过两个编辑器:

下面我们学习如何简单使用 vi。vi 是 “Visual interface” 的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的

使用 Vi 来编辑文件:

image

Vi 有三种模式:

image

4.1 普通模式

4.2 插入模式

在 Normal 模式下输入插入命令 i、 a 、 o 进入 insert 模式。用户输入的任何字符都被 vim 当做文件内容保存起来,并将其显示在屏幕上。

4.3 命令行模式

Normal 模式下,用户按冒号 : 即可进入 Command 模式,此时 vim 会在显示窗口的最后一行 (屏幕的最后一行) 显示一个 “:” 作为 Command 模式的提示符,等待输入命令。

设置 Vi 环境:

4.4 Vi 练习题

在用户主目录下,执行 vi 程序,编辑文件 install.log;移动光标到第 10 行,第五个字符;按大写字母 G,达到文件末尾;不存盘退出;

image image

在用户主目录下,执行 vi 程序,编辑文件 install.log;用 / 命令查找字符串 sudo,复制包含字符串 sudo 的行

image

在用户主目录下,执行 vi 程序,编辑文件 install.log;进入命令模式,设置显示行号;用?命令查找字符串 openssh,用命令 n 查找下一个

image image

四、总结

本文主要讲解了 Linux 的最基础的知识,可以简单地操作 Linux 了。命令可以说是学不完的,只能是记住 Linux 是有这个功能,到时候去网上查查也很方便。

主要是多练、多玩就可以记住一些常用的 Linux 命令了~~~~

最后为大家准备了一些 Linux 的学习教程,希望可以帮助到大家。

Java知己

关注公众号:「Java知己」,发送「Linux」,免费领取最全面系统Linux视频教程。​与 10 万程序员一起进步。每天更新Java知识哦,期待你的到来!

Java知己 每日福利
上一篇 下一篇

猜你喜欢

热点阅读