兄弟连Linux教学——第四讲 常用命令—文件处理命令
4.1.1 命令格式与目录格式命令ls
命令格式:命令 [-选项] [参数]
选项是调整命令功能的,参数是命令操作的对象,可能是一个用户、进程、文件、目录
例如:ls -la /etc
说明: 个别命令使用不遵此格式;当有多个选项时,可以写在一起;简化选项与完整选项:-a等于--all(完整选项一般用两个连接符来调用)
1)目录处理命令:ls(list)
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:ls 选项[-ald] [文件或目录]
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性(显示当前目录本身的信息,而不显示目录下的文件信息)
当只写命令,没有选项没有参数时,表示命令处理的是操作当前所在目录。
ls当前目录的三个文件,是三个安装日志文件。
加了-a,多了一些文件。是以“.”开头的文件,是隐藏文件。
隐藏文件有什么目的?
——>初衷是系统告诉用户,当没有什么事或者除非你确定要动它的时候,就不要操作它。
每个文件把用户分为三类:
- 所有者user(文件的创建者,所有者一般情况下是一个用户,可以改变)
- 所属组group(指的是用户的集合,也是只能有一个)
- 其他人other(剩下的人,不能碰)
第二部分是文件技术:1
第三部分是文件的所有者:root
第四部分是文件的所属组:root
第五部分是文件的大小:默认单位是字节,人性化显示加一个-h选项(human),不仅ls支持-h选项,多数统计文件大小的都支持。
第六个部分是:文件最后一次被修改的时间,Linux没有文件的创建时间。
第七个部分是:文件名
再来看第一个最复杂的部分,告诉了我们文件的哪些信息?
-rw-r--r--
- - 文件类型(- 二进制文件,d 目录,l 软链接)最常用的三件文件。
- rw- r-- r--
u g o
u所有者,g所属组,o其他人
r读 w写 x执行(权限够用就好,x执行权限一般没有必要)
id号:每个文件和目录都有自己的id号,系统靠这个id号来进行索引。使用ls -i的命令来查询。每个文件的唯一确定信息。
4.1.2目录处理命令
2)目录处理命令:mkdir(make directories)
命令所在路径:/bin/mkdir
执行权限:所有用户
功能描述:创建目录
语法:mkdir 选项[-p] [目录名]
-p 递归创建
例子:$mkdir -p/tmp/Japan/Kyoto ; $mkdir /tmp/Japan/Osaka /tmp/Japan/Tokyo
mkdir可以同时创建多个目录
注意:
一定要做好目录结构的规划!不要在根目录下轻易创建新的目录或者文件!目录的名称和命令要有一定的规律,便于查找!
3)目录处理命令:cd(change directory)
命令所在路径:shell内置命令
执行权限:所有用户
功能描述:切换目录
语法:cd [目录】
例子:$cd /tmp/Japan/Tokyo 切换到指定目录
$cd . 表示当前目录
$cd .. 回到上一级目录
$cd ~回到根目录
3)目录处理命令:pwd(print working directory)
命令所在路径:/bin/pwd
执行权限:所有用户
功能描述:显示当前目录的绝对路径
语法:pwd
例子:见上一个命令
4)目录处理命令:rmdir(remove empty directories)
命令所在路径:/bin/rmdir
执行权限:所有用户
功能描述:删除空目录
语法:mkdir [目录名]
例子:$rmdir /tmp/Japan/Kyoto
4)目录处理命令:cp(copy)
命令所在路径:/bin/cp
执行权限:所有用户
功能描述:复制文件或目录
语法:cp 复制文件
cp -rp [原文件或目录] [目标目录】
-r 复制目录
-p 保留文件属性(可以使得文件的最后修改时间不变)
例子:$rmdir /tmp/Japan/Kyoto
在cp复制文件时,是不需要加-r选项的;但是在复制目录时,需要加-r选项。
cp可以同时复制多个文件或者目录;
复制的同时,还可以改名字。
5)目录处理命令:mv(move)
命令所在路径:/bin/mv
执行权限:所有用户
功能描述:剪切文件、改名(可以一次剪切多个文件目录)
语法:mv [原文件或目录][目标目录]
将当前目录下的文件改名字:
6)目录处理命令:rm(remove)
命令所在路径:/bin/rm
执行权限:所有用户
功能描述:删除文件、目录
语法:rm -rf [文件或目录]
-r 删除目录
-f 强制执行
做练习时,不要随意剪切删除,最好用自己建立的文件或者拷贝的文件做实验。
在Linux中,没有回收站机制。
建议:
1. 日常文件做好备份,在删除任何文件之前,都要做好备份。
2. 一旦发现误删除的情况,在确定是误删后,尽量不要对硬盘进行读写操作,根据经验,你进行的读写操作越多,未来恢复数据的可能性就越小。
4.1.3 文件处理命令
7)文件处理命令:touch
命令所在路径:/bin/touch
执行权限:所有用户
功能描述:创建空文件
语法:touch [文件名]
例子: $touch LoveStory.list
注意:
在Linux中,如果命令的参数没有指定绝对路径,就表示是在当前路径下进行操作。如果要加路径,就要加绝对路径。
在Linux中,后缀名和Windows是不一样的,.list是随便取的后缀名。而且,在Linux中很多特殊符号,除了表示根目录的斜杠不能用以外,几乎所有的特殊符号,在Linux的文件命名里,都是合法的文件名。不过,不推荐。带有空格的文件名,也不推荐在Linux中使用。
touch可以同时创建多个文件,如果直接用空格隔开,就会表示成想创建两个文件名。如果想要创建一个带空格的文件名,需要用双引号,如下:
8)文件处理命令:cat
命令所在路径:/bin/cat
执行权限:所有用户
功能描述:显示文件内容
语法:cat [文件名]
-n 显示行号
例子: $cat /etc/issue
$cat -n /etc/services
cat不适合浏览比较长的文件。
9)文件处理命令:tac
命令所在路径:/usr/bin/tac
执行权限:所有用户
功能描述:显示文件内容(反向列示)
语法:cat [文件名]
例子:$tac /etc/isuue
10) 文件处理命令:more
命令所在路径:/bin/more
执行权限:所有用户
功能描述:分页显示文件内容
语法:cat [文件名]
(空格)或f 翻页
(Enter) 换行
q或Q 退出
例子:$more /etc/services
more命令的的具体操作,如何浏览,需要掌握。(翻页、换行、退出)
往回翻,怎么办?
11) 文件处理命令:less
命令所在路径:/bin/less
执行权限:所有用户
功能描述:分页显示文件内容(可向上翻页)
语法:less [文件名】
例子:$less /etc/services
比more命令多一个功能就是,可以按pageup按键往上翻。(一页一页往上翻)。
还可以进行搜索。使用斜杠/,加上搜索的关键词,回车。用n表示next,表示继续往下找。
全文很长,我只想看前几行的时候或者后几行的时候,怎么来做?
12) 文件处理命令:head
命令所在路径:/usr/bin/head
执行权限:所有用户
功能描述:显示文件前几行
语法:head [文件名]
-n 指定行数
例子:$head -n 20 etc/services
当head后没有加-n时,默认显示前十行。
12) 文件处理命令:tail
命令所在路径:/usr/bin/tail
执行权限:所有用户
功能描述:显示文件后几行
语法:tail [文件名]
-n 指定行数
-f 动态显示文件末尾内容(用于监控日志等)
例子:$tail -n 18 /etc/services
4.1.3 链接命令
13)文件处理命令:ln(link)
命令所在路径:/bin/ln
执行权限:所有用户
功能描述:生成链接文件
语法:ls -s [原文件][目标文件]
-s 创建软链接
硬链接的特征:(与$cp -p的不同)
1. 在cp -p的基础上,硬链接的文件还可以同步更新。(源文件和硬链接文件可以同时更新)
软链接只是一个符号链接,所以在打开软连接时会找到源文件,打开源文件的内容。
当删除源文件时,软链接就找不到了,但是硬链接依然还在。
那, 怎么判断文件的硬链接呢?
通过 i 结点来识别,在linux中,每一个文件一定有一个 i 结点,每一个进程都有一个id号, 但是一个 i 结点并不是对应一个文件,硬链接就是一个特殊的例子。
当你对一个文件进行操作时,在内核的层面就是对一个 i 结点进行操作,但因为这个 i 结点 映射到了两个文件,所以硬链接文件和源文件会同步更新。
硬链接在Linux中用的很少,只是希望大家了解一下。相当于一个备份,而且还可以同步更新。
而且,硬链接不能跨分区。(在Windows中,不能把C盘的分区当到D盘中),但是软链接可以跨分区。
硬链接不能针对目录使用,而软链接可以。