linux学习(2)——文件目录

1、文件架构

目录内容
/bin构建最小系统所需的命令(最常用的命令)
/boot内核与启动文件
/dev各种设备文件
/etc系统软件的启动和配置文件
/home用户的主目录
/libc编译器的库
/media可移动介质的安装点
/opt可选用的应用软件包
/proc进程的映像
/root超级用户root的主目录
/sbin和系统操作有关的命令
/tmp临时文件存放点
/usr非系统的程序和命令
/var系统专用的数据和配置文件

2、建立文件和目录

2.1 建立目录:mkdir

##mkdir可以一次建立一个或多个文件和目录
lenovo@lenovo-virtual-machine:~$ ls
date_out  itop4412  snap  textA  textB  textC  公共的  模板  视频  图片  文档  下载  音乐  桌面
lenovo@lenovo-virtual-machine:~$ mkdir text1 text2 text3 4
lenovo@lenovo-virtual-machine:~$ ls
4  date_out  itop4412  snap  text1  text2  text3  textA  textB  textC  公共的  模板  视频  图片  文档  下载  音乐  桌面
##也可以使用绝对路径新建目录
lenovo@lenovo-virtual-machine:~$ mkdir ~/4/date
lenovo@lenovo-virtual-machine:~$ cd 4
lenovo@lenovo-virtual-machine:~/4$ ls
date
##路径不完整,无法创建,需要加-p选项
lenovo@lenovo-virtual-machine:~$ mkdir ~/tmp/job
mkdir: 无法创建目录"/home/lenovo/tmp/job": 没有那个文件或目录
lenovo@lenovo-virtual-machine:~$ mkdir -p ~/tmp/job
lenovo@lenovo-virtual-machine:~$ ls
4         itop4412  text1  text3  textB  tmp     模板  图片  下载  桌面
date_out  snap      text2  textA  textC  公共的  视频  文档  音乐
lenovo@lenovo-virtual-machine:~$ cd tmp

2.2 建立一个空文件:touch

lenovo@lenovo-virtual-machine:~/tmp$ touch job1
lenovo@lenovo-virtual-machine:~/tmp$ ls
job  job1

在这里插入图片描述

3、移动、复制和删除

3.1 移动和重命名:mv

##在tmp下建立一个文件abc,内容为hello
lenovo@lenovo-virtual-machine:~$ cd tmp
lenovo@lenovo-virtual-machine:~/tmp$ touch abc
lenovo@lenovo-virtual-machine:~/tmp$ echo "hello">abc
lenovo@lenovo-virtual-machine:~/tmp$ cat abc
hello

##在itop4412下建立空文件abc
lenovo@lenovo-virtual-machine:~/tmp$ cd ~/itop4412/
lenovo@lenovo-virtual-machine:~/itop4412$ touch abc
lenovo@lenovo-virtual-machine:~/itop4412$ cat abc

##将tmp的abc文件移动到itop4412下,查看内容,发现被替换
lenovo@lenovo-virtual-machine:~$ cd ~/tmp/
lenovo@lenovo-virtual-machine:~/tmp$ mv abc ~/itop4412/
lenovo@lenovo-virtual-machine:~/tmp$ cd ~/itop4412/
lenovo@lenovo-virtual-machine:~/itop4412$ cat abc
hello

##mv后加上-i时重复时会询问覆盖
lenovo@lenovo-virtual-machine:~/tmp$ touch abc
lenovo@lenovo-virtual-machine:~/tmp$ mv -i abc ~/itop4412/
mv:是否覆盖'/home/lenovo/itop4412/abc'? y
##选项-b,在移动文件前,将目标目录下的相同文件添加~区分
lenovo@lenovo-virtual-machine:~/tmp$ touch abc
lenovo@lenovo-virtual-machine:~/tmp$ mv -b abc ~/itop4412/
lenovo@lenovo-virtual-machine:~/tmp$ cd ~/itop4412/
lenovo@lenovo-virtual-machine:~/itop4412$ ls
abc  abc~
##重命名功能
lenovo@lenovo-virtual-machine:~/itop4412$ mv abc~ abcd
lenovo@lenovo-virtual-machine:~/itop4412$ ls
abc  abcd

3.2 复制文件和目录:cp

##复制文件,默认直接覆盖
lenovo@lenovo-virtual-machine:~/itop4412$ cp abc ~/tmp/
lenovo@lenovo-virtual-machine:~/itop4412$ cd ~/tmp/
lenovo@lenovo-virtual-machine:~/tmp$ ls
abc
##cp -i 询问是否覆盖
lenovo@lenovo-virtual-machine:~/tmp$ cp -i abc ~/itop4412/
cp:是否覆盖'/home/lenovo/itop4412/abc'? y
##cp -b复制时会将目标目录下的同名文件加~
lenovo@lenovo-virtual-machine:~/tmp$ cp -b abc ~/itop4412/
lenovo@lenovo-virtual-machine:~/tmp$ cd ~/itop4412/
lenovo@lenovo-virtual-machine:~/itop4412$ ls
abc  abc~  abcd
##复制路径及其子文件,错误
lenovo@lenovo-virtual-machine:~/tmp$ cp ~/tmp/ ~/itop4412/
cp: -r not specified; omitting directory '/home/lenovo/tmp/'
##cp -r可执行路径及其子文件复制
lenovo@lenovo-virtual-machine:~/tmp$ cp -r ~/tmp/ ~/itop4412/
lenovo@lenovo-virtual-machine:~/tmp$ cd ~/itop4412/
lenovo@lenovo-virtual-machine:~/itop4412$ ls
tmp
lenovo@lenovo-virtual-machine:~/itop4412$ cd tmp
lenovo@lenovo-virtual-machine:~/itop4412/tmp$ ls
abc

3.3 删除目录和文件:rmdir和rm

## rmdir不可以删除非空目录
lenovo@lenovo-virtual-machine:~/itop4412$ rmdir tmp
rmdir: 删除 'tmp' 失败: 目录非空
## rm删除路径下的文件
lenovo@lenovo-virtual-machine:~/itop4412$ rm tmp/abc
lenovo@lenovo-virtual-machine:~/itop4412$ cd tmp
lenovo@lenovo-virtual-machine:~/itop4412/tmp$ ls
## rm -i删除文件会询问,无法删除目录
lenovo@lenovo-virtual-machine:~/itop4412$ rm -i tmp
rm: 无法删除'tmp': 是一个目录
## rm -ir删除目录及文件
lenovo@lenovo-virtual-machine:~/itop4412$ rm -ir tmp
rm:是否删除目录 'tmp'? y
## rm -f时默认直接删除,类似-i下选y
lenovo@lenovo-virtual-machine:~/tmp$ ls
abc
lenovo@lenovo-virtual-machine:~/tmp$ rm -f abc
lenovo@lenovo-virtual-machine:~/tmp$ ls
lenovo@lenovo-virtual-machine:~/tmp$ 
## 删除目录及其子文件
lenovo@lenovo-virtual-machine:~$ rm -r tmp/
lenovo@lenovo-virtual-machine:~$ ls
itop4412  snap  公共的  模板  视频  图片  文档  下载  音乐  桌面

4、文件和目录的权限

4.1 查看文件和目录属性

lenovo@lenovo-virtual-machine:~$ ls
itop4412  snap  公共的  模板  视频  图片  文档  下载  音乐  桌面
lenovo@lenovo-virtual-machine:~$ ls -l
总用量 40
drwxr-xr-x 2 lenovo lenovo 4096 5月  17 10:22 itop4412
drwxr-xr-x 3 lenovo lenovo 4096 5月  10 08:28 snap
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 公共的
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 模板
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 视频
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 图片
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 文档
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 下载
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 音乐
drwxr-xr-x 2 lenovo lenovo 4096 5月  11 16:00 桌面
## ls -l列出目录下目录及文件的属性,drwxr-xr-x:
## d表示文件类型,rwx、r—x、r—x三组表示属主、属组和其他人所拥有的权限;
## r可读取、w可写如、x可执行,没有权限用-表示;
## 2表示文件的硬连接;
## 第3和第4位表示文件的属主和属组;
## 4096文件大小;
## 日期和文件名
## 查看目录属性
lenovo@lenovo-virtual-machine:~$ ls -ld /etc/
drwxr-xr-x 123 root root 12288 5月  16 09:57 /etc/

4.2 改变文件的所有权:chown和chgrp

## 更改文件所有权,owner属主,group属组
chown [option]...  
## 当属主不变时,只改变属组
chown [option]...  [:[GROUP]]   FILE...
## chown有-r选项,对其子文件所有权都更改
sudo chown -r  [OWNER] [:[GROUP]]   FILE...
## 设置文件的属组
sudo chgrp [group]  file...
## -r 同样是可对子文件执行更改所有权

4.3 改变文件的权限 :chmod

使用方式:命令:“用户组+/-权限”来设置;
用户组有:文件属主(u),文件属组(g),其他人(o),所有人(a);
权限:读取(r),写入(w),执行(x)

## 增加属主的执行权限
chmod u+x file...
## 删除所有人的执行权限
chmod a—x file...
## 可以“用户组=权限”直接设置权限,也可以“用户组1=用户组2”设置相同权限

只有文件的属主和root用户才有权修改文件的权限

4.4 文件权限的八进制表示

八进制二进制权限
0000- - -
1001- - x
2010- w -
3011- w x
41000r - -
5101r - x
6110r w -
7111r w x
## 修改file的权限,rwx--x--x
chmod 711 file

5、文件类型

5.1 查看文件类型

lenovo@lenovo-virtual-machine:~$ ls -l
总用量 40
drwxr-xr-x 2 lenovo lenovo 4096 5月  17 10:22 itop4412
drwxr-xr-x 3 lenovo lenovo 4096 5月  10 08:28 snap
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 公共的
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 模板
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 视频
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 图片
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 文档
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 下载
drwxr-xr-x 2 lenovo lenovo 4096 5月   9 18:25 音乐
drwxr-xr-x 2 lenovo lenovo 4096 5月  11 16:00 桌面
## 文件属性中的d表示文件类型
文件类型符号
普通文件-
目录d
字符设备文件c
块设备文件b
本地域套接口s
有名管道p
符号链接l

5.2 建立链接 :ln

lenovo@lenovo-virtual-machine:~/itop4412$ ls
tmp
lenovo@lenovo-virtual-machine:~/itop4412$ ln -s tmp tmp_1
lenovo@lenovo-virtual-machine:~/itop4412$ ls
tmp  tmp_1
lenovo@lenovo-virtual-machine:~/itop4412$ ls -l tmp_1
lrwxrwxrwx 1 lenovo lenovo 3 5月  17 20:09 tmp_1 -> tmp
##访问tmp_1就是访问tmp,删除tmp_1不影响tmp,但是删除tmp会英雄tmp_1
## 符号链接可以适用目录
lenovo@lenovo-virtual-machine:~$ ln -s ~/itop4412/tmp/  tmp2
lenovo@lenovo-virtual-machine:~$ ls -l tmp2
lrwxrwxrwx 1 lenovo lenovo 26 5月  17 20:13 tmp2 -> /home/lenovo/itop4412/tmp/

## 硬链接将两个文件联系在一起,可直接引用,不带-s
lenovo@lenovo-virtual-machine:~$ ln itop4412 tmp
ln: itop4412: 不允许将硬链接指向目录
lenovo@lenovo-virtual-machine:~$ touch a
lenovo@lenovo-virtual-machine:~$ ln a b
lenovo@lenovo-virtual-machine:~$ ls
a  b  itop4412  snap  tmp2  公共的  模板  视频  图片  文档  下载  音乐  桌面
## a和b的属性独立
lenovo@lenovo-virtual-machine:~$ ls -l a b
-rw-r--r-- 2 lenovo lenovo 0 5月  17 20:15 a
-rw-r--r-- 2 lenovo lenovo 0 5月  17 20:15 b
## 更改a内容后b的内容也会变

6、输入输出重定向和管道

6.1 输出重定向

lenovo@lenovo-virtual-machine:~$ ls >a
lenovo@lenovo-virtual-machine:~$ cat a 
a
b
itop4412
snap
tmp2
公共的
模板
视频
图片
文档
下载
音乐
桌面
## 如果a文件不存在,则>会建立一个,若已存在则会替换内容
## >>可以将输出添加到文件尾
lenovo@lenovo-virtual-machine:~$ ls >> a
lenovo@lenovo-virtual-machine:~$ cat a
a
b
itop4412
snap
tmp2
公共的
模板
视频
图片
文档
下载
音乐
桌面
a
b
itop4412
snap
tmp2
公共的
模板
视频
图片
文档
下载
音乐
桌面

6.2 输入重定向

lenovo@lenovo-virtual-machine:~$ cat
a
a
a
a
## cat等待键盘输入,输入什么显示什么,直到ctrl+d退出
## cat < a 就是cat a
lenovo@lenovo-virtual-machine:~$ cat <a 
## 立即文档,输入直到指定eof停止,显示出刚刚输入内容
lenovo@lenovo-virtual-machine:~$ cat << eof
> a
> a
> b
> eof
a
a
b
## 先进行立即文档,输入内容,在重定向到文件a尾部
lenovo@lenovo-virtual-machine:~$ cat << eof >> a
> a
> c
> f
> eof

6.3 管道

##将一个命令的输出结果连接到另一命令的输入“|”
## 显示文件,列出包括i的文件
lenovo@lenovo-virtual-machine:~$ ls | grep i
itop4412
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值