正文共:3888 字 19 图 预估阅读时间:5 分钟
1、命令行管理文件
Linux中,一切皆文件,文件就要有一定的组织方式,Linux是以树形组织文件:树的根(根目录)——>树枝(文件夹、目录)——>树叶(文件)。LSB(Linux Standards Base,Linux标准基础)是Linux标准库,在LSB下的FHS(Filesystem Hierarchy Standard,文件系统层次结构标准)规定了目录结构,也就是说所有Linux都要遵守这个标准。在这里与windows系统不同,windows系统是一个多树结构,一个磁盘相当于一个树的根,而在Linux中只有一棵树,如果有多个文件系统,就要将新文件系统挂在这棵树的一个树杈上,这个树杈将作为文件系统的入口。
文件有两类数据:
元数据:用来描述文件特征的系统数据包含文件的属性信息,比如文件的权限、所有者、大小、创建时间等。通过元数据,系统可以识别和管理文件,不需要直接读取文件。
数据:不同文件中实际数据的内容。
注意:目录是一种特殊文件,Linux中,文件名严格区分大小写,文件名不能包含“/”这个字符,文件名长度不能超过255个字符,以点(.)开头的文件都是隐藏文件。
1.1、目录结构
使用ls /查看根目录:
1.2、根据名称查找文件
根据一个路径定位一个文件在哪儿,路径又分为绝对路径和相对路径:绝对路径表示从根目录起始;相对路径表示从当前位置起始。
一个点表示当前目录:
ls ./
两个点表示上一级目录即父目录:
ls ../
返回到自己的家目录:
cd
返回上一次的工作目录:
cd –
切换到父目录:
cd ..
切换到当前用户的家目录,如果指定用户,就切换到指定用户的家目录。
cd ~
注意:系统有两个变量来记录路径:PWD(Print Working Directory 记录当前路径),OLDPWD(Old Working Directory 记录上一次路径)。cd -,就是取OLDPWD这个变量的值。
1.3、目录的管理
1.3.1、ls
-l:输出权限、拥有者、拥有组、大小等详细信息。
在这里各个第一个字符含义为:-表示一个文件,d表示是一个目录,b表示块设备文件,c表示字符设备文件,l连接文件,s套接字文件,一般用于本地进程互相通讯。
-d:查看目录的信息。
-h:以可读的方式显示大小,按大小排序:-Sh。
-a:包含隐藏文件内在的所有文件,以点(.)开头的都是隐藏文件。
-R:递归,包含子目录的内容。
-t:按时间排序,时间越近越靠前,如果想反过,时间越久越靠前:-tr。
1.3.2、创建目录
mkdir
-p同时创建多级目录。
-m创建目录同时,给予权限,比如:mkdir -m 777 /tmp/tt
注意:创建目录时,一定要注意路径是否正确。
1.3.3、删除目录
rmdir
这个命令只能删除空目录,如果目录下有文件,必须先把必须把文件删除,才能删除目录。
rm -r
rm本意思是删除一个文件,递归删除,先删除目录下的子文件和子目录,再删除指定目标。
rm -rf
强制删除,不会做任何提示,很容易删错。
1.3.4、目录的移动
mv
在移动时,包括的子目录和子文件一起移动。
1.3.5、目录的复制
cp -r
将/bin下的jsj目录复制到/root:cp -r /bin/jsj /root/。
将目录及目录下的子文件和子目录一同复制,cp的本意是复制一个文件。
1.4、文件的管理
1.4.1、创建文件
touch
创建一个空文件,更新文件的时间戳为当前时间。
注意:一个目录或文件有三种时间,mtime文件内容被修改时间,ls -l查看的就是这个时间。
atime 文件最近一次被访问时间。
查看atime(Access Time文件访问时间)。
ls -l /tmp/f1 --time=atime
查看ctime(Change time 文件状态改变时间)当文件的元数据发生变化时,ctime会更新,不仅包括内容的修改,还有文件属性的更改。time更新不代表文件内容被修改了。
ls -l /tmp/f1 - -time=ctime
获取文件的元数据,包括三个时间,分别是Access(文件访问时间),Modify(文件内容修改时间),Change(文件状态改变时间)。
stat /tmp/f1
1.4.2、查看文件
统计文件行数、单词数、字符数:
wc
-l:只统计行数,-w:单词数,-c:字符数。
按字母排序输出:
sort /etc/passwd
-r,反序输出,-f,忽略大小写,-t字段分隔符,-k指定字段为标准排序,-n按数值大小排序,-u排序后去除重复。
去重但不进行排序
uniq
-c,显示每行重复出现的次数。
-d,仅显示重复过的行。
-u,仅显示不曾重复的行。
把文件内容全部输出,加-n选项,显示行号。
cat
输出文件的换行符:cat -E
反向查看文件:tac
more
空格往尾部翻一屏,b往首部翻一屏,enter往尾部翻一行,不能往上翻行,more还带有搜索功能,/搜索关键字,n下一个关键字,N上一个关键字。
less
less用法和more类似,不同的是,less可以循环方式查看文件。
j往下翻往上一行,k翻一行,g跳到文件首部,G跳至文件尾部。
head默认显示文件的前10行,-n选项可以指定只显示第几行。
只显示第一行head -n 1
tail:只显示文件的后10行,也可以用-n选项指定行数。
tail -f:跟踪显示文件新追加的内容。
1.4.3、复制文件
cp 复制多个文件,最后一个参数必须为目录。
1.4.4、移动文件
mv
移动一个文件,也可以用作重命名一个文件。
1.4.5、删除文件
rm
rm file
1.4.6、其他工具
通过探测文件内容判断文件类型,使用权限为所有用户。
file
-v:在标准输出后显示版本信息,并且退出。
-z:探测压缩过的文件类型。
-L:允许符合链接。
-f name:从文件namefile中读取要分析的文件名列表。
注意:file能识别的文件类型有目录、Shell脚本、二进制可执行文件、文本文件等,不能探测包括图形、音频、视频等多媒体文件类型。
diff
用于两个文件之间的比较,并指出两者的不同,使用权限为所有用户。
-a:将所有文件当作文本文件处理。
-b:忽略空格造成的不同。
-c:使用纲要输出格式。
-l:忽略大小写的变化。
1.5、通配符
通配符,用于匹配符合相关条件的符号,一般用来匹配文件名和路径。
通配符是由shell处理的,它只会出现在命令的“参数”里。当shell在参数中遇到通配符时,shell会将其当作路径或文件名去搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则将该通配符作为一个普通字符传递给“命令”,然后由命令行处理。
注意:通配符看起来和正则表达式很像,其实不同,通配符是shell识别的特殊字符,且只有* 、? 、[ ] 、{ }这4种。
1.5.1、字符合集
注意:字符集的中括号“[ ]”,不是通配符,如果要匹配,还要在外面再加一个[ ]。
1.5.2、实例
查看mnt目录下,f开头,后面跟一个数字的文件:
ls /mnt/f[0-9]
ls /mnt/f[[:digit:]]
批量创建文件:
touch /mnt/f{1..10}
查看f开头,后面跟了1或2的文件:
ls /mnt/f{1,2}
2、帮助
2.1、内部命令
help command
2.2、外部命令
command --help
command -h
man 手册
Info信息
程序自带的文档:readme、install等
程序官方文档
百度、谷歌
2.3、help
2.3.1、内部命令
查看echo命令帮助:
help echo
2.3.2、外部命令
查看ls命令的简单帮助,详细帮助要用man,/bin目录下面都是外部命令。
ls --help
2.3.3、帮助信息格式
2.4、man帮助手册
每个程序,都有帮助文档,但大量的文档,会占用大量的空间,所以需要压缩,man手册就是压缩过的程序文档。
man手册的配置文件,指定了man命令搜索路径。
cat /etc/man.config
man总共分为9个章节,主要是1、5章节
man命令以less方式打开帮助手册。
2.4.1、搜索关键字
精准匹配read,进行搜索。
whatis,有一个数据库,可将系统上所有的帮助手册与之对应的关键字创建为一个数据库,命令就是从它的数据库中查询数据。
mkwhatis,手动创建数据库。
whatis read : 默认,系统有一个计划任务,自动创建这个数据库。
apropos read和whatis的区别,apropos模糊匹配,也是在whatis数据库中搜索。
man -f read 等价于whatis read。
man -k read 等价于apropos read。
例:查找passwd这个文件的帮助,passwd既是一个命令又是一个配置文件,如果直接man passwd,会从第一章往后查找,一直到找到为止,然而在第一章命令章节里,就有passwd,所以这样找到的passwd这个命令的帮助。如果查找passwd这个配置文件的帮助:man 5 passwd
在第一章的sslpasswd帮助中,有一个passwd命令。
man -f passwd
man 5 passwd
如果是最小化安装,passwd(5)可能没有。
2.5、info
info命令比man命令更加详细,但一般很少用。
它会将三个passwd的帮助合并显示。
info passwd
2.6、程序的自身文档
安装软件时,会在/usr/share/doc目录下创建一个以程序名命名的目录,然后把自己的说明文档和使用方法文档放在该目录下,也可到相应程序的官方网站查看相应的官方文档。
通过firefox浏览器查看http程序文档:
Firefox file:///usr/share/doc/httpd-2.4.6
2.7、官方文档
http://access.redhat.com/documentation/en-us/
https://wiki.centos.org/zh/Documentation
2.8、google用法
2.8.1、双引号
把搜索词放在双引号中,代表完全匹配搜索,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配。
2.8.2、fileytpe
用于搜索特定的文件格式。
如:linux filetype:pdf
2.8.3、site
用来搜索某个域名下所有的文件。
如:echo site:centos.org
长按二维码
关注我们吧
--推荐阅读--