本章内容

文件系统

文件和目录被组织成一个单根倒置树结构从根目录下开始,用“/” 表示根文件系统(rootfs) :root filesystem,用路径分隔的 /;遵循FHS: (Filesystem Hierarchy Standard)

文件系统分层结构:LSB Linux Standard Base

文件系统结构

/boot :引导文件存放目录,内核文件(vmlinuz) 、引导加载器(bootloader, grub) 都存放于此目录

/bin :供所有用户使用的基本命令;不能关联至独立分区,OS 启动即会用到的程序

/sbin :管理类的基本命令;不能关联至独立分区,OS 启动即会用到的程序

/lib :启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

/lib64 :专用于x86_64 系统上的辅助共享库文件存放位置

/etc :配置文件目录

/home/ USERNAME :普通用户家目录

/root :管理员的家目录

/media :便携式移动设备挂载点

/mnt :临时文件系统挂载点

/dev :设备文件及特殊文件存储位置

b: block device ,随机访问, 有缓存、物理

c: character device ,线性访问,无缓存、逻辑

/opt :第三方应用程序的安装位置

/srv :系统上运行的服务用到的数据

/tmp:临时文件存储位置

空设备:/dev/null

/usr: universal shared, read-only data

bin:  保证系统拥有完整功能而提供的应用程序

sbin:

lib :32 位使用

lib64 :只存在64 位系统

include: C 程序的头文件(header files)

share :结构化独立的数据,例如doc, man等 等

local :第三方应用程序的安装位置

bin, sbin, lib, lib64, etc, share

/var: variable data files

cache:  应用程序缓存数据目录

lib:  应用程序状态信息数据

local :专用于为/usr/local 下的应用程序存储可变数据;

lock:  锁文件

log:  日志目录及文件

opt:  专用于为/opt 下的应用程序存储可变数据;

run:  运行中的进程相关数据;通常用于存储进程pid 文件

spool:  应用程序数据池

tmp: 保存系统两次重启之间产生的临时数据

/proc:  用于输出内核与进程信息相关的虚拟文件系统

/sys :用于输出当前系统上硬件设备相关信息虚拟文件系统

/selinux: security enhanced Linux ,selinux 相关的安全策略等信息的存储位置

/misc    centos6中存在  可用/misc/cd挂载光驱

/net   涉及到网络服务

RHEL7  目录变化

/bin 和 和 /usr/bin

/sbin 和 和 /usr/sbin

/lib  和/usr/lib

/lib64 和 和 /usr/lib64

文件有两类数据:

元数据:metadata   包括大小、时间、所属主、组、权限等

数据:data       文件的内容

文件名规则

除了斜杠和NUL, 所有字符都有效. 但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们。

包括路径在内文件名称最长4095 个字节,用/ 分隔的路径不能超过255 个字节。

标准Linux 文件系统(如ext4 ),文件名称大小写敏感。例如:MAIL, Mail, mail, mAiL,但是linxu在FAT文件系统下大小写不敏感,例如挂载的U盘(FAT文件系统)所以说linux大小写敏感是基于文件系统的

Linux 下的文件类型

以文件权限开头区分

- :普通文件            灰色    文本、二进制文件等

可执行文件     绿色    .ELF等

压缩文件      红色    .tar等

d:  目录文件           深蓝色

b:  块设备    随机访问   亮×××   有缓存  物理设备

c:  字符设备   顺序访问   亮×××   无缓存  逻辑设备

l:  符号链接文件        浅蓝色

p:  管道文件pipe        ×××

s:  套接字文件socket      粉色    用于进程间通讯

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

显示当前工作目录

每个shell 和系统进程都有一个当前的工作目录CWD:current work directory

显示当前shell CWD 的绝对路径

#pwd: printing working directory

绝对和相对路径名

绝对路径:以正斜杠开始,完整的文件的位置路径,可用于任何想指定一个文件名的时候

相对路径:不以斜线,开始指定相对当前的工作目录位置,可以作为一个简短的形式指定一个文件名

更改目录

cd:改变当前shell工作目录

cd [-L|[-P [-e]]] [dir]

-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录

-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。 - 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。

为绝对或相对路径:

cd /home/joshua/work

cd project/docs

cd 进入用户主目录;

cd ~ 进入用户主目录;

cd - 返回进入此目录之前所在的目录;

cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);

cd ../.. 返回上两级目录;

cd !$ 把上个命令的参数作为cd参数使用。

相关的环境变量:

PWD :保存了当前目录路径;

OLDPWD :上一次所在目录路径;

列出目录内容

列出当前目录的内容或指定目录

用法:

ls [options] [files_or_dirs]

Example:

ls -a  包含隐藏文件

ls -l  显示额外的信息

ls -R 目录递归通过

ls -ld 目录和符号链接信息

ls -1 文件分行显示

ls –S  按从大到小排序

ls –u 配合-t 选项,显示并按atime  从新到旧排序

ls –U 不排序按目录存放顺序显示

glob文件通配符

*        匹配零个或多个字符

?        匹配任何单个字符

~        当前用户家目录

~username   用户家目录

~+        当前工作目录

~-        前一个工作目录

[0-9]      匹配一个数字范围

[1-3]      1到3    [^1a3]或非1或非a或非3

[a-z]      大写和小写字母

[A-Z]      大写字母

[wxc]      匹配列表中的任何的一个字符[^wxc]     匹配列表中的所有字符以外的字符

预定义的字符类:#man 7 glob

[:digit:] :任意数字,相当于0-9

[:lower:] :任意小写字母

[:upper:]:  任意大写字母

[:alpha:]:  任意大小写字母

[:alnum:] :任意数字 或 字母

[:blank:] :水平空白字符

[:space:] :水平或垂直空白字符

[:punct:]: : 标点符号

[:print:] :可打印字符

[:cntrl:] :控制(非打印)字符

[:graph:] :图形字符

[:xdigit:]:十六进制字符

查看文件状态

stat

文件:metadata, data

三个时间戳:

access time:访问时间,atime,读取文件内容    因为relattime的原因:atime>一天或atime<mtime时更新

modify time: 修改时间, mtime,改变文件内容(数据)

change time: 改变时间, ctime,元数据发生改变

touch 命令:创建空文件和刷新时间

touch [OPTION]... FILE...

-a: 变 仅改变 atime

-m: 变 仅改变 mtime

-t :STAMP:[[CC]YY]MMDDhhmm[.ss]

-c: 如果文件不存在,则不予创建

复制文件和目录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中内容填充至新文件中

cp SRC... DEST

SRC... :多个文件

DEST 必须存在,且为目录,其它情形均会出错;

cp SRC DEST

SRC是目录:此时使用选项:-r

如果DEST 不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;

如果DEST存在:

如果DEST是文件:报错

如果DEST目录:在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中

如果DEST目录下的内容和复制目录内的相同,则会连同复制目录本身也复制过来作为DEST目录的子目录,如果再次复制则会产生覆盖此子目录的操作

-a, --archive      等于-dR --preserve=all

--backup[=CONTROL   为每个已存在的目标文件创建备份

-b        类似--backup 但不接受参数

--copy-contents   在递归处理是复制特殊文件内容

-d        等于--no-dereference --preserve=links

-f, --force     如果目标文件无法打开则将其移除并重试(当 -n 选项

存在时则不需再选此项)

-i, --interactive   覆盖前询问(使前面的 -n 选项失效)

-H        跟随源文件中的命令行符号链接

-l, --link      链接文件而不复制

-L, --dereference   总是跟随符号链接

-n, --no-clobber    不要覆盖已存在的文件(使前面的 -i 选项失效)

-P, --no-dereference    不跟随源文件中的符号链接

-p        等于--preserve=模式,所有权,时间戳

--preserve[=属性列表  保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等

-c  same as --preserve=context

--sno-preserve=属性列表 不保留指定的文件属性

--parents     复制前在目标目录创建来源文件路径中的所有目录

-R, -r, --recursive   递归复制目录及其子目录内的所有内容

--reflink[=WHEN]    控制克隆/CoW 副本。请查看下面的内如。

--remove-destination  尝试打开目标文件前先删除已存在的目的地

文件 (相对于 --force 选项)

--sparse=WHEN   控制创建稀疏文件的方式

--strip-trailing-slashes  删除参数中所有源文件/目录末端的斜杠

-s, --symbolic-link   只创建符号链接而不复制文件

-S, --suffix=后缀   自行指定备份文件的后缀

-t,  --target-directory=目录  将所有参数指定的源文件/目录复制至目标目录

-T, --no-target-directory 将目标目录视作普通文件

命令别名

显示当前shell 进程所有可用的命令别名

#alias

定义别名NAME ,其相当于执行命令VALUE; ;

#alias NAME='VALUE'

在命令行中定义的别名,仅对当前shell 进程有效

如果想永久有效,要定义在配置文件中

仅对当前用户:~/.bashrc

对所有用户有效:/etc/bashrc

编辑配置给出的新配置不会立即生效;

bash 进程重新读取配置文件:

source /path/to/config_file

. /path/to/config_file

撤消别名:unalias

unalias [-a] name [name ...]

如果别名同原命令同名,如果要执行原命令,可使用

“\COMMAND”

’COMMAND’

/PATH/COMMAND   绝对路径

mv:移动(重命名)文件

source表示源文件或目录,target表示目标文件或目录。

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。

源文件被移至目标文件有两种不同的结果:

1、如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。

2、如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。

3、如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。 注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

mv [OPTION]... [-T] SOURCE DEST

mv [OPTION]... SOURCE... DIRECTORY

mv [OPTION]... -t DIRECTORY SOURCE...

长选项必须使用的参数对于短选项时也是必需使用的。

--backup[=CONTROL]       为每个已存在的目标文件创建备份

-b                           类似--backup 但不接受参数

-f, --force                  覆盖前不询问

-i, --interactive            覆盖前询问

-n, --no-clobber             不覆盖已存在文件,如果您指定了-i、-f、-n 中的多个,仅最后一个生效。

--strip-trailing-slashes  去掉每个源文件参数尾部的斜线

-S, --suffix=SUFFIX           替换常用的备份文件后缀

-t, --target-directory=DIRECTORY      将所有参数指定的源文件或目录

移动至 指定目录

-T, --no-target-directory     将目标文件视作普通文件处理

-u, --update                  只在源文件文件比目标文件新,或目标文件

不存在时才进行移动

-v, --verbose         详细显示进行的步骤

备份文件的后缀为"~",除非以--suffix选项或是SIMPLE_BACKUP_SUFFIX环境变量指定。版本控制的方式可通过--backup选项或VERSION_CONTROL 环境变量来选择。以下是可用的变量值:

none, off       不进行备份(即使使用了--backup 选项)

numbered, t     备份文件加上数字进行排序

existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份

simple, never   永远使用普通方式备份

rm:删除文件或目录

rm [OPTION]... FILE...

-f, --force           强制删除。忽略不存在的文件,不提示确认

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录

-i                    在删除前需要确认

-I                    在删除超过三个文件或者递归删除前要求确认。此选项比-i 提

示内容更少,但同样可以阻止大多数错误发生

--interactive[=WHEN]      根据指定的WHEN 进行确认提示:never,once (-I),

或者always (-i)。如果此参数不加WHEN 则总是提示

--one-file-system         递归删除一个层级时,跳过所有不符合命令行参

数的文件系统上的文件

--no-preserve-roo 不特殊对待"/"

--preserve-root   不允许删除"/"(默认)

-r, -R, --recursive   递归删除目录及其内容

-v, --verbose         详细显示进行的步骤

注意:

默认时,rm 不会删除目录。使用--recursive(-r 或-R)选项可删除每个给定的目录,以及其下所有的内容。

要删除第一个字符为"-"的文件 (例如"-foo"),请使用以下方法之一:

rm -- -foo

rm ./-foo

请注意,如果使用rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证该文件的内容无法还原,请考虑使用shred。

对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以在删除文件之前,最好再看一下文件的内容,确定是否真要删除。

rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

目录操作

tree默认系统中没有安装,需要手动安装

tree  显示目录树

-a 显示所有文件和目录。

-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。

-C 在文件和目录清单加上色彩,便于区分各种类型。

-d 显示目录名称而非内容。

-D 列出文件或目录的更改时间。

-f 在每个文件或目录之前,显示完整的相对路径名称。

-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。

-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。

-i 不以阶梯状列出文件或目录名称。

-I 不显示符合范本样式的文件或目录名称。

-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。

-L 层级显示

-n 不在文件和目录清单加上色彩。

-N 直接列出文件和目录名称,包括控制字符。

-p 列出权限标示。

-P 只显示符合范本样式的文件或目录名称。

-q 用"?"号取代控制字符,列出文件和目录名称。

-s 列出文件或目录大小。

-t 用文件和目录的更改时间排序。

-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。

-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

mkdir  创建目录

长选项必须使用的参数对于短选项时也是必需使用的。

-m, --mode=模式       设置权限模式(类似chmod),而不是rwxrwxrwx 减umask

-p, --parents         需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理

-v, --verbose         每次创建新目录都显示信息

-Z, --context=CTX     将每个创建的目录的SELinux 安全环境设置为CTX

--version         显示版本信息并退出

注意:该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。

rmdir  删除空目录

rmdir [OPTION]... DIRECTORY...

-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;

-v或-verboes:显示命令的详细执行过程;

--version:显示命令的版本信息。

在Nautilus 中移动和复制

拖曳及放下

拖动:移动在同一文件系统,在不同的文件系统复制

拖动+ Ctrl键 键  :始终复制

拖动+ Alt键 键  :询问是否复制,移动或创建符号链接(别名)

上下文菜单

右键单击要重命名,剪切,复制或粘贴

索引节点

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

一个节点(索引节点)是在一个表项,包含有关文件的信息

( 元数据  ),包括:

文件类型,权限,UID ,GID

链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据块指针

有关文件的其他数据

同一分区下inode编号唯一,不同分区可以一样,每个分区都有各自的分区表inode table

元数据:存放在 inode table

数据内容:存放在 数据block

指针占据4个字节空间

直接指针:12个  直接能找到低于12*4k数据

间接指针:指向一指针数据块

一般inode表会占用文件系统磁盘空间的1%,一个目录文件的内容就是一个该目录项的列表

目录

文件引用一个是 inode号

人是通过文件名来引用一个文件

一个目录是目录下的文件名和文件inode号之间的映射

cp 和inode

在 在 CP的 的  命令:

分配一个空闲的inode 号,在inode 表中生成新条目在目录中创建一个目录项,将名称与inode 编号关联,拷贝数据生成新的文件

rm和inode

rm命令:

链接数递减,从而释放的inode 号可以被重用,把数据块放在空闲列表中,删除目录项,数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。

mv 和inode

如果mv 命令的目标和源在相同的文件系统,作为mv

命令用新的文件名创建对应新的目录项

删除旧目录条目对应的旧的文件名

不影响inode 表(除时间戳)或磁盘上的数据位置:没有数据被移动!

如果目标和源在一个不同的文件系统, mv 相当于cp 和rm

硬链接(一个文件多个名字)

创建硬链接会增加额外的记录项以引用文件

对应于同一文件系统上一个物理文件

每个目录引用相同的inode号

创建时链接数递增

注意:

   硬连接不能跨分区;不能对目录操作

    centos6中   inode=2的都是分区的根

            inode=1的都是虚拟目录

    centos7中   inode=128都是分区的根

删除文件时:

rm 命令递减计数的链接

文件要存在,至少有一个链接数

当链接数为零时,该文件被删除

不能跨越驱动器或分区

语法 :

ln filename [linkname ]

符号(或软)链接

一个符号链接指向另一个文件

ls - l的 的  显示链接的名称和引用的文件

一个符号链接的内容是它引用文件的名称

可以对目录进行

可以跨分区

指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode 的引用计数;

语法:

ln -s filename [linkname]

原始文件路径   软链接

软链接文件:

路径

原始文件相对路径:相当于软链接文件路径,而不是相对于当前工作目录

确定文件内容

文件可以包含多种类型的数据

检查文文件类型,然后确定适当的开放命令或应用程序使用

file [options] <filename>...

Option:

-b 列出文件辨识结果时,不显示文件名称。

-c 详细显示指令执行过程,便于排错或分析程序执行形

-f 列出文件中文件名的文件类型

-F 使用指定分隔符号替换输出文件名后默认的”:” 分隔符

-i 输出mime类型的字符串

-L 查看对应软链接对应文件的文件类型

-z 尝试去解读压缩文件的内容

--help显示命令在线帮助

转载于:https://blog.51cto.com/2849159106/1831455

Linux运维学习历程-第五天-Linux文件系统与管理相关推荐

  1. linux系统运维费用,一般Linux运维学习的费用是多少?Linux学习

    随着IT 互联网技术的发展,Linux逐渐成为中高端服务器的主要操作系统,并且目前地位不可替代.Linux运维工程师是一位"复合型人才",他集成了网络.系统.数据库.开发和安全等工 ...

  2. Linux运维学习历程-第十四天-磁盘管理(一)磁盘分区表类型与文件系统

    概述:本章介绍磁盘分区和文件系统,深度了解linux存储数据所依赖到各个部分模块. 设备文件 I/O Ports: I/O设备地址 一切皆文件: Linux为所有的设备文件都提供了统一的操作函数接口, ...

  3. Linux运维学习历程-第十五天-磁盘管理(二)Raid与LVM逻辑卷

    什么是RAID RAID:Redundant Arrays of Inexpensive(Independent) Disks 1988年由加利福尼亚大学伯克利分校( University ofCal ...

  4. Linux运维学习笔记之九:网络管理和磁盘管理

    第十六章 网络管理 一.修改主机名 1.临时修改(重启失效) (1)hostname  主机名 hostname chuji001 (2)hostname查看 hostname chuji001 (3 ...

  5. 阿里云官方学习课程推荐-Linux运维学习路线 从事云计算运维相关工作必备技能

    阿里云官方学习课程推荐-Linux运维学习路线 从事云计算运维相关工作必备技能 目前越来越多的企业需要依赖于IT技术发布产品与服务,尤其是电子商务最为明显,它凸显了IT技术在现代企业中的重要性.当企业 ...

  6. linux学习项目,[ Linux运维学习 ] 路径及实战项目合集

    我们知道运维工程师(Operations)最基本的职责就是负责服务的稳定性并确保整个服务的高可用性,同时不断优化系统架构.提升部署效率.优化资源利用率,确保服务可以7*24H不间断地为用户提供服务. ...

  7. 兄弟连Linux运维学习笔记

    最新经典linux运维兄弟连Linux运维学习笔记... --------------- 全程1.5倍播放.加油我一定可以学完Linux ---------------------- Unix与Lin ...

  8. linux运维需要掌握的,学习Linux运维需要掌握哪些技能?Linux运维

    如何学习Linux技术?每年都有许多人转行进入it互联网行业,为了高薪也好,为了理想也罢,学习it技术的人们越来越多.Linux运维学习是目前大众热衷于选择学习的方向之一.那么学习Linux技术能获的 ...

  9. linux运维需要掌握什么知识?linux运维学习路线

    linux运维需要掌握什么知识?这个问题算是老生常谈了,但是本人认为知道需要掌握什么知识不是重点,重点是我们需要知道运维是做什么的?再来根据工作需求去讨论需要学习什么知识才是正途,须知知识是学不完的, ...

最新文章

  1. Linux时间转化方法
  2. haproxy Consistent Hash浅析
  3. 教你从零开始搭建一款前端脚手架工具
  4. 【网络流24题】【LOJ6224】深海机器人问题(最大费用最大流)
  5. linux gtk python,python-Linux上具有pygtk(gtk.gdk)的桌面/根窗口上的键盘/鼠标事件
  6. 使用projectx / os和Raspberry Pi托管您自己的电子邮件
  7. Vue.js 源码分析(九) 基础篇 生命周期详解
  8. Js屏蔽键盘输入的某些字符,用以部分代替正则表达式
  9. webAppbuilder微件使用教程1 快速入门
  10. Struts2的属性驱动与模型驱动的区别
  11. 【Luogu1580】yyy loves Easter_Egg I(纯字符串模拟)
  12. 全栈工程师的3个关键技能是什么?
  13. python找出列表间隐含的关联关系以及重复模式
  14. 新能源汽车整车控制器开发
  15. MFC添加鼠标右键菜单
  16. [车联网安全自学篇] Android安全之Android so文件分析「详细版」
  17. jquery获取元素索引值index()
  18. 一套Java架构开发的电商系统要多少钱
  19. HDU 6691 Minimum Spanning Trees
  20. OSINT + Python #x3D; 自定义黑客

热门文章

  1. 根据 sitemap 的规则[0],当前页面 [pages/index/index] 将被索引 提示
  2. 好看的UI商城源码已扫码无后门无加密
  3. Java自动计算迷宫正确路线算法源码
  4. IE和FireFox中的event事件
  5. Node.js: exports 和 module.exports 的区别
  6. Ubuntu 安装截图工具Shutter,并设置快捷键 Ctrl+Alt+A
  7. FullCalendar 二:FullCalendar日历插件说明文档
  8. 自适应网页设计(Responsive Web Design)响应式设计
  9. UIWebView / NSURL / NSBoundle 相关应用 (实例,加载完成前的背景, 默认safari打开链接地址等)...
  10. pythonの鉴黄之路(二)——图片转base64码