一 Linux的文件系统
与Windows不同,Linux采用/ 为所有文件的入口,通过/ 建立挂载关系,进而访问数据。为了统一不同发行版的文件系统,进而linux有了LBS规范下的FHS(文件系统层级结构标准)。而/目录下的文件是按照特定机制组织的并且有特定含义。
/boot: 引导文件存放目录;
/bin: binary,供用户使用的基本的命令;开机就会用到的命令;
/sbin:管理类命令;
/lib: 基本共享库;内核模块;
/lib64:x86_64系统的共享库;
/etc:配置文件目录;
/home/USERNAME: 普通用主目录的默认位置;
/root: 管理员的主目录;
/media:便携式移动设备;
/mnt:临时文件系统挂载点;
/opt: 可选目录,默认第三方软件的安装位置;
/dev:devices,设备文件
b:块设备
c: 字符设备
/proc:
伪文件系统;用于输出内核与进程的相关信息;
/sys:
伪文件系统;
/srv:services,系统服务的中间数据;
/tmp:临时文件目录;
/usr:全局共享,只读文件;
bin:保证系统提供基本功能;
sbin
lib
lib64
include: C程序的头文件;
share:结构化的独立数据
doc, man
local:现在常用的第三方程序的安装位置;
bin
sbin
lib
lib64
etc
share
/var:可变数据存放
cache:应用程序缓存数据
lib:应用程序的状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据;
lock:锁文件
log:日志文件
opt:专用于/opt
spool:应用程序的数据池;
run:运行中的进程的相关数据;通常用守护进程 的pid文件;
二 linux 文件类型
d: 目录文件
b: 块设备文件
c: 字符设备文件
l: 符号链接文件
p: 命名管道文件
s:套接字文件
三 bash特性
(1) 命令历史
bash会记录此前用户执行的命令;
history命令:
-c:清空命令历史;
-d #: 删除历史中第#条的命令;
history #: 显示最近执行的#条命令;
调用过去执行过的命令:
!#:调用历史中的第#条命令;
!!: 重复执行上一条命令
(2) 命令补全
命令搜索机制:
hash>内建命令路径>外检命令路径
按TAB 搜索与输入字母唯一匹配的命令
(3) 路径补全
根据用户输入的路径在其上级目录搜索指定字符开头的文件
如果唯一:直接补全;
两次Tab,列出所有符合条件的文件;
(4) 命令行展开的功能
~: 展开为当前用户的主目录;
~USERNAME:展开为指定用户的根目录;
{}:可承载一个以逗号分隔的列表,并其展开为多个路径;
/var/{log,cache,run} = /var/log /var/cache /var/run
(5) 命令的执行结果状态,由bash追踪和保存
成功:0
失败:1-255
(6) 命令别名
alias/unalias
alias: 查看所有已经定义别名;
alias NAME=COMMAND:定义别名;
如果别名同原命令名,想直接执行原命令,则需使用\COMMAND
unalias NAME: 撤消别名;
(7) glob
文件名“通配”
*:匹配任意长度的任意字符;
?:匹配任意单个字符;
[]: 匹配指定范围内的任意单个字符;
[^]:匹配范围外的任意单个字符;
字符集合:
[:lower:]
[:upper:]
[:alnum:]
[:digit:]
[:space:]
[:punct:]
[:alnum:]
(8) 组合键
Ctrl+l:清屏
Ctrl+a: 切换至命令行首
Ctrl+e:切换至命令行尾
Ctrl+c:取消命令执行
Ctrl+u:删除光标所在处至行首的内容;
Ctrl+k: 删除光标所在处至行尾的内容;
(9) IO重定向和管道
I/O重定向:
输入重定向
输出重定向:
COMMAND > NEW_POS, COMMAND >> NEW_POS
>:覆盖重定向;
>>:追加重定向;
错误重定向:
2>:覆盖
2>>:追加
管道:
第一条命令的输出结果为第二条命令的输入
四 文件处理命令
(1) wc:单词,字符统计
wc [OPTION]... FILE...
-l: 显示行数
-w: 显示单词数
(2) cut:剪切文本
cut OPTION... [FILE]...
-d: 指明分隔符;-d' ', -d:
-f:指明要显示的字段
#:
#-#:1-3
#,#: 1,3,7
(3)sort:排序
sort [OPTION]... [FILE]...
-r: 逆序
-f: 忽略字符大小写
-u: 排序后去重
-t CHAR: 指明分隔符
-k #: 字段
-n: 表示以数值大小排序
(4) uniq:区分
uniq [OPTION]... [FILE]...
-c: 显示每行重复的次数;
-d: 只显示重复过的行;
-u: 只显示不曾重复的行;
常与sort结合使用管道