学习linux——2
在初学了linux后,了解到最常见的文件的是普通文件和目录文件,因此对文件的一系列操作是linux中常用的基础操作之一(以下所有指令需要区分大小写)
创建普通文件和目录文件
指令 | 含义 |
---|---|
touch 文件名 | 创建普通文件 |
mkdir 文件名 | 创建目录文件 |
需要注意的是:创建文件时文件名尽量避免出现空格,如果有扩展名,则必须指定,还需要区分大小写。
删除文件:
指令 | 含义 |
---|---|
rm 文件名 | 删除文件 |
rmdir 目录文件名 | 删除(空)目录 |
rm -r 文件名 | 能够删除非空目录 |
删库小知识(危):rm -r /:在root用户下,拥有最高权限,能够将根目录下的所有文件全部删除(害怕)
拷贝文件:
指令 | 含义 |
---|---|
cp 源文件的路径 文件名 目的路径 | 将源路径下的文件拷贝到目的路径下 (不包含非空目录的文件) |
cp -r 源文件的路径 文件名 目的路径 | 将源路径下的文件拷贝到目的路径下 |
cp 源文件的路径 文件名 目的路径 新的文件名 | 将源路径下的文件拷贝到目的路径下并重命名为新的文件名 |
在删除和拷贝文件的时候都有使用到 -r ,这个可以理解为递归的操作,如果一个目录文件有子文件,那么就需要同时删除或者拷贝内部的所有文件,可以把目录文件看成一个箱子,里面装着东西,如果只摧毁箱子,却没有对内部的东西进行操作,计算机是无法理解的,所有要摧毁箱子,就要把里面的东西一起摧毁,拷贝也是同理,但是移动文件就不需要 -r 。
移动文件:
指令 | 含义 |
---|---|
mv 源文件的路径/文件名 目的路径 | 将源路径的文件移动到目的路径下 |
mv 源文件的路径/文件名 目的路径/新的文件名 | 将源路径的文件移动到目的路径下并重命名为新的文件名 |
根据以上的学习,可以想到重命名操作就是在原来的路径下换一个新的文件名:
修改文件权限:
修改文件权限有两种方法,一种是字符设定法,另一种是数字设定法。
字符设定法:
linux中的用户可分为三种,所属者(u),同组用户(g),其他用户(o),还有全部用户的的字符表示(a)
指令 | 含义 |
---|---|
chmod u/g/o/a +/-/= rwx(子集) 文件名 | 修改文件的通式 |
chmod u-w main.c | 取消main.c文件的所属者的写权限 |
chmod g=rw main.c | 将main.c文件的同组用户变为可读可写权限 |
chmod u-w,g+r main.c | 取消main.c文件的所属者的写权限,同时增加同组用户的读权限 |
数字设定法:
有或者无可以用二进制表示,权限上对应的有就用1表示,没有则用0表示,因此每种用户都可以使用0-7来表示不同的权限
二进制 | 含义 |
---|---|
001 | - -x |
010 | -w- |
011 | -wx |
100 | r- - |
101 | r-x |
110 | rw- |
111 | rwx |
000 | - - - |
例如:一个所属者和同组用户有可读可写的权限,其他用户只有读权限的修改为 chmod 664 main.c
搜索文件:
指令 | 含义 |
---|---|
find 路径 选项 条件 | 通式 |
find /home/hua -name “*.c” | 搜索家目录底下的按文件名查找结尾是.c的文件(使用通配符*,必须要用"") |
find /home/hua -type f/d/l/p/c/b/s | 根据文件类型来搜索 普通文件f 目录文件d 链接文件l 管道文件p 字符设备文件c 块设备文件b 套接字文件(socket)s |
find /home/hua -user 用户名 | 使用用户名进行搜索 |
find /home/hua -group 组名 | 按组名进行搜索 |
-size +/- nun b/k/M/G | 例:find /home/hua -size +1k 在家目录下搜索大于1k的普通文件 |
-mtime +/-num | 例:fine /home/hua -mtime -2 两天以内修改的文件 |