初识
显示日期与时间的指令: date
显示日历的指令: cal
简单好用的计算机: bc
获取帮助
–help 和 man page
man 中 代号

man page 中组成部分

操作

1 | man -f man |
info page


其他有用的文件
/usr/share/doc 有有许多说明文档
nano

正确的关机方法
观察系统的使用状态: 如果要看目前有谁在线上,可以下达“who”这个指令,而如果要看网络的连线状态,可以下达 “ netstat -a ”这个指令,而要看背景执行的程序可以执行“ ps -aux ”这个指令
通知线上使用者关机的时刻: 要关机前总得给线上的使用者一些时间来结束他们的工作,所以,这个时候你可以使用 shutdown 的特别指令来达到此一功能。
正确的关机指令使用: 例如 shutdown 与 reboot 两个指令!
- 将数据同步写入硬盘中的指令: sync
- 惯用的关机指令: shutdown
- 重新开机,关机: reboot, halt, poweroff
1 | shutdown -h now |
实际使用管理工具 systemctl 关机
- halt 进入系统停止的模式,屏幕可能会保留一些讯息,这与你的电源管理模式有关
- poweroff 进入系统关机模式,
- reboot 直接重新开机
- suspend 进入休眠模式
或者 init 命令切换执行等级, 0 关机, 6重启
Linux 文件权限 与 目录配置
Linux一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有 read/write/execute 等权限
/etc/passwd == > 账号信息
/etc/shadow == > 个人密码
/etc/group == > 群组名称


第一个字符:
- d ==> 目录
- ‘-’ ==> 文件
- l ==> 链接文件(link file)
- b ==> 则表示为设备文件里面的可供储存的周边设备(可随机存取设备)
- c ==> 表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。
后面字符三个一组:
- r ==> read
- w ==> write
- x ==> execute
- ‘-’ ==> 无权限
locale ==> 当地习惯
改变文件属性与权限
chgrp :改变文件所属群组
chown :改变文件拥有者
chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
1 | chgrp [-R] dirname/filename ... |
chown也可以使用 chown user.group file

linux 文件种类与扩展名
文件种类
- ‘-’ 正规文件(regular file )
- 纯文本文件(ASCII)
- 二进制档(binary)
- 数据格式文件(data)
- d 目录(directory)
- l 链接文件(link)
- 设备与设备文件(device)
- b 区块(block)设备文件
- c 字符(character)设备文件
- s 数据接口文件(sockets)
- p 数据输送档(FIFO, pipe)
扩展名
- .sh : 脚本或批处理文件 (scripts),因为批处理文件为使用shell写成的
- Z, .tar, .tar.gz, .zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar
等等的,由于不同的压缩软件,而取其相关的扩展名 - .html, .php:网页相关文件
单一文件或目录的最大容许文件名为 255Bytes
文件名称的开头为小数点“.”时, 代表这个文件为隐藏文件
linux 目录配置
Filesystem Hierarchy Standard (FHS)
FHS依据文件系统使用的频繁与否与是否允许使用者随意更动, 而将目录定义成为四种交互作用的形态
FHS订定出来的四种目录特色为:shareable, unshareable, static, variable等四类;
FHS所定义的三层主目录为:/, /var, /usr三层
Linux文件名的限制为:单一文件或目录的最大容许文件名为 255 Bytes

事实上,FHS针对目录树架构仅定义出三层目录下面应该放置什么数据而已,分别是下面这三个目录的定义:
/ (root, 根目录):与开机系统有关;
/usr (unix software resource):与软件安装/执行有关;
/var (variable):与系统运行过程有关。



FHS建议所有软件开发者,应该将他们的数据合理的分别放置到/usr这个目录下的次目录,而不要自行创建该软件自己独立的目录。



Linux Standard Base (LSB) 的标准
https://wiki.linuxfoundation.org/lsb/start
1 | uname -r # 查看核心版本 |
Linux 文件与目录管理
1 | . 代表此层目录 |
1 | cd :变换目录 |
可执行文件路径的变量 $PATH
1 | echo $PATH |
ls
1 | ls -al |
cp rm mv
1 | sudo copy -i /home/centos/Desktop/text.txt /home/slacr/Desktop/text_from_centos.txt |
dirname basename
1 | dirname ~/centos/Desktop/d/b1 |
cat tac nl more less head tail od 文件内容查阅
-
cat [-AbEnTv]
选项与参数:
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字符 $ 显示出来;
-n :打印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符 -
tac 反向显示,由最后一行到第一行反向在屏幕上显示出来
-
nl (添加行号打印)
nl [-bnw] 文件
选项与参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在屏幕的最左方显示;
-n rn :行号在自己字段的最右方显示,且不加 0 ;
-n rz :行号在自己字段的最右方显示,且加 0 ;
-w :行号字段的占用的字符数。 -
more (一页一页翻动)
空白键 (space):代表向下翻一页;
Enter :代表向下翻“一行”;
/字串 :代表在这个显示的内容当中,向下搜寻“字串”这个关键字;
:f :立刻显示出文件名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 ctrl + b :代表往回翻页,不过这动作只对文件有用,对管道无用 -
less (一页一页翻动)
pagedown:向下翻动一页;
pageup :向上翻动一页;
/字串 :向下搜寻“字串”的功能;
?字串 :向上搜寻“字串”的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
g :前进到这个数据的第一行去;
G :前进到这个数据的最后一行去 (注意大小写);
q :离开 less 这个程序; -
head (取出前面几行)
1 | head [-n number] 文件 |
touch 修改文件时间或创建新文件
modification time (mtime)更改文件内容
change time (ctime)权限与属性更改
access time (atime)文件被访问
1 | date; ll /etc/man_db.conf; ll --time=atime /etc/man_db.conf; ll --time=ctime /etc/man_db.conf |
1 | touch [-acdmt] 文件 |
文件与目录的默认权限与隐藏权限
chattr lsattr 更改 查看所有属性
umask 文件默认权限
1 | umask # 显示的是被拿去的权限, 第一位对应隐藏权限 |
文件默认权限 666, 目录默认权限 777, 然后减去umask拿去的权限
文件隐藏属性
1 | chattr [+-=][ASacdistu] 文件或目录名称 |
文件特殊权限: SUID, SGID, SBIT
文件具有SUID的特殊权限时,代表当使用者执行此一binary程序时,在执行过程中使用
者会暂时具有程序拥有者的权限
目录具有SGID的特殊权限时,代表使用者在这个目录下面新建的文件之群组都会与该目
录的群组名称相同。
目录具有SBIT的特殊权限时,代表在该目录下使用者创建的文件只有自己与root能够删
除!
- Set UID
当 s 这个标志出现在文件拥有者的 x 权限上时,例如刚刚提到的 /usr/bin/passwd 这个文件的
权限状态:“-rwsr-xr-x”,此时就被称为 Set UID,简称为 SUID 的特殊权限。
SUID 权限仅对二进制程序(binary program)有效;
执行者对于该程序需要具有 x 的可执行权限;
本权限仅在执行该程序的过程中有效 (run-time);
执行者将具有该程序拥有者 (owner) 的权限。
-
Set GID
当 s 标志在文件拥有者的 x 项目为 SUID,那 s 在群组的 x 时则称为 Set GID
执行者在执行的过程中将会获得该程序群组的支持 -
Sticky Bit
SBIT 目前只针对目录有效:
当使用者对于此目录具有 w, x 权限,亦即具有写入的权限时;
当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件
- SUID/SGID/SBIT 权限设置
1 | chmod 4755 test; ll test |
file 观察文件类型
1 | file ~/.bashrc |
指令与文件搜寻
which 寻找可执行文件(PATH中)
1 | which ipconfig |
whereis (由一些特定的目录中寻找文件文件名)
1 | whereis [-bmsu] 文件或目录名 |
locate / updatedb
1 | [root@study ~]# locate [-ir] keyword |
locate 寻找的数据是由“已创建的数据库 /var/lib/mlocate/, ,而数据库的创建默认是在每天执行
一次
updatedb指令会去读取 /etc/updatedb.conf 这个配置文件的设置,然后再去硬盘里面进行搜寻文件名的动作, 最后就更新整个数据库文件
find
对整个磁盘进行搜索
1 | find [PATH] [option] [action] |

Linux 磁盘与文件管理系统
Linux 最传统的磁盘文件系统 (filesystem) 使用的是 EXT2(Linux second extendedfile system, ext2fs)
windows 98以前的微软操作系统主要利用的文件系统是 FAT (或 FAT16),windows 2000 以后的版本有所谓的 NTFS 文件系统
较新的操作系统的文件数据除了文件实际内容外, 通常含有非常多的属性,例如 Linux 操作系统的文件权限(rwx)与文
件属性(拥有者、群组、时间参数等)。 文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。 另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等
- superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
- inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的 block号码;
- block:实际记录文件的内容,若文件太大时,会占用多个 block 。
Ext2 文件系统在格式化的时候基本上是区分为多个区块群组 (block group) 的,每个区块群组都有独立的 inode/block/superblock 系统。

磁盘的分区、格式化、检验与挂载
lsblk 列出系统上的所有磁盘列表
1 | lsblk [-dfimpt] [device] |
blkid 列出设备的 UUID 等参数
1 | blkid |
UUID 是全域单一识别码(universally unique identifier),Linux 会将系统内所有的设备都给予一个独一无二的识别
码, 这个识别码就可以拿来作为挂载或者是使用这个设备/文件系统之用了。
parted 列出磁盘的分区表类型与分区信息
1 | parted /dev/sda print |
磁盘分区: gdisk/fdisk
1 | fdisk /dev/sda |
cat /proc/partitions # 核心的分区纪录
磁盘格式化(创建文件系统)
XFS 文件系统 mkfs.xfs
1 | mkfs.xfs [-b bsize] [-d parms] [-i parms] [-l parms] [-L label] [-f] \ |
EXT4 文件系统 mkfs.ext4
1 | mkfs.ext4 [-b size] [-L label] 设备名称 |
mkfs 更多
1 | mkfs -t xfs # 获取格式xfs有关参数 |
文件系统检验
xfs_repair 处理 XFS 文件系统
当有 xfs 文件系统错乱才需要使用这个指令
1 | xfs_repair [-fnd] 设备名称 |
fsck.ext4 处理 EXT4 文件系统
1 | fsck.ext4 [-pf] [-b superblock] 设备名称 |
文件系统挂载与卸载
不过要进行挂载前,你最好先确定:
- 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
- 单一目录不应该重复挂载多个文件系统;
- 要作为挂载点的目录,理论上应该都是空目录才是。
1 | 用法: |
…
其他
快捷键
- Ctrl + Alt + F2 ~ F7 :切换终端tty
- tab : 补全
- ctrl + L : 清空 or clear
- ctrl + D : 退出
MBR
MBR(Master Boot Record)是计算机硬盘的一部分,位于磁盘的第一个扇区(编号为0)。MBR包含了引导加载程序(Boot Loader)和分区表(Partition Table)。
MBR的主要作用是引导计算机启动操作系统。当计算机开机时,BIOS(Basic Input/Output System)会读取硬盘的第一个扇区,即MBR,将控制权转交给MBR中的引导加载程序。引导加载程序负责加载操作系统的核心文件,并将控制权传递给操作系统。
MBR还包含了分区表,用于记录硬盘上的分区信息。分区表将硬盘划分为多个逻辑区域,每个区域可以独立地存储文件系统和数据。分区表中的每个条目描述了一个分区的起始位置、大小和类型。
然而,MBR有一些局限性。由于MBR的限制,最多只能支持4个主分区或3个主分区和1个扩展分区。扩展分区可以进一步划分为逻辑分区。此外,MBR不支持超过2TB的硬盘容量。
随着技术的发展,UEFI(Unified Extensible Firmware Interface)取代了传统的BIOS,并引入了GPT(GUID Partition Table)作为新的分区方案。GPT使用更现代的方法来管理硬盘分区,并支持更大的硬盘容量。
分区和文件系统
一个分区可以包含一个文件系统,但一个文件系统不一定局限于一个分区。
一个分区是硬盘上的一个逻辑区域,它可以用于存储一个文件系统。分区将硬盘划分为不同的区域,每个区域可以独立地格式化为一个文件系统,并用于存储文件和数据。
一个文件系统是用于组织和管理存储设备上的数据的方法。一个文件系统可以跨越多个分区,或者一个分区可以包含多个文件系统(例如,在一个扩展分区中创建多个逻辑分区,每个逻辑分区都可以格式化为一个文件系统)。
文件系统的作用是提供对存储设备上数据的访问、管理和操作。它定义了文件和目录的结构、访问权限、文件的存储方式以及文件的元数据等信息。
不同分区可以使用不同的文件系统。
文件系统是用于组织和管理存储设备上的数据的方法。不同的文件系统具有不同的特性和适用场景。常见的文件系统包括FAT32、NTFS、ext4、APFS等。
在一个硬盘上,可以将其划分为多个分区,并在每个分区上使用不同的文件系统。例如,您可以在一个硬盘上创建一个使用NTFS文件系统的分区,用于存储Windows操作系统的数据,同时创建另一个使用ext4文件系统的分区,用于存储Linux操作系统的数据。
使用不同的文件系统可以根据特定的需求选择最适合的文件系统。不同的文件系统可能具有不同的性能、兼容性、安全性和功能等特点。因此,在选择文件系统时,需要考虑操作系统的支持性、数据的重要性、文件大小限制等因素。
需要注意的是,不同操作系统对不同文件系统的支持可能有所差异。例如,Windows系统对NTFS和FAT32文件系统有较好的支持,而Linux系统对ext4文件系统有较好的支持。因此,在选择文件系统时,需要确保操作系统能够正确地读写和管理该文件系统。
参考