目录是一种文件,路径映射文件;路径是指从指定起始点到目的点所经过位置(层次化)
路径分为2种:
绝对路径:从根开始,经过子目录,子子目录,文件;例 /usr/local
相对路径:相对于当前所在路径的路径;例 ./x/y,./ 表示当前路径下,作为参数可省略
# pwd 显示当前所在路径
# ls 显示当前路径下所有文件以及目录
选项:
-l 表示长格式,完整信息,信息内容:
文件格式
- :普通文件
d :目录文件
b :块设备文件
c :字符设备文件
l :符号链接文件(软连接文件);链接文件可理解为windows上的快捷方式,
p :命令管道文件
s :套件字文件
文件权限:9位,每3位1组,rwx(读,写,可执行),没有用 - 表示
文件硬链接的次数,inode节点的链接数
文件的属主
文件的属组
文件大小,单位字节
时间戳(timestamp),这里是最近一次被修改时间,每个文件都有3个时间戳:
最近被访问时间:access
最近被修改时间:modify,修改了内容
最近被改变时间:change metadata,改变了属性(元数据)
文件名
-h 做字节大小的单位转换
-a 显示所有文件,包括以 . 开头的隐藏文件
. 表示当前目录
.. 表示当前目录的上一级目录,父目录
-A 显示所有文件包括以 . 开头的隐藏文件,但不显示 . 和 ..
-d 显示目录自身
-i 显示inode号;每个文件除文件名外,还有文件标示符(index node,inode)
# ll 是 ls -l --color的别名
# cd 切换当前目录
cd 不加参数,会切换到家目录
cd ~username 切换到指定用户的家目录
cd - 在前一次所在目录和当前目录之间来回切换
# mkdir 创建目录
选项:
-m ,--mode=MODE 设定权限
-p ,--parents 可以是一个路径名称,当路径中某些目录不存在,会自动创建不存在的目录
-v 创建新目录显示信息
# tree 查看目录树
选项:
-d 只显示目录
-f 显示全部路径
-L 指定显示当前目录下最大深度的目录结构
# rmdir 删除空目录
-p 例:rmdir -p a/b/c 类似于 rmdir a/b/c a/b a
文件有2种数据
自身数据
属性数据(元数据)
# file 通过查看文件的头部信息识别文件类型,辨别文件的编码格式;格式ELF指可执行的,可链接的文件类型
-b 显示结果时,不显示文件名称
-c 显示指令执行过程,通常与 -m 选项联用
-f 显示文件中包含的文件名的文件类型
-z 尝试查看压缩文件的内容
# touch 更改文件的时间戳,也可以用来创建文件(时间戳是文件的属性,可以更改访问时间和修改时间,不能更改改变时间)
选项:
-a 更改访问时间
-m 更改修改时间
-t [[CC]YY]MMDDhhmm[.ss] 指定时间
-c 不创建新文件
# stat 显示文件或文件系统状态
选项:
-L 如果是链接,则获取源文件信息
-f 显示文件所在的文件系统的状态
-c FORMAT 定义输出格式
显示访问、修改、改变时间
# rm 删除文件和目录
选项:
-i 交互式
-f 强行删除
-r 递归删除目录
rm命令使用时,是 rm -i 的别名,# \rm (有别名的命令前用\,表示其自身命令)
# cp 复制文件和目录(如果目的文件存在,则清空目的文件内容,再复制源文件内容到目的文件中)
cp SOURCE DEST(只有最后一个是目标,之前的都是源)
复制一个文件到一个文件,多个文件到一个目录;cp链接时,会复制链接指向的文件,而不是链接
# cp /etc/passwd /tmp/test 有以下三种情况:
1,/tmp/下没有test,则将passwd复制到/tmp/下,并重命名为test
2,有test,test是目录,则将passwd复制到/tmp/test/下,并以passwd命名
3,有test,test是文件,则将passwd复制到/tmp/下,覆盖test文件内容
不能复制目录到目的地为文件
选项:
-a 归档
-b ,--backup 备份目的文件
-f ,--force 强制复制文件或目录
-l ,--link 建立硬链接文件
-p ,--preserve 保留源文件或目录的属性
--parents 保留源文件或目录的路径
-R ,-r ,--recursive 递归复制
-s 建立为符号连接
-S备份字尾字符串
-u ,--update 只在源文件的修改时间比目的文件更新时或者目的文件不存在才复制
# mv 移动或重命名文件、目录
选项:
-b 目标文件存在则备份目标文件、目录
-f 强制移动文件、目录
-u ,--update 只在源文件的修改时间比目的文件更新时或者目的文件不存在才移动
# install 复制文件,创建目录,设定属性(如果目标文件存在,则删除目标文件,再将源文件复制为目标文件;常用于程序的makefile)
选项:
-b ,--backup 备份
-d 创建目录,类似 mkdir -p 支持递归创建目录
-D 递归创建目标目录,再复制文件
-g ,--group 指定属组
-o ,--owner 指定属主
-m ,--mode 指定模式
# du 显示文件或目录的大小
选项:
-a ,--all 显示目录下的所有文件和目录的大小
-B 指定数据块大小
-b 显示单位为字节
-c ,total 显示各目录及总和
-D 显示符号链接的源文件大小
-h 以K,M,G为单位
-l 重复计算硬件链接的文件
-L 显示符号链接的源文件大小
-s ,--summarize 仅显示总计
文本查看相关命令
# cat 查看文件内容,显示标准输出,不分屏显示
可以实现:1,一次显示整个文件
2,从键盘创建一个文件,# cat > filename
3,将多个文件合并显示或合并为一个文件
选项:
-n 显示行号(包括空白行)
-b 显示行号(不包括空白行)
-E 每行以$结尾
# more 分页显示文件内容,不能向前翻页
选项:
+n 从第n行开始显示
显示操作:
Ctrl+B 返回上一屏
v 调用vi编辑器
q 退出more
# less 分页显示文件内容,可以随意浏览文件
# head 查看文件前几行的内容
选项:
-v 显示文件名
-c 显示指定字节数内容
-n 显示指定行数内容
#tail 查看文件最后几行内容
选项:
-c 显示指定字节数内容
-n 显示指定行数内容
-f 显示后不退出,继续显示后续文件增加的内容
--pid 与-f连用,终止进程ID,PID死掉后
-v 显示详细信息
-s ,--sleep-interval=S 与-f连用,表示在每次反复的间隔休眠S秒
文本处理相关命令
# cut 从文本的每一行剪切部分到标准输出,只擅长处理“以一个字符间隔”的文本内容
选项:
-b ,--bytes=LIST 选择指定字节数
-c ,--characters=LIST 选择指定字符
-d ,--delimiter=DELIM 定义分隔符
-f ,--fields=LST 选择指定区域
-n 与-b连用,不分隔多字节字符
# sort 将文本文件的行排序
选项:
-b 忽略每行行首的空格字符
-d 排序时,只处理英文字母、数字及空格字符
-f 排序时,将小写字母看做大写字母
-m 将几个排序好的文件合并
-M 将每行前3个字母安装月份的缩写进行排序
-n 安装数值大小排序
-o 将排序后的结果存入指定的文件
-r 倒序排序
-t 指定字段分隔字符
-k 以哪个字段为关键字进行排序
-u 排序后相同的行只显示一次(只有相邻且完全一样的行才认为是重复行,不相邻就算完全一样也不认为是重复行)
-c 检查输入是否已经排序
# uniq 报告或删掉反复的行(只有相邻并且完全一样才认为是重复行,不相邻就算完全一样也不认为是重复行)
选项:
-c 在每行行首加上本行在文件中出现的次数
-u 只显示文件中不重复的各行
-d 只显示重复行
# wc 显示出文件内容行数,字符数,字节数
选项:
-c 显示字节数(含空格)
-m 显示字符数
-l 显示行数
-L 显示最长一行的字符数
-w 显示单词数
# tr 转换或删除字符
字符串1用于查询,字符串2用于处理各种转换
选项:
-c 匹配除了字符串1的其它所有字符
-d 删除字符串1匹配的字符
-s 删除所有重复出现字符,只保留第一个