做广告在哪个网站做效果人流最多,wordpress cloudfront,网站降权怎么办,厦门市建设工程造价网只有光头才能变强这个学期开了Linux的课程了#xff0c;授课的老师也是比较负责任的一位。总的来说也算是比较系统地学习了一下Linux了~~~
本文章主要是总结Linux的基础操作以及一些简单的概念~如果不熟悉的同学可下个Linux来玩玩(或者去买一个服务器玩玩【学生版的不是很贵】…只有光头才能变强这个学期开了Linux的课程了授课的老师也是比较负责任的一位。总的来说也算是比较系统地学习了一下Linux了~~~
本文章主要是总结Linux的基础操作以及一些简单的概念~如果不熟悉的同学可下个Linux来玩玩(或者去买一个服务器玩玩【学生版的不是很贵】)对于开发者来说能使用Linux做一些基本的操作是必要的
那么接下来就开始吧当然了我的Linux仅仅是入门水平如果有错的地方还需请大家多多包涵并不吝在评论区指出错误~
一、为什么我们要学习Linux
相信大部分人的PC端都是用Windows系统的那我们为什么要学习Linux这个操作系统呢Windows图形化界面做得这么好日常基本使用的话学习成本几乎为零。
而Linux不一样可能刚接触Linux的人会认为Linux好麻烦哦不好玩都是字符界面。不直观、这个破系统是用来干嘛的~~
日常用的话Windows是比较顺手的但是我们要知道的是我们开发出来的程序一般都是放在Linux下运行的。
那可能就会有人提出疑问了Windows同样是操作系统为啥要放在Linux下而不放在Windows下呢相信Windows也是可以运行我们写出来的程序的。
我总结了Linux的几个优点
免费很多软件原生是在Linux下运行的庞大的社区支持生态环境好。开源可被定制开放多用户的网络操作系统。相对安全稳定
参考资料
www.zhihu.com/question/19…
所以开发者选择了Linux来跑我们自己写出来的程序。
二、Linux的基础知识
Linux系统的组成
linux内核linus 团队管理shell用户与内核交互的接口文件系统ext3、ext4等。windows 有 fat32 、ntfs第三方应用软件
2.1Shell的基本知识
除了Shell、其他的都应该挺好懂的那么Shell是什么东西呢
Shell是系统的用户界面提供了用户与内核进行交互操作的一种接口(命令解释器)Shell可以执行
内部命令应用程序shell脚本使用type命令可以区分内部命令和外部命令
于是乎我们利用Shell就可以干下面这些事了
命令行解释(这是用得最多的)命令的多种执行顺序通配符 wild-card characters 命令补全、别名机制、命令历史I/O重定向 Input/output redirection 管道 pipes 命令替换 或$( ) Shell编程语言 Shell Script
Shell的主要版本有以下这么多
我们常用(默认)的就是bash(bourne again shell)使用ps命令观察正在执行的shell2.2Linux基本目录结构
在Windows下会有基本的目录结构的Linux下也不例外了也是有基本的目录结构的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是区分大小写的
一般来说后面跟的选项如果单字符选项前使用一个减号-。单词选项前使用两个减号--
这是一般的情况有些命令还是不归属这种规律的(相对较少)~~~例子ls -a和ls -alla 单个字符使用一个-一个单词all 使用两个--
在Linux中可执行的文件也进行了分类
内置命令出于效率的考虑将一些常用命令的解释程序构造在Shell内部。外置命令存放在/bin、/sbin目录下的命令实用程序存放在/usr/bin、/usr/sbin、/usr/share、/usr/local/bin等目录下的实用程序用户程序用户程序经过编译生成可执行文件后可作为Shell命令运行Shell脚本由Shell语言编写的批处理文件可作为Shell命令运行
2.4通配符
学过一些正则表达式的或者有点基础的同学对通配符应该就不陌生的了在Linux也有通配符(在搜索的时候挺有用的)
*匹配任何字符和任何数目的字符?匹配单一数目的任何字符[ ]匹配[ ]之内的任意一个字符[! ]匹配除了[! ]之外的任意一个字符!表示非的意思
2.5文件的类型
在Linux下文件的类型有这么多
普通文件-目录d符号链接 l硬链接 与普通文件没什么不同inode 都指向同一个文件在硬盘中的区块软链接 保存了其代表的文件的绝对路径是另外一种文件在硬盘上有独立的区块访问时替换自身路径(简单地理解为 Windows 中常见的快捷方式)。字符设备文件 c块设备文件b套接字s命名管道p
我们常见的就是普通文件目录和符号链接。其他的了解一下即可~
符号链接参考资料
www.jianshu.com/p/dde6a01c4…
2.5.1用户主目录
可能在网上查阅资料的时候会出现用户主目录这么一个名词那他是什么呢
前面已经说了我们的Linux是多用户的网络系统所以我们可以在Linux下创建多个用户每个用户都会有自己专属的空间。
所以在创建用户时系统管理员会给每个用户建立一个主目录通常在/home/目录下比如用户osmond的主目录为/home/osmond
用户对自己主目录的文件拥有所有权可以在自己的主目录下进行相关操作。
三、常用的命令
上面说了一堆的基础概念这是给我们敲命令之前打了一点基础在敲命令的同时也会遇到一些比较重要的知识点的。那就到时候再说说了~~~
3.1常用的文件、目录操作命令
这是我们使用得最多的命令了Linux最基础的命令
可用 pwd命令查看用户的当前目录可用 cd 命令来切换目录.表示当前目录.. 表示当前目录的上一级目录父目录-表示用 cd 命令切换目录前所在的目录~ 表示用户主目录的绝对路径名
绝对路径
以斜线/开头 描述到文件位置的完整说明 任何时候你想指定文件名的时候都可以使用
相对路径
不以斜线/开头 指定相对于你的当前工作目录而言的位置 可以被用作指定文件名的简捷方式
tips:输入命令的时候要常用tab键来补全
ls显示文件或目录信息mkdir当前目录下创建一个空目录rmdir要求目录为空touch生成一个空文件或更改文件的时间cp复制文件或目录mv移动文件或目录、文件或目录改名rm删除文件或目录ln建立链接文件find查找文件file/stat查看文件类型或文件属性信息cat查看文本文件内容more可以分页看less不仅可以分页还可以方便地搜索回翻等操作tail -10 查看文件的尾部的10行head -20查看文件的头部20行echo把内容重定向到指定的文件中 有则打开无则创建管道命令 | 将前面的结果给后面的命令例如ls -la | wc将ls的结果加油wc命令来统计字数重定向 是覆盖模式 是追加模式例如echo Java3y,zhen de hen xihuan ni qingshu.txt把左边的输出放到右边的文件里去
学了这些命令我们能干嘛其实就是在Windows下复制文件、粘贴文件、创建文件、查看文件这几种~~~
3.1.1常用的文件、目录操作练习题
巩固一下基础来做做题目
1Linux的shell程序默认是bash 程序2Linux命令格式包含三个部分分别是 命令 、 选项 、 参数 3Linux命令选项前为单个减号-后面一般为 单字符 选项前为双减号--后面一般为 单词4Linux命令中使用的通配符有 * [] 5命令 ls /usr/bin/w* 的效果是 列出指定目录下的所有以w开头的文件或目录 6命令 ls /usr/bin/w?? 的效果是 列出指定目录下的以w开头名称长度为3的所有文件或目录 7命令 ls /usr/bin/[xyz]* 的效果是 列出指定目录下的文件名以x或y或z开头的所有文件或目录 8命令 ls /usr/bin/[!a-h]* 的效果是 列出指定目录下的文件名不以a到h区间字母开头的所有文件或目录 9目录操作时“.” 表示 当前目录 10目录操作时“..” 表示 上一级目录 11目录操作时“-” 表示 上一次工作目录 12目录操作时“~” 表示 用户主目录 13命令ln可以建立文件链接这种链接分为 硬链接 和 软链接 14命令touch可以改变文件的三种时间分别是 access time 、 modify time 、 change time
进入/tmp目录建立一个文件goldXXXX为学号的末两位查看文件的时间在账户的主目录中建立一个dog目录进入dog目录后建立一个catXXXX为学号的末两位目录,进入catXX目录显示当前目录然后返回上一级目录删除catXX目录复制/etc/passwd文件到账户主目录修改账户主目录下passwd为passwdXXXX为学号的末两位查找文件名叫做zcat的文件复制该文件到/tmp目录用长格式列出该文件然后删除/tmp目录下的所有文件并检查文件是否已被删除复制/etc/hosts文件到账户主目录下在账户主目录中建立一个硬链接文件文件名为hostsYYYYYY为学生姓名拼音缩写链接到主目录下的hosts文件分别查看hosts和hostsYYY的文件的inode信息复制/usr/bin/vdir文件到账户主目录下在账户主目录中建立一个软链接文件文件名为newdir链接到主目录下的vdir文件分别查看vdir和newdir的文件的inode信息用长格式列出目录/usr/bin目录下的所有文件输出重新定向到文件outXXXX为学生学号末两位检查结果用长格式列出目录/etc目录下的所有文件输出结果补充到文件outXX末尾用长格式列出/usr/bin目录下的所有文件通过管道与more命令连接实现对文件列表的浏览和有何区别答是覆盖方式重定向到新的文件是以补充方式添加到原文件的末尾。
通过管道和more命令浏览文件列表方便在哪里答对于文件列表超出一个屏幕显示的情况这种方式可以分屏浏览比较方便。
3.2文件打包和压缩命令
在Windows操作系统下我们会使用WinRAR或者快压等等的压缩软件来进行压缩或者解压。
在Linux下当然也存在压缩或解压的操作咯下面我们就来学习一下在Linux下是怎么压缩和解压的压缩的方式也是有好几种我们常用的有下面这三种
gzipbzip2tar
常用的压缩的命令就有
gzip filenamebzip2 filenametar -czvf filename
常用的解压命令有
gzip -d filename.gzbzip2 -d filename.bz2tar -xzvf filename.tar.gz
3.3正则表达式grep
上面我们已经学过了cat、more、less、tail这些查看文本文件的命令了但是我想快速查看这个文本文件下的某些关键字是否存在那怎么办
在Windows下就比较简单的几乎所有的文本编辑器(记事本)都支持CTRLF往里面输入关键字就可查找出来那在Linux下没有图形界面没有CTRLF的情况下如果不懂一些命令的话那还真是难找对应的字符出来。下面我就来说说如何快速查找一个文本文件下的某些字符。
3.3.1正则表达式
首先我们就来说说正则表达式如果接触过的同学就知道这玩意并不好记。一旦不用就很容易就忘记了所以只能在用的时候查查了~~~所以下面我就直接给出一些规则了不多说啦。3.3.2grep命令
grep(global search regular expression)是一个强大的文本搜索工具。grep 使用正则表达式搜索文本并把匹配的行打印出来。
格式grep [options] PATTERN [FILE...]
PATTERN 是查找条件可以是普通字符串、可以是正则表达式通常用单引号将RE括起来。FILE 是要查找的文件可以是用空格间隔的多个文件也可是使用Shell的通配符在多个文件中查找PATTERN省略时表示在标准输入中查找。grep命令不会对输入文件进行任何修改或影响可以使用输出重定向将结果存为文件
例子
在文件 myfile 中查找包含字符串 mystr的行grep -n mystr myfile 显示 myfile 中第一个字符为字母的所有行grep ^[a-zA-Z] myfile 在文件 myfile 中查找首字符不是 # 的行即过滤掉注释行grep -v ^# myfile 列出/etc目录包括子目录下所有文件内容中包含字符串“root”的文件名grep -lr root /etc/*用grep查找/etc/passwd文件中以a开头的行要求显示行号查找/etc/passwd文件中以login结束的行3.4几种提高工作效率的方法
自动补全命令TAB键历史命令上下箭头键别名alias
这里感觉要说说的就只有别名alias了我们下面看看例子就懂了
显示shell当前已经定义的别名执行其中的两个定义别名的命令定义一个别名grep要求其采用彩色方式显示结果3.5Shell变量 和 Shell环境
在Windows下有用户的环境变量系统的环境变量。在Linux一样也是有的。Shell 变量大致可以分为三类
内部变量由系统提供用户只能使用不能修改。?GROUPS环境变量这些变量决定了用户工作的环境它们不需要用户去定义可以直接在 shell 中使用其中某些变量用户可以修改。用户变量由用户建立和修改在 shell 脚本编写中会经常用到。变量赋值定义变量varNameValueexport varNameValue 引用变量$varName Shell变量的作用域
局部变量的作用范围仅仅限制在其命令行所在的Shell或Shell脚本文件中全局变量的作用范围则包括本Shell进程及其所有子进程。局部变量与全局变量互换可以使用 export 内置命令将局部变量设置为全局变量。 可以使用 export 内置命令将全局变量设置为局部变量。
export命令
显示当前Shell可见的全局变量export [-p] 定义变量值的同时声明为全局变量。export 变量名1值1 [变量名2值2 ...] 声明已经赋值的某个些局部变量为全局变量。export 变量名1 [变量名2 ...] 声明已经赋值的某个些全局变量为局部变量。export -n 变量名1 [变量名2 ...] Shell环境变量
环境变量定义 Shell 的运行环境保证 Shell 命令的正确执行。Shell用环境变量来确定查找路径、注册目录、终端类型、终端名称、用户名等。所有环境变量都是全局变量即可以传递给 Shell 的子进程并可以由用户重新设置。Shell变量查询、显示和取消
显示当前已经定义的所有变量所有环境变量env所有变量和函数包括环境变量 set 显示某些个变量的值echo $NAME1 [$NAME2 ……] 取消变量的声明或赋值unset NAME3.5.1Shell变量 和 Shell环境练习题
定义Shell变量stuXXXX为学生学号末两位初值为学生姓名全拼用echo命令显示stuXX变量的值用unset命令取消stuXX变量检查结果用env命令观察当前有哪些已经定义好的shell环境变量Shell环境变量的值是否可以修改为什么答环境变量的值一般情况下可以修改。但一定要慎重修改因为一旦修改错误对shell正常运行造成严重影响甚至导致shell无法运行。
四、VI编辑器
相信没有用过Linux的同学在看一些段子的时候都会看到过两个编辑器
vimemacs
下面我们学习如何简单使用vi。vi 是 “Visual interface” 的简称它可以执行输出、删除、查找、替换、块操作等众多文本操作而且用户可以根据自己的需要对其进行定制这是其他编辑程序所没有的。
vi可以看做成我们Windows下的记事本vim 即 Vi IMprovedvi 克隆版本之一
使用Vi来编辑文件Vi有三种模式4.1普通模式
G用于直接跳转到文件尾ZZ用于存盘退出ViZQ用于不存盘退出Vi/和用于查找字符串n继续查找下一个yy复制一行p粘帖在下一行P粘贴在前一行dd删除一行文本x删除光标所在的字符u取消上一次编辑操作undo
4.2插入模式
在 Normal 模式下输入插入命令 i、 a 、 o进入insert模式。用户输入的任何字符都被vim当做文件内容保存起来并将其显示在屏幕上。
在文本输入过程中若想回到Normal模式下按 Esc 键即可。
4.3命令行模式
Normal 模式下用户按冒号 :即可进入 Command 模式此时 vim 会在显示窗口的最后一行 (屏幕的最后一行) 显示一个 “:” 作为 Command 模式的提示符等待输入命令。
:w 保存当前编辑文件但并不退出:w newfile 存为另外一个名为 “newfile” 的文件:wq 用于存盘退出Vi:q! 用于不存盘退出Vi:q用于直接退出Vi 未做修改
设置Vi环境:
:set autoindent 缩进,常用于程序的编写:set noautoindent 取消缩进:set number 在编辑文件时显示行号:set nonumber 不显示行号:set tabstopvalue 设置显示制表符的空格字符个数:set 显示设置的所有选项:set all 显示所有可以设置的选项
4.4Vi练习题
在用户主目录下执行vi程序编辑文件install.log移动光标到第10行第五个字符按大写字母G达到文件末尾不存盘退出在用户主目录下执行vi程序编辑文件install.log用/命令查找字符串sudo复制包含字符串sudo的行在用户主目录下执行vi程序编辑文件install.log进入命令模式设置显示行号用命令查找字符串openssh用命令n查找下一个四、总结
本文主要讲解了Linux的最基础的知识可以简单地操作Linux了。命令可以说是学不完的只能是记住Linux是有这个功能到时候去网上查查也很方便。
主要是多练、多玩就可以记住一些常用的Linux命令了~~~~
下面我就花点时间画个Linux命令的脑图(当然了命令仅限于是本文章的知识点等写到用户、网络等知识点的时候再继续补充上去)如果文章有错的地方欢迎指正大家互相交流。习惯在微信看技术文章想要获取更多的Java资源的同学可以关注微信公众号:Java3y文章的目录导航
zhongfucheng.bitcron.com/post/shou-j…
发布于 2018-05-13「真诚赞赏手留余香」赞赏12 人已赞赏LinuxJavaCentOS赞同 2.3K39 条评论分享收藏赞同 2.3K分享