学习计时:共17小时node
读书:2小时正则表达式
代码:6小时shell
做业:7小时编程
博客:2小时vim
任务一:安全
Linux系统简介less
Linux是一个操做系统,也就是系统调用和内核两层,还包括一些运行上的应用程序。iview
Linux自己只是操做系统的内核。
内核是使其余程序可以运行的基础,它实现了多任务和硬件管理。
其中有些程序是必需的,好比命令行解释器,Linux没有本身开发这些应用程序,而是使用已有的自由软件,减小了工做量。socket
Linux和Windows的区别:
1.Linux免费,Windows收费
2.Linux大都为开源自由软件,部分软件质量和体验欠缺;Windows由微软官方提供支持,数量和质量有优点
3.Linux比Windows安全
4.Linux兼具图形界面操做和彻底命令行操做,可只用键盘完成一切操做;Windows普通用户基本是纯图形界面操做,依靠鼠标和键盘完成一切
5.Linux想怎么作就怎么作;Windows全封闭,可定制性差
6.大多数软件和服务都运行在Linux之上编程语言
任务二:
基本概念及操做
1、Linux桌面环境介绍
Linux上的这套软件是xorg,是经过X窗口系统实现的
实验楼目前使用XFCE桌面环境
咱们使用Linux时,是经过一个叫作Shell的中间程序来完成的,还提供了一个叫作终端服务模拟器的程序(Terminal),xfce桌面环境自带xfce-terminal。
Linux提供了6个纯命令界面的terminal,在物理机上可用ctrl+alt+F1~F7进行切换,但在线试验环境没法切换,当想要切换回图形界面,按ctrl+alt+F7
2、常见shell命令及快捷键
Shell:有壳就有核,核是指UNIX/Linux内核,壳是指命令解析器,就是可用接受用户输入命令的程序
快捷键:
1.Tab:命令补全(输入命令全称的开头部分以后获得提示),还可补全目录和命令参数
2.Ctrl+c:强行终止当前程序
3.利用历史输入命令:键盘的上键
4.通配符:主要是*和?,对字符串进行模糊匹配,主要出如今命令的参数值里
5.man:获取帮助,8个区段
要看相应区段的内容,就在后面加上相应区段的数字
能够在man中进行搜索,查找到后用n键切换到下一个关键字,shift+n上一个关键字所在处,空格翻页,回车向下滚一行,h显示帮助,q退出。
也能够用--help参数
3、Linux使用小技巧(做业)
任务三:
用户及文件权限管理
1、Linux用户管理
1.查看用户
输入who am i打开当前伪终端的用户的用户名,whoami则是当前登陆用户的用户名。
pts/0
中 pts
表示伪终端,在图形用户界面使用 /dev/tty7
时每打开一个终端就会产生一个伪终端, pts/0
后面的数字表示打开的伪终端序号,第三列表示当前伪终端的启动时间。
其余参数
2.建立用户
要建立用户须要root权限
sudo命令 前提:1.要知道当前登陆用户密码 2.当前用户必须在sudo用户组
退出能够用exit命令或者ctrl+d
3.用户组
一组用户的集合,共享资源和权限,同时拥有私有资源
方法一:使用groups命令
方法二:查看/etc/group文件
| sort:将读取的文本进行一个字典排序再输出
/etc/group 的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User),每一个用户组一条记录。格式以下:
group_name:password:GID:user_list
将其余用户加入sudo用户组
usermod命令:使用者必须有root权限
4.删除用户
2、Linux文件权限
1.查看文件权限
文件类型:Linux里面一切皆文件(设备文件,socket,pipe,软连接,硬连接)
文件权限:执行文件,一般指能够运行的二进制程序文件或者脚本文件,一个目录要同时具备读权限和执行权限才能够打开,而一个目录要有写权限才容许在其中建立其它文件
连接数:连接到该文件所在的 inode 结点的文件名数目
文件大小:以 inode 结点大小为单位来表示的文件大小
ls命令的其余用法:显示除了 '.'(当前目录),'..' 上一级目录以外的全部包含隐藏文件
2.变动文件使用者
3.修改文件权限
方法一:二进制数字表示
每一个文件都有三组权限:拥有者,所属用户组,其余用户
方法二:加减赋值操做
'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增长和去掉相应的权限。
做业:
添加一个用户loutest
,使用sudo
建立文件/opt/forloutest
,设置成用户loutest
能够读写
任务四
Linux任务结构及文件基本操做
1、Linux目录结构
Linux和Windows存储结构的不一样:Linux以目录为主,Windows以存储介质为主
Linux以树形目录结构的形式来构建整个系统
1.FHS标准
FHS:文件系统层次结构标准
多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每一个区域的用途、所须要的最小构成的文件和目录同时还给出了例外处理与矛盾处理
FHS 定义了两层规范:
第一层: / 下面的各个目录放什么文件数据,( /etc 应该放置设置文件,/bin 与 /sbin 应该放置可执行文件)
第二层:针对 /usr 及 /var 这两个目录的子目录来定义。( /var/log 放置系统登陆文件、/usr/share 放置共享数据)
将目录定义为四种交互形式的形态
2.目录路径
使用 cd
命令能够切换目录
.
表示当前目录
..
表示上一级目录
-
表示上一次所在目录
~
一般表示当前用户的"home"目录
使用 pwd
命令能够获取当前所在路径(绝对路径)
绝对路径:以根"/"目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin
,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
相对路径:相对于你当前的目录的路径,以当前目录 .
为起点,以你所要到的目录为终点,表现形式如: usr/local/bin
2、Linux文件基本操做
1.新建:
新建文件:使用touch命令新建空白文件(不会覆盖同名文件)
新建目录:使用 mkdir
命令建立一个空目录,可同时指定建立目录的权限属性。使用 -p
参数,同时建立父目录
2.复制:
复制文件:使用cp
命令复制一个文件或目录到指定目录
复制目录:要成功复制目录须要加上-r
或者-R
参数,表示递归复制
3.删除:
删除文件:使用rm
命令,删除一个文件或目录
删除一些为只读权限的文件,直接使用rm
删除会显示一个提示
想忽略这提示,直接删除文件,可使用-f
参数强制删除
删除目录:要删除一个目录,也须要加上-r
或-R
参数
4.移动文件与文件重命名
移动文件:使用mv
命令,移动文件(剪切)
重命名文件:mv 旧的文件名 新的文件名
批量重命名:rename(rename
是先使用第二个参数的通配符匹配全部后缀为.txt
的文件,而后使用第一个参数提供的正则表达式将匹配的这些文件的.txt
后缀替换为.c)
5.查看文件
cat
,tac
和nl
命令查看文件这两个命令都是用来打印文件内容到标准输出(终端),其中cat
为正序显示,tac
倒序显示。能够加上-n
参数显示行号。
nl
命令,添加行号并打印
more
和less
命令分页查看文件可使用Enter
键向下滚动一行,使用Space
键向下滚动一屏,按下h
显示帮助,q
退出。
head
和tail
命令查看文件只看一行, 加上-n
参数,后面紧跟行数
6.查看文件类型
file
命令能够查看文件的类型
7.编辑文件
vimtutor
做业:
任务五
环境变量与文件查找
1、环境变量
1.变量
所谓变量就是计算机中用于记录一个值(不必定是数值,也能够是字符或字符串)的符号
变量的做用域即变量的有效范围(好比一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量通常。
变量名只能是英文字母,数字或者下划线,且不能以数字做为开头
2.环境变量
一般咱们会涉及到的环境变量有三种
与环境变量相关的命令
3.命令的查找路径与顺序
经过环境变量PATH进行搜索
4.添加自定义路径到“PATH”环境变量
必定要使用绝对路径
>>
表示将标准输出以追加的方式重定向到一个文件中
>
是以覆盖的方式重定向到一个文件中
5.修改和删除已有变量
可使用unset
命令删除一个环境变量
6.如何让环境变量当即生效
使用source
命令来让其当即生效(source
命令有一个别名是.)
2、搜索文件
与搜索相关的命令经常使用的有以下几个whereis
,which
,find
,locate
whereis
只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)
locate能够用来查找指定目录下的不一样文件类型,它不仅是在 etc 目录下查找并会自动递归子目录进行查找
一般使用which
来肯定是否安装了某个指定的软件,由于它只从PATH
环境变量指定的路径中去搜索命令
find功能最强大
find 命令的路径是做为第一个参数的, 基本命令格式为 find [path] [option] [action]
与时间有关的命令参数
-mtime n
: n 为数字,表示为在n天以前的”一天以内“修改过的文件
-mtime +n
: 列出在n天以前(不包含n天自己)被修改过的文件
-mtime -n
: 列出在n天以前(包含n天自己)被修改过的文件
newer file
: file为一个已存在的文件,列出比file还要新的文件名
做业:
数字雨
任务六
文件打包与压缩
1、文件打包与解压缩
*.zip
,*.rar
,*.7z,
*.gz
,*.xz
,*.bz2
,*.tar
,*.tar.gz
,*.tar.xz
,*tar.bz2
1.zip压缩打包程序
-r
参数表示递归打包包含子目录的所有内容
-q
参数表示为安静模式,即不向屏幕输出信息
-o
,表示输出文件,需在其后紧跟打包输出文件名
du
命令查看打包后文件的大小
添加一个参数用于设置压缩级别-[1-9]
,1表示最快压缩但体积大,9表示体积最小但耗时最久。
-x
是为了排除上一次建立的 zip 文件
使用-e
参数能够建立加密压缩包
2.使用unzip命令解压缩zip文件
若是不想解压只想查看压缩包的内容可使用-l
参数
使用-O
(英文字母,大写o)参数指定编码类型
3.rar打包压缩命令
使用a
参数添加一个目录~
到一个归档文件中,若是该文件不存在就会自动建立。
4.tar打包工具
-c
表示建立一个 tar 包文件
-f
用于指定建立的文件名
-v
参数以可视的的方式输出打包的文件
-P
保留绝对路径符
做业:火炉
任务七
文件系统操做与磁盘管理
1、简单文件系统操做
1.查看磁盘和目录的容量
使用df命令查看磁盘容量
roofts:它做为系统启动时内核载入内存以后,在挂载真正的的磁盘以前的一个临时文件系统。一般的主机会在系统启动后用磁盘上的文件系统替换,只是在一些嵌入式系统中会只存在一个 rootfs
物理主机上的 /dev/sda2 是对应着主机硬盘的分区,后面的数字表示分区号,数字前面的字母 a 表示第几块硬盘
使用du命令查看目录的容量
2、简单的磁盘管理
1.建立虚拟磁盘
dd
命令用于转换和复制文件
它的命令行选项格式为选项=值
dd
默认从标准输入中读取,并写入到标准输出中
bs
用于指定块大小
count
用于指定块数量
使用dd命令建立虚拟镜像文件
使用mkfs命令格式化磁盘
使用mount命令挂载磁盘到目录树
在 Linux/UNIX 的机器上打开一个文件之前,包含该文件的文件系统必须先进行挂载的动做,此时用户要对该文件系统执行 mount 的指令以进行挂载
每一行最前面是设备名,而后是 on 后面是挂载点,type 后面表示文件系统类型,再后面是挂载选项
mount
命令的通常格式以下:
mount [options] [source] [directory]
使用umount命令卸载已挂载磁盘
因为环境的问题,没法挂载成功
使用fdisk为磁盘分区
在进行操做前首先应先规划好分区方案
操做完成后输入p
查看结果
最后输入w
写入分区表
使用losetup命令创建镜像与回环设备的关联
使用mkfs
格式化各分区,格式化以前,咱们还要为各分区创建虚拟设备的映射,用到kpartx
工具
做业:cowsay
任务八
命令执行顺序控制与管道
1、命令执行顺序的控制
1.顺序执行多条命令
2.有选择的执行命令
问题:好比上面咱们是&&
在前||
在后,反过来能够么?会不会有问题?
会有问题,由于优先级的问题,不能够反过来
2、管道
管道是一种通讯机制,一般用于进程间的通讯
它表现出来的形式就是将前面每个进程的输出直接做为下一个进程的输入
1.试用
2.cut命令,打印每一行的某一字段
3.grep命令,在文本中或stdin中查找匹配字符串
grep
命令的通常形式为:
grep [命令选项]... 用于匹配的表达式 [文件]...
-r
参数表示递归搜索子目录中的文件
-n
表示打印匹配项行号
-I
表示忽略二进制文件
4.wc命令,简单小巧的计数工具
5.sort排序命令
-t
参数用于指定字段的分隔符
以":"做为分隔符
-k 字段号
用于指定对哪个字段进行排序
若是要按照数字排序就要加上-n
参数
6.unip去重命令
uniq
命令能够用于过滤或者输出重复行
使用history
命令查看最近执行过的命令
uniq
命令只能去连续重复的行,不是全文去重
输出重复行
做业:
使用之前介绍过的方法,安装aview
和imagemagick
,而后用asciiview
命令显示图片,使用方法能够用 man 命令查看。
因为没法把图片下载到虚拟机里,结果没法显示
任务九
简单的文本处理
1、经常使用的文本处理命令
2、文本处理命令
1.tr命令
tr 命令能够用来删除一段文本信息中的某些文字,或者将其进行转换
tr [option]...SET1 [SET2]
2.col命令
col 命令能够将Tab
换成对等数量的空格建,或反转这个操做
使用方法:
col [option]
3.join命令
用于将两个文件中包含相同内容的那一行合并在一块儿
使用方式:
join [option]... file1 file2
4.pasta命令
paste
这个命令与join
命令相似,它是在不对比数据的状况下,简单地将多个文件合并一块儿,以Tab
隔开
使用方式:
paste [option] file...
做业:小蜜蜂
任务十
数据流重定向
1、数据流重定向
1.简单的重定向
Linux 默认提供了三个特殊设备,用于终端的显示和输出,分别为stdin
(标准输入,对应于你在终端的输入),stdout
(标准输出,对应于终端的输出),stderr
(标准错误输出,对应于终端的输出)
文件描述符在形式上是一个非负整数
它是一个索引值,指向内核为每个进程所维护的该进程打开文件的记录表
2.标准错误重定向
将标准错误重定向,标准输出和标准错误都被指向伪终端的屏幕显示
应该在输出重定向文件描述符前加上&
3.使用tee命令同时重定向多个文件
4.永久定向性
使用exec
命令实现“永久”重定向
exec
命令的做用是使用指定的命令替换当前的 Shell,及使用一个进程替换当前进程,或者指定新的重定向
5.建立输出文件描述符
默认在 Shell 中能够有9个打开的文件描述符
6.关闭文件描述符
7.彻底屏蔽命令的输出
利用设/dev/null
屏蔽命令的输出,将使你得不到任何输出结果
使用xargs分割参数列表
xargs 是一条 UNIX 和类 UNIX 操做系统的经常使用命令。
它的做用是将参数列表转换成小块分段传递给其余命令,以免参数列表过长的问题
做业:
任务十一
正则表达式基础
1、正则表达式
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在不少文本编辑器里,正则表达式一般被用来检索、替换那些符合某个模式的文本
基本语法:
一个正则表达式一般被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串。
|
竖直分隔符表示选择
数量限定除了*
,还有+
加号,?
问号,.
点号,若是在一个模式中不加数量限定符则表示出现一次且仅出现一次
+
表示前面的字符必须出现至少一次(1次或屡次)
?
表示前面的字符最多出现一次(0次或1次)
*
星号表明前面的字符能够不出现,也能够出现一次或者屡次(0次、或1次、或屡次)
()
圆括号能够用来定义模式字符串的范围和优先级
PCRE是一个用 C 语言编写的正则表达式函数库
优先级:
2、grep模式匹配命令
1.基本操做
grep
命令用于打印输出文本中匹配的模式串,它使用正则表达式做为模式匹配的条件
grep
支持三种正则表达式引擎,分别用三个参数指定
2.使用正则表达式
3、sed流编辑器
sed流编辑器是一个非交互式的编辑器
sed 命令基本格式
sed [参数]... [执行命令] [输入文件]...
sed编辑器的执行命令
sed执行命令格式
[n1][,n2]command
[n1][~step]command
n1,n2表示输入内容的行号
它们之间为,
逗号则表示从n1到n2行,若是为~
波浪号则表示从n1开始以step为步进的全部行
command为执行动做
行内替换
行间替换
4、awk文本处理语言
1.awk介绍
AWK
是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一
功能:
建立简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表
AWK是一种用于处理文本的编程语言工具
2.awk的一些基本概念
形式:
$ pattern {action}
awk
处理文本的方式,是将文本分割成一些“字段”,而后再对这些字段进行处理
3.awk命令基本格式
awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...]
-F
参数用于预先指定字段分隔符
-v
用于预先为awk
程序指定变量
-f
参数用于指定awk
命令要执行的程序文件,或者在不加-f
参数的状况下直接将程序语句放在这里
最后为awk
须要处理的文本输入,且能够同时输入多个文本文件
做业:
任务十二
Linux下软件安装
一般 Linux 上的软件安装主要有三种方式:
在线安装
从磁盘安装deb软件包
从二进制软件包安装
从源代码编译安装
在安装一个软件以后,没法当即使用Tab
键补全这可命令,先执行source ~/.zshrc
,而后就可使用补全操做
APT是Debian及其派生发行版的软件包管理器,APT能够自动下载,配置,安装二进制或者源代码格式的软件包,所以简化了Unix系统上管理软件的过程
这个包管理器包含以 apt-
开头的的多个工具,如 apt-get
apt-cache
apt-cdrom
等
apt-get
使用各用于处理apt
包的公用程序集,能够在线安装、卸载和升级软件包等
经常使用参数:
从新安装:
$ sudo apt-get --reinstall install w3m
软件升级:
# 更新软件源
$ sudo apt-get update
# 升级没有依赖问题的软件包
$ sudo apt-get upgrade
# 升级并解决依赖关系
$ sudo apt-get dist-upgrade
卸载软件:
软件搜索:
sudo apt-cache search softname1 softname2 softname3……
使用dpkg从本地磁盘安装deb软件包
dpkg 是 Debian 软件包管理器的基础
apt-get
加上-d
参数只下载不安装
做业:
遇到的问题:
1.后来新建Documents便可
2.并没有法显示black,未找到缘由
3.权限不够,并未找到缘由
4.因为不知道如何将图片保存于虚拟机,有一个显示照片的做业没有作出来
心得体会:
感受接触到了好厉害的东西,可是一会儿学习了太多,掌握起来也相对困难,容易遗忘,从此还要多加练习才行
最喜欢的是每堂课布置的做业,颇有趣,好像打开了新世界的大门,不过那个游戏有点没玩明白