Fork me on GitHub

Linux

常用操作和命令

Tab:命令或文件名补全;

Ctrl+C:中断程序;

Ctrl+D:结束键盘输入;

ls:(-a全部文件)、(-d只列出目录)、(-l长数据串行输出);

mkdir:(-p递归创建)、(-m配置权限);

rmkdir:(-p递归删除)

touch:更新文件时间或者建立新文件;

–help:指令用法和选项介绍;

man:显示指令具体信息;

info:将文档分成一个个页面,每个页面可跳转;

doc:/usr/share/doc,存放软件一整套说明文件;

who:查看在线用户;

sync:将内存中的文件同步到磁盘,关机前使用;

shutdown:(-k警告信息不关机)、(-r关闭系统服务后重启)、(-h关闭系统服务后立即关机)、(-c取消shutdown命令)

PATH:环境变量,声明可执行文件的路径,多个用:分隔符;

sudo:一般用户使用root可执行的命令,只有再/etc/sudoers配置的用户才可用;

RPM:redhat package manager,软件包管理工具;

YUM:基于RPM,具有依赖管理和软件升级功能;

VIM:指令模式,编辑模式,指令列模式;

磁盘

磁盘接口

IDE:磁盘接口,并口线抗干扰性差,已逐渐被SATA取代;

SATA:串口ATA,支持热插拔;

SCSI:小型机系统接口;

SAS:采取序列式技术以获得更高传输速度;

磁盘文件名

Linux每个硬件都被当成一个文件,包括磁盘

IDE磁盘:/dev/hd[a-d]

SATA/SCSI/SAS磁盘:/dev/sd[a-p]

后面的序号与系统检测到磁盘的顺序有关,有插入的插槽位置无关;

分区

分区表

MBR:限制较多,第一个扇区最重要,里面有开机记录和分区表,开机记录446bytes,分区表64bytes;分区表最多能存4个分区,主分区和扩展分区,扩展分区只有一个,扩展区可分出更多分区(逻辑分区);分区也是一个文件,命名方式:磁盘文件名+编号,/dev/sda1;逻辑分区从5开始。

GPT:

文件系统

分区与文件系统

对分区进行格式化是为了再分区建立文件系统,一个分区通常只能格式化为一个文件系统,但是磁盘阵列等技术可以将一个分区格式化为多个文件系统。

组成

inode:一个文件一个,记录文件属性,同时记录文件内容所在的block编号;

block:记录文件的内容,文件太大的话,占用多个block;

superblock:记录文件系统的整体信息,包括inode和block总量、使用量、剩余量,以及文件系统的格式和相关信息等;

block bitmap:记录block是否被使用的位域;

文件读取

Ext2文件系统:当要读取一个文件内容时,先在inode中查找文件内容所在的所有block,然后把所有内容读出来;

FAT文件系统:没有inode,每个block中存着下一个block编号;

磁盘碎片

文件内容所在block过于分散,导致磁盘头移动距离过大降低读写性能;

block:在Ext2文件系统,block大小1K,2K,4K三种,一个block只能被一个文件使用;

inode:权限,拥有者与群组,容量,建立修改时间,最近读取时间,文件特性旗标,文件真正内容指向;大小固定128bytes,每个文件仅占用1个;

目录

一个目1个Inode,至少1个block,block记录目录下文件的inode和文件名;inode本身不记录文件名,文件名记录在目录,因此文件增删改操作与目录的w权限有关;

日志

修复文件系统

挂载

挂载利用目录作为文件系统进入点,即进入目录之后就可以读取文件系统的数据

目录配置

/:根目录

/usr:系统默认软件都会安装到这个目录

/var:存放系统或程序运行过程中的数据文件

文件

文件属性

ls: drwxr-xr-x 3 root root 17 May 6 00:14 .config

dr…x:文件类型(d目录、-文件、l链接文件)和权限,文件拥有者、群组、其他人;

3:链接数;

root:文件拥有者;

root:所属群组;

17:文件大小;

May..:14:最后修改时间;

config:文件名

获取文件内容

cat:取出文件内容

tac:cat的反向操作,从最后一行打印

more:可以一页一页查看文件内容,适合大文件查看;

less:和more类似,多了向前翻页功能

head:取得文件前几行;

tail:取得文件后几行

od:以字符或者十六进制显示二进制文件;

指令与文件搜索

witch:指令搜索

whereis:文件搜索,速度快,因为只搜索几个特定目录;

locate:文件搜索,可用关键字或正则搜索,使用/var/lib/mlocate/数据库进行搜索,存在内存中,每日一更;(-r正则表达式)

find:文件搜索,可以使用文件属性和权限搜索

Bash

-------------本文结束感谢您的阅读-------------