信息安全系统设计基础第一周学习总结
一、学习目标
1. 能够独立安装Linux操作系统
2. 能够熟练使用Linux系统的基本命令
3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等
4. 熟练应用“搜索”进行举一反三的学习
二、学习过程
一、基本概念及操作
1、linux终端:Terminal(终端),在图形界面下为了实现在一个窗口中完成接受用户输入和显示输出,Linux 系统提供了一个叫做终端模拟器的程序(Terminal)
2、Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe。普通意义上的 Shell 就是可以接受用户输入命令的程序。
3、命令行操作:
快捷键:(1)使用Tab键来进行命令补全,当忘记某个命令的全称时可以只输入它的开头的一部分然后按下Tab键就可以得到提示或者帮助完成
(2)[Ctrl+c]当你在 Linux 命令行中无意输入了一个不知道的命令,或者错误的使用了一个命令,导致在终端里出现了无法预料的情况,使用Ctrl+c键来强行终止当前程序
4、学会使用通配符:通配符是一种特殊语句,主要有星号(*)和问号(?),用来对对字符串进行模糊匹配(比如文件名,参数名)。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。
5、在 Linux 环境中,如果你遇到困难,可以使用man 命令,它是Manual page的缩写。Manual pages 是在 UNIX 或类 UNIX 操作系统在线软件文档的一种普遍的形式。 内容包括计算机程序(包括库和系统调用),正式的标准和惯例,甚至是抽象的概念。用户可以通过执行 man 命令调用手册页。
作业:
二、linux用户管理
1、Linux 是一个可以实现多用户登陆的操作系统,不同的用户可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的用户管理权限机制 ,不同用户不可以轻易地查看、修改彼此的文件。
2、创建用户:在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。root 权限,系统权限的一种,与 SYSTEM 权限可以理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作一般登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里要用sudo 这个命令。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo 用户组。
3、在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,一个用户可以属于多个用户组。
4、使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令
三、用户及文件权限管理
Linux 是一个可以实现多用户登陆的操作系统,由于 Linux 的 用户管理 和 权限机制 ,不同用户不可以轻易地查看、修改彼此的文件。
1、查看用户:
打开终端,输入命令:
$ who am i
或者
$ who mom likes
第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami
即可)
第二列的 pts/0
中 pts
表示伪终端,0表示打开的伪终端序号,第三列则表示当前伪终端的启动时间。。
who
命令其它常用参数
参数 | 说明 |
---|---|
-a |
打印能打印的全部 |
-d |
打印死掉的进程 |
-m |
同am i ,mom likes |
-q |
打印当前登录用户数及用户名 |
-u |
打印当前登录用户登录信息 |
-r |
打印运行等级 |
2、创建用户
在 Linux 系统里, root
账户拥有整个系统至高无上的权利,比如 新建/添加 用户。创建用户需要 root 权限,这里就要用到 sudo
这个命令了。使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo
用户组。
新建一个叫 lilei 的用户:
这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录:
$ ls /home
现在你已经创建好一个用户,并且你可以使用你创建的用户登录了,
使用如下命令切换登录用户:$ su -l lilei
退出当前用户跟退出终端一样可以使用 exit
命令或者使用快捷键 Ctrl+d
。
3、用户组
在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源。
查看自己属于哪些用户组:
方法1、使用groups命令
$ groups shiyanlou
其中冒号之前表示用户,后面表示该用户所属的用户组。这里可以看到 shiyanlou 用户同时属于 shiyanlou 和 sudo 用户组,每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组。默认情况下在sudo用户组里的可以使用sudo命令获得root权限。
方法2、查看/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
将其它用户加入 sudo 用户组
默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入sudo用户组从而获取 root 权限。
$ su -l lilei
$ sudo ls
会提示 lilei 不在 sudoers 文件中,意思就是 lilei 不在 sudo 用户组中
使用 usermod
命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令
这里用 shiyanlou 用户执行 sudo 命令将 lilei 添加到 sudo 用户组,让它也可以使用 sudo 命令获得 root 权限
$ su shiyanlou
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei
然后你再切换会 lilei 用户,现在就可以使用 sudo 获取 root 权限了。
删除用户
查看文件权限
ls
命令,用它来列出并显示当前目录下的文件,当然这是在不带任何参数的情况下,它能做的当然不止这么多,现在我们就要用它来查看文件权限。
使用较长格式列出文件:
$ ls -l
文件类型:设备文件( /dev
目录下有各种设备文件,大都跟具体的硬件设备相关)socket
(网络套接字)pipe
(管道)
链接文件是分为两种的,软链接文件,“硬链接”。
文件权限:
读权限,表示你可以使用 cat <file name>
之类的命令来读取某个文件的内容;写权限,表示你可以编辑和修改某个文件; 执行权限,通常指可以运行的二进制程序文件或者脚本文件。一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件。
至于所属用户组权限,是指你所在的用户组中的所有其它用户对于该文件的权限
链接数:
链接到该文件所在的 inode 结点的文件名数目。
文件大小:
以 inode 结点大小为单位来表示的文件大小,你可以给 ls 加上 -lh
参数来更直观的查看文件的大小。
关于 ls
命令的一些其它常用的用法:
- 显示除了 '.'(当前目录),'..' 上一级目录之外的所有包含隐藏文件(Linux 下以 '.' 开头的文件为隐藏文件)
$ ls -A
可以同时使用 '-A' 和 '-l' 参数:
$ ls -Al
查看某一个目录的完整属性,而不是显示目录里面的文件属性:
$ ls -dl <目录名>
- 显示所有文件大小,并以普通人类能看懂的方式呈现:
$ ls -AsSh
其中小 s 为显示文件大小,大 S 为按文件大小排序,若需要知道如何按其它方式排序,请使用“man”命令查询。
变更文件所有者:
新建一个文件,命名为 “iphone6”,可见文件所有者是 lilei
使用以下命令变更文件所有者为 shiyanlou :
$ cd /home/lilei
$ ls iphone6
$ sudo chown shiyanlou iphone6
$ cp iphone6 /home/shiyanlou
现在查看,发现 文件所有者成功修改为 shiyanlou :
修改文件权限:
方式一:二进制数字表示
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 "rwx",也就是一个 '7' ,所以如果我要将文件“iphone6”的权限改为只有我自己可以用那么就这样:
先在文件里加点内容:
$ echo "echo \"hello shiyanlou\"" > iphone6
然后修改权限:
$ chmod 600 iphone6
方式二:加减赋值操作
完成上述相同的效果,你可以:
$ chmod go-rw iphone6
'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。
四、Linux 目录结构及文件基本操作
1、Linux目录结构
1)、Linux 的目录与 Windows 的目录的区别:一种不同是体现在目录与存储介质。Linux 是以树形目录结构的形式来构建整个系统的,可以理解为一个用户可操作系统 的骨架
FHS标准:文件系统层次结构标准。定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin 与 /sbin 则应该 要放置可执行文件等等。 第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。
2)、目录路径
使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录, - 表示上一次所在目录,~ 通常表示当前用户的"home"目录。
使用 pwd 命令可以获取当前所在路径(绝对路径)。
绝对路径和相对路径:关于绝对路径,简单地说就是以根"/"目录为起点的完整路径,以你所要到的目录为终点。
相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点
2、Linux 文件的基本操作
1)、新建文件:使用 touch 命令创建空白文件
新建目录:使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性
2)、复制文件:使用cp(copy)命令复制一个文件或目录到指定目录
复制目录:要成功复制目录需要加上-r或者-R参数,表示递归复制,就是说有点“株连九族”的意思
3)、删除
删除文件:使用rm(remove files or directories)命令,删除一个文件或目录
删除目录:跟复制目录一样,要删除一个目录,也需要加上-r或-R参数
4)、移动文件与文件重命名
移动文件:使用mv(move or rename files)命令,移动文件(剪切)
文件重命名:将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名
5)、查看文件:使用cat,tac和nl命令查看文件。cat为正序显示,tac倒序显示
使用more和less命令分页查看文件
6)、查看文件类型:在 Linux 下面文件的类型不是根据文件后缀来判断的,我们通常使用file命令可以查看文件的类型
7)、编辑文件:vimtutor
3、作业
五、环境变量与文件查找
1、环境变量
1)、变量:所谓变量就是计算机中用于记录一个值的符号,而这些符号将用于不同的运算处理中。变量的作用域即变量的有效范围(比如一个函数中、一个源文件中或者全 局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量一般。
环境变量就是作用域比自定义变量要大,如Shell 的环境变量作用于自身和它的子进程
通常我们会涉及到的环境变量有三种:
当前 Shell 进程私有用户自定义变量,如上面我们创建的 temp 变量,只在当前 Shell 中有效。 Shell 本身内建的变量。 从自定义变量导出的环境变量。
2)、命令的查找路径与顺序
3)、添加自定义路径到“PATH”环境变量:在前面我们应该注意到PATH里面的路径是以:作为分割符,所以我们可以这样添加自定义路径:
$ PATH=$PATH:/home/shiyanlou/mybin。注意这里一定要使用绝对路径
4)、修改和删除已有变量:
2、搜索文件:搜索相关的命令常用的有如下几个whereis,which,find,locate。
locate快而全。which小而精。find精而细
3、作业:数字雨
六、文件打包与压缩
1、zip压缩打包程序:-r参数表示递归打包包含子目录的全部内容,-q参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。
后面使用du命令查看打包后文件的大小
压缩级打包:注意:这里只能使用绝对路径,否则不起作用
2、使用unzip命令解压缩
3、rar打包压缩命令: rar也是 Windows 上常用的一种压缩文件格式,在 Linux 上可以使用rar和unrar工具分别创建和解压 rar 压缩包。
注意:rar 的命令参数没有-,如果加上会报错
4、tar打包工具:-c表示创建一个 tar 包文件,-f用于指定创建的文件名,注意文件名必须紧跟在-f参数之后
5、作业:火苗~ 并没有出现 command not found
七、文件系统操作与磁盘管理
简单的文件操作系统
1、查看磁盘和目录的容量:使用 df 命令查看磁盘的容量。du查看目录容量。
2、简单的磁盘管理
创建虚拟磁盘:dd命令,dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if(input file,输入文件)和of(output file,输出文件)改变。
bs(block size)用于指定块大小(缺省单位为 Byte,也可为其指定如'K','M','G'等单位),count用于指定块数量。使用和du和cat命令看到的写入完成文件
使用 dd 命令创建虚拟镜像文件:使用 mkfs 命令格式化磁盘
使用 mount 命令挂载磁盘到目录树,使用 unmount 命令卸载已挂载磁盘
使用 fdisk 为磁盘分区:
作业:
八、命令执行顺序控制与管道
1.顺序执行多条命令
$ sudo apt-get update;sudo apt-get install some-tool;some-tool
# 让它自己运行
2.有选择的执行命令
&&用来实现选择性执行的,它表示如果前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果)返回0则执行后面的,否则不执行
||是与&&相反的控制效果,当上一条命令执行结果为≠0($?≠0)时则执行它后面的命令
3、管道:是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
$ ls -al /etc | less:通过管道将前一个命令(ls)的输出作为下一个命令(less)的输入,然后就可以一行一行地看。
4.cut 命令,打印每一行的某一字段
5.grep 命令,在文本中或 stdin 中查找匹配字符串
grep命令是很强大的,也是相当常用的一个命令,它结合正则表达式可以实现很复杂却很高效的匹配和查找, grep命令的一般形式为:grep [命令选项]... 用于匹配的表达式 [文件]...
6. wc 命令:用于统计并输出一个文件中行、单词和字节的数目,比如输出/etc/passwd文件的统计信息:
6.sort 排序命令:将输入按照一定方式排序,然后再输出,它支持的排序有按字典排序,数字排序,按月份排序,随机排序,反转排序,指定特定字段进行排序等等。
默认为字典排序:$ cat /etc/passswd | sort
反转排序:$ cat /etc/passwd | sort -r
按特定字段排序:$ cat /etc/passwd | sort -t':' -k 3
6. uniq 去重命令:用于过滤或者输出重复行。
九、简单的文本处理
1.文本处理命令
1)tr 命令:用来删除一段文本信息中的某些文字。或者将其进行转换。tr [option]...SET1 [SET2]
常用的选项有:
-d 删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配
-s 去除set1指定的在输入文本中连续并重复的字符
2.col 命令:将Tab换成对等数量的空格建,或反转这个操作。col [option]
常用的选项有:
-x 将Tab转换为空格
-h 将空格转换为Tab(默认选项)
3.join命令:将两个文件中包含相同内容的那一行合并在一起。join [option]... file1 file2
常用的选项有:
-t 指定分隔符,默认为空格
-i 忽略大小写的差异
-1 指明第一个文件要用哪个字段来对比,,默认对比第一个字段
-2 指明第二个文件要用哪个字段来对比,,默认对比第一个字段
4.paste命令:在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。paste [option] file...
常用的选项有:
-d 指定合并的分隔符,默认为Tab
-s 不合并到一行,每个文件为一行
十、数据流重定向
1.数据流重定向
文件描述符 设备文件 说明
0 /dev/stdin 标准输入
1 /dev/stdout 标准输出
2 /dev/stderr 标准错误
文件描述符:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。
将一个文件作为命令的输入,标准输出作为命令的输出: cat Documents/test.c\~
将echo命令通过管道传过来的数据作为cat命令的输入,将标准输出作为命令的输出:$ echo 'hi' | cat
将echo命令的输出从默认的标准输出重定向到一个普通文件
$ echo 'hello shiyanlou' > redirect
$ cat redirect
2.标准错误重定向
3.使用tee命令
同时重定向到多个文件
除了将需要将输出重定向到文件之外也需要将信息打印在终端,那么你可以使用tee命令来实现:$ echo 'hello shiyanlou' | tee hello
4.永久重定向:exec命令的作用是使用指定的命令替换当前的 Shell,及使用一个进程替换当前进程,或者指定新的重定向
7.完全屏蔽命令的输出
在类 UNIX 系统中,/dev/null,或称空设备,是一个特殊的设备文件,它通常被用于丢弃不需要的输出流,或作为用于输入流的空文件,这些操作通常由重定向完成。读取它则会立即得到一个EOF。
我们可以利用设个/dev/null屏蔽命令的输出:
$ cat Documents/test.c\~ nefile 1>/dev/null 2>&1
8.使用 xargs 分割参数列表
xargs 是一条 UNIX 和类 UNIX 操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
十一、正则表达式基础
1、正则表达式:正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。正则表达式通常缩写成“regex”,单数有 regexp、regex,复数有 regexps、 regexes、regexen。
1)、基本语法:选择 | 竖直分隔符表示选择,例如"boy|girl"可以匹配"boy"或者"girl"
数量限定 数量限定除了我们举例用的*,还有+加号,?问号,.点号,如果在一个模式中不加数量限定符则表示出现一次且仅出现一次
范围和优先级 ()圆括号可以用来定义模式字符串的范围和优先级,这可以简单的理解为是否将括号内的模式串作为一个整体。
语法 正则表达式有多种不同的风格,下面列举一些常用的作为 PCRE 子集的适用于perl和python编程语言及grep或egrep的正则表达式匹配规则
2、grep模式匹配命令
1)、基本操作:
2)、使用正则表达式
3、sed流编辑器:sed工具在 man 手册里面的全名为"sed - stream editor for filtering and transforming text ",意即,用于过滤和转换文本的流编辑器。
1)、sed常用参数介绍
常用参数及说明:
2)、sed编辑器的执行命令
sed操作举例:打印2~5行和打印奇数行
行内替换和行间替换:
4、awk文本处理语言
1)、awk介绍:它允许创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。最简单地说,AWK是一种 用于处理文本的编程语言工具。
2)、awk的一些基础概念:awk所有的操作都是基于pattern(模式)—action(动作)对来完成的,如: $ pattern {action}
awk处理文本的方式,是将文本分割成一些“字段”,然后再对这些字段进行处理,默认情况下,awk以空格作为一个字段的分割符
3)、awk命令基本格式:awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...]
4)、awk操作体验:
十三、Linux 下软件安装
1.通常 Linux 上的软件安装主要有三种方式:
在线安装
从磁盘安装deb软件包
从二进制软件包安装
从源代码编译安装
2. apt 包管理工具介绍
APT是Advance Packaging Tool(高级包装工具)的缩写,是Debian及其派生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。
软件源镜像服务器
软件源
我们需要定期从服务器上下载一个软件包列表,使用 sudo apt-get update 命令来保持本地的软件包列表是最新的(有时你也需要手动执行这个操作,比如更换了软件源),而这个表里会有软件依赖信息的记录,对于软件依赖,我举个例子:我们安装 w3m 软件的时候,而这个软件需要 libgc1c2 这个软件包才能正常工作,这个时候 apt-get 在安装软件的时候会一并替我们安装了,以保证 w3m 能正常的工作。
3.apt-get:apt-get使用各用于处理apt包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等,下面列出一些apt-get包含的常用的一些工具:
工具 说明
install 其后加上软件包名,用于安装一个软件包
update 从软件源镜像服务器上下载/更新用于更新本地软件源的软件包列表
upgrade 升级本地可更新的全部软件包,但存在依赖问题时将不会升级,通常会在更新之前执行一次update
dist-upgrade 解决依赖关系并升级(存在一定危险性)
remove 移除已安装的软件包,包括与被移除软件包有依赖关系的软件包,但不包含软件包的配置文件
autoremove 移除之前被其他软件包依赖,但现在不再被使用的软件包
purge 与remove相同,但会完全移除软件包,包含其配置文件
clean 移除下载到本地的已经安装的软件包,默认保存在/var/cache/apt/archives/
autoclean 移除已安装的软件的旧版本软件包
下面是一些apt-get常用的参数:
参数 说明
-y 自动回应是否安装软件包的选项,在一些自动化安装脚本中使用这个参数将十分有用
-s 模拟安装
-q 静默安装方式,指定多个q或者-q=#,#表示数字,用于设定静默级别,这在你不想要在安装软件包时屏幕输出过多时很有用
-f 修复损坏的依赖关系
-d 只下载不安装
--reinstall 重新安装已经安装但可能存在问题的软件包
--install-suggests 同时安装APT给出的建议安装的软件包
4.安装软件包
使用如下方式重新安装:
$ sudo apt-get --reinstall install w3m
5.软件升级
# 更新软件源
$ sudo apt-get update
# 升级没有依赖问题的软件包
$ sudo apt-get upgrade
# 升级并解决依赖关系
$ sudo apt-get dist-upgrade
6.卸载软件sudo apt-get remove w3m ,系统会有一个确认的操作。
或者,你可以执行
# 不保留配置文件的移除
$ sudo apt-get purge w3m
# 或者 sudo apt-get --purge remove
# 移除不再需要的被依赖的软件包
$ sudo apt-get autoremove
7.软件搜索
sudo apt-cache search softname1 softname2 softname3……
apt-cache 命令则是针对本地数据进行相关操作的工具,search 顾名思义在本地的数据库中寻找有关 softname1 softname2 …… 相关软件的信息。现在我们试试搜索一下之前我们安装的软件 w3m ,如图:
十四、使用 dpkg 从本地磁盘安装 deb 软件包
1.dpkg 介绍
dpkg 本身是一个底层的工具。上层的工具,像是 APT,被用于从远程获取软件包以及处理复杂的软件包关系。"dpkg"是"Debian Package"的简写。
dpkg常用参数介绍:
参数 说明
-i 安装指定deb包
-R 后面加上目录名,用于安装该目录下的所有deb安装包
-r remove,移除某个已安装的软件包
-I 显示deb包文件的信息
-s 显示已安装软件的信息
-S 搜索已安装的软件包
-L 显示已安装软件包的目录信息
2.使用dpkg安装deb软件包
# 使用dpkg安装
$ sudo dpkg -i emacs24_24.3+1-4ubuntu1_amd64.deb
我们将如何解决这个错误了,这就要用到apt-get了,使用它的-f参数了,修复依赖关系的安装
$ sudo apt-get -f install
3.查看已安装软件包的安装目录
使用dpkg -L查看deb包目录信息:$ sudo dpkg -L emacs