Linux文件管理类命令相关

Linux文件管理类命令相关


1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

1)、查看文件命令:

(1)ls命令:

  • list,列出目录下的内容

语法:
  • ls [OPTION]… [FILE]…

常用选项:
  • -a: 显示所有文件,包括隐藏文件;

  • -A:显示除.和..之外的所有文件;

  • -l: –long, 长格式列表,即显示文件的详细属性信息;

  • -h, –human-readable:对文件大小单位换算;换算后结果可能会非精确值;

  • -d:查看目录自身而非其内部的文件列表;

  • -r: reverse, 逆序显示;

  • -R:recursive,递归显示;


(2)cat命令:

  • concatenate,是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。

语法:
  • cat [OPTION]… [FILE]…

常用选项:
  • -n:给显示的文本行编号;

  • -E: 显示行结束符$;

  • -b: 对非空输出行编号;

  • -s:不输出多行空行;


(3)file命令:

  • 查看文件类型;

语法:

*file [FILE]…

常用选项:
  • -c:详细显示指令执行过程,便于排错或分析程序执行的情形;

  • -L:查看对应软链接对应文件的文件类型;

  • -z:尝试去解读压缩文件的内容;


(4)echo命令:

  • 回显,echo的功能是在显示器上显示一段文字,一般起到一个提示的作用;

语法:
  • echo [SHORT-OPTION]… [STRING]…

常用选项:
  • -n: 不进行换行;

  • -e:让转义符生效;\n:换行\t:制表符

注意:
  • TRING可以使用引号,单引号和双引号均可用; a,单引号:强引用,变量引用不执行替换;b,双引号:弱引用,变量引用会被替换;

  • 变量引用的正规符号: ${name}


(5)which命令:

  • 命令用于查找文件 

语法:
  • which [文件…]

常用选项:
  • -n<文件名长度>:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;

  • -p<文件名长度>:与-n参数相同,但此处的<文件名长度>包括了文件的路径;


(6)whereis命令:

  • whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。

语法:
  • whereis [-bfmsu][-B <目录>…][-M <目录>…][-S <目录>…][文件…]

常用选项:
  • -b:只查找二进制文件;

  • -B<目录>:只在设置的目录下查找二进制文件;

  • -f:不显示文件名前的路径名称;

  • -m:只查找说明文件;

  • -M<目录>  只在设置的目录下查找说明文件;

  • -s:只查找原始代码文件;

  • -S<目录>:只在设置的目录下查找原始代码文件;

  • -u:查找不包含指定类型的文件;


(7)more命令:

  • more命令的功能是分屏查看;特点:翻屏至文件尾部后自动退出;

语法:
  • more FILE

常用选项:
  • -#: 一次显示#行;

  • +#:从#行开始显示;

  • -c:从顶部清屏,然后显示;

  • -s:把连续的多个空行显示为一行;

常用的操作命令:
  • Enter:向下n行,需要定义。默认为1行

  • Ctrl+F:向下滚动一屏

  • 空格键:向下滚动一屏

  • Ctrl+B:返回上一屏

  • =:输出当前行的行号

  • :f :输出文件名和当前行的行号

  • V : 调用vi编辑器

  • !命令:调用Shell,并执行命令

  • q:退出more


(8)less命令:

  • less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

语法:
  • less [参数] 文件

选项:
  • -e:当文件显示结束后,自动离开;

  • -i:忽略搜索时忽略大小写;

  • -N:显示每行的行号;

  • -o<文件名>:将less输出的文件保存至指定的文件;

  • -s:显示连续的空行为一行;

  • /字符串:向下搜索“字符串”功能;

  • ?字符串:向上搜索“字符串”功能;

  • n:重复前一个搜索(与 / 或 ? 有关)

  • N:反向重复前一个搜索(与 / 或 ? 有关)

  • b:向后翻一页

  • d:向后翻半页

  • h:显示帮助界面

  • Q:退出less 命令

  • u:向前滚动半页

  • y:向前滚动一行

  • [pagedown]:向下翻动一页

  • [pageup]:向上翻动一页


(9)head命令:

  • 查看文件的前n行

语法:
  • head [options] FILE

常用选项:
  • -c <#>:显示#个字节数;

  • -n <#>:显示#行;


tail命令:

  • 查看文件的后N行;

语法:
  • tail[必要参数][选择参数][文件]

常用选项:
  • -f:循环读取;

  • -q:不显示处理信息;

  • -v:显示详细的处理信息;

  • -c<数目>:显示的字节数;

  • -n<行数>:显示行数;


(10)stat命令:

  • stat – display file or file system status,显示文件或文件的状态信息;

语法:
  • stat FILE…

常用选项:
时间戳:
  • access time(访问时间):2015-12-10 16:12:22.776423693 +0800

  • modify time(修改时间):2015-12-10 16:12:22.776423693 +0800

  • change time(状态改变时间):2015-12-10 16:12:22.776423693 +0800


(11)touch命令:

  • touch – change file timestamps,可以用来创建文件;

语法:
  • touch [OPTION]… FILE…

常用选项:
  • -c: 指定的文件路径不存在时不予创建;

  • -a: 仅修改access time;

  • -m:仅修改modify time;

  • -t:使用指定的日期时间,而非现在的时间;[[CC]YY]MMDDhhmm[.ss];


2)管理文件命令:

(1)cp命令:

  • copy,复制命令;

语法:
  • cp [OPTION]… [-T] SOURCE DEST

  • cp [OPTION]… SOURCE… DIRECTORY

  • cp [OPTION]… -t DIRECTORY SOURCE…

常用选项:
  • -i:交互式复制,即覆盖之前提醒用户确认;

  • -f:强制覆盖目标文件;此时不会提示你是否覆盖了,直接强制覆盖;

  • -r, -R:递归复制目录;

  • -d:复制符号链接文件本身,而非其指向的源文件;

  • -a:-dR –preserve=all, archive,用于实现归档;


(2)mv命令:

  • move,移动命令;

语法:
  • mv [OPTION]… [-T] SOURCE DEST

  • mv [OPTION]… SOURCE… DIRECTORY

  • mv [OPTION]… -t DIRECTORY SOURCE..

常用选项:
  • -i:交互式;

  • -f:force,强制移动;

  • -u:若目标文件已经存在,且 source 比较新,才会更新(update);

  • -t:即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后;


(3)rm命令:

  • remove,删除;

语法:
  • rm [OPTION]… FILE…

常用选项:
  • -i:interactive,交互式删除;

  • -f:force,强制删除;

  • -r: recursive,将参数中列出的全部目录和子目录均递归地删除;


2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

1)bash的工作特性之命令执行状态返回值;

  • 在 Linux 下,任意一个命令执行结束之后,bash都会返回0-255之间的数值以表示命令执行成功与否;其返回值保存于bash的特殊变量$?中;

  • 其中0表示:执行成功;1-255表示执行错误;

  • 例如:

  • [root@localhost ~]# ls

  • anaconda-ks.cfg initial-setup-ks.cfg

  • [root@localhost ~]# $?

  • bash: 0: 未找到命令…

  • [root@localhost ~]# lsa

  • bash: lsa: 未找到命令…

  • [root@localhost ~]# $?

  • bash: 127: 未找到命令…


2)bash的工作特性之命令行展开:

  • bash中命令行展开主要有两种:

(1)~:自动展开为用户的家目录,或指定的用户的家目录;

(2){}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;

  • 例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b;


3、请使用命令行展开功能来完成以下练习:

(1)、创建/tmp目录下的:ac, ad, bc, bd

  • ]# mkdir -p /tmp/{a,b}_{c,d}

  • 或者:

  • ]# touch /tmp/{a,b}_{c,d}

(2)、创建/tmp/mylinux目录下的:

  • G6]F(D36DRS`N17NFUX]BBQ.png

  • ]# mkdir -pv /tmp/mylinux/{bin,boot/gtub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

  • ]# tree /tmp/mylinux

  • 注意:tree命令安装: yum -y install tree


4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

1)文件的元数据信息及查看

  • 文件的数据分两种:一种元数据,既属性数据;一种就是数据本身;可使用stat命令查看文件的元数据:

  • 例如:

  • ]# stat /etc/passwd

  • 文件:"/etc/passwd"

  • 大小:2483 块:8 IO 块:4096 普通文件

  • 设备:fd00h/64768d Inode:136755684 硬链接:1

  • 权限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:( 0/ root)

  • 环境:systemu:objectr:passwdfilet:s0

  • 最近访问:2016-09-22 22:07:14.897045766 +0800

  • 最近更改:2016-09-20 18:10:23.223086880 +0800

  • 最近改动:2016-09-20 18:10:23.227086888 +0800

  • 创建时间:-

其中:

  • file:文件名;

  • size:文件大小

  • block:文件占了多少个数据块

  • IO Block:文件所占数据块的块大小

  • Device:硬件,既说明该文件在硬盘的那个柱面

  • Inode:节点号

  • links:链接

  • Access(第一个):权限

  • Uid:该文件所属的属主

  • Gid:该文件所属的属组

  • context:安全上下文

  • Access(第二个):文件上一次的访问时间

  • Modify:文件上一次修改的时间

  • Change:文件上一次属性更改的时间


2)修改文件的时间戳信息:

  • 可以使用touch命令更改文件的时间戳:

语法:
  • touch [OPTION]… FILE…

常用选项:
  • -c: 指定的文件路径不存在时不予创建;

  • -a: 仅修改access time;

  • -m:仅修改modify time;

  • -t:使用指定的日期时间,而非现在的时间;[[CC]YY]MMDDhhmm[.ss];

例如:
  • 待补充


5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

命令别名使用alias命令;

  • ~]#alias NAME='COMMAND'

在一个命令中引用另一个命令的执行结果也是bash的特性之一,引用。

  • 方法:$(COMMAND) 或者 COMMAND

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录?

  • ~]# ls -d /varl[0-9][a-z]

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

  • ~]# ls -d /etc/[0-9]*[^0-9]

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

  • ~]# ls -d /etc/[^[:alpha:]][:alpha:]*

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

  • ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)

  • ~]# tree /tmp 查看输出结果

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

  • ~]# mkdir /tmp/mytest1

  • ~]# cp -r /tmp/p*[^0-9] /tmp/mytest1

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

  • ~]# mkdir /tmp/mytest2

  • ~]# cp -r /etc/*.d /tmp/mytest2

12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

  • ~]# mkdir /tmp/mytest3

  • ~]# cp -r /etc/{l,m,n}*.conf /tmp/mytest3

  • ~]# tree /tmp/mytest3

原创文章,作者:shiyekun,如若转载,请注明出处:http://www.178linux.com/48871