1.创建连接的两种方式
-
软连接:ln-s 源文件 目标文件
例如:ln -s /usr/local/tomcat /home/root
创建了软连接,在/home/root上创建了一个到/usr/local/tomcat的连接。相当于快捷方式 -
硬链接:ln 源文件 目标文件
例如:ln -d /usr/local/tomcat /home/root
创建了硬连接
其他参数:
-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
--version : 显示版本
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln -s /bin/less /usr/local/bin/less-s 是代号(symbolic)的意思。
这 里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接 和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
硬链接文件有两个限制
(1)不允许给目录创建硬链接;
(2)只有在同一文件系统中的文件之间才能创建链接,而且只有超级用户才有建立硬链接权限。
两种链接的区别:
对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。
这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。
那么我们就可以这样理解:硬连接指通过索引节点来进行的连接,其作用是允许一个文件拥有多个有效路径名,能够达到误删除的作用。
其原因是因为对应的文件的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。文件才会被真正删除。
注:保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index即I节点)。
软链接没有硬链接以上的两个限制,因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。但是软链接的缺点在于:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
2.创建文件
- touch filename : 直接创建新的空文件,需要编辑器打开编辑
- vi/vim filename : 创建新文件并且使用编辑器进入该文件进行编辑,与touch命令不同的是,如果未编辑该文件就退出,那么该文件不会被保存(换句话说,新文件为空时不保存新建的文件)
- cat >> filename :使用cat的重定向也可以新建文件,直接进入编辑,ctrl+d保存并退出编辑
使用cat filename可以查看文件内容 - $>filename :直接创建文件,和 touch 命令一样
3.创建文件夹
- mkdir [选项] 目录名称 (make directory)
在当前工作目录下建立子目录 ,命令建立 1 个或多个指定目录。
命令中的[选项]一般有以下两种:
-m 用于对新建目录设置存取权限,也可以用 chmod 命令进行设置。
-p 需要时创建上层文件夹(或目录),如果文件夹(或目录)已经存在,则不视为错误。
4.移动文件文件夹
- mv 文件名 1 文件名 2
重新命名指定的普通文件 - mv 文件名 目录名
将指定的普通文件移到指定目录 - mv 目录名1 目录名2
重新命名带指定名的指定目录,或如果第 2 个目录名是 一个现存目录,那么就把第 1 个指定目录移到它里面。
[选择性]
-f:force,强制直接移动而不询问
-i:若目标文件(destination)已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且源文件比较新,才会更新
5.删除文件文件夹
- rmdir 目录名称 (remove directory)
删除当前工作目录下子目录
命令删除指定目录,而目录必须为空。如果目录不为空,LINUX 将显示适当的报错信息。 - rm 文件名
删除一个或多个指定文件。
[选择项 ]
-i 选择项使 LINUX 询问是否要删除指定文件。如果是这样,则键入 y(表示 yes),否则键入 n (表示 no)。
-f 选择项使 LINUX 直接删除文件,不再询问。
-v 选择项使 LINUX 显示删除过程。 - rm-r 目录名称 (remove recursively)
删除目录及其文件
命令删除指定目录及其内容。
rm -r 命令删除指定目录以及目录所含的所有文件和目录。命令 rm -r具有很大的危险性,因为你也许不小心删除了你不愿删除的文件。
6.通过名字在指定的路径查找文件
- find 目录名(路径) -选项
搜寻文件与目录
常用选项有:
-name filename 按名字查找
-type x 查找类型为 x 的文件(x 包括:b,c,d,f,l 等)
user username 查找属主为 username 的文件
-atime n 查找 n 天以前被访问过的文件
-mtime n 查找 n 天以前被修改过的文件
-cmin n 查找 n 分钟以前被修改过的文件
-exec cmd {} 对查找出来的文件执行 cmd 命令,{}表示找到的文件,命令要以“\;”结束。
例如:
$find /home/lin -name hash 在 /home/lin 目录下找寻名为 hash 的文件
$find / -name fs* -print 从 / 根目录开始搜寻所有以 fs 开头的文件,然后用参数 –print 打印出符合条件的文件路径。
$find. -name .c -exec rm-f{ }\; 表示在用户当前的目录,搜寻所有以 .c 为结尾的文 件名.c,然后用参数 -exec 执行 rm-f{ }\; 删除全部以 .c 结尾的文件(注意大括号里面没有空格)。
- locate 字符串
搜索文件
locate 命令按给定字符串搜索文件,它可将所有文件名称中及路径中包含该字符串的文件,都会连同路径一起显示,甚至只知道文件的部分名称就可以使用本命令。
由于 locate 命令是从系统中保存文件及目录名称的数据库中搜索文件,虽然系统会定时更新数据库,但对于刚新增或删除的文件、目录,仍然可能会因为数据库尚未更新而无法查得,此时可用 root 身份运行 updatedb 命令更新,使数据库的内容正确。
- grep “字符串” [要搜索的文本文件]
搜索包含特定字符串的文件
grep 命令可以搜索特定字符串来并显示出来,一般用来过滤先前得结果,避免显示太多不必要得信息。
例如:
$ grep text *.conf 搜索当前目录中扩展名为.conf 且包含“text”
字符串的文件。
若是使用一般权限的用户运行,上例的输出结果会包含很多如“拒绝不符权限的操作之类的错误信息,可使用-s 参数消除。
$ grep –s text *.conf
grep 命令还可以用于查找用正则表达式所定义的目标。正则表达式包括字母和 数字,以及那些对 grep 有特殊含义的字符。
比如,
^ 指示一行的开头
$ 指示一行的结束
. 代表任意单一字符
*表示匹配零个或多个 *之前的字符
范例如下:
$grep ′^b′ file1 查找文件 file1 中所有以 b 开头的行。
$grep ′b$′file1 查找文件 file1 中所有以 b 结尾的行。
$grep ′an.′ file2 查找文件 file2 中所有以 an 为头两个字符的 3 个字符,包括 any, and 等。
7.ls显示选项,查看文件的详细信息
- ls -选项
ls(list)命令根据文件名按字母顺序显示当前目录中的文件和子目录列表。配合参数的使用,能以不同的方式显示目录内容。
[选择项]
-l 以长[格式]列出文件,其中包括文件中的字符个数,以及最近修改的日期和
时间。
-t 以最近修改的时间顺序列出文件。
-r 将-t 选择的列表顺序变反。
-a 显示隐藏文件。当运行 ls 命令时,并不会显示名称以“.”开头的文件。因此可加上“-a”参数指定要列出这些文件。
8.查看文件到内容
- cat 文件名
直接显示文件内容
cat 命令将文件名作为其自变量显示文件的内容(经常和 more 命令搭配使用),或是将数个文件合并成一个文件。
cat 命令通常用文件名作为自变量,如果在你按 RETURN键之前忘记键入文件名,那么请按 DELETE 键。之后,会出现 shell 提示符.“cat”表示 concatenate; cat命令还可用来合并文件。如果文件显示太快,你可按 control-s(∧S)终止 cat 的输出;同时,你可按 control-q(∧Q)恢复输出。
- less 文件名
上下浏览文件内容
less 命令显示文件,且可以回顾前面的内容。当使用 less 文件名查看一个文件内容时,屏幕上先显示出第一页的内容,看完后按空格键跳到下一页,按 Enter 键向下移一行。另外,按 PageUp 及PageDown 键可以看上一页及下一页的内容。结束时要按 Q键跳回 shell。
- more 文件名
分屏显示文件内容
为了避免画面显示瞬间就闪过去,用户可以使用 more 命令显示文件,一次显示一屏。对每一屏,more 都打印一个百分数, 指出已显示了文件的多少内容。为显示另一屏幕,应按 SPACEBAR(空格键)。如果你仅想显示下一行,则可按 RETURN 键,按 Q 键停止显示。当 more 显示整个文件后,就返回 shell提示符。要在完成文件显示之前退出 more,请按 DELETE 键。
(more 命令不是所有 LINUX 系统中都有。 如果你的系统有 more 命令,你可使用 more 命令而不使用 cat 命令,因为 more 命令允许你控制显示多少文件内容。当使用 ·ls 命令查看文件列表时,若文件太多则可以配合 more 命令使用。 )
9.查看当前正在运行的进程
- ps 用于查看系统当前运行进程情况
10.删除某一个进程
- DELETE 删除命令和命令行
DELETE 删除命令行,使新的 shell 提示符出现,它还终止进程中的命令。
DELETE 是控制键。如果你不理解 LINUX 正在做什么,请按两下 DELETE 键。这样,你的 shell 提示符通常会重新出现。
11.Linux的文件权限
- su 从普通用户注册到 root 帐户
su 命令可以从普通用户注册到 root 帐户,而不用退出用户帐户重新登录。在 shell 提示符$下键入 su,回车,输入 root 口令
网友评论