一、操作系统简介
1.1操作系统是什么?
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是配置在计算机硬件上的第一层软件,任何其它软件都必须在操作系统的支持下才能运行。
1.2操作系统的主要功能
为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,操作系统内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用的接口(应用编程接口API,由操作系统实现提供的所有系统调用所构成的集合,是应用程序和系统之间的接口)呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理的结果返回给应用程序。
二、文件类型和文件系统层次结构
2.1文件类型
- | 普通文件 | 类似于Windows的记事本 |
d | 目录文件 | 类似于文件夹 |
c | 字符设备文件 | 字符设备文件,串行端口设备,顺序读写,键盘 |
b | 块设备文件 | 可供存储的接口设备,随机读写,硬盘 |
p | 管道文件 | 用于进程间的通信 |
s | 套接字文件 | 通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通 过套接字来进行数据通信 |
l | 链接文件 | 包括软链接文件和硬链接文件 |
(在linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode。)
软连接和硬链接:
(1)符号链接又叫软链接,和原文件不是一个文件。例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。符号链接记录的是目标的path。符号链接可以跨越文件系统,也可以为目录建立。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。
创建链接文件:ln -s 原文件 链接文件
(2)硬链接,只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接记录的是目标的inode。
创建硬链接: ln 原文件 新文件
2.2文件层次结构
FHS:filesystem hierarchy standard文件系统层级标准,定义了在类Unix系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置于哪个目录下。
可执行文件:指的是可以由操作系统进行加载执行的文件
FHS采用树形结构组织文件
2.3linux目录
/ | 根目录 | 通常不在这里存储文件 |
/bin | 可执行文件 | ls、cd |
/sbin | 可执行文件 | |
/boot | 开机启动文件 | 包括linux内核以及开机菜单与开机需配置文件等 |
/dev | 设备文件 | 任何设备与接口设备都是以文件形式存在于这个目录的 |
/root | root用户的主目录 | |
/home | 普通用户的主目录 | |
/mnt | 挂载点目录 | 光盘必须和/下的某个目录节点建立联系才能使用,把光盘和指定的挂载点目录建立联系的过程叫做挂载 |
/media | 媒体目录 | 也是挂载点目录 |
/opt | 可选目录 | 存放第三方软件包和数据文件 |
/var | 可变目录 | 用以存放经常变化的文件,如日志文件 |
/etc | 配置文件 | |
/lib | 系统的函数库 | |
/proc | 虚拟文件系统 | 它放置的数据都在内存当中(是linux内核在内存中所建立的系统内核映象),proc文件系统被用于从内存读取进程的信息。 |
/run | 系统运行时所需文件 | |
/usr | unix software resource | 放置的数据为可分享的与不可变动的,unix操作系统软件资源所放置的目录,而不是用户数据 |
/srv | service | 是一些网络服务启动之后,这些服务所需要取用的数据目录 |
tmp | 存储临时文件 | 让一般用户或者是正在执行的程序暂时放置文件的地方 |
sys | 虚拟的文件系统 | 主要是记录与内核相关的信息 |
三、grep命令
3.1文本过滤显示:grep
可以根据特定的字符串,对指定文件的每一行进行搜索,如果找到了这个字符串,就将含有这些内容的行输出。
3.2常用命令
用法 | 作用 |
---|---|
grep h 文件名 | 查找文件里有字符h的字符串 |
grep -w 单词 文件名 | 匹配整个单词 |
grep ^ [q] 文件名 | 匹配以q开始的行 |
grep q$ 文件名 | 匹配以q结束的行 |
grep ^ [0-9] 文件名 | 匹配以数字开头的行 |
grep ^ [qf] 文件名 | 匹配以q或者f开头的行 |
grep ^ [^qf] 文件名 | 不匹配以q或者f开头的行 |
grep [^gf]oo 文件名 | 匹配oo前面不是f或者g的字符串 |
grep ^# | 匹配以#号开头的行 |
grep ^$ | 过滤空白行 |
grep -r h ./* | 如果要明确搜索子目录 |
grep -d skip h ./* | 忽略子目录 |
grep -i | 搜索时忽略大小写 |
grep -v | 搜索时显示没有匹配到的行 |
grep -A 2 | 搜索时显示匹配到的那一行以及下2行 |
grep -B 2 | 搜索时显示匹配到的那一行以及上2行 |
grep -C 2 | 搜索时显示匹配到的那一行以及上下2行 |
四、find命令
一般格式:find + [path] +[options] +[expression]
4.1与时间有关的参数:
用法 | 作用 |
---|---|
-mtime n | 为在n天之前的一天之内被更改过的文件 |
-mtime -n | 列出在n天之内(包含n天本身)被更改过的文件名 |
-mtime +n | 列出在n天之前(不包含n天本身)被更改过的文件名 |
find /-mtime 0 | #0代表目前的时间,所以从现在开始到24小时前有改动过内容的文件都会被列出来 |
find /etc/ -newer /etc/passwd | 寻找/etc/下面的文件,如果文件日期比/etc/passwd新就列出 |
4.2与用户或者用户组名有关的参数
用法 | 作用 |
---|---|
-uid n | n为数字,这个数字是用户的账号ID,即UID |
-gid n | n为数字,这个数字是用户的账号ID,即GID |
-user name | 根据文件拥有者寻找文件 |
-group name | 根据文件所属组寻找文件 |
-nouser | 寻找文件的所有者不存在/etc/passwd的人 |
-nogroup | 寻找文件的所有用户组不存在于/etc/group(当你自行安装软件时,很可能该软件的属性当中并没有文件所有者) |
4.3与文件权限及名称有关的参数
用法 | 作用 |
---|---|
-name filename | 查找文件名为filename的文件,支持通配符*和?规格有:c代表字节,k代表1024字节。-size +50k表示要找比50kB还要大的文件 |
-size [±]SIZE | 查找比SIZE还要大(+)或者小(-)的文件 |
-type TYPE | 根据文件类型查找文件,一般正规文件f,设备文件c、b,目录d,链接文件l,socket(s),FIFO(p) |
-perm -mode | 根据文件权限寻找文件。-perm -0744,当一个文件权限为4755时,也会被列出来。 |
-perm +mode | 查找文件权限“包含任一mode的权限”的文件。-perm +755,当一个文件权限为-rw-------时也会被列出来,因为它有rw的属性存在 |
find /bin /sbin -perm +6000 | 找出在/bin和/sbin这两个目录下具有SUID或SGID的文件 |
4.4其他可执行的操作
用法 | 作用 |
---|---|
-exec command:command | -exec后面可再接其他的命令来处理查找到的结果 |
将结果打印到屏幕上,这个操作是默认操作 | |
find / -perm +700 -exec ls -l {} ; | {}表示“由find找到的内容”,find的结果会被放置到{}位置中。 |
-exec一直到“;”是关键字,代表额外命令的开始(-exec)到结束(;),在这中间的就是find命令内的额外命令。额外的命令不支持命令别名。 |
五、文件压缩与解压缩
5.1常见压缩文件扩展名
*.gz | gzip程序压缩的文件 |
---|---|
*.bz2 | bzip2程序压缩的文件 |
*.tar | tar程序打包的数据,并没有经过压缩 |
*.tar.gz | tar程序打包的文件,其中经过gzip的压缩 |
*.tar.bz2 | tar程序打包的文件,其中经过bzip2的压缩 |
5.2压缩命令gzip与bzip2
5.2.1.gzip
压缩文件: gzip 文件名(原文件不存在)
gzip -c 文件名1 >文件名1.gz (保留原文件)
-c表示将压缩过程中产生的数据输出到屏幕上
解压文件: gzip -d 文件名.gz(不保留)
gunzip 文件名.gz
gzip -cd 文件名2.gz >文件名2(保留原文件)
查看压缩过的文本文件内容:zcat 文件名.gz
5.2.2 bzip2
压缩文件bzip2(用法同gzip):bzip2 文件名
bzip2 -c 文件名1 >文件名1.bz2(保留原文件)
解压文件: bzip2 -d 文件名.bz2(不保留原文件)
bunzip2 文件名.bz2
bzip2 -cd 文件名2.bz2 > 文件名2(保留原文件)
查看压缩过的文件内容:bzcat 文件名.bz2
5.3文档的归档打包文件
tar [主选项+辅选项] 文件或目录
主选项:只能出现一个主选项
c— create 创建一个新归档文件
x— 从归档文件中提取文件出来
t— 列出归档文件的内容,查看已经打包了哪些文件,重点在查看文件名
辅选项
z—通过gzip的支持进行压缩/解压缩,一般格式为*.tar.gz
j— 通过bzip2的支持进行压缩/解压缩,一般格式为*.tar.bz2
J—通过xz的支持进行压缩/解压缩,一般格式为*.tar.xz
v— 归档或解包过程中显示被打包的文件
C—这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数
f— 输出结果到文件,必须写该选项
–exclude=FILE在打包的过程中,不要将 FILE 打包! --排除某个文件打包
5.4常见的两种压缩方式:jcvf zcvf
打包、压缩文件1和2并重命名:tar zcvf 新文件名 文件名1 文件名2 文件名3 文件名4
解压:tar xvf 文件名
该命令会自动判断归档文件的压缩格式,自动调用相关程序进行解压缩 解压到指定路径:tar xvf 文件名 -C 目标路径
tar -xjv -f filename.tar.bz2 -C 欲解压缩的目录 查看已压缩文件:tar tf 文件名
六、su和sudo的区别
su:
su + 用户名
切换到某用户模式,但是环境 pwd目录不变,没有时间限制。
sudo:
暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码,有时间限制。
su -
表示默认切换到root用户,并且改变到root用户的环境