Linux学习1-文件处理命令
1 Linux的命令格式
1.1 命令提示符
root | 当前登录用户 |
---|---|
localhost | 主机名 |
~ | 当前所在目录 |
# | 超级用户的提示符,普通用户都是$ |
1.2 命令格式
命令 【选项】 【参数】
注意: 1、个别命令使用不遵循此格式
2、当有多个选项时候,可以写在一起
3、简化选项与完整选项 -a 等于 --all
2 文件和目录的基本命令
2.1 文件查看ls
ls [ 选项] [文件或者目录]
-a | 显示所有文件,包括隐藏文件 |
---|---|
-l | 显示详细信息 |
-d | 查看目录属性,ls -d /etc 这样查看的是etc目录这个文件本身的属性 |
-h | 人性化显示文件大小 |
-i | 显示inode |
显示文件的详细信息,中关于文件类型和读写权限的信息:
- | 文件类型-文件 d目录 l软连接文件 |
---|---|
r | 读 |
w | 写 |
x | 执行 |
u所有者 g所属组 o其他人
2.2 创建目录mkdir
mkdir [ 选项] [目录名]
-p | 递归创建 |
---|
2.3 切换目录cd
cd
~ | 进入当前用户的家目录 |
---|---|
直接回车 | 进入当前用户的家目录 |
- | 进入上次目录 |
… | 进入上级目录 |
. | 进入当前目录 |
2.4 删除文件和目录rm
rm [ 选项] [文件或目录]
-r | 递归删除目录及目录里边的所有文件 |
---|---|
-f | 不用询问,直接删除 |
rm -rf / 要谨慎执行
2.5 文件拷贝cp
cp [ 选项] [原文件或目录] [目标目录,加文件名会将复制文件重名]
-r | 复制目录 |
---|---|
-p | 连带文件属性复制 |
-d | 若源文件是链接文件,则复制链接属性 |
-a | 相当于 -pdr |
2.6 剪切或改文件名mv
mv [原文件或目录] [目标目录]
1、如果源文件和目标文件在一个目录则为改名
2、如果不在同一个目录则是移动
3、更改目录不需要加-r选项,mv命令没有 -r 选项参数
2.7 目录的说明
/ | 根目录 |
---|---|
/bin | 命令保存目录,普通用户就可以读取 |
/boot | 启动目录,启动相关文件 |
/dev | 特殊文件保存目录 |
/etc | 配置文件保存目录 |
/home | 普通用户的家目录 |
/lib | 系统库保存目录 |
/mnt | 系统挂载目录 |
/media | 挂载目录 |
/music | 挂载目录 |
/proc | 保存内存的挂载点,不能直接操作 |
/sys | 保存内存的挂载点,不能直接操作 |
/tmp | 临死目录 |
/usr | 系统的软件资源相关目录 |
/var | 系统可变文档内容 |
1、根目录下的bin\、sbin、/usr/bin、/usr/sbin、都是来保存系统命令的
2、bin目录下的命令是普通用户可以执行的命令,sbin目录下的命令是只有root可以使用的命令
3 Linux链接命令
3.1 创建链接
ln [ 选项] [原文件] [目标文件]
命令的英文原意:Link 功能是生成链接文件
选项 | 含义 |
---|---|
-s | 创建软链接 |
3.2 硬链接
硬链接的特征:
1、拥有相同的 i 结点和存储block块,可以看做是同一个文件
2、可以通过i结点识别
3、不能跨分区
4、不能针对目录使用
5、删除硬链接或者源文件的任何一个,另一个不影响使用
结点号是文件内容在硬盘上block块的唯一编号,文件存储系统记录每一个文件的结点、修改时间、大小等相关信息。
硬链接可以理解为两个文件拥有相同的文件索引号也就是inode号。
3.3 软链接
软连接特点
1、类似于Windows快捷方式
2、软连接拥有自己的i结点号和Block块,但是数据块中只保存原文件的文件名和I结点号,并没有实际的文件数据
3、l rwxrwxrwx 中的l表示的是软链接,软连接的文件权限都是rwxrwxrwx,虽然是777权限,但真正权限还是要看源文件的权限。
4、修改任意文件、另一个都改变
5、删除原文件、软连接不能使用
6、创建软连接,原文件一定写绝对路径
4 文件搜索命令
4.1 文件搜索locate
locate 【文件名】
locate命令特点
1、在后台数据库中按照文件名搜素,搜素速度更快
2、后台数据库所在目录为 /var/lib/mlocate 不同的操作系统目录名可能不一样如locatedb
3、不是实时更新的,每天一更新,新建的文件是找不到的。
4、updatedb 立即更新数据库
5、只能按照文件名搜索
6、locate locate 可以使用该命令查找自己本身
在root的家目录下和tmp目录下分别创建同名的文件,但是只能找到一个
这是因为,/etc/updatedb.conf 配置文件做了限制,后边的whereis和find命令也受此限时
配置参数 | 说明 |
---|---|
PRUNE_BIND_MOUNTS | YES 表示开启搜索限制 |
PRUNEFS | 搜索时不搜索的文件系统 |
PRUNENAMES | 搜索时,不搜索的文件类型 |
PRUNEPATHS | 搜索时不搜索的路径 |
4.2 文件搜索whereis
whereis 命令是搜索命令的命令,只能用来查找命令所在位置
whereis 【命令名】
选项名 | 含义 |
---|---|
-b | 只查找可执行文件 |
-m | 只查找帮助文件 |
4.2 文件搜索which
搜索命令所在路径和别名,例如ls命令
并不是每一个命令都可以找到,cd命令是shell内置的命令
PATH环境变量定义的是系统搜索命令的路径,每执行一个命令,Linux都会从PATH定义的路径去挨个找。正因为这样,系统命令如ls,pwd等等才不用输入绝对路径,其实和Windows是一样的。
4.3 文件搜索find
find 【搜索范围】【搜索条件】
find 是在系统中搜索符合条件的文件名。如果需要匹配,就使用通配符匹配,否则是完全匹配
通配符 | 说明 |
---|---|
* | 匹配任意内容 |
? | 匹配任意一个字符 |
[ ] | 匹配任意一个中括号中的字符 |
find命令功能十分强大,因此带来很多参数
4.4 字符串搜索grep
grep 命令用来在文件中匹配符合条件的字符串
grep 【选项】 【字符串】 【文件名】
选项 | 说明 |
---|---|
-i | 忽略大小写 |
-v | 排除指定字符窜 |
4.5 find和grep的区别
1、find是在系统中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
2、grep是在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。