初识Linux
什么是Linux
Linux就是个系统内核,其主要特性:
1、 类Unix:Linux拥有Unix很多特性,同时具有非常强大的网络功能;
2、 开源且免费:任何人可通过任何途径获得Linux,并任意修改其源代码;
3、 支持多平台:Linux可运行在多种硬件平台上(如:x86、680x0和Alpha等);
4、 一切皆文件:任何资源对象都被Linux系统内核视为各种类型的文件对象(如:命令、设备和进程等);
5、 多用户和多任务:Linux中可创建多个用户,且多个用户可同时登录系统并执行各自的程序(互不影响);
6、 兼容POSIX1.0标准:在Linux下通过相应的模拟器运行常见的DOS和Windows的程序;
(PS:发明者:林纳斯·本纳第克特·托瓦兹)
常见发行版本
Linux发行版本:部分组织或厂商将Linux内核与各种软件和文档封装在一起,并提供不同的系统安装界面和系统配置,以此形成一个功能较为完整的操作系统。(更准确的叫法:以Linux内核为核心的操作系统软件包)
版本名 | 特点 | 适用 |
---|---|---|
CentOS | 基于商业版的RHEL 源代码再编译后 | 比较稳定的服务器系统 |
Ubuntu | 优秀的图形界面 | 桌面系统 |
Debian | 开放的开发模式 | 软件包管理 |
SUSE | 专业的操作系统 | 数据库高级服务和电子邮件网络应用 |
一切皆文件
Linux中所有的资源对象均被视为文件
- 在Windows中是文件的,在Linux下同样也是文件;
- 在Windows中不是文件的,在Linux下也是以文件形式存储(如:进程)
文件和目录的定义
文件:系统中独立的资源对象,可通过特定工具操作
- 文件不包含除数据以外的任何对象(数据:字符或进制编码)
目录:系统中包含其他文件/目录的资源对象
- 目录和文件夹属于同一资源对象(文本界面:目录,图形界面:文件夹)
- 文档:同时代表文件和目录
文件名后缀
Linux中文件的后缀名对系统不具任何特殊意义(便于管理和识别),常见后缀名如下:
后缀名 | 含义 |
---|---|
.swap | 使用Vim编辑文件时,创建和被编辑文件的同名临时文件 |
.tar.gz | tar程序打包,并经过gzip压缩的文件 |
.conf | 常为软件的主配置文件 |
.repo | yum源的配置文件 |
.sh | Shell脚本文件 |
src.rpm | SRPM文件 |
.tar.gz | tar程序打包,并经过gzip压缩的文件 |
.service | 常为系统服务类型文件(service unit) |
.target | 搭建环境类型文件(target unit) |
.socket | 内部程序数据交换的socket服务文件(socket unit) |
文档路径
路径分为:绝对路径和相对路径
- 绝对路径:在文件系统中真正的存储位
- 相对路径:相对于工作目录所在的存储位
路径中常见的特殊符号,如下:
特殊符号 | 说明 |
---|---|
. | 当前工作目录 |
.. | 当前工作目录的父目录(上一层目录) |
- | 前一个工作目录 |
~ | 当前用户的家目录 (等同于:~用户名) |
- 所有目录均包含当前工作目录(.)和父目录(..)
- 根目录的父目录是根目录的当前工作目录
目录结构
Linux 操作系统中,所有文件和目录都被组织成以一个根节点(/)为开始的倒置树状结构
目录名 | 含义 |
---|---|
/ | 根目录 所有文件和目录都在根目录的层级下 |
/boot | 存储开机使用的文档 |
/run | 存储开机后产生的各项信息 |
/bin | 存储命令相关的二进制文件 |
/sbin | 存储需root权限才能执行的二进制文件 |
/home | 存储除root用户外,其他用户的家目录 (类似Windows中的User) |
/root | root用户的家目录 |
/dev | 存储外接设备的相关文档 |
/mnt | 常用于存储挂载的外接设备 |
/etc | 存储系统和程序的主要配置文件 只有root用户拥有权限修改 |
/srv | 存储系统提供的服务或数据 |
/sys | 内核设备树的映射 (可读写的虚拟文件系统) |
/proc | 存储系统中运行的各进程信息 (仅能读的虚拟文件系统) |
/tmp | 存储心态运行时产生的临时文档 (任何用户都能对该目录进行存取) |
/usr | 存储系统和用户安装的软件 |
/var | 存储程序/系统的日志文档 |
/lib | 存储系统动态链接共享库 |
/lib<qual> | 存储和/lib不同格式的二进制函数库 (<qual>的值根据操作系统改变) |
- 根目录所在分区应越小越好,且尽量避免与应用程序在同一分区
- 由于救援模式通常仅挂载根目录,所以/bin、/sbin、/etc、/dev、/lib通常与根目录在同一个分区
- /dev中存储的是外接设备的端口(而不是外界设备的驱动程序)
/usr目录
/usr(UNIX操作系统软件资源,UNIX Software Resource):用于存储系统和用户安装软件的资源
目录名 | 含义 |
---|---|
/usr/bin | 存储命令相关的二进制文件 (/bin链接该目录,且该目录下不可存在目录) |
/usr/sbin | 存储需root权限才可执行的二进制文件 (/sbin链接该目录) |
/usr/local | 存储系统管理员在系统中安装的软件 (可实现同一软件的不同版本共存) |
/usr/lib | 存储系统动态链接共享库 (/lib链接该目录) |
/usr/lib<qual> | 存储和/usr/lib不同格式的二进制函数库 (/lib<qual>链接该目录) |
/usr/libexec | 存储不可被普通用户使用的执行文件/脚本 |
/usr/include | 存储C/C++等程序语言的库 |
/usr/games | 存储游戏相关的数据 |
/usr/src | 存储源代码 |
/usr/share/man | 在线帮助文档 |
/usr/share/doc | 软件说明文档 |
/usr/share/zoneinfo | 时区相关文件 |
/var目录
/var(系统可变资源):存储程序/服务运行过程中阐述的数据
目录名 | 含义 |
---|---|
/var/run | 存储程序/服务启动后的PID (/var/run链接该目录) |
/var/spool | 存储队列数据 |
/var/cache | 存储程序/服务运行过程中的缓存数据 (各运行的程序/服务在该目录下都有对应的目录) |
/var/lib | 存储程序/服务的日志文件 |
/var/mail | 存储用户的邮件数据 |
/var/lock | 存储已上锁的设备 |
终端
终端(Terminal):与系统相连的一种输入输出设备
- Linux终端的默认配置:
- 可通过终端输入指令与系统进行交互:
- 指令:在Linux终端(命令行)中输入的可执行内容
- 指令格式:命令 选项 操作对象
(1)命令仅可为一个,但可包含多个选项和操作对象;
(2)多个操作对象,命令默认从左往右依次执行;
(3)操作对象可通过通配符进行指定;
通配符 | 说明 |
---|---|
* | 匹配0或任意多个字符 |
? | 匹配任意一个字符 |
[abcd] | 匹配包含abcd的 |
[a-z] | 匹配a到z之间的所有字符 |
[0-9] | 匹配0到9之间的所有数字 |
匹配string1和stringN其中的一个字符串 | |
(PS:!符号在Linux中表示取反的作用) |
- 终端中常用的快捷键,如下:
快捷键 | 说明 |
---|---|
Ctrl和C | 中断前台正在运行的进程 |
Ctrl和Z | 暂停进程并放入Bash后台 |
Ctrl和D | 结束输入 |
Ctrl和M | 回车 |
Ctrl和U | 删除整列命令 |
Ctrl和S | 暂停屏幕输出 |
Ctrl和Q | 恢复屏幕输出 |
Ctrl和L | 清屏 |
(PS:更多快捷键设置可在/etc/inputrc文件中查询) |