北京电子科技学院(BESTI)
实 验 报 告
课程:信息安全系统设计基础 班级:1352 姓名:马悦 学号:20135235
成绩: 指导教师:娄嘉鹏 实验日期:2015.9.20
实验密级: 预习程度: 实验时间:10小时
仪器组次: 必修/选修:必修 实验序号:1
实验名称: Linux简介
实验目的与要求:1. 了解Linux。
2.学习,安装Linux。
实验仪器:
名称 型号 数量
PC ThinkPad 1
虚拟机 实验楼 1
一、实验内容
实验一
本节主要介绍 Linux 的历史,Linux 与 Windows 的区别等入门知识。
一、Linux 就是一个操作系统,即系统调用和内核两层。直观的来看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器,浏览器,电子邮件。
二、Linux的重要人物
1.Ken Thompson:C 语言之父和 UNIX 之父
2.Dennis Ritchie:C 语言之父和 UNIX 之父
3.Stallman:著名黑客,GNU 创始人,开发了 Emacs、gcc、bash shell
4.Bill Joy:BSD 开发者
5.Tanenbaum:Minix 开发者
6.Linus Torvalds:Linux 之父,芬兰赫尔辛基大学
三、Linux 与 Windows 到底有哪些不同
1.免费与收费
• 最新正版 Windows8.1 官方售价 ¥888;
• Linux 免费或少许费用。
2.软件与支持
• Windows 平台:数量和质量的优势,不过大部分为收费软件;由微软官方提供重要支持和服务;
• Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;有全球所有的 Linux 开发者和自由软件社区提供支持。
3.安全性
• Windows 平台:三天两头打补丁安装系统安全更新,还是会中病毒木马;
• Linux 平台:要说 Linux 没有安全问题,那当然是不可能的,这一点仁者见仁智者见智,相对来说肯定比 Windows 平台要更加安全,使用 Linux 你也不用装某杀毒,某毒霸。
4.使用习惯
• Windows:普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易入门简单;
• Linux:兼具图形界面操作(需要使用带有桌面环境的发行版)和完全的命令行操作,可以只用键盘完成一切操作,新手入门较困难,需要一些学习和指导(这正是我们要做的事情),一旦熟练之后效率极高。
5.可定制性
• Windows:这些年之前算是全封闭的,系统可定制性很差;
• Linux:你想怎么做就怎么做,Windows 能做到得它都能,Windows 做不到的,它也能。
6.应用范畴
或许你之前不知道 Linux ,要知道,你之前在 Windows 使用百度,谷歌,上淘宝,聊 QQ 时,支撑这些软件和服务的,是后台成千上万的 Linux 服务器主机,它们时时刻刻都在进行着忙碌的数据处理和运算,可以说世界上大部分软件和服务都是运行在 Linux 之上的。
7.Windows 没有的
• 稳定的系统
• 安全性和漏洞的快速修补
• 多用户
• 用户和用户组的规划
• 相对较少的系统资源占用
• 可定制裁剪,移植到嵌入式平台(如安卓设备)
• 可选择的多种图形用户界面(如 GNOME,KDE)
8.Linux 没有的
• 没有特定的支持厂商
• 游戏娱乐支持度不足
• 专业软件支持度不足
实验二
本节实验主要有:
1、实验楼环境介绍 2、常用 Shell 命令及快捷键 3、Linux 使用小技巧
一、Linux 桌面环境介绍
相对于现在的 Windows 系统,UNIX/Linux 本身是没有图形界面的,我们通常在 Unix/Linux 发行版上看到的图形界面实际都只是运行在 Linux 系统之上的一套软件,类似 Windows95 之前的Windows 的图形界面实则也只是运行在 DOS 环境的一套软件。
二、Linux终端
1.Terminal(终端)
通常在我们使用 Linux 时,我们并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成接受用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm。
2.Shell
通常在图形界面中对实际体验带来差异的不是上述的不同发行版的各种终端模拟器,而大都是这个 Shell(壳),有壳就有核,这里的核就是指的 UNIX/Linux 内核,Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe。Unix/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。在 UNIX/Linux 中比较流行的常见的 Shell 有 bash,zsh,ksh,csh 等等。
1).重要快捷键:
[Tab]
使用Tab键来进行命令补全,可以补全命令,补全目录,补全命令参数。
[Ctrl+c]
使用Ctrl+c键来强行终止当前程序(并不会使终端退出)。
2).学会利用历史输入命令
使用键盘上的方向上键,恢复之前输入过的命令。
3).学会使用通配符
通配符是一种特殊语句,主要有星号(*)和问号(?),用来对对字符串进行模糊匹配(比如文件名,参数名)。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。
4).学会在命令行中获取帮助
在 Linux 环境中,如果你遇到困难,可以使用man 命令,它是Manual page的缩写。Manual pages 是在 UNIX 或类 UNIX 操作系统在线软件文档的一种普遍的形式。 内容包括计算机程序(包括库和系统调用),正式的标准和惯例,甚至是抽象的概念。用户可以通过执行 man 命令调用手册页。
实验三
1、Linux 中创建、删除用户,及用户组等操作。 2、Linux 中的文件权限设置。
一、Linux 用户管理
Linux 是一个可以实现多用户登陆的操作系统。
1.查看用户
2.创建用户
在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。
我们一般登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo这个命令了。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo 用户组。
退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d。
3.用户组
在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源。在 Linux 里面如何知道自己属于哪些用户组呢?
方法一:使用groups命令
$ groups shiyanlou
其中冒号之前表示用户,后面表示该用户所属的用户组。这里可以看到 shiyanlou 用户同时属于 shiyanlou 和 sudo 用户组,每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组(差不多就相当于家长的意思,或者说是老总)。默认情况下在sudo用户组里的可以使用sudo命令获得root权限。
方法二:查看/etc/group文件
$ cat /etc/group | sort
这里 cat 命令用于读取指定文件的内容并打印到终端输出。 | sort 表示将读取的文本进行一个字典排序再输出。
使用命令过滤掉一些你不想看到的结果:
$ cat /etc/group | grep -E"shiyanlou|sudo"
etc/group 文件格式说明
/etc/group 的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:
group_name:password:GID:user_list
你看到上面的 password 字段为一个 'x' 并不是说密码就是它,只是表示密码不可见而已。
4.删除用户
$ sudo deluser lilei --remove-home
二、Linux 文件权限
1.查看文件权限
ls命令列出并显示当前目录下的文件,
2.变更文件所有者
使用以下命令变更文件所有者为 shiyanlou :
$ cd /home/lilei
$ ls iphone6
$ sudo chown shiyanlou iphone6
$ cp iphone6 /home/shiyanlou
3.修改文件权限
如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改,这里有两种方式:
• 方式一:二进制数字表示
• 方式二:加减赋值操作
实验四
1、Linux 的文件组织目录结构。 2、相对路径和绝对路径。 3、对文件的移动、复制、重命名、编辑等操作。
一、Linux 目录结构
通常 Windows 在使用一段时间后,磁盘上面的文件目录会显得杂乱无章(少数善于整理的用户除外吧)。Linux 是以树形目录结构的形式来构建整个系统的,可以理解为一个用户可操作系统的骨架。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。
1.FHS 标准
FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等等。
第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。
2.目录路径
路径
使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录(**注意,还记得我们上一节介绍过的,以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件), - 表示上一次所在目录,~ 通常表示当前用户的"home"目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
进入上一级目录:$ cd ..
进入你的“home”目录:$ cd ~ # 或者 cd /home/<你的用户名>
使用 pwd 获取当前路径:
绝对路径
关于绝对路径,简单地说就是以根"/"目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
相对路径
相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点,表现形式如: usr/local/bin (这里假设你当前目录为根目录)。你可能注意到,我们表示相对路径实际并没有加上表示当前目录的那个 . ,而是直接以目录名开头,因为这个 usr 目录为 /目录下的子目录,是可以省略这个 . 的(以后会讲到一个类似不能省略的情况);如果是当前目录的上一级目录,则需要使用 .. ,比如你当前目录为“home”目录,根目录就应该表示为 ../../ ,表示上一级目录("home"目录)的上一级目录("/"目录)。
二、Linux 文件的基本操作
1.新建
新建空白文件
使用 touch 命令创建空白文件。
新建目录
使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性
2.复制
复制文件
使用cp(copy)命令复制一个文件或目录到指定目录。
复制目录
3.删除
删除文件
使用rm(remove files or directories)命令,删除一个文件或目录:
4.移动文件与文件重命名
移动文件
使用mv(move or rename files)命令,移动文件(剪切)。
重命名文件
将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名:
批量重命名
使用命令rename来实现。
5.查看文件
使用cat,tac和nl命令查看文件
6.查看文件类型
通常使用file命令可以查看文件的类型:$ file /bin/ls
7.编辑文件
在 Linux 下面编辑文件通常会直接使用专门的命令行编辑器比如(emacs,vim,nano)。
实验五
本节实验介绍环境变量的作用与用法,及几种搜索文件的方法。学会这些技巧高效地使用 Linux。
一、环境变量
1.变量
所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量。变量的作用域即变量的有效范围(比如一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量一般。
2.通常我们会涉及到的环境变量有三种:
• 当前 Shell 进程私有用户自定义变量,如上面我们创建的 temp 变量,只在当前 Shell 中有效。
• Shell 本身内建的变量。
• 从自定义变量导出的环境变量。
也有三个与上述三种环境变量相关的命令,set,env,export。这三个命令很相似,都可以用于打印相关环境变量,区别在于涉及的是不同范围的环境变量。
3.命令的查找路径与顺序
通过环境变量PATH来进行搜索,熟悉 Windows 的用户可能知道 Windows 中的也是有这么一个 PATH 环境变量。这个PATH里面就保存了Shell中执行的命令的搜索路径。
查看PATH环境变量的内容:$ echo $PATH
4.添加自定义路径到“PATH”环境变量
可以这样添加自定义路径:$ PATH=$PATH:/home/shiyanlou/mybin
注意这里一定要使用绝对路径
5.修改和删除已有变量
比如要修改我们前面添加到 PATH 的环境变量。为了避免操作失误导致命令找不到,我们先将 PATH 赋值给一个新的自定义变量 path:$ path=$PATH
$ echo $path
$ path=${path%/home/shiyanlou/mybin}
# 或使用通配符,*表示任意多个任意字符
$ path=${path%*/mybin}
变量删除
可以使用unset命令删除一个环境变量:
6.如何让环境变量立即生效
使用source命令来让其立即生效。
二、搜索文件
与搜索相关的命令常用的有如下几个whereis,which,find,locate。
实验六
Linux 上常用的 压缩/解压 工具,介绍了 zip,rar,tar 的使用。
一、文件打包和解压缩
在讲 Linux 上的解压缩工具之前,有必要先了解以下常见常用的压缩包文件格式。在 Windows 上我们最常见的不外乎这三种*.zip,*.rar,*.7z后缀的压缩文件,而在 Linux 上面常见常用的除了以上这三种外,还有*.gz,*.xz,*.bz2,*.tar,*.tar.gz,*.tar.xz,*tar.bz2,
- zip压缩打包程序
使用zip打包文件夹:$ zip -r -q -o shiyanlou.zip /home/shiyanlou
$ du -h shiyanlou.zip
$ file shiyanlou.zip
2.使用unzip命令解压缩zip文件
将shiyanlou.zip解压到当前目录:$ unzip shiyanlou.zip
使用安静模式,将文件解压到指定目录:$ unzip -q shiyanlou.zip -d ziptest
上述指定目录不存在,将会自动创建。如果你不想解压只想查看压缩包的内容你可以使用-l参数:$ unzip -l shiyanlou.zip
3.rar打包压缩命令
rar也是 Windows 上常用的一种压缩文件格式,在 Linux 上可以使用rar和unrar工具分别创建和解压 rar 压缩包。
• 安装rar和unrar工具:
$ sudo apt-get update
$ sudo apt-get install rar unrar
• 从指定文件或目录创建压缩包或添加文件到压缩包:
$ rm *.zip
$ rar a shiyanlou.rar .
• 从指定压缩包文件中删除某个文件:
$ rar d shiyanlou.rar .zshrc
• 查看不解压文件:
$ rar l shiyanlou.rar
4.tar打包工具
在 Linux 上面更常用的是tar工具,tar 原本只是一个打包工具,只是同时还是实现了对 7z,gzip,xz,bzip2 等工具的支持,这些压缩工具本身只能实现对文件或目录(单独压缩目录中的文件)的压缩,没有实现对文件的打包压缩,所以我们也无需再单独去学习其他几个工具,tar 的解压和压缩都是同一个命令,只需参数不同,使用比较方便。
• 创建一个 tar 包:
$ tar -cf shiyanlou.tar ~
• 解包一个文件(-x参数)到指定路径的已存在目录(-C参数):
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir
• 只查看不解包文件-t参数:
$ tar -tf shiyanlou.tar
• 保留文件属性和跟随链接(符号链接或软链接),有时候我们使用tar备份文件当你在其他主机还原时希望保留文件的属性(-p参数)和备份链接指向的源文件而不是链接本身(-h参数):
$ tar -cphf etc.tar /etc
对于创建不同的压缩格式的文件,对于tar来说是相当简单的,需要的只是换一个参数,这里我们就以使用gzip工具创建*.tar.gz文件为例来说明。
解压*.tar.gz文件:$ tar -xzf shiyanlou.tar.gz
实验七
本节实验的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解。
一、简单文件系统操作
1.查看磁盘和目录的容量
使用 df 命令查看磁盘的容量
使用 du 命令查看目录的容量
二、简单的磁盘管理
1.创建虚拟磁盘
dd命令用于转换和复制文件,不过它的复制不同于cp。
使用 fdisk 为磁盘分区
使用 losetup 命令建立镜像与回环设备的关联
使用mkfs格式化各分区(前面我们是格式化整个虚拟磁盘镜像文件或磁盘),不过格式化之前,我们还要为各分区建立虚拟设备的映射,用到kpartx工具。
实验八
顺序执行、选择执行、管道、cut 命令、grep 命令、wc 命令、sort 命令等,高效率使用 Linux 的技巧。
一、命令执行顺序的控制
1.顺序执行多条命令
一次执行各命令:$ sudo apt-get update;sudo apt-get install some-tool;some-tool
2.有选择的执行命令
使用which来查找是否安装某个命令,如果找到就执行该命令,否则什么也不做。$ which cowsay>/dev/null && cowsay -f head-in ohch~:
二、管道
管道是什么,管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
管道又分为匿名管道和具名管道(这里将不会讨论在源程序中使用系统调用创建并使用管道的情况,它与命令行的管道在内核中实际都是采用相同的机制)。
1.试用
先试用一下管道,比如查看/etc目录下有哪些文件和目录,使用ls命令来查看:$ ls -al /etc
2.cut 命令,打印每一行的某一字段
打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和其家目录:
$ cut /etc/passwd -d ':' -f 1,6
3.grep 命令,在文本中或 stdin 中查找匹配字符串
grep命令的一般形式为:grep [命令选项]... 用于匹配的表达式 [文件]...
4. wc 命令,简单小巧的计数工具
wc 命令用于统计并输出一个文件中行、单词和字节的数目,比如输出/etc/passwd文件的统计信息:$ wc /etc/passwd
5.sort 排序命令
这个命令前面我们也是用过多次,功能很简单就是将输入按照一定方式排序,然后再输出,它支持的排序有按字典排序,数字排序,按月份排序,随机排序,反转排序,指定特定字段进行排序等等。
默认为字典排序:$ cat /etc/passswd | sort
反转排序:$ cat /etc/passwd | sort -r
按特定字段排序:$ cat /etc/passwd | sort -t':' -k 3
6. uniq 去重命令
uniq命令可以用于过滤或者输出重复行。
实验九
这一节我们将介绍这几个命令tr(注意不是tar),col,join,paste。
一、常用的文本处理命令
二、文本处理命令
1.tr 命令
tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。
使用方式:tr [option]...SET1 [SET2]
2.col 命令
col 命令可以将Tab换成对等数量的空格建,或反转这个操作。
使用方式:col [option]
3.join命令
学过数据库的用户对这个应该不会陌生,这个命令就是用于将两个文件中包含相同内容的那一行合并在一起。
使用方式:join [option]... file1 file2
4.paste命令
paste这个命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。
使用方式:paste [option] file...
实验十
一、数据流重定向
1.简单的重定向
在更多了解 Linux 的重定向之前,我们需要先知道一些基本的东西,前面我们已经提到过 Linux 默认提供了三个特殊设备,用于终端的显示和输出,分别为stdin(标准输入,对应于你在终端的输入),stdout(标准输出,对应于终端的输出),stderr(标准错误输出,对应于终端的输出)。
2.标准错误重定向
重定向标准输出到文件,这是一个很实用的操作,另一个很实用的操作是将标准错误重定向,标准输出和标准错误都被指向伪终端的屏幕显示,所以我们经常看到的一个命令的输出通常是同时包含了标准输出和标准错误的结果的。
3.使用tee命令同时重定向到多个文件
$ echo 'hello shiyanlou' | tee hello
4.永久重定向
可以使用exec命令实现“永久”重定向。
5.创建输出文件描述符
使用下面命令查看当前 Shell 进程中打开的文件描述符:$ cd /dev/fd/;ls -Al
6.关闭文件描述符
如上面我们打开的3号文件描述符,可以使用如下操作将它关闭:$ exec 3>&-
$ cd /dev/fd;ls -Al;cd –
7.完全屏蔽命令的输出
设个/dev/null屏蔽命令的输出:$ cat Documents/test.c~ nefile 1>/dev/null 2>&1
8.使用 xargs 分割参数列表
xargs 是一条 UNIX 和类 UNIX 操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
实验十一
这一节实验只是介绍grep,sed,awk这三个命令。
一、正则表达式
正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
二、grep模式匹配命令
1.基本操作
grep命令用于打印输出文本中匹配的模式串,它使用正则表达式作为模式匹配的条件。
2.使用正则表达式
使用基本正则表达式,BRE
三、sed 流编辑器
sed工具在 man 手册里面的全名为"sed - stream editor for filtering and transforming text ",意即,用于过滤和转换文本的流编辑器。
四、awk文本处理语言
1.awk介绍
AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一.
2.awk的一些基础概念
awk所有的操作都是基于pattern(模式)—action(动作)对来完成的,如下面的形式:$ pattern {action}
3.awk命令基本格式
awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...]
4.awk操作体验
5.awk常用的内置变量
实验十二
介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用。
一、Linux 上的软件安装
通常 Linux 上的软件安装主要有三种方式:
• 在线安装
• 从磁盘安装deb软件包
• 从二进制软件包安装
• 从源代码编译安装
二、在线安装
试想一下,平时我们在使用 Windows 的时候,想要安装一个软件,我们需要在网上去下载对应软件的安装包,接着安装的时候就是不断的去点击下一步,这些流程想必大家已经经历的无数回了,但是在 Linux 下,一个命令加回车,等待一下,软件就安装好了,这就是方便的在线安装软件的方式。在学习这种安装方式之前有一点需要说明的是,在不同的linux发行版上面在线安装方式会有一些差异包括使用的命令及它们的包管理工具,因为我们的开发环境是基于ubuntu的,所以这里我们涉及的在线安装方式将只适用于ubuntu发行版,或其它基于ubuntu的发行版如国内的ubuntukylin(优麒麟),ubuntu又是基于debian的发行版,它使用的是debian的包管理工具dpkg,所以一些操作也适用与debian。而在其它一些采用其它包管理工具的发行版如redhat,centos,fedora等将不适用(redhat和centos使用rpm)。
1. apt 包管理工具介绍
APT是Advance Packaging Tool(高级包装工具)的缩写,是Debian及其派生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。
2.apt-get
apt-get使用各用于处理apt包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等。
3.安装软件包
关于安装,如前面演示的一样你只需要执行apt-get install <软件包名>即可,除了这一点,你还应该掌握的是如何重新安装软件包。 很多时候我们需要重新安装一个软件包,比如你的系统被破坏,或者一些错误的配置导致软件无法正常工作。可以使用如下方式重新安装:$ sudo apt-get --reinstall install w3m
4.软件升级
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
5.卸载软件
sudo apt-get remove w3m 。
6.软件搜索
当自己刚知道了一个软件,想下载使用,需要确认软件仓库里面有没有,就需要用到搜索功能了,命令如下:sudo apt-cache search softname1 softname2 softname3……
三、使用 dpkg 从本地磁盘安装 deb 软件包
1.dpkg 介绍
dpkg 是 Debian 软件包管理器的基础,它被伊恩·默多克创建于 1993 年。dpkg 与 RPM 十分相似,同样被用于安装、卸载和供给和 .deb 软件包相关的信息。
dpkg 本身是一个底层的工具。上层的工具,像是 APT,被用于从远程获取软件包以及处理复杂的软件包关系。"dpkg"是"Debian Package"的简写。
我们经常可以在网络上简单以deb形式打包的软件包,就需要使用dpkg命令来安装。
2.使用dpkg安装deb软件包
3.查看已安装软件包的安装目录
使用dpkg -L查看deb包目录信息:$ sudo dpkg -L emacs
四、从二进制包安装
二进制包的安装比较简单,我们需要做的只是将从网络上下载的二进制包解压后放到合适的目录,然后将包含可执行的主程序文件的目录添加进PATH环境变量即可,如果你不知道该放到什么位置,请重新复习第四节关于 Linux 目录结构的内容。
三、实验感想
这次的实验主要学习了Linux 简介、基本概念及操作、用户及文件权限管理、Linux 目录结构及文件基本操作、环境变量与文件查找、文件打包与压缩、文件系统操作与磁盘管理、命令执行顺序控制与管道、简单的文本处理、数据流重定向、正则表达式基础、Linux 下软件安装等这些内容。因为之前在学习Java课程时接触过Linux,但是只知其然不知其所以然,通过本次实验,让我更加了解了Linux,一开始做实验时,对一些命令不熟悉,只是跟着步骤一步一步的做,花费时间较长。过程中遇到的问题通过询问同学,阅读相关书籍,上网查找资料等方法都得以解决。在今后的学习中将更加努力,争取做得更好!