阅读本文后,您将能够学习基本的Linux操作。总的来说,我系统地学习过Linux~~~本文主要总结了Linux的基本操作和一些简单的概念~不熟悉的可以下载Linux玩(或者买个服务器玩【学生版没有非常昂贵]),对于开发者来说,能够使用Linux做一些基本的操作是很有必要的!那我们开始吧。当然,我的Linux只是入门级的。如有错误,还请大家多多包涵,错误之处请在评论区指出~1、我们为什么要学习Linux?相信大部分人的PC终端都使用的是Windows系统,那我们为什么要学习Linux操作系统呢???Windows图形界面太好了,基本的日常使用学习成本几乎为零。但Linux不同。刚接触linux的人可能会觉得:linux好麻烦,不好玩,全是字符界面。不直观,这个破系统是干什么用的~~Windows日常使用起来比较方便,但是我们需要知道的是:我们开发的程序一般都是在Linux下运行的。那么可能会有人提出疑问:Windows也是操作系统,为什么要放在Linux下而不是Windows下呢??我相信Windows也能运行我们写的程序。我总结了Linux的几个优点:免费、Linux下原生运行的软件多、庞大的社区支持、良好的生态环境。开源、可定制、开放、多用户网络操作系统。比较安全稳定的参考资料:https://www.zhihu.com/question/19738282所以开发者选择了Linux来运行我们自己写的程序。2、Linux基础知识Linux系统的组成:linux内核(linus团队管理)shell:用户与内核交互的接口文件系统:ext3、ext4等。Windows有fat32和ntfs的第三方应用软件2.1Shell的基础知识除了Shell外很容易理解。那么壳牌是什么???Shell是系统的用户界面,为用户提供与内核交互的接口(命令解释器)。Shell可以执行:内部命令,应用shell脚本,使用type命令区分内部命令和外部命令。因此,我们使用Shell可以做以下事情:命令行解释(这个是用的最多的!)多重执行顺序通配符(wild-cardcharacters)命令补全,别名机制,命令历史I/O重定向(Input/output重定向)管道(pipes)命令替换(或$())Shell编程语言(ShellScript)Shell的主要版本有很多:我们常用的(默认)是bash(bourneagainshell)使用ps命令观察执行Windows下的shell2.2Linux基本目录结构,会有一个基本目录结构:Linux也不例外,也有一个基本目录结构:Linux文件系统是目录树结构,文件系统结构从根目录开始,根目录下可以有任意数量的文件和子目录,子目录下可以有任意数量的文件和子目录。bin存放二进制可执行文件(ls、cat、mkdir等)boot存放用于系统启动的文件各种文件dev用于存放设备文件等存放系统配置文件home存放所有用户文件的根目录lib存放共享库以及文件系统中运行程序所需的内核模块mnt系统管理员安装临时文件系统的安装点opt附加安装可选应用程序包的位置放置proc虚拟文件系统,存放当前内存根超级用户目录的映射sbin存放二进制可执行文件,只有root可以访问tmp用来存放各种临时文件usr用来存放系统应用,比较重要的目录/usr/local本地管理员软件安装目录var用来存放需要更改的文件操作2.3命令基本格式cmd[options][arguments]options称为options,arguments称为parametersoptions和parameters都是Shell命令执行时的输入,用空格隔开。Linux区分大小写。一般来说,如果选项后面跟一个单字符选项,前面加一个减号-。在单词option前使用两个减号--这是一般情况,有些命令还是不属于这个规则的(比较少)~~~例如:ls-a和ls-all,单个字符用一个-,Onewordall使用两种——在Linux中,可执行文件也有分类:内置命令:出于效率考虑,将一些常用命令的解释器构建在Shell内部。外部命令:存放在/bin、/sbin目录下的命令实用程序:存放在/usr/bin、/usr/sbin、/usr/share、/usr/local/bin等目录下的实用程序用户程序:用户程序之后编译生成可执行文件,可以作为shell命令来运行shell脚本:用shell语言编写的批处理文件,可以作为shell命令来运行不陌生,linux中也有通配符(很搜索时有用)*:匹配任意字符和任意数量的字符?:匹配任意字符和单个数字[]:匹配[]内的任意字符[!]:匹配除[!],!表示无意义2.5文件类型Linux下的文件类型有很多种:普通文件-目录d符号链接l硬链接:和普通文件没什么区别,inode都指向目录中同一个文件的块软链接硬盘:保存它所代表的文件的绝对路径,它是另一种文件,在硬盘上有一个独立的块,访问时替换自己的路径(简单理解为Windows常用的快捷方式)。字符设备文件c块设备文件b套接字s命名管道p我们常见的有普通文件、目录和符号链接。了解其他的~符号链接参考:https://www.jianshu.com/p/dde6a01c40942.5.1上网查资料时可能会出现用户主目录。它是什么?羊毛布???前面说过,我们的Linux是一个多用户的网络系统!因此,我们可以在Linux下创建多个用户,每个用户都会有自己的专属空间。因此,在创建用户时,系统管理员会为每个用户创建一个home目录,一般在/home/目录下。例如:用户osmond的家目录为:/home/osmond用户对其家目录下的文件拥有所有权,可以在自己的家目录下进行相关操作。3.常用命令上面说了一堆基本概念。这是给我们打命令前打下一点基础。在敲命令的同时,我们也会遇到一些比较重要的知识点。那我到时候再说吧~~~3.1常用的文件和目录操作命令这是我们用的最多的命令,也是Linux最基本的命令!pwd命令可以用来查看用户当前目录,cd命令可以用来切换目录。表示当前目录..表示当前目录的上一级目录(父目录)-表示使用cd命令之前切换目录的目录~表示用户家目录的绝对值路径名绝对路径:以...开头一个斜杠(/),描述完整的描述文件位置,任何时候你想指定一个文件名,你可以使用相对路径:不要以斜杠(/)开头,指定相对于你的位置而言当前工作目录的of可以作为指定文件名的快捷方式tips:输入命令时,使用tab键补全ls:显示文件或目录信息mkdir:在当前目录下创建一个空目录rmdir:需要的目录isemptytouch:生成空文件或更改文件时cp:复制文件或目录mv:移动文件或目录,重命名文件或目录rm:删除文件或目录ln:创建链接文件find:查找文件file/stat:查看文件类型或文件属性信息cat:查看文本文件内容more:可以分页查看less:不仅可以分页分页,还可以方便的搜索,回头等操作tail-10:查看文件末尾10行head-20:查看文件前20行echo:将内容重定向到指定文件,有则打开,有则创建管道没有命令|:将之前的结果交给以下命令,例如:ls-la|来wc命令统计字数Redirect>是overwrite模式,>>是append模式,例如:echo"Java3y,zhendehenxihuanni">qingshu.txt把左边的输出放到右边的文件中学习这些命令我们能做什么?其实就是Windows下的复制文件、粘贴文件、创建文件、查看文件~~~3.1.1常用的文件和目录操作练习,巩固基础,做题:(1)默认的shell程序Linux是一个bash程序;(2)Linux命令格式包括三部分,即:命令、选项、参数;(3)Linux命令选项前面是一个单减号(-),后面是一个单字符,选项前是一个双减号数字(--),后面是单词;(4)Linux命令中使用的通配符有哪些?*[];(5)命令ls/usr/bin/w*的作用是列出指定目录下所有以w开头的文件或目录;(6)命令ls/usr/bin/w??的效果是列出指定目录下名称长度为3的所有以w开头的文件或目录;)命令ls/usr/bin/[xyz]*的作用是列出指定目录下所有文件名以x或y或z开头的文件或目录;(8)命令ls/usr/bin/[!a-h]*的作用是列出指定目录下所有文件名不以a到h范围内的字母开头的文件或目录;(9)操作目录时,“.”表示当前目录;(10)操作目录时,“..”表示上一级目录;(11)目录操作时,“-”表示最后一个工作目录;(12)目录操作时,“~”表示用户主目录;(13)命令ln可以建立文件链接,这种链接分为:硬链接和软链接;(14)命令touch可以改变文件的三个时间,即:访问时间、修改时间、更改时间;进入/tmp目录,创建一个文件,goldXX(XX是学号学号最后两位),查看文件的时候在账号主目录下,创建一个dog目录,进入后dog目录,新建catXX(XX为学号后两位)目录,进入catXX目录,显示当前目录;然后回到上级目录,删除catXX目录;将/etc/passwd文件复制到账户主目录下,将账户主目录下的passwd修改为passwdXX(XX为学号后两位),找到一个名为zcat的文件;复制文件到/tmp目录;以长格式列出文件;然后删除/tmp目录下的所有文件,并检查文件是否被删除将/etc/hosts文件复制到账户主目录下;在主目录下创建账号硬链接文件(文件名为hostsYYY(YYY是学生姓名的拼音缩写)),链接到主目录下的hosts文件;分别查看hosts和hostsYYY中文件的inode信息,将/usr/bin/vdir文件复制到账户主目录下;在账户主目录下创建一个软链接文件(命名为newdir)链接到主目录中的vdir文件;分别查看vdir和newdir文件的inode信息,并以long格式列出目录/usr/bin中的所有文件,输出重定向到文件outXX(XX为学号后两位),查看结果;以长格式列出目的地记录/etc目录下的所有文件,将输出结果添加到文件outXX的末尾,以长格式列出/usr/bin目录下的所有文件,通过管道连接more命令实现浏览文件列表的>和>>有什么区别?区别?答:>是覆盖重定向到新文件;>>是通过管道和more命令添加到原文件的末尾。浏览文件列表方便在哪里?答:对于文件列表超过一屏的情况,该方法可以分屏浏览,更方便。3.2文件打包和压缩命令在Windows操作系统下,我们会使用WinRAR或快子等压缩软件进行压缩或解压。当然,Linux下还有压缩或者解压操作。下面就来学习一下如何在Linux下进行压缩和解压吧!压缩方式也有几种,我们常用的有以下三种:gzipbzip2tar常用的压缩命令有:gzipfilenamebzip2filenametar-czvffilename常用的解压命令有:gzip-dfilename.gzbzip2-dfilename.bz2tar-xzvffilename.tar.gz3.3regularexpression+grep我们已经学会了cat、more、less、tail查看文本文件的命令,但是我想快速查看这个文本文件中的某些关键字是否存在,怎么办???Windows下比较简单。几乎所有的文本编辑器(记事本)都支持CTRL+F,在里面输入关键字就可以找到:Linux下没有图形界面,也没有CTRL+F,有些命令如果不懂,真的很难找到对应的字符。先说说如何快速查找文本文件中的某些字符。3.3.1正则表达式首先,让我们谈谈正则表达式。如果你和学生接触过,你就会知道:这东西不好记。一旦不用了,很容易忘记,所以只能等用到的时候翻翻看~~~所以下面直接给出一些规则,就不多说了。3.3.2grep命令grep(全局搜索正则表达式)是一个强大的文本搜索工具。grep使用正则表达式搜索文本并打印匹配的行。格式:grep[options]PATTERN[FILE...]PATTERN为搜索条件:可以是普通字符串,也可以是正则表达式,通常RE用单引号括起来。FILE是要查找的文件,可以是多个文件,用空格隔开,也可以用shell通配符在多个文件中查找PATTERN。省略时表示在标准输入中搜索。grep命令不会修改或影响输入文件,可以使用输出重定向将结果保存为文件示例:在文件myfile中查找包含字符串mystr的行grep-nmystrmyfile显示myfile中的第一个字符是一个字母grep'^[a-zA-Z]'myfile的所有行在文件myfile中查找第一个字符不是#的行(即过滤掉注释行)grep-v'^#'myfile列出了/etc目录(包括子目录)所有文件内容中包含字符串“root”的文件名grep-lrroot/etc/*使用grep查找/etc/passwd文件中以a开头的行,必填显示行号;查找/etc/passwd文件中以login结尾的行;3.4提高工作效率的几种方法自动补全命令TAB键历史命令上下方向键aliasalias在这里我觉得唯一要说的就是alias别名了,看下面的例子就明白了!显示shell当前定义的别名;执行两个定义别名的命令;定义一个别名grep,要求用彩色显示结果3.5Shell变量和Shell环境Windows下有用户环境变量和系统环境变量。Linux中也有一些。Shell变量大致可以分为三类:内部变量:由系统提供,用户只能使用,不能修改。?GROUPS环境变量:这些变量决定了用户的工作环境。它们不需要用户定义,可以直接在shell中使用。一些变量可以由用户修改。用户变量:由用户创建和修改,常用于shell脚本。变量赋值(定义变量)varName=ValueexportvarName=Value指的是变量$varNameshell变量的作用域:局部变量的作用域只限于其命令行所在的shell或shell脚本文件;全局变量的范围包括本Shell进程及其所有子进程。局部变量可与全局变量互换:您可以使用export内置命令将局部变量设置为全局变量。可以使用export内置命令使全局变量成为本地变量。export命令:显示当前shell可见的全局变量。export[-p]定义变量值并将其声明为全局变量。export
