第三章 基本bash shell命令
善用man手册,看不懂的可以安装man汉化。
如
man tree
man ls
等等
tree #显示目录结构。可能需要安装(根据系统)apt、rpm
ubuntu:sudo apt install tree
ls
-l #显示详细文件信息默认显示修改时间
-R #递归显示
-F #区分文件 、目录/以及可执行文件*
-d #显示目录本身信息,不显示其中内容
-a #显示所有包括隐藏配置文件.开头的文件
参数合并
-aFRl
显示文件过滤(扩展匹配)
通配符
ls -aFRl *aa?bb[abc][!123]
* #匹配空或多个任意字符
? #匹配单个任意字符
[]#匹配括号内存在的单个字符
[!]
#取反排除括号内字符
touch创建文件
touch已存在文件可以更新文件修改时间并不修改文件内容
-a #修改访问时间
--time=atime
#显示访问时间需要添加该参数
cp复制文件
cp source destination
当source与destination都是文件名时会将源文件复制为一个新文件以destination命名
-i #复制文件默认不提醒文件重复,所以需要-i参数提示是否覆盖文件
当destination为目录时
注意/代表目录,缺少/就可能创建的是文件,并且无提示
使用相对路径
. #表示当前路径。当目标文件路径名很长时可以使用单点符表示
-R #递归复制
通配符同上
链接文件 #链接指指向文件真实位置的占位符
#创建符号链接与硬链接前必须保证文件存在
硬链接
ln source destination
会创建独立的虚拟文件包含原文件的信息与位置
引用硬链接等于引用源文件,共享inode编号,文件大小相同
符号链接
ln -s source distination
指向存在于虚拟目录中某个文件的文件
ls -l 显示符号链接文件会有->符号表示指向该文件,并且文件大小有9k
ls -i 显示inode编号表明符号链接文件是独立的。
软链接
文件移动及重命名
mv source distination #不更改文件inode与时间戳
类似cp命令
source可以是文件或者一个目录(包括目录下文件)
当distination为文件名时,会更改文件名称
当distination为目录时(以/结尾),会移动文件至该目录下
二种结合可以实现移动文件并更改名称
文件删除
rm(remove)
#使用rm命令一定要小心,使用-i参数提示确认。
文件删除也可以使用通配符*?[][!]等
当文件较多且无需确认时,使用-f强制删除
-r #递归删除删除目录下的文件
当需要删除多级目录及文件时,可以使用rm -rf,谨慎使用。
创建目录
mkdir(make directory)
-p #创建多级目录
删除目录
rmdir(remove directory)
#默认只能删除空目录且没有-i选项所以需要使用rm -r递归删除,别忘了-i提示,linux可没有回收站。
查看文件类型(文本文件,二进制文件,字符编码)
file #能够确定用来确定文件编译平台及库,在面对未知文件时很有用。
查看文件内容
cat
-n #显示行号
-b #只添加有文本的行号
-T #将制表符替换为^I不显示制表符
more #分页工具阅读页面,q退出,空格回车逐行阅读
less #功能更多
可以识别上下翻页键详细查看man手册
查看大文件时
tail #默认显示后10行
-n #指定行数
-f #允许在文件占用时查看并不断刷新新内容,在查看系统日志时很好用
head #类似tail默认显示前10行