Linux 第四天: (07月28日) Linux文件管理

Linux 第四天: (07月28日) Linux文件管理

 

 

 

 

rootfs 根目录文件系统 root filesystem
LSB  Linux Standard Base
FHS 文件系统分层结构 Filesystem Hierarchy Standard

 

 

蓝色表示 目录
绿色表示 可执行文件
红色表示 压缩文件
浅蓝表示 链接文件
灰色表示 其它文件
/和NUL外, 所以字符都有效

 

 

/boot 引导文件,内核文件(vmlinuz),引导加载器(bootloader,grub)
/bin 基本命令
/sbin 管理类的基本命令
/lib 基本共享库,内核模块文件(/lib/modules)
/lib64 64位系统的共享库
/etc 配置文件
/home/USERNAME 普通用户家
/root 管理员家
/media 移动设备挂载
/mnt 临时文件系统挂载
/dev 设备和特殊文件存储
b block device 随机访问
c character device 线性访问
/opt 第三方应用程序安装
/srv 系统运行所用数据
/tmp 临时文件

 

 

/usr
bin 提供系统完整功能的应用程序
sbin 空
lib 32位
lib 64位
include C程序的头文件
share 结构化独立的数据
local 第三方应用程序安装
bin, sbin, lib, lib64, etc, share

 

 

/var
cache 应用程序缓存数据目录
lib 应用程序状态信息数据
local 为/usr/local程序存储数据
lock 锁文件
log 日志文件
opt 为/opt下程序存储数据
run 运行进程数据, 存储pid文件
spool 应用程序数据池
tmp 保存系统两次重启之间临时数据

 

 

/proc 输出内核和进程的虚拟文件系统
/sys 输出硬件设备的虚拟文件系统
/selinux security enhanced linux 安全策略信息

 

 

二进制程序
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin

 

 

库文件
/lib
/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64

 

 

配置文件
/etc
/etc/DIRECTORY
/usr/local/etc

 

 

帮助文件
/usr/share/man
/usr/share/doc
/usr/local/share/man
/usr/local/share/doc

 

 

– 普通文件
d 目录文件
b 块设备
c 字符设备
l 符号链接文件
p 管道pipe
s 套接字文件socket

 

 

centos7 目录变化
/bin
/usr/bin
/sbin
/usr/sbin
/lib
/usr/lib
/lib64
/usr/lib6

 

 

pwd printing working directory 当前shell CWD绝对路径
cd.. 到上一级目录
cd   到自己主目录
cd-  到以前的目录

 

 

ls 列出目录内容
ls -a 包含隐藏文件
ls -l 显示额外信息
ls -R 递归通过
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls -S 从大到小排序
ls -u 配合-t显示atime排序
ls -U 不排序按存放顺序显示

 

 

* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~username 用户家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 一个数字
[a-z] 大写和小写字母
[A-Z] 大写字母
[wxc] 匹配列表中任一字符
[^wxc] 匹配列表所有之外字符
man 7 glob
[:digit:] 任意数字0-9
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:space:] 空格
[:punct:] 标点符号

 

 

stat 文件状态
atime, access time 访问时间 读取文件内容
mtime, modity time 修改时间 改变文件内容
ctime, change time 改变世界 改变元数据
touch -a 仅改变atime
touch -m 仅改变mtime
touch -c 如果文件不存在则不创建
touch -t STAMP [[CC]YY]MMDDhhmm[ss]

 

 

cp -i 交互式
cp -r, -R 递归复制
cp -a 归档 等于 -dR –preserv=all
cp -d –no-derefernce –preserv=links 不复制源文件只复制链接
–preserv[=ATTR-LIST]
mode 权限
ownership 属主属组
timestamp
links
xattr
context
all
-p 等同–preserv=mode,ownership,timestamp
-v –verbose
-f –force

 

 

alias 显示所有别名
alias NAME='VALUE' 定义别名, 当前shell有效
~/.bashrc 当前用户永久有效
/etc/bashrc 所有用户永久有效
source /path/to/config_file
./path/to/config_file
bash进程重新读取配置文件
unalias 撤销别名

 

 

"\COMMAND" 执行原命令
'COMMAND' 执行原命令
/PATH/COMMAND 执行原命令

 

 

rm -i 交互式
rm -f 强制删
rm -r 递归删
rm –no-preserve-root
rm -rf /

 

 

tree -d 只显示目录
tree -L level 指定显示层级数
tree -P pattern 只显示指定匹配路径

 

 

mkdir -p 存在于不报错可自动建各目录
mkdir -v 显示详细信息
mkdir -m MODE 直接指定权限
rmdir -p 递归删空目录
rmdir -v 显示详细信息
rm -r 递归删除目录树

 

 

inode表中包含文件系统所有文件列表
一个节点包含元数据
文件类型,权限,UID,GID
连接数(指向这个文件名路径名称个数)
该文件的大小和不同时间戳
指向磁盘上文件的数据块指针
其它数据

 

 

mv源文件和目标文件在同一分区,
建立新文件名对应新目录项
删除旧文件名对应旧目录项
不影响inode表(除时间戳)或磁盘位置,数据不移动
mv源文件和目标文件不在同一分区
mv 相当于cp和rm

 

 

ln filename [linkname]硬链接
不能跨分区
连接数递增
删文件时rm递减链接数直到0

 

 

ln -s filename [linkname]软连接
ls -l 显示软链接
可以对目录, 可以跨分区,
大小是指向路径字符串长度, 不改变inode数

 

 

file -b 不显示文件名
file -c 显示详细过程
file -f 列出文件类型
file -F 指定分隔符替换":"
file -i 输出mime字符串
file -L 查看软连接文件类型
file -z 解读压缩文件
file –help 显示在线帮助

 

 

STDIN -0 标准输入
STDOUT -1 标准输出
STDERR -2 标准错误输出

 

 

> 把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把所有输出重定向到文件

 

 

> 覆盖文件
set -C 禁止覆盖但可追加强制覆盖 >|
set +C 允许覆盖
>> 追加

 

 

2> 覆盖重定向错误输出
2>> 追加重定向错误输出
COMMAND > /file.out  2>error.out 对和错分别输出到不同处
&> 对和错合并覆盖
&>> 对和错合并追加

COMMAND &> FILE
COMMAND > FILE 2> &1 顺序很重要
COMMAND >> FILE 2> &1
find /etc -name passwd 2> /dev/null
() 合并多个程序的输出
(cal 2016; cal 2017) > all.txt

 

tr -c 或 –complerment 取字符补集
tr -d 或 –delete 删除字符
tr -s 或 –squeeze-repeats 将连续重复字符以单一表示
tr -t 或 –truncate-set1 将第一字符集转化第二字符集
tr'a-z''A-Z' < /file 小写转大写
tr -d abc < /file 删abc任一
cat > file 按ctrl +d 离开, 用文件代替键盘输入
cat > file << END
<<终止词
mail -s "subject" user << END
>xxx
>END

 

 

COMM1 | COMM2 | COMM3 管道命令
STDERR默认不能用管道转发, 可用2>&1 或 |&
最后一个命令在当前shell的子shell中执行
组合多种工具
ls | tr'a-z''A-Z'
COMMAND | less 逐页显示
echo "test" | mail \ -s "test" user@example.com

 

 

COMMAND | tee FILE | COMMAND2 重定向到多目标

 

 

 

原创文章,作者:dengjian,如若转载,请注明出处:http://www.178linux.com/28082