Linux基本知识
Linux目录结构
Linux文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中有可以有任意多个文件和子目录。
-
bin 存放二进制可执行文件
-
boot 存放用于系统引导时使用的各种文件
-
dev 用于存放设备文件
-
etc 存放系统配置文件
-
home 存放所有用户文件的根目录
-
lib 存放跟文件系统中程序运行所需要的共享库及内核模块
-
mnt 系统管理员安装临时文件系统的安装点
-
opt 额外安装的可选应用程序包所放置的位置
-
proc 虚拟文件系统,存放当前内存的映射
-
root 超级用户目录
-
sbin 存放二进制可执行文件,只有root才能访问
-
tmp 用于存放各种临时文件
-
usr 用于存放系统应用程序,比较重要的目录/usr/local本地管理员软件安装目录
-
var 用于存放运行时需要改变数据的文件
文件名称:
-
文件的名称大小写敏感
-
名称最多可为255个字符
-
除了正斜线外,都是有效字符
-
通过touch命令可以创建一个空白文件或者更新已有文件的时间
-
以"."开头的文件为隐藏文件
linux常用命令
ls 相关命令:
-
ls -a:显示所有文件(包括隐藏文件)
-
ls -l:显示详细信息
-
ls -R:递归显示子目录结构
-
ls -ld:显示目录和链接信息
file 命令:
显示文件类型
复制文件和目录
cp 源文件(源目录) 目标文件(目标目录)
-r 递归复制
-v 显示详细信息
移动、重命名文件或目录
mv 源文件(源目录) 目标文件(目标目录)
指定目标文件名可重命名文件
创建 删除文件
touch命令可以创建一个空文件或者更新文件时间
通过rm命令可以删除文件或目录:
常用参数:
-i 交互式
-r 递归的删除包括目录中的所有内容
-f 强制删除,没有警告提示
创建、删除目录
通过mkdir命令创建一个目录
通过rmdir命令删除一个目录
通过rm -r 命令删除一个非空目录
Vi命令
-
:w 保存当前修改
-
:q 退出
-
:q! 强制退出,不保存修改
-
:x 保存并退出,相当于:wq
-
:set number 显示行号
-
:!系统命令 执行一个系统命令并显示结果
-
:sh 切换到命令行,使用ctrl + d切换回vim
硬盘分区
分区是软件概念。主流的分区有MBR和GPT两种。
MBR:是传统的分区机制,应用于绝大多数使用BIOS的PC设备。
MBR只支持不超过2T的硬盘,超过2T的硬盘只能使用2T空间(有第三方解决方法);主分区+扩展分区+逻辑分区
GPT:是一种较新的分区机制;支持超过2T的磁盘;向后兼容MBR;必须在支持UEFI的硬件上才能使用;必须使用64bit系统;Mac、Linux系统都支持GPT分区格式;
文件系统
操作系统通过文件系统管理文件及数据,磁盘或分区需要创建文件系统之后才能够为操作系统使用,创建文件系统的过程称为格式化。
没有文件系统的磁盘称为裸设备(raw)
常见的文件系统有fat32、NTFS、ext2、ext3、ext4、xfs、HFS等
文件系统之间的区别:日志、支持的分区大小、支持的单个文件大小、性能等。
ext3和ext4是带日志的文件系统,拥有较强的稳定性,在出现错误时可以进行回复:
-
文件系统将准备执行的事务的具体内容写入日志
-
文件系统进行操作
-
操作成功后,将事务的具体内容从日志中删除
挂载操作
磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用。
用户组
当使用Linux时,需要以一个用户的身份登入,一个进程也需要一个用户的身份运行,用户限制使用者或进程可以使用、不可使用哪些资源。
权限
是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。
每个进程都是以某个用户身份运行,所以进程的权限与该用户的权限一致,用户的权限大,该进程的权限大。
网络基础
IPv4地址的32bit分为网络部分和主机部分
通过子网掩码来确定网络部分的位数。子网掩码与IP一样有32bit,每位于IP地址的每一位一一对应。IP地址中相对应子网掩码中为1的部分为网络部分。
Mac地址是同一个网络内的主机之间通信的基础。
不同网络之间通信是通过网关/路由器相连。只要是访问不同网络之间的信息,必须通过路由器。
不同网段之间传输信息的功能称为路由功能,一般有多个接口,连接到不同网络中,并且通过路由表进行数据转发。
域名:用于替代不容易记忆的IP地址。域名对应IP地址。
DNS:每个域名代表一个IP地址,而DNS服务就是用来在IP与域名之间进行转换的。DNS服务器由DNS服务器提供。
-
配置局域网:IP地址、子网掩码
-
跨网段通信: IP地址、子网掩码、网关
-
配置可以上网的计算机: IP地址、子网掩码、网关、DNS
管道及重定向
多命令协作是通过管道和重定向完成的。
stdin: 标准输入;编号0;默认键盘
stdout:标准输出;编号1;终端
stderr:标准错误;编号2;终端
通过管道和重定向可以控制CLI的数据流
">" 将STDOUT重定向到文件(覆盖)
">>" 将STDOUT重定向到文件(追加)
"2>" 将STDERR重定向到文件(覆盖)
"2>&|" 将STDERR与STDOUT结合
"<" 重定向到STDIN
"|" 管道,将一个命令的STDOUT作为另一个命令的STDIN
-
管道通常用来组合不同的命令,以实现一个复杂的功能
-
重定向通常用来保存某命令的输出或错误信息,可以用来记录执行结果或保存错误信息到一个指定的文件。
文本处理
cat 查看文件内容
more 以翻页形式查看文件内容(只能向下翻页)
less 以翻页形式查看文件内容(可以上下翻页)
head 查看文件的开始10行(或指定行数)
tail 查看文件的结束10行(或指定行数)
grep 基于关键字搜索:
-i 在搜索的时候忽略大小写
-n 显示结果所在行数
-v 输出不带关键字的行
-Ax 在输出的时候包含结果所在行之后的指定行数
-Bx 在输出的时候包含结果所在行之前的指定行数
cut 基于列处理文本
-d 指定分割字符
-f 指定输出的列号
-c 基于字符进行切割
命令wc用于统计文本信息
-l 只统计行数
-w 只统计单词
-c 只统计字节数
-m 只统计字符数
命令sort用于对文本内容进行排序
-r 进行倒序排序
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-t c 使用c作为分隔符分割为列进行排序
-k x 当进行基于指定字符分割为列的排序时,指定基于那个列排序
diff命令用于比较两个文件的区别
-i 忽略大小写
-b 忽略空格数量的改变
-u 统一显示比较信息(一般用于生成patch文件)
tr用于处理文本内容
删除关键字
转换大小写
sed 用于搜索并替换文本