1. linux文件系统 文件和目录被组织成一个单根倒置树结构 文件系统从根目录下开始,用“/”表示 根文件系统(rootfs):root filesystem 文件名称区分大小写 以.开头的文件为隐藏文件 路径分隔的 / 文件有两类数据: 元数据:metadata 数据:data 文件系统分层结构:LSB Linux Standard Base FHS: (Filesystem Hierarchy Standard)

  2. 1文件名规则 文件名最长255个字节 包括路径在内文件名称最长4095个字节 蓝色-->目录   绿色-->可执行文件    红色-->压缩文件   浅蓝色-->链接文件  灰色-->其他文件 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们。 标准Linux文件系统(如ext4),文件名称大小写敏感。例如:MAIL, Mail, mail, mAiL

  3. 2文件系统结构 /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录 /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序 /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序 /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules) /lib64:专用于x86_64系统上的辅助共享库文件存放位置 /etc:配置文件目录 /home/USERNAME:普通用户家目录 /root:管理员的家目录 /media:便携式移动设备挂载点 /mnt:临时文件系统挂载点 /dev:设备文件及特殊文件存储位置 /opt:第三方应用程序的安装位置 /srv:系统上运行的服务用到的数据 /tmp:临时文件存储位置 /usr: universal shared, read-only data /var: variable data files /proc: 用于输出内核与进程信息相关的虚拟文件系统 /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统 /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

  4. 3Linux上的应用程序的组成部分 二进制程序:/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

1.4 Linux下的文件类型 -:普通文件 d: 目录文件 b: 块设备 c: 字符设备 l: 符号链接文件 p: 管道文件pipe s: 套接字文件socket

1.5 绝对和相对路径 绝对路径 以正斜杠开始 完整的文件的位置路径 可用于任何想指定一个文件名的时候 相对路径名 不以斜线开始 指定相对于当前工作目录或某目录的位置 可以作为一个简短的形式指定一个文件名 基名:basename 目录名:dirname

1.6更改目录 cd 改变目录 使用绝对或相对路径: cd /home/wang/
cd home/wang 切换至父目录: cd .. 切换至当前用户主目录: cd 切换至以前的工作目录: cd - 选项:-P 相关的环境变量: PWD:当前目录路径 OLDPWD:上一次目录路径

1.7列出目录内容 列出当前目录的内容或指定目录 用法:ls [options] [files_or_dirs] 示例: ls -a 包含隐藏文件 ls -l 显示额外的信息 ls -R  目录递归通过 ls -ld  目录和符号链接信息 ls -1 文件分行显示 ls –S 按从大到小排序 ls –t 按mtime排序 ls –u 配合-t选项,显示并按atime从新到旧排序 ls –U 按目录存放顺序显示 ls –X 按文件后缀排序

1.8查看文件状态 stat 文件:metadata, data 三个时间戳: access time:访问时间,atime,读取文件内容 modify time: 修改时间, mtime,改变文件内容(数据) change time: 改变时间, ctime,元数据发生改变

1.9文件通配符 * 匹配零个或多个字符 ? 匹配任何单个字符 ~ 当前用户家目录 ~mage 用户mage家目录 ~+ 当前工作目录 ~- 前一个工作目录 [0-9]  匹配数字范围 [a-z]:字母 [A-Z]:字母 [wang]  匹配列表中的任何的一个字符 [^wang] 匹配列表中的所有字符以外的字符

1.10复制文件和目录cp cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... cp SRC DEST SRC是文件: 如果目标不存在:新建DEST,并将SRC中内容填充至DEST中 如果目标存在: 如果DEST是文件:将SRC中的内容覆盖至DEST中 基于安全,建议为cp命令使用-i选项 如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中

1.11移动和重命名文件 mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... 常用选项: -i: 交互式 -f: 强制

1.12删除 rm [OPTION]... FILE... 常用选项: -i: 交互式 -f: 强制删除 -r: 递归 --no-preserve-root

1.13目录操作 tree 显示目录树 -d: 只显示目录 -L level:指定显示的层级数目 -P pattern: 只显示由指定pattern匹配到的路径 mkdir 创建目录 -p: 存在于不报错,且可自动创建所需的各目录 -v: 显示详细信息 -m MODE: 创建目录时直接指定权限 rmdir 删除空目录 -p: 递归删除父空目录 -v: 显示详细信息 rm -r 递归删除目录树

1.14 inode  inode(index node)表中包含文件系统所有文件列表

2.1标准输入和输出 程序:指令+数据 读入数据:Input 输出数据:Output 打开的文件都有一个fd: file descriptor (文件描述符) Linux给程序提供三种I/O设备 标准输入(STDIN)-0 默认接受来自键盘的输入 标准输出(STDOUT)-1 默认输出到终端窗口 标准错误(STDERR)-2 默认输出到终端窗口 I/O重定向:改变默认位置

3管道 管道(使用符号“|”表示)用来连接命令 命令1 | 命令2 | 命令3 | … 将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现 最后一个命令会在当前shell进程的子shell进程中执行用来 组合多种工具的功能 ls | tr 'a-z' 'A-Z' less :一页一页地查看输入 ls -l /etc | less mail: 通过电子邮件发送输入 echo "test email" | mail  -s "test" user@example.com lpr:把输入发送给打印机 echo "test print" | lpr -P printer_name