人间多的是两条腿的恶人,多了条尾巴又怎样。
自由软件与开源软件
1.自由软件遵循CPL(General Public License)协议,通用公共许可证允许用户自由下载,分发,修改和再分发源代码公开的自由软件,并可向使用者收取一定的服务费用,但不许任何人将源代码与服务做任何形式的捆绑式销售。
2.开源软件(Open Source Software), 与自由软件不同的是:开源软件允许源代码修改后可以作为闭源的商业软件发布和销售,而自由软件要求即便是经过用户修改,源代码任然必须保持开源。
3.Linux遵循GPL协议,是自由软件。
Linux的主要特点
1.真正的多用户多任务:linux支持多个用户从相同或不同终端同时使用同一台计算机,而没有商业软件所谓许可证的限制。
2.良好的兼容性:linux兼容主流的UNIX系统(Systen V和BSD),在UNIX中可以运行的程序,几乎完全可以在linux中运行。
3.强大的可移植性:linux是目前支持最多硬件平台的操作系统。
4.高度的稳定性:可以连运行续数月,数年而无需重新启动。
5.强大的字符界面(命令行)和渐渐完善的图形用户界面。
Linux版本
1.内核版本
linux内核版本有X.Y.Z形式,其中:
- X:表示主版本号,通常在一段时间内比较稳定。
- Y: 次版本号,偶数便是次内核版本是正式版本,可以公开发行;奇数表示此内核版本是测试版本,还不太稳定,仅供测试。
- Z: 表示修改次数,数值越大,表示修改的次数越多,版本相对更完善。
2.发行版本
目前,linux发行版本已达数百种之多,任何发行版本都不具有发布内核的权利,发行版本之间的差别主要在于包含的软件种类和数量不同。常见的发行版本有redhat, centos, fedora, ubuntu, debian, kali, opensuse等。
Linux系统结构
文件的属性和权限
1.Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
2.Linux的文件权限有以下设定:
- Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
- Linux下权限的属组有 拥有者 、群组 、其它组 三种。每个文件都可以针对这三个属组(粒度),设置不同的rwx(读写执行)权限。
- 通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
文件属性
[-]
:普通类型文件,Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件。[d]
:目录文件,可执行表示有权限进入此目录。[b]
:块设备文件:就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。[c]
:字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。[s]
:套接字文件:这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。,最常在 /var/run目录中看到这种文件类型。[p]
:管道文件:FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。[l]
:链接文件:类似Windows下面的快捷方式。
权限
1 | -rw------- (600) 只有拥有者有读写权限。 |
文件权限修改
1.使用chmod命令: chmod命令用来变更文件或目录的权限。
权限范围的表示法如下:
1 | u User,即文件或目录的拥有者; |
直接举几个例子
- 设置所有用户可读取文件
a.txt
可用chmod ugo+r a.txt
或chmod a+r a.txt
- 设置拥有者可以读写及执行
chmod u+rwx a.txt
- 设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写
chmod a+r,ug+w,o-w a.conf b.xml
- 设置当前目录下的所有档案与子目录皆设为任何人可读写
chmod -R a+rw *
- 设置所有人可以读写及执行
chmod 777 file
(等价于 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file)
2.使用chgrp命令:chgrp命令用来改变文件或目录所属的用户组。
1 | -c或——changes:效果类似“-v”参数,但仅回报更改的部分; |
如:将/usr/ABC
及其子目录下的所有文件的用户组改为abc,使用chgrp -R abc /usr/ABC
3.使用chown命令:chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。
用户可以是用户或者是用户id,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。
参数(选项)和chgrp差不多,直接举例子
将目录/usr/ABC及其下面的所有文件、子目录的文件主改成Bob:chown -R Bob /usr/ABC
默认权限
1.不同用户的默认权限不同
2.可通过umask:命令查看和修改。
3.umask命令用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。
-p
:输出的权限掩码可直接作为指令来执行;-S
:以符号方式输出权限掩码。
4.利用umask命令可以指定哪些权限将在新文件的默认权限中被删除。例如,可以使用下面的命令创建掩码,使得组用户的写权限,其他用户的读、写和执行权限都被取消:umask u=, g=w, o=rwx
5.不能直接利用umask命令创建一个可执行的文件,用户只能在其后利用chmod命令使它具有执行权限。假设执行了命令umask u=, g=w, o=rwx
,虽然在命令行中,没有删去文件主和组用户的执行权限,但默认的文件权限还是640(即 rw-r-----
),而不是750(rwxr-x---
)。但是,如果创建的是目录或者通过编译程序创建的一个可执行文件,将不受此限制。在这种情况下,会设置文件的执行权限。
6.选项-s
表示以字符形式显示当前的掩码。如果直接输入umask命令,不带任何参数,那么将以八进制形式显示当前的掩码。系统默认的掩码是0022。
绝对路径与相对路径
1.绝对路径:以/
开始的路径
2.相对路径:以./
或../
等开始的目录,如../../
表示上两级目录
~
:当前用户的家目录.
或./
:表示当前目录..
或../
:表示上级目录
3.可使用pwd查看当前目录
cd命令
1 | cd 进入用户主目录; |
ls命令
常用:
1 | -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为隐藏,不会列出); |
压缩和解压缩
1.gzip: gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出.gz
扩展名
2.bzip2: 用于创建和管理(包括解压缩).bz2
格式的压缩包。
3.tar: 文件及目录打包命令
1 | tar -cvf log.tar log2012.log 仅打包,不压缩! |
在选项f
之后的文件档名是自己取的,我们习惯上都用.tar
来作为辨识。 如果加z
选项,则以.tar.gz
或.tgz
来代表gzip压缩过的tar包;如果加j选项,则以.tar.bz2
来作为tar包名。
其他参数:
1 | -c或--create:建立新的备份文件; |
vim和vi
1.区别:两者都是多模式编辑器,但vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性。
1)多级撤消
在vi的命令模式里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。
2)多操作系统支持
vi只能运行于unix中,而vim不仅可以运行于unix,还有windows ,mac等操作系统上。
3)语法加亮
vim可以对代码进行多颜色的语法加亮。
4)可视化操作
因为vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows, 所以说他“可视化”。
5)对vi的完全兼容
大多情况下,vim可以完全被当成vi来使用。
2.模式
(1)vi有3个模式:插入模式、命令模式、底行模式。
- 文本输入模式(input mode/编辑模式):在此模式下可以输入字符,按ESC将回到命令模式。
- 命令行模式(command mode/一般模式):在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。
- 末行模式(last line mode/指令列命令模式):在命令模式下,用户按
:
键即可进入末行模式下,可以达到保存文件、退出vi、设置vi、查找等功能。
(2)vim一共有4个模式:
- 正常模式 (Normal-mode) 启动vim后默认处于正常模式。不论位于什么模式,按下
Esc
键(有时需要按两下)都会进入正常模式。 - 插入模式 (Insert-mode) 在正常模式中按下
i, I, a, A
等键,会进入插入模式。 - 命令模式 (Command-mode) 在正常模式中,按下
:
键,会进入命令模式。 - 可视模式 (Visual-mode) 在正常模式中按下v, V,
Ctrl+v
,可以进入可视模式。
3.常用命令
(1)打开与退出
1 | vim filename 打开filename文件 |
(2)编辑
1 | # 命令模式下使用 |
1 | yy 将当前行复制到缓存区,也可以用 "ayy 复制",a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。 |
1 | # 移动光标 |
1 | # 命令模式下使用 |
1 | # 命令模式下使用 |
(3)更多
文件目录
通配符
通配符规则:*
代表任意字符(0或多个)?
代表一个字符[]
中间为字符组合,仅匹配其中任一一个字符
如:
1 | 通配符 含义 |
用户与组群管理
1.linux中用户分为超级用户(root),系统用户和普通用户。同样,组群分为超级组群,系统组群和私人组群。
2.涉及几个命令,需要的时候直接--help
或man
看如何使用就好。包括:
- useradd
- usermod
- userdel
- passwd
- groupadd
- groupmod
- groupdel
命令用法同命令意义。此外,除了passwd命令可以普通用户自己使用外,其他命令均需超级用户权限。
3.几个文件
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/gshadow
4.取消shadow加密,可用pwunconv
: 此命令需在root账户下执行,作用是将/etc/shadow
中的加密密码解密,并保存于/etc/passwd
文件中,且删除/etc/shadow
文件。此命令在批量穿件用户时可用。若要恢复,可用pwconv
命令。