Linux命令行与shell脚本编程大全 第3版
- 第三章 基本的bash shell命令
- Linux文件系统
- 文件和目录列表
- 处理文件
- 处理目录
- 查看文件内容
- 小结
第三章 基本的bash shell命令
Linux文件系统
- Linux将文件存储在单个目录结构中,这个目录被称为虚拟目录(virtual directory)。虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结构中。Linux虚拟目录结构只包含一个称为根(root)目录的基础目录。根目录下的目录和文件会按照访问它们的目录路径一一列出。
- Linux会在根驱动器上创建一些特别的目录,我们称之为挂载点(mount point)。挂载点是虚拟目录中用于分配额外存储设备的目录。虚拟目录会让文件和目录出现在这些挂载点目录中,然而实际上它们却存储在另外一个驱动器中。
- Linux文件系统结构是从Unix文件结构演进过来的。在Linux文件系统中,通用的目录名用于表示一些常见的功能。
文件和目录列表
ls
命令为最基本的形式,用于显示当前目录下的文件和目录。
-F参数 区分文件和目录。
$ ls -F
-a参数 显示隐藏文件和普通文件。
$ ls -a
-l参数 显示-产生长列表格式的输出,包含了目录中每个文件的更多相关信息。
$ ls -l
处理文件
touch
用于创建空文件。
$ touch test_one
cp
用于复制文件,cp命令一般需要两个参数,源对象和目标对象。
$ cp test_one test_two
也可以将文件复制到现有目录中,目标对象与源对象同名。
$ cp test_one /home/document/
利用-R递归地复制整个目录的内容。(在执行cp –R命令之前,目录document_tmp并不存在。它是随着cp –R命令被创建的,整个document目录中的内容都被复制到其中。)
$ cp /document document_tmp
在Linux中,重命名文件称为移动(moving)。利用
mv
命令可以将文件和目录移动到另一个位置或重新命名。
//文件重命名$ mv test_one test_rename
//文件移动$ mv test_rename /home/
利用
rm
命令对文件进行删除。
$ rm test_rename
处理目录
在Linux中创建目录很简单,用
mkdir
命令即可。
$ mkdir document_new
要想同时创建多个目录和子目录,需要加入-p参数。
$ mkdir -p dir_sub1/dir_sub2/dir_sub3/
删除目录的基本命令是
rmdir
。
$ rmdir document_tmp
默认情况下,rmdir命令只删除空目录。也可以在整个非空目录上使用rm命令。使用-r选项使得命令可以向下进入目录,删除其中的文件,然后再删除目录本身。(rm -rf命令既没有警告信息,也没有声音提示。这肯定是一个危险的工具,尤其是在拥有超级用户权限的时候。务必谨慎使用,请再三检查你所要进行的操作是否符合预期。)
$ rm -r dir_sun1
查看文件内容
在显示文件内容之前,应该先了解一下文件的类型。
file
命令它能够探测文件的内部,并查看文件是什么类型的。
$ file test.txt$ file document
在Linux上有3个不同的命令可以查看整个文件。
cat
命令(-n参数会给所有的行加上行号。)
$ cat test.txt
对大型文件来说,cat命令有点繁琐。文件的文本会在显示器上一晃而过。
more
命令会显示文本文件的内容,但会在显示每页数据之后停下来,你可以通过按空格键或回车键以逐行向前的方式浏览文本文件。浏览完之后,按q键退出。以/usr/include/python2.7/下的pyconfig-64.h文件为例,分别执行cat命令和more命令。
$ cat /usr/include/python2.7/pyconfig-64.h$ more /usr/include/python2.7/pyconfig-64.h
less
命令从名字上看,并不像more命令那样高级。但是,它的命名实际上是个文字游戏(从俗语“less is more”得来),实为more命令的升级版。它提供了一些极为实用的特性,能够识别上下键以及上下翻页键,而且还有一些高级搜索功能。
$ less /usr/include/python2.7/pyconfig-64.h
通常你要查看的数据要么在文本文件的开头,要么在文本文件的末尾。
head
命令只显示文件开头几行的内容,
tail
命令则显示文件最后几行内容。
$ head -5 /usr/include/python2.7/pyconfig-64.h$ tail -5 /usr/include/python2.7/pyconfig-64.h
小结
本章涵盖了在shell提示符下操作Linux文件系统的基础知识。在介绍如何进入指定目录后,我们又演示了怎样用ls命令列出目录中的文件和子目录。ls命令有很多参数可用来定制输出内容。可以通过ls命令获得有关文件和目录的信息。touch命令非常有用,可以创建空文件和变更已有文件的访问时间或修改时间。本章还介绍了如何使用cp命令将已有文件复制到其他位置。接着我们讲了怎样用mv命令重命名文件(在Linux中称为移动文件),以及如何用rm命令删除文件(在Linux中称为移除文件),还介绍了怎样用mkdir和rmdir命令对目录执行相同的任务。最后,本章以如何查看文件的内容作结。cat、more和less命令可以非常方便地查看文件全部内容,而且tail和head命令还可查看文件中的一小部分内容。