只有光头才能变强node
这个学期开了Linux的课程了,授课的老师也是比较负责任的一位。总的来讲也算是比较系统地学习了一下Linux了~~~linux
本文章主要是总结Linux的基础操做以及一些简单的概念~若是不熟悉的同窗可下个Linux来玩玩(或者去买一个服务器玩玩【学生版的不是很贵】),对于开发者来讲,能使用Linux作一些基本的操做是必要的!正则表达式
那么接下来就开始吧,固然了个人Linux仅仅是入门水平,若是有错的地方还需请你们多多包涵,并不吝在评论区指出错误~shell
相信大部分人的PC端都是用Windows系统的,那咱们为何要学习Linux这个操做系统呢???Windows图形化界面作得这么好,平常基本使用的话,学习成本几乎为零。express
而Linux不同,可能刚接触Linux的人会认为:Linux好麻烦哦,很差玩,都是字符界面。不直观、这个破系统是用来干吗的~~编程
平常用的话Windows是比较顺手的,可是咱们要知道的是:咱们开发出来的程序通常都是放在Linux下运行的。vim
那可能就会有人提出疑问了:Windows一样是操做系统,为啥要放在Linux下,而不放在Windows下呢??相信Windows也是能够运行咱们写出来的程序的。windows
我总结了Linux的几个优势:安全
参考资料:bash
因此开发者选择了Linux来跑咱们本身写出来的程序。
Linux系统的组成:
除了Shell、其余的都应该挺好懂的,那么Shell是什么东西呢???
Shell是系统的用户界面,提供了用户与内核进行交互操做的一种接口(命令解释器)
Shell能够执行:
使用type
命令能够区分内部命令和外部命令
因而乎,咱们利用Shell就能够干下面这些事了:
Shell的主要版本有如下这么多:
使用ps
命令观察正在执行的shell
在Windows下,会有基本的目录结构的:
Linux下也不例外了,也是有基本的目录结构的:
Linux 文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下能够有任意多个文件和子目录,子目录中又能够有任意多个文件和子目录
cmd [options] [arguments]
,options称为选项,arguments称为参数
选项和参数都做为Shell命令执行时的输入,它们之间用空格分隔开。
通常来讲,后面跟的选项若是单字符选项前使用一个减号-
。单词选项前使用两个减号--
ls -a
和ls -all
,a
单个字符使用一个-
,一个单词all
使用两个--
在Linux中,可执行的文件也进行了分类:
学过一些正则表达式的或者有点基础的同窗对通配符应该就不陌生的了,在Linux也有通配符(在搜索的时候挺有用的)
在Linux下文件的类型有这么多:
-
d
l
c
b
s
p
咱们常见的就是普通文件,目录和符号连接。其余的了解一下便可~
符号连接参考资料:
可能在网上查阅资料的时候会出现用户主目录这么一个名词,那他是什么呢???
前面已经说了,咱们的Linux是多用户的网络系统!因此,咱们能够在Linux下建立多个用户,每一个用户都会有本身专属的空间。
/home/
目录下/home/osmond
用户对本身主目录的文件拥有全部权,能够在本身的主目录下进行相关操做。
上面说了一堆的基础概念,这是给咱们敲命令以前打了一点基础,在敲命令的同时也会遇到一些比较重要的知识点的。那就到时候再说说了~~~
这是咱们使用得最多的命令了,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下复制文件、粘贴文件、建立文件、查看文件这几种~~~
巩固一下基础,来作作题目:
bash 程序
;命令
、 选项
、 参数
;单字符
,选项前为双减号(--),后面通常为 单词
;? * []
;列出指定目录下的全部以w开头的文件或目录
;列出指定目录下的以w开头名称长度为3的全部文件或目录
;列出指定目录下的文件名以x或y或z开头的全部文件或目录
;列出指定目录下的文件名不以a到h区间字母开头的全部文件或目录
;当前目录
;上一级目录
;上一次工做目录
;用户主目录
;硬连接
和 软连接
;access time
、 modify time
、 change time
;进入/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信息
用长格式列出目录/usr/bin目录下的全部文件,输出从新定向到文件outXX(XX为学生学号末两位),检查结果;用长格式列出目录/etc目录下的全部文件,输出结果补充到文件outXX末尾
用长格式列出/usr/bin目录下的全部文件,经过管道与more命令链接,实现对文件列表的浏览
>和>>
有何区别?
答:>
是覆盖方式重定向到新的文件;>>
是以补充方式,添加到原文件的末尾。
经过管道和more命令,浏览文件列表方便在哪里?
答:对于文件列表超出一个屏幕显示的状况,这种方式能够分屏浏览,比较方便。
在Windows操做系统下,咱们会使用WinRAR或者快压等等的压缩软件来进行压缩或者解压。
在Linux下固然也存在压缩或解压的操做咯,下面咱们就来学习一下在Linux下是怎么压缩和解压的!
压缩的方式也是有好几种,咱们经常使用的有下面这三种:
经常使用的压缩的命令就有:
gzip filename
bzip2 filename
tar -czvf filename
经常使用的解压命令有:
gzip -d filename.gz
bzip2 -d filename.bz2
tar -xzvf filename.tar.gz
上面咱们已经学过了cat、more、less、tail
这些查看文本文件的命令了,可是我想快速查看这个文本文件下的某些关键字是否存在,那怎么办???
在Windows下就比较简单的,几乎全部的文本编辑器(记事本)都支持CTRL+F
,往里面输入关键字就可查找出来:
那在Linux下,没有图形界面,没有CTRL+F
的状况下,若是不懂一些命令的话,那还真是难找对应的字符出来。下面我就来讲说如何快速查找一个文本文件下的某些字符。
首先咱们就来讲说正则表达式,若是接触过的同窗就知道:这玩意并很差记。一旦不用就很容易就忘记了,因此只能在用的时候查查了~~~因此下面我就直接给出一些规则了,很少说啦。
grep(global search regular expression)是一个强大的文本搜索工具。grep 使用正则表达式搜索文本,并把匹配的行打印出来。
格式:grep [options] PATTERN [FILE...]
例子:
grep -n mystr myfile
grep '^[a-zA-Z]' myfile
grep -v '^#' myfile
grep -lr root /etc/*
用grep查找/etc/passwd文件中以a开头的行,要求显示行号;查找/etc/passwd文件中以login结束的行;
这里感受要说说的就只有别名alias了,咱们下面看看例子就懂了!
显示shell当前已经定义的别名;执行其中的两个定义别名的命令;定义一个别名grep,要求其采用彩色方式显示结果
在Windows下有用户的环境变量,系统的环境变量。在Linux同样也是有的。
Shell 变量大体能够分为三类:
varName=Value
export varName=Value
$varName
Shell变量的做用域:
export
内置命令将局部变量设置为全局变量。 可使用 export
内置命令将全局变量设置为局部变量。export命令:
export [-p]
export <变量名1=值1> [<变量名2=值2> ...]
export <变量名1> [<变量名2> ...]
export -n <变量名1> [<变量名2> ...]
Shell环境变量:
Shell变量:查询、显示和取消:
env
set
echo $NAME1 [$NAME2 ……]
unset <NAME>
定义Shell变量stuXX(XX为学生学号末两位),初值为学生姓名全拼,用echo命令显示stuXX变量的值;用unset命令取消stuXX变量,检查结果;用env命令观察当前有哪些已经定义好的shell环境变量
Shell环境变量的值是否能够修改?为何?
答:环境变量的值通常状况下,能够修改。但必定要慎重修改,由于一旦修改错误,对shell正常运行形成严重影响,甚至致使shell没法运行。
相信没有用过Linux的同窗在看一些段子的时候都会看到过两个编辑器:
下面咱们学习如何简单使用vi。vi 是 “Visual interface” 的简称,它能够执行输出、删除、查找、替换、块操做等众多文本操做,并且用户能够根据本身的须要对其进行定制,这是其余编辑程序所没有的。
使用Vi来编辑文件:
Vi有三种模式:
G
用于直接跳转到文件尾ZZ
用于存盘退出ViZQ
用于不存盘退出Vi/和?
用于查找字符串n
继续查找下一个yy
复制一行p
粘帖在下一行,P粘贴在前一行dd
删除一行文本x
删除光标所在的字符u
取消上一次编辑操做(undo)在 Normal 模式下输入插入命令 i、 a 、 o
进入insert模式。用户输入的任何字符都被vim当作文件内容保存起来,并将其显示在屏幕上。
Normal 模式下,用户按冒号 :
便可进入 Command 模式,此时 vim 会在显示窗口的最后一行 (屏幕的最后一行) 显示一个 “:” 做为 Command 模式的提示符,等待输入命令。
:w
保存当前编辑文件,但并不退出:w
newfile 存为另一个名为 “newfile” 的文件:wq
用于存盘退出Vi:q!
用于不存盘退出Vi:q
用于直接退出Vi (未作修改)设置Vi环境:
在用户主目录下,执行vi程序,编辑文件install.log;移动光标到第10行,第五个字符;按大写字母G,达到文件末尾;不存盘退出;
在用户主目录下,执行vi程序,编辑文件install.log;用/命令查找字符串sudo,复制包含字符串sudo的行
在用户主目录下,执行vi程序,编辑文件install.log;进入命令模式,设置显示行号;用?命令查找字符串openssh,用命令n查找下一个
本文主要讲解了Linux的最基础的知识,能够简单地操做Linux了。命令能够说是学不完的,只能是记住Linux是有这个功能,到时候去网上查查也很方便。
主要是多练、多玩就能够记住一些经常使用的Linux命令了~~~~
下面我就花点时间画个Linux命令的脑图(固然了,命令仅限因而本文章的知识点,等写到用户、网络等知识点的时候再继续补充上去!)
若是文章有错的地方欢迎指正,你们互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同窗,能够关注微信公众号:Java3y。为了你们方便,刚新建了一下qq群:742919422,你们也能够去交流交流。谢谢支持了!但愿能多介绍给其余有须要的朋友
文章的目录导航: