Linux文件系统中,一切皆为文件。这些文件大致可以分为七大类:普通文件(-)、目录文件(d)、符号链接文件(l)、套接字文件(s)、块设备文件(b)、字符设备文件(c)、命名管道文件(p),使用命令ls -l即可查看文件的类型(-l选项输出结果的第一列的第一个字符即是文件类型)。本节就来介绍一下Linux文件的常用操作命令。
1.查看文件内容
1.1 cat命令
cat命令显示文件内容,一次性输出全部文件内容到屏幕上。
语法:cat (选项) (参数)
常用的选项:
-n或-number:显示所有行的行号;
-b或--number-nonblank:显示非空白行的行号;
-s或--squeeze-blank:遇到连续空白行,只显示一个空白行;参数:文件列表(以空格间隔)
1.2 more命令
more命令支持分屏显示长文件的内容:Enter键下一行,空格键下一屏,B键上一屏,H键显示帮助,斜线“\”进入查找模式,Q键退出。
语法:more (语法) (参数)
常用的选项:
-<数字>:指定每屏显示的行数;
+<数字>:从指定数字的行开始显示;
-d:显示提示信息;
-c:不进行滚屏操作,每次刷新当前屏幕的内容;
-s:将多个空行压缩成一个空行显示;
-u:禁止下划线;参数:目标文件。
1.3 less命令
less命令分屏显示长文件内容,比more命令功能更强大,如less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。PageUp键向上翻页,PageDown键向下翻页,Q键退出。
语法:less (选项) (参数)
常用的选项:
-g:检索时高亮显示检索内容;
-l:检索时忽略大小写;
-N:显示行号;
-s:连续空白行只显示一个空白行;
-S:长内容不换行;
-x<数字>:指定一个TAB键等于几个空格。参数:目标文件。
1.4 head命令
head命令显示文件开头的内容,默认只显示前10行。
语法:head (选项) (参数)
常用的选项:
-n<数字>:指定显示头部内容的行数;
-c<字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。参数:文件列表。
1.5 tail命令
tail命令显示文件尾部的内容,默认只显示最后10行。
语法:tail (选项) (参数)
常用的选项:
-n<N>或--line=<N>:输出文件的尾部N(N位数字)行内容;
-c<N>或--bytes=<N>:输出文件尾部的N(N为整数)个字节内容;
-f<filename>或--follow<filename>:显示文件最新追加的内容;
-s<秒数>或--sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或--verbose:当有多个文件参数时,总是输出各个文件名;
-q或--quiet或--silent:当有多个文件参数时,不输出各个文件名;参数:文件列表。
2.查找文件
2.1 find命令
find命令在指定目录下查找文件。不带参数表示在当前目录下查找。
语法:find (选项) (参数)
常用的选项:
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-depth:从指定目录下最深层的子目录开始查找;
-expty:寻找文件大小为0Byte的文件,或目录下没有任何子目录或文件的空目录;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-size<文件大小>:查找符合指定的文件大小的文件;
-type<文件类型>:只寻找符合指定的文件类型的文件;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;参数:目标目录。
2.2 locate命令和slocate命令
locate命令和slocate命令都用来查找文件或目录。locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
语法:locate/slocate (选项) (参数)
常用的选项:
-d<目录>或--database=<目录>:指定数据库所在的目录;
-i:忽略大小写;
-u:更新数据库;参数:查找的内容。
2.3 which命令
which命令查找并显示给定命令的绝对路径。
语法:which (选项) (参数)
常用的选项:
-n<文件名长度>:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;
-w:指定输出时栏位的宽度。参数:要查找的命令的列表。
2.4 whereis命令
whereis命令查找二进制程序、源代码文件和man手册页等相关文件的路径。
语法:whereis (选项) (参数)
常用的选项:
-b:只查找二进制文件;
-B<目录>:只在指定的目录下查找二进制文件;
-f:不显示文件名前的路径名称;
-m:只查找说明文件;
-M<目录>:只在指定的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在指定的目录下查找原始代码文件;
-u:查找不包含指定类型的文件。参数:要查找的二进制程序、源文件和man手册页等的名字。
3.文件传输命令
3.1 ftp命令
ftp命令的功能是用命令的方式在本地机和远程机之间传送文件。
语法:ftp (选项) (参数)
常用的选项:
-d:详细显示指令执行过程,便于排错或分析程序执行的情况;
-i:关闭互动模式,不询问任何问题;
-g:关闭本地主机文件名称支持特殊字符的扩充特性;
-n:不使用自动登录;
-v:显示指令执行过程。参数:远程主机的主机名或IP地址。
FTP命令的常用操作:
FTP>put/send:上传文件.
FTP>get/recv:下载文件.
FTP>mkdir:新建目录.
FTP>rmdir:删除目录.
FTP>pwd: 查看远程主机的工作目录.
FTP>lcd: 切换本地主机的工作目录,缺省为HOME目录.
FTP>cd: 切换目录.
FTP>cdup: 切换到上一级目录.
FTP>dir/ls:列出目录下内容.
FTP>chmod:改变文件权限.
FTP>delete: 删除文件.
FTP>rename:重命名文件.
FTP>mdelete:批量删除.
FTP>mget:批量下载.
FTP>mput:批量上传.
FTP>ascii: 设定以ASCII方式传送文件(缺省值).
FTP>binary: 设定以二进制方式传送文件.
FTP>bell: 每完成一次文件传送,报警提示.
FTP>bye/quit/close: 退出.
FTP>prompt: 交互提示模式.
FTP>status: 显示当前FTP的状态.
FTP>help/? [command] 显示帮助信息.
3.2 scp命令
scp命令用于远程拷贝文件,而且传输是加密的。
语法:scp (选项) (参数)
常用的选项:
-1:使用ssh协议版本1;
-2:使用ssh协议版本2;
-4:使用ipv4;
-6:使用ipv6;
-B:以批处理模式运行;
-C:使用压缩;
-F:指定ssh配置文件;
-l:指定宽带限制;
-o:指定使用的ssh选项;
-P:指定远程主机的端口号;
-p:保留文件的最后修改时间,最后访问时间和权限模式;
-q:不显示复制进度;
-r:以递归方式复制。参数:
源文件:指定要复制的源文件。
目标文件:目标文件。格式为user@host:filename(文件名为目标文件的名称)。
3.3 rcp命令
rcp命令用于远程拷贝文件。
语法:rcp (选项) (参数)
常用的选项:
-p:保留源文件或目录的属性,包括拥有者、所属群组、权限与时间;
-r:递归处理,将指定目录下的文件与子目录一并处理;
-x:加密两台Linux主机间传送的所有信息。
-D:指定远程服务器的端口号。参数:
源文件:host1:filename
目标文件:host2:filename