本文章主要是总结Linux的基础操作以及一些简单的概念,对于开发者来说,能使用Linux做一些基本的操作是必要的。作者:Java3y;来源:segmentfault

一、为什么我们要学习Linux

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

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

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

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

我总结了Linux的几个优点

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

参考资料:

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

二、Linux的基础知识

Linux系统的组成

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

2.1Shell的基本知识

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

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

Shell可以执行:

linux的入门介绍(看完这篇Linux基本的操作就会了)(1)

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

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

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

linux的入门介绍(看完这篇Linux基本的操作就会了)(2)

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

linux的入门介绍(看完这篇Linux基本的操作就会了)(3)

2.2Linux基本目录结构

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

linux的入门介绍(看完这篇Linux基本的操作就会了)(4)

linux的入门介绍(看完这篇Linux基本的操作就会了)(5)

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

linux的入门介绍(看完这篇Linux基本的操作就会了)(6)

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

  • bin 存放二进制可执行文件(ls,cat,mkdir等)
  • boot 存放用于系统引导时使用的各种文件
  • dev 用于存放设备文件
  • etc 存放系统配置文件
  • home 存放所有用户文件的根目录
  • lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
  • mnt 系统管理员安装临时文件系统的安装点
  • opt 额外安装的可选应用程序包所放置的位置
  • proc 虚拟文件系统,存放当前内存的映射
  • root 超级用户目录
  • sbin 存放二进制可执行文件,只有root才能访问
  • tmp 用于存放各种临时文件
  • usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
  • var 用于存放运行时需要改变数据的文件
  • 2.3命令基本格式

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

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

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

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

    2.4通配符

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

    2.5文件的类型

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

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

    符号链接参考资料:

    2.5.1用户主目录

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

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

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

    三、常用的命令

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

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

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

    绝对路径:

    相对路径 :

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

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

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

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

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(7)

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(8)

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(9)

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(10)

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(11)

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(12)

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(13)

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(14)

    >和>>有何区别?

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

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

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

    3.2文件打包和压缩命令

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

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(15)

    linux的入门介绍(看完这篇Linux基本的操作就会了)(16)

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

    常用的压缩的命令就有:

    常用的解压命令有:

    3.3正则表达式 grep

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

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(17)

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

    3.3.1正则表达式

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(18)

    linux的入门介绍(看完这篇Linux基本的操作就会了)(19)

    3.3.2grep命令

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

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

    例子:

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(20)

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

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

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(21)

    linux的入门介绍(看完这篇Linux基本的操作就会了)(22)

    3.5Shell变量 和 Shell环境

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(23)

    Shell 变量大致可以分为三类

    Shell变量的作用域

    export命令

    Shell环境变量:

    linux的入门介绍(看完这篇Linux基本的操作就会了)(24)

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

    3.5.1Shell变量 和 Shell环境练习题

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(25)

    linux的入门介绍(看完这篇Linux基本的操作就会了)(26)

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

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

    四、VI编辑器

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

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

    使用Vi来编辑文件:

    linux的入门介绍(看完这篇Linux基本的操作就会了)(27)

    Vi有三种模式:

    linux的入门介绍(看完这篇Linux基本的操作就会了)(28)

    4.1普通模式

    4.2插入模式

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

    4.3命令行模式

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

    设置Vi环境:

    4.4Vi练习题

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(29)

    linux的入门介绍(看完这篇Linux基本的操作就会了)(30)

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(31)

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

    linux的入门介绍(看完这篇Linux基本的操作就会了)(32)

    linux的入门介绍(看完这篇Linux基本的操作就会了)(33)

    四、总结

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

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

    ,