目录及文件
- 目录树的读取方式:挂载点信息——根目录inode,查看权限——datablock读取下一级文件的inode
- .“/“与开机有关;”/var"与系统运行有关;”/usr"与软件安装系统有关
- / Linux文件的最上层根目录
/boot 开机所需文件——内核,开机菜单以及所需配置文件等
/dev 以文件形式存放任何设备与接口,硬件
/etc 配置文件
/home 用户家目录
/bin Binary的缩写,存放用户的可运行程序,如ls、cp等,也包 含其他shell,如bash和cs等 - 绝对路径:由根目录开始的;相对路径:相对于当前路径,如./表示当前目录,…/表示上一级目录
- "-“代表上一个工作目录,”~"代表当前用户的家目录文件分为普通文件,目录文件,链接文件,设备文件和管道文件
- 文件名区分大小写
- pwd 显示当前工作的绝对路径
- cd +目录名,改变当前目录
- mkdir+选项+目录名,创建目录
- rmdir +选项+目录名,删除空目录
- ls 列出当前目录下的文件及目录;ls -a列出目录下的所有文件,包括以.开头的隐藏文件;ls -l 列出文件详细信息;ls -t按照文件最后修改时间排序;ls -R显示出目录下以及所有子目录的文件名 cat -n,由1开始对行编号,-b对于空白行不编号,-s有连续两行的空白行替换为一行;
- cat file2 file1>file3,file2和file1合并成file3,且file2内容在前,结果会覆盖原来的file3.
- head -n 5 显示前5行,-c 5显示前5个字符,-5从倒数第5行开始显示
- tail -n 5 显示后5行,-c 5显示后5个字符,+5 从第5行开始显示
- more file1 分屏显示文件 ,空格翻一页,enter翻一行q终止浏览
- less file1分屏显示,less -m显示读取文件百分比,less -s 连续多个空白行显示一个空白行。空格,翻一页。pagedown/pageup向下上翻一行,/向下搜索字符,g/G到文件第一/最后一行,q退出
- touch -d yyyymmdd 把文件存取和修改时间改为yyyy年mm月dd日,-a只把文件的存取时间改为当前时间,-m只把文件的修改时间改为当前时间
- sort -t " " -k 2 file,表示以空格作为分割符的第2列进行排序,-n表示按数值大小,-r表示按相反顺序排序,默认情况下是升序,-k 1.2 表示按第一列第二个字母排序
- diff a.txt b.txt 比较两个文本文件是否相同
- cp -f file1 file2 把1复制到2,覆盖2中同名原文件且不提示,-i,询问是否覆盖,-r/-R递归复制目录及其所有子目录
- rm -rf/-Rf递归删除目录,rm -f 删除文件,不能删除目录,-i删除时提示
- mv -f a b ,a剪切到b且直接覆盖,-i询问是否覆盖,mv abc.txt test/aaa.txt,把当前文件夹下abc.txt文件移动到test下并改名为aaa.tx
- wc -lwc aaa.txt -l行数,-w字数(一个字符串算一个字),-c字节数,-m字符数
文件权限
- ls-l 显示文件详细信息,一共七组,由空格分开,分别表示:文件类型及权限,连接数,拥有者,所属群组,容量,最后被修改时间,文件名
- 第一组:
- 字符1(d目录,-普通文件;l符号链接;b,c区块设备或外围设备,特殊文件;s,p关系到系统的数据结构和管道)
- 字符2-4:所有者权限,5-7:群组权限,8~10其他人权限
- r表示读,对目录来说仅可以查看目录下文件的名字;w表示写,对文件表示修改或增加,对目录表示可以删除,增加,修改目录下的文件,x表示执行,对目录来说,表示进入目录的权限,没有r权限也可以进入目录,-表示不具备对应权限
- 第二组:表示多少文件名连接到此节点(i-node)链接数
- 第五组:容量单位为byte
- 第六组:ls -l --full-time 显示完整时间格式
- 第七组:文件名前加.表示隐藏文件, -a可以显示隐藏文件
- 权限修改:数字表示法 r4 w2 x1;chmod u=rw abc 给abc文件的拥有者赋予读写权限并取消原来权限
- 文件所有者修改:chown 所有者:属组 +文件名
chown 所有者+文件名//只改所有者
chown :属组/chgrp//只改所属组
chown命令只有root用户能用 - Umask 查看默认权限,若默认权限是003,文件预设权限是666,目录预设权限是777,则普通用户创建文件的权限是664,创建目录的权限是774。Umask+数字权限,修改默认权限
- suid权限,当一个二进制程序的所有者有s权限时,普通用户执行这个程序时会暂时拥有所有者的权限(前提是普通用户有x权限)u+s
- sgid权限,当一个二进制程序的所属群组有s权限时,普通用户执行该程序时会暂时拥有所属组的权限(前提是普通用户有x权限。)当一个目录被sgid修饰时,普通用户在该目录创建的文件所属组和该目录所属组一致(前提是普通用户对目录有w和x权限)g+s
- sbit权限,仅对目录有效。当一个目录拥有该权限时,用户在该目录下创建的文件仅有所有者和root可以删除(前提是普通用户对目录有w和x权限)o+t
文件搜索
- *匹配任意长度文件名字符串,包括空字符串;?匹配任一单字符;. 作为文件名或路径名第一个字符时,必须显示匹配(*file不匹配 .file), []匹配方括号内任一字符;[^abc]表示除abc以外的任一字符
- find [搜索路径] [选项] [-print -exec -ok]
-size +n表示比n大的文件
-inum n 查找结点号为n的文件
-type 查找指定类型的文件
-atime n查找n天前被访问过的文件,-n表示n天内
-mtime n 查找n天前被修改过的文件
-ctime n 查找n天前文件索引节点被改过的文件
-perm mode,-mod表示权限包括mod(比mod大),/mod表示符合任何一个权限(比mod小)
-newer file 比file新的文件
-exec command {} ;对查找到的文件执行command 指令 - locate查找文件位置,支持通配符
- whereis 查找可执行文件的位置
- grep 查找文件中包含指定字符串的行
• grep -2 root /etc 在/etc中寻找含有字符root的行,显示该行及该行的前后两行
• grep “^root$” /etc - 查找仅包含root的行,^表示行的开始,$表示行的结束,查找的字符串中有空格,可以用引号括起来
硬链接和符号链接
- 硬链接:ln 源文件 目标文件
• 不能对目录做硬链接,不能在不同文件系统做硬链接
• 创建的硬链接文件和源文件节点号相同。
• 创建的硬链接文件命名可以和源文件名不同。
• 源文件删除了,而链接文件仍具有原来特性。
• 创建的硬链接文件属性和源文件相同。
• 更改源文件或链接文件属性,则全部更改。 - 软链接:ln -s 源文件 目标文件
• 软链接是一个新文件,它与目标文件有不同的inode;
• 软链接可以对目录文件做符号链接,也可以在不同文件系统之间做符号链接;
• 删除源文件或目录时,不会删除链接,但链接失效;
• 软链接的大小是其链接文件的路径名中的字节数。
• 在目录长列表中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是l。 - 目录的链接数=直属子目录数+2;新建目录为2(其包含两个隐藏文件)
文件的归档与压缩
- 文件归档
• tar -cf f1.tar +源文件 把源文件打包生成f1.tar
• tar -cvf f1.tar 打包同时列出包里文件
• tar -tf f1.tar 查看f1.tar包内容
• tar -xvf f1.tar 还原包并列出文件
• tar -rf f1.tar m1 把m1加到f1.tar包中
• tar -zcvf f1.tar.gz 打包并用gzip压缩
• tar -jcvf f1.tar.bz 打包并用bzip2压缩
• tar -Jcvf f1.tar.xz打包并用xz压缩
• 用-z,-j,-J压缩的,也要用该命令解压缩
• tar -zxvf tmp.tar.gz 解压缩 - 文件压缩
• gizp bzip2 xzip
• -d解压,-v显示压缩比
• 查看纯文本文件压缩内容:
gzip压缩文件, zcat zmore zless
bzip2压缩文件,bzcat bzmore bzless
xz压缩文件,xzcat xzmore xzcat