安装软件

使用apt-getapt命令安装软件包

该方法时Ubuntu系统下的最常用的安装方法,该方法要求你提前配置好Ubuntu软件装源,并且需要经常运行apt-get update命令,以保证软件园里的软件版本时最新的。

apt-get命令安装软件包的时候会把下载的软件包保存到/var/cache/apt/archives目录,并进行安装,而且更重要的时可以解决软件包安装中的依赖问题。

执行下面的命令:

1
$ sudo apt-get install 软件报名

例:使用apt-get命令安装wget工具

执行下面命令:

1
$ sudo apt-get install wget

安装deb软件包

在Ubuntu系统下默认的软件包扩展名为deb,这种deb包时debian系统下的软件包管理方式,因为Ubuntu系统是基于debian系统后更改的版本,所有deb格式也是Ubuntu系统下的默认软件包格式。deb软件包的安装需要使用dpkg命令或在图形界面下,直接双击安装即可。通常情况下我们是在命令行下安装deb软件包。执行下面的命令:

1
$ sudo dpkg -i package.deb

dpkg命令常用选项介绍如下:

1
2
3
4
5
6
7
8
9
dpkg -r package 删除包
dpkg -P package 删除包(包括配置文件)
dpkg -L package 列出与该包关联的文件
dpkg -l package 显示钙包的版本
dpkg -unpack package.deb 解开deb包的内容
dpkg -S keyword 搜索所属的包内容
dpkg -l 列出当前已安装的包
dpkg -c package.deb 列出deb包的内容
dpkg -configure package 配置包

Ubuntu源码包编译安装方式

如果你只有源码包而没有下载到deb软件包,那么可以通过编译安装的方式来安装软件包。在编译安装之前,需要先建立编译环境,使用以下命令建立基本的编译环境:

1
$ sudo apt-get install build-essential

通常情况下,我们下载到的源码包.tar,.tar.gz,.tgz,.tar.bz等格式,当然也并不是所有以这些为扩展名的文件都是源码压缩包,他们也有可能已经被编译过了,压缩包里面会有一个安装程序的(Installer)或者扩展名为bin的可执行文件。

编译安装的步骤如下:

  1. tar xvf 源码包.tar.gz
  2. 进入解压后的源码包目录,查看readme或者相关说明即可找到安装的方法(下面方法是通常做法,具体最好参照源码包的说明)。
  3. ./configure make sudo make install

编译安装方式需要我们自己解决软件包安装的依赖问题,如果在安装过程中报依赖问题,我们可以使用apt-get命令去尝试安装,之后再进行编译安装方式需要我们自己解决。

使用Ubuntu软件包管理器安装

使用软件包管理器:系统-系统管理-Ubuntu软件包管理器,输入想要安装的软件名字,搜到后右击选”标记以安装“,然后点击菜单下面的”应用“即可。这个工具其实和apt一样,可以搜索,下载,安装Ubuntu源里的软件。

二进制包的安装方式

对于扩展名为binrunsh等的文件或者没有扩展名的二进制文件安装(此类行为linux通用的二进制安装包,可能只对应x86,也可能包括x86-64支持),使用下面的命令安装:

1
2
$ chmod u-x 二进制包.bin
./二进制包.bin

rpm包的安装方式

Ubuntu系统下默认只支持deb格式的软件包安装中,如果想安装rpm格式的软件包,首先我们需要安装一个rpmdeb的软件

1
$ sudo apt-get install alien

然后就可以对rpm格式的软件转换成deb格式的了:

1
$ alien -d *.rpm

然后就可以用deb的安装方式进行软件安装。也可以不需转换而直接对rpm包进行安装:

1
$ alien -i *.rpm

zip压缩包安装

使用unzip命令将.zip压缩包解压,之后根据压缩包中的程序包后缀类型(.tar.gzdebrpm等)再进行安装。


卸载删除软件

Linux下的软件基本都会需要其他的软件来依赖,在安装某个软件的时候,会连同依赖包也一并安装。

apt-get remove 软件包就是删除该软件包,但不会删除依赖的软件包,因为有可能会有别的软件包对该依赖包有依赖关系,所以不会对依赖包进行删除。

apt-get autoremove是专门用来检测并删除那些不再依赖的包。

1
2
$ sudo apt-get remove --purge 软件包名	 # 移除软件包的应用及配置
$ sudo apt-get autoremove # 移除没有依赖关系的包

Linux终端使用ls时的文件颜色

颜色 文件类型
白色字 普通文件
蓝色字 目录
绿色字 可执行文件
红色字 压缩文件
浅蓝色字 链接文件
红色闪烁字 链接的文件有问题
黄色字 设备文件
灰色字 其他文件
绿色底色 蓝色字 任何人都可以读写的文件夹

Linux权限管理

Linux的权限分组

使用下面的命令,可以查看所在文件夹中文件的权限:

1
2
$ ls -l		# 查看非隐藏文件的权限
$ ls -al # 查看所有文件的权限,包括隐藏与非隐藏文件

Linux中权限由10为字母组成,就是下图中标注出的权限部分(-代表没有取得该权限):

img

在Linux的权限中,每个用户属于一个权限组,其中包括几个概念,即:文件所有者、所在组、其他组。

  • 文件所有者:一般来说可以简单的理解为文件创建者,但是创建后可以通过chown(change owner)命令来更改文件的所有者
  • 所在组:文件创建时所在组为创建者所在组,后期可以通过chgrp(change group)命令来修改文件所在组
  • 其他组:除文件所在组以外的组称为其他组

具体权限介绍

Linux权限的10位字母具体可以分为四段:

img
  • 第一段:表示文件是否是目录,
    • 若为目录,则第一个字母为d
    • 若不为目录,则为-
  • 第二段:表示文件所有者权限,
    • 第一个r(read)表示为读权限,第二个w(write)为写权限,第三个x(execute)为可执行权限。
    • 若没有某个权限,则为-
  • 第三段:表示文件所在组权限,具体rwx含义同上
  • 第四段:表示其他用户组权限,具体rwx含义同上

权限修改

其实linux中对于权限的修改十分简单,大家可以将权限理解为二进制的对应关系(每段rwx为一组),例如你想给一个文件读权限,而不给写权限和可执行权限,那么对应的就是100(二进制),也就是4,同理如果给rwx权限那么就是7

那么,如果我们想要给一个文件test.sh文件赋予rwxr-xrr-x权限我们就应该执行:

1
$ chmod 755 test.sh

其中,第一个7对应了文件所有者权限所持有的权限,第二个5对应了文件所在组的权限,第三个5对应了其他用户组的权限。

但是,如果你想要更直观的看出给一个文件的具体权限,可以使用下面的命令:

1
$ chmod u=rwx,g=rx,o=rx test.sh

其中,第一个u表示文件所有者的权限,第二个g表示文件所在组的权限,第三个o表示其他用户组的权限。

如果想给某个文件增加某一种权限,则可以使用下面的命令:

1
2
3
4
$ chmod u+r		# 给user添加读权限
$ chmod g+w # 给group添加写权限
$ chmod o+x # 给other添加可执行权限
$ chmod +r # 给所有类型(u,g,o)添加读权限

Ubuntu挂载详解及mount命令用法

挂载概念

Linux中的根目录以外的文件想要被访问,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除此关联关系的过程为“卸载”。

注意:“挂载点”的目录需要以下几个要求:

  • 目录事先存在,可以使用mkdir命令新建目录
  • 挂载点目录不可被其他进程使用到
  • 挂载点下原有文件将被隐藏

挂载与卸载

挂载方法

使用下面的命令可以实现挂载:

1
$ mount [-fnrsvw] [-t vfstype] [-o options] device dir
  • device:指明要挂载的设备
    • 设备文件:例如/dev/sda5
    • 卷标:-L ‘LABEL’,例如-L ‘MYDATA'
    • UUID:-U ‘UUID’,例如-U ‘0c50523c-43f1-45e7-85c0-a126711d406e’
    • 伪文件系统名称:procsysfsdevtmpfsconfigfs
  • dir:挂载点
    • 需要事先存在,建议使用空目录
    • 进程正在使用中的设备无法被卸载
  • 常用命令选项:
    • -t vsftype:指定要挂载的设备上的文件系统类型
    • -r:readonly,只读挂载
    • -w:read and write,读写挂载
    • -n:不更新/etc/mtab
    • -a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载“功能)
    • -L ‘LABEL’:以卷标指定挂载设备
    • -U ‘UUID’:以UUID指定要挂载的设备
    • -B:bind,绑定目录到另一个目录上

注意:查看内核追踪到的一挂载的所有设备:cat /proc/mounts

  • -o options:挂载文件系统类型的选项
    • async:异步模式
    • sync:同步模式
    • atime/noatime:包含目录和文件
    • diratime/nodiratime:目录的访问时间戳
    • auto/noauto:是否支持自动挂载
    • exec/noexec:是否支持将文件系统上的应用程序运行为进程
    • dev/nodev:是否支持在此文件系统上使用设备文件
    • suid/nosuid:是否支持在此文件系统上使用特殊权限
    • remount:重新挂载
    • ro:只读
    • rw:读写
    • user/nouser:是否允许普通用户挂载此设备
    • acl:启用此文件系统上的acl功能

注意:

  • 上述选项可以多个同时使用,彼此之间使用逗号分隔
  • 默认挂载选项:rw, suid, dev, exec, auto, nouser, and async