TLCL之第一章(2)


4. 操作文件与目录

cp - 复制文件和目录
mv - 移动/重命名文件和目录
mkdir - 创建目录
rm - 删除文件和目录
ln - 创建硬链接和符号链接

通配符

通配符含义
*匹配任意多个字符(包含零个或一个)
?匹配任意一个字符
[characters]匹配任意一个属于字符集合中的字符
[!characters]匹配任意一个不是字符集合中的字符
[[:class:]]匹配任意一个属于指定字符类中的字符

普遍使用的字符类

字符类含义
[:alnum:]匹配任意一个字母或数字
[:alpha:]匹配任意一个字母
[:digit:]匹配任意一个数字
[:lower:]匹配任意一个小写字母
[:upper:]匹配任意一个大写字母

接受文件名作为参数的任何命令,都可以使用通配符。


mkdir - 创建目录

mkdir directory…
在描述一个命令时,当有三个圆点跟在一个命令的参数后面,这意味着那个参数可以重复。


cp - 复制文件和目录

第一种用法:
cp item1 item2
复制单个文件或目录item1到文件或目录item2。
第二种用法:
cp item… directory
复制多个项目(文件或目录)到一个目录下。

cp选项

选项含义
-a,–archive复制文件和目录,以及它们的属性,包括所有权和权限。通常,副本具有用户所操作文件的默认属性。
-i,–interactive在重写已存在文件之前,提示用户确认。如果这个选项不指定,cp命令会默认重写文件。
-r,–recursive递归地复制目录及目录中的内容。当复制目录时,需要这个选项。(或-a)
-u,–update只复制需要更新的文件,存在的文件不复制
-v,–verbose显示翔实的命令操作信息

mv - 移动和重命名文件

第一种用法:
mv item1 item2
把文件或目录"item1"移动或重命名为“item2”
第二种用法:
mv item … directory
把一个或多个条目从一个目录移动到另一个目录中

mv选项

选项含义
-i,–interactive在重写一个已经存在的文件之前,提示用户确认信息。如果不指定这个选项,mv命令会默认重写文件内容
-u,–update只移动需要更新的内容
-v,–verbose显示翔实的操作信息

rm - 删除文件和目录

rm命令用来移除(删除)文件和目录:
rm item …

选项含义
-i,–interactive在删除已存在的文件前,提示用户确认信息
-r,–recursive递归地删除文件。
-f,–force忽略不存在的文件,不显示提示信息。
-v,–verbose在执行rm命令时,显示翔实的操作信息。

ln - 创建链接

ln命令既可创建硬链接,也可以创建符号链接。
ln file link
创建硬连接。
ln -s item link
创建符号链接,’item’可以是一个文件或是一个目录。

硬链接

每个文件默认会有一个硬链接,这个硬链接给与文件名字。我们每创建一个硬链接,就为一个文件创建了一个额外的目录项。硬链接有两个重要局限性:

  1. 一个硬连接不能关联它所在文件系统外的文件。这是说一个链接不能关联与链接本身不再同一个磁盘分区上的文件。
  2. 一个硬连接不能关联一个目录。
  3. 一个硬链接和文件本身没有什么区别。当一个硬链接被删除的时候,这个链接被删除,但是文件本身的内容仍然存在,直到关联这个文件的链接都删除掉。

符号链接

创建符号链接是为了克服硬链接的局限性。符号链接生效,是通过创建一个特殊类型的文件,这个文件包含一个关联文件或目录的文件指针。
一个符号链接指向一个文件,而且这个符号链接本身与其它的符号链接几乎没有区别。当你删除一个符号链接时,只有这个链接被删除,而不是文件自身。如果先于符号链接删除文件,这个链接仍然存在,但是不指向任何东西。在这种情况下,这个链接被称为 坏链接。


5. 使用命令


type - 说明怎样解释一个命令名
which - 显示会执行哪个可执行程序
man - 显示命令手册页
apropos - 显示一系列适合的命令
info - 显示命令info
whatis - 显示一个命令的简洁描述
alias - 创建命令别名


到底什么是命令?

  1. 是一个可执行程序,就像我们所看到的位于目录/usr/bin中的文件一样。
  2. 是一个内建与shell自身的命令。bash支持若干命令,内部叫做shell内部命令(builtins)。
  3. 是一个shell函数。这些是小规模的shell脚本,他们混合到环境变量中。
  4. 是一个命令别名。

type - 显示命令的类型

type是shell内部命令,它会显示命令的类别,给出一个特定的命令名。
type command

which - 显示一个可执行程序的位置

有时候在一个操作系统中,不只是安装了可执行程序的一个版本。
为了确定所给定的执行程序准确位置,使用which命令:
which ls
这个命令只对可执行程序有效,不包括内建命令和命令别名,别名是真正可执行程序的替代物。

help - 得到shell内建命令的帮助文档

bash 有一个内建的帮助工具,可供每一个shell内建命令使用,输入help,接着是shell内部命令名。
help cd

–help - 显示用法信息

许多可执行程序支持一个 --help选项,这个选项是显示命令所支持的语法和选项说明。
mkdir --help

man - 显示程序手册页

许多希望被命令行使用的可执行程序,提供了一个正式的文档,叫做手册或手册页。一个特殊的叫做man的分页程序,可用来浏览他们,他是这样使用的:
man program
program是要浏览的命令名
在大多数linux系统中,man使用less工具来显示参考手册,所以当浏览文档时,less命令都能有效。

手册页的组织形式

章节内容
1用户命令
2程序接口内核系统调用
3C库函数程序接口
4特殊文件,比如说设备结点和驱动程序
5文件格式
6游戏娱乐
7其他方面
8系统管理员命令

有时候,我们需要查看参考手册的特定章节,从而找到我们需要的信息,如果我们要查找一种文件格式,而同时它也是一个命令名时,这种情况尤其正确。没有指定章节号,我们总是得到第一个匹配项,可能在第一章节,我们这样使用man命令,来指定章节号:
man section search-term
比如
man 5 passwd
命令运行结果会显示文件/etc/passwd的文件格式说明手册。

apropos - 显示适当的命令

基于某个关键字的匹配项搜索参考手册列表。
apropos floppy
搜索带有floppy关键字的匹配项。

whatis - 显示非常简洁的命令说明

whatis 程序显示匹配特定关键字的手册页的名字和一行命令说明。

info - 显示程序Info条目

GUN项目提供了一个命令程序手册页的代替物,称为“info”。info内容可通过info阅读器程序读取。info页是超级链接形成的,和网页很相似。
info程序读取info文件,info文件是树形结构,分化为各个结点,每一个包含一个题目。info文件包含超级链接,它可以让你从一个结点跳到另 一个结点。一个超级链接可通过它开头的星号来辨别出来,把光标放在它上面并按下enter键,就可以激活它。
输入“info”,接着输入程序名称,启动“info”。

info 命令

命令作用
?显示命令帮助
page up of backspace显示上一页
page down or space显示下一页
n下一个 - 显示下一个结点
p上一个 - 显示上一个结点
uup - 显示当前所显示结点的父结点,通常是个菜单
enter激活光标位置下的超级链接
q退出

到目前为止,我们所讨论的大多数命令行程序,属于GUN项目“coreutils”包。
info coreutils
将会显示一个包含超级链接的手册页,这些超级链接指向包含在coreutils包中的各个程序。

README和其它程序文档

许多安装在你系统中的软件,都有自己的文档文件,这些文件位于/usr/share/doc目录下。这些文件大多数是以文本文件的形式存储的,可用less阅读器来浏览。一些文件是HTML格式,可用网页浏览器来阅读。我们可能遇到许多以“.gz”结尾的文件。这表示gzip压缩程序已经压缩了这些文件。gzip软件包包括一个特殊的less版本,叫做zless,zless可以显示由gzip压缩的文本文件的内容。

用别名(alias)创建你自己的命令

可以把多个命令放在同一个行上,命令之间用“;”分开:
command1; command2;command3…
可以通过alias命令把一串命令转变成一个命令,我们要做的事情就是为我们的新命令构想一个名字。可以用type查看该命令名是否已经存在系统中。然后使用alias:
alias name=‘string’
在命令‘alias’之后,输入“name“,紧接着(没有空格)是一个等号,等号之后是一串用引号引起来的字符串,字符串的内容赋值给name,我们定义别名之后,这个命令别名可以使用在任何地方。
删除别名使用unalias
unalias name
要查看所有定义在系统环境中的别名,使用不带参数的alias命令。
alias
在命令行中定义别名有点问题,当你的shell会话结束时,它们会消失。随后的章节里,我们会介绍如果将别名添加到文件里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值