操作系统
操作系统(Operating System,OS)是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁
Linux
Linux 英文解释为 Linux is not Unix。
Linux 是一个类似 Unix 的开源操作系统内核,在功能和用户体验上进行优化,在使用方式上与 UNIX 非常类似。
Linux在安全性与高性能方面优于Windows。实际使用时一般用的是Linux的发行版:
- Red Hat
包括 RHEL(Red Hat Enterprise Linux,收费版本)和 CentOS(免费版)、Fedora Core(免费桌面版)。成熟,兼容性好,具有强大的英文文档与开发社区的支持。 - Debian
稳定,占用内存小,严谨(但使用门槛高)。 - Ubuntu
由Debian发展而来,具有图形界面,适合充当桌面操作系统而非服务器操作系统。
Linux的安全性
Linux在对计算机实体没有所有权时保证安全。
Linux文件
文件目录结构标准
在Linux中,文件/目录名区分大小写,文件看扩展名(后缀名)没有特殊作用
- /
根目录 - /bin/
存放系统命令。 - /boot/
系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件 - /dev/
设备文件保存位置 - /etc/
配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等 - /home/
普通用户的主目录(也称为家目录)。如用户 a 的主目录是 /home/a - /root/
root 用户的主目录。 - /media/ 或 /mnt/ 或 /misc/
挂载目录。 - /lib/
系统调用的函数库保存位置 - /opt/
第三方安装的软件保存位置。 - /tmp/
临时目录,建议每次开机清空。 - /srv/
服务数据目录 - /sbin/
系统环境相关命令。 - /usr
(注意不是 user),全称为 Unix Software Resource,用于存储系统软件资源,类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。 - /var
用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。
文件系统
分区主要分为两大部分(暂时不提超级块):小部分用于保存文件的 inode (i 节点)信息;剩余的大部分用于保存 block 信息。
每个文件都独自占用一个 inode,文件内容由 inode 的记录来指向;
如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的 inode,才能成功找到文件内容所在的 block 块;
inode
默认大小为 128 Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、文件的最近一次读取时间(atime)、文件的最近一次修改时间(mtime)、文件的数据真正保存的 block 编号。每个文件需要占用一个 inode。block
大小可以是 1KB、2KB、4KB,默认为 4KB。block 用于实际的数据存储(目录的block中包括了其下文件的文件名),如果一个 block 放不下数据,则可以占用多个 block。例如,有一个 10KB 的文件需要存储,则会占用 3 个 block,虽然最后一个 block 不能占满,但也不能再放入其他文件的数据。这 3 个 block 有可能是连续的,也有可能是分散的。
通过ln
命令可以给文件创建链接
- -s:建立软链接文件。如果不加 "-s" 选项,则建立硬链接文件;
- -f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件;
ln [选项] 源文件 目标文件
- 软链接:
类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。- 指令中源文件必须写绝对路径
- 硬链接:给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息。
- 修改存在硬链接的文件会导致另一文件同样被修改,删除则互不影响
- 硬链接不能跨文件系统(分区)建立,因为在不同的文件系统中,inode 号是重新计算的。
- 硬链接不能链接目录
文件操作
Linux中文件操作相关指令执行非常快,其实只是先放到内存缓冲区,等到适当的时候再写入磁盘。但也因此如强制关机或断电会导致数据丢失,可以先使用sync
命令强制将内存缓冲区中的数据立即写入磁盘。
文本处理
使用文本编辑器
- Vim是Vi的加强版 通过esc+:wq保存退出
- nano
查看文本
- cat 文件名
查看整个文本 - tac 文件名
倒序查看整个文本 - head -f -n 10 文件名
实时查看前10行 - tail -f -n 10 文件名
实时查看后n行
软件安装
基础的软件安装方式有SRPM 源码包和 RPM 二进制包两种方式,都比较繁琐,需要手动解决包之间具有依赖性的问题
yum
全称“Yellow dog Updater, Modified”,是改进型的 RPM 软件管理器,yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,解决了 RPM 所面临的软件包依赖问题。
yum
网络源配置文件位于 /etc/yum.repos.d/
目录下,文件扩展名为*.repo
rpm -qa yum//查看已安装的yum版本
yum list//查询所有已安装和可安装的软件包。
yum list 包名//查询执行软件包的安装情况
yum install 包名//安装
yum update 包名//升级软件包
yum remove 包名//卸载软件包(包括其所有依赖,因此尽量不要用)
用户与权限
-
/etc/passwd
文件,是系统用户配置文件,存储了系统中所有用户的基本信息,每行信息如下
用户名:密码(x表示有密码):UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell
-
/etc/shadow
密码文件 -
/etc/group
用户组配置文件 -
/etc/gshadow
用户组密码文件
系统清理
查看磁盘空间情况
其中dev/vda1
即磁盘分区1
df -h
查看当前目录下文件大小
du -sh *
在Linux中为python文件定义默认执行
在文件头部添加#!/usr/bin/env python
或#!/usr/bin/python
。
前者表示从环境变量中寻找python并用于执行,后者为直接指定一个路径来执行。
此时在命令行中直接输入如下内容即可执行该python文件。
./test.py
如报错Permission denied
则为权限不足,需要通过chmod
指令添加执行权限。