1.linux系统中一切皆文件: 文件系统及目录结构: /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录  /bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序  /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序  /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)  /lib64:专用于x86_64系统上的辅助共享库文件存放位置  /etc:配置文件目录  /home/USERNAME:普通用户家目录  /root:管理员的家目录  /media:便携式移动设备挂载点 /mnt:临时文件系统挂载点  /dev:设备文件及特殊文件存储位置  /tmp:临时文件存储位置


2.lsblk-列出系统的硬盘 du -sh 查看文件大小 pwd-显示当前目录 --echo '- - -' > /sys/class/scsi_host/host0(host2)/scan --虚拟机增加硬盘命令 --/proc /sys -进程目录 目录颜色:蓝色-目录,yellow-硬件目录,粉色-套接字,棕色-管道文件,l绿色-可执行文件,红色-打包或压缩文件 --定义颜色文件路径:/etc/DIR_COLORS --除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们 --标准Linux文件系统(如ext4),文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL -->linux文件类型:(-)rw- --- --- :括号中所代表的文件类型

  • 普通文件 d 目录文件 b 块设备 c 字符设备 l 符号链接文件 p 管道文件pipe s 套接字文件socket 绝对路径:也称为完整路径从根开始 相对路径:相对于当前目录工作路径
    ..:ll ../issue上一级目录 .:ll ./network当前目录 --basename-取出相对的文件名忽略之前目录 dirname-取出之前的文件名而不取出最后相对文件名 (变量代表一个字符串)


查看文件状态:stat 文件有两类数据:metadata,:元数据定义-数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的,元数据就是数据的数据。 data:  三个时间戳: access time 访问时间,atime,读取文件内容 modify time 修改时间, mtime,改变文件内容(数据) change time 改变时间, ctime,元数据发生改变 file:文件名 size:文件大小(B) blocks:文件所占区个数为8的倍数(通常的 Linux 的扇区大小为 512 B,连续八个扇区组成一个block) IO Block:每个数据块的大小(单位:B) regular file:普通文件(此处显示文件的类型) Device:所在设备; Inode:文件的Inode号-储存文件元信息的区域就叫做inode Links:硬链接次数 Access:访问权限 id:(属主id/属主名) Gid:(属组id/属组名) Access:最近访问时间 Modify:数据改动时间 Change:元数据改动时间 修改时间戳: 更改access time: 修改Modify time: 修改change time(元数据改动时间): -->更改atime也可以通过touch -a /data/1.xt,同理mtime也可以通过touch -m /data/1.xt来更改,如果将文件内容进行修改,修改后文件的mtime会进行更新,文件的inode信息更新回导致ctime更新。 -->atime:访问时间:读一次文件的内容,这个时间就会更新。比如more、cat等命令。ls、stat命令不会修改atime mtime:修改时间:修改时间是文件内容最后一次被修改的时间。比如:vim操作后保存文件。ls -l列出的就是这个时间 ctime:状态改动时间。是该文件的inode节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。


chkconfig iptables off -centos6关闭防火墙 systemctl disable fireewalld -centos7 vi /etc/selinux/config -更改为:disable setenforce 0 -可以临时关闭selinux getenforce -查看selinux 状态 文件通配符: * 匹配零个或多个字符 -ls *.txt ls x ? 匹配任何单个字符 ls a?.log ~- 前一个工作目录 ls ~-/af.log [0-9] 匹配数字范围  [a-z]:字母(包含大写字母)  [A-Z]:字母(包含小写字母)  [wang] 匹配列表中的任何的一个字符  [^wang] 匹配列表中的所有字符以外的字符 预定义的字符类:man 7 glob [:digit:]:任意数字,相当于0-9 [:lower:]:任意小写字母 [:upper:]: 任意大写字母 [:alpha:]: 任意大小写字母 [:alnum:]:任意数字或字母 -->列出当前目录命令: ls -a 包含隐藏文件 ls -l 显示额外的信息 ls -R 目录递归 ls -ld 目录和符号链接信息 ls -1 文件分行显示 ls –S 按从大到小排序 ls –t 按mtime排序 ls –u 配合-t选项,显示并按atime从新到旧排序 ls –U 按目录存放顺序显示 ls –X 按文件后缀排序 touch命令: touch [OPTION]... FILE... -a 仅改变 atime和ctime -m 仅改变 mtime和ctime -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳 -c 如果文件不存在,则不予创建 用法描述: touch修改每个指定文件file的存取(access)和/或修改(modification)时间戳记.除非使用-r或-t选项,这些时间戳记都将修改为当前的时间.使用-r选项时,这些戳记将按照文件 ref_file 的时间戳记来修改(即变得和ref_file时间戳记值相同).使用-t选项,则这些戳记将按照给定的时间值 time进行修改.同时使用或同时不使用选项-a和-m,存取和修改两个戳记都将被更改.若只使用选项-a,则只修改存取戳记.同样,只使用选项-m,则只修改修改戳记.若要修改戳记的文件尚不存在,除非使用-c选项,touch 将创建它(作为空文件,并赋予0666的模式且受umask值的限制). -->POSIX标准定义的选项 -a 修改文件 file 的存取时间. -c 不创建文件 file. -m 修改文件 file file -r ref_file 将参照文件 ref_file 相应的时间戳记的数值作为指定文件 file 时间戳记的新值. -t time 使用指定的时间值 time 作为指定文件 file 相应时间戳记的新值.此处的 time 规定为如下形式的十进制数∶ [[CC]YY]MMDDhhmm[.SS] #

复制文件cp命令: cp:复制普通文件 -- 复制特殊文件需要增加选项 多个文件夹复制到一个文件里(文件报错不支持) --多次操作一个命令会产生幂等性 \cp:原始命令不用别名(多个文件复制时)

CP选项: -i 覆盖前提示 alias-采用的是别名:替代cp -i -r, -R 递归复制目录及内部的所有内容 -a 归档,相当于-dR --preserv=all -d --no-dereference --preserv=links 不复制原文件,只复制链接名 --preserv[=ATTR_LIST] -p 等同--preserv=mode,ownership,timestamp mode: 权限 ownership: 属主属组 timestamp:时间戳 links xattr context all cp /etc/fstab ~wang -v --verbose -f --force -u --update 只复制源比目标更新文件或目标不存在的文件 -b 目标存在,覆盖前先备份,形式为 filename~ --backup=numbered 目标存在,覆盖前先备份加数字后缀 例:每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd


mv命令:mv - 移动 (改名) 文件 改“源文件”名到“目标文件”名, 或移动“源文件”(可以不只一个)到一个“目录


rm删除: 常用选项: -i 交互式 -f 强制删除 -r 递归 --no-preserve-root 删除/ rm -f :强制删除的时候不会有任何提示 rm -r:在删除文件目录的字母时会递归提示 mkdir 创建目录: -p: 存在于不报错,且可自动创建所需的各目录 -v: 显示详细信息 -m MODE: 创建目录时直接指定权限


rmdir 删除空目录 -p: 递归删除父空目录 -v: 显示详细信息 rm -r 递归删除目录树
-使用> 命令重新建立文件并且删除文件内的数据 -- 使用>> + 文件 -创建文件(不清空文件数据) rename批量更改文件名: 索引节点:inode(index node)表中包含文件系统所有文件列表 一个节点 (索引节点)是在一个表项,包含有关文件的信息( 元数据 ),包括: 文件类型,权限,UID,GID 链接数(指向这个文件名路径名称个数) 该文件的大小和不同的时间戳 指向磁盘上文件的数据块指针 有关文件的其他数据 保存文件是通过节点表来保存的 命令参数个数是有限的 节点编号用光会导致磁盘未满,但是报错:no space left to device 例: 拿/boot来说所用的索引节点总共524288个,没创建一个文件就会增加一个节点,当所有的节点数大于总的节点数时会导致节点数不够,但是磁盘利用率并未满;


ln -硬链接:ln 硬链接等于cp -p 加 同步更新。 本质:同一文件多个名称,不能跨分区和设备
更改文件名但属性和inode节点名完全不变 --硬链接不支持文件夹 -->软连接:也称为符号链接 ln -s :创建软连接 软连接依赖于原始文件 创建软连接原始文件要写相对路径是相对于软连接路径 而不是当前路径 针对文件夹也可以创建 跨分区也可以 软链接可以理解成快捷方式。它和windows下的快捷方式的作用是一样的。 区别: 软链接文件的大小和创建时间和源文件不同。软链接文件只是维持了从软链接到源文件的指向关系 硬链接文件和源文件的大小和创建时间一样。硬链接文件的内容和源文件的内容一模一样,相当于copy了一份 跨分区也可以实现软连接:

删除软硬链接: --删除硬链接其中的一个并不影响数据,indoe是目录文件的唯一标识,而软连接相当于windows快捷方式,删除了快捷方式并不会影响原数据。 硬链接和软连接区别总结; --硬链接:同一个文件多个名字 软连接:不同文件 --硬:不支持跨分区 软:支持跨分区
--硬:不支持目录创建 软:支持 --相互关系:相互平等关系 软:相互依赖 --inode(索引节点):硬-相同 软:不同 --硬链接连接数会增长 软连接不会增长 --路径问题:硬-原始文件路径是相对当前工作路径 软:原始文件要写相对路径是相对于软连接路径而不是当前路径 --文件类型:硬;不变 软连接表现为:L --具体命令实现方式也不同:硬-ln 软:ln -s --> file命令:检查文件的类型,然后确定适当的打开命令或应用程序使用 常用选项: -b 列出文件辨识结果时,不显示文件名称 -f filelist 列出文件filelist中文件名的文件类型 -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符 -L 查看对应软链接对应文件的文件类型 --help 显示命令在线帮助 # 10. vim:文本编辑器 vi和vim区别:vi是系统自带的,VIM是vi的增强版 +# 打开文件后,让光标处于第#行的行首,+默认行尾 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi vim - Vi Improved 配置文件:永久有效 全局:/etc/vimrc 个人:~/.vimrc 使用vi: 使用vim命令: 使用vim命令来打开相对应的文件可以有行数和颜色等之间的增强。 三种主要模式: 命令(Normal)模式:默认模式,移动光标,剪切/粘贴文本 插入(Insert)或编辑模式:修改文本 扩展命令(extended command )模式:保存,退出等 命令模式 --> 插入模式 i insert, 在光标所在处输入 I 在当前光标所在行的行首输入 a append, 在光标所在处后面输入 A 在当前光标所在行的行尾输入 o 在当前光标所在行的下方打开一个新行 O 在当前光标所在行的上方打开一个新行 扩展命令模式: :q 退出 :q! 强制退出,丢弃做出的修改 :wq 保存退出 :x 保存退出


复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符。 --grep名令:Grep 搜索以 FILE 命名的文件输入 (或者是标准输入,如果没有指定文件名,或者给出的文件名是 - 的话),寻找含有与给定的模式 PATTERN 相匹配的内容的行。默认情况下, grep 将把含有匹配内容的行打印出来,相对应的GREP选项命令可查看:man grep