1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Linux文件管理(基础):文件的时间 文件的扩展名 系统目录结构与作用 绝对路径与相

Linux文件管理(基础):文件的时间 文件的扩展名 系统目录结构与作用 绝对路径与相

时间:2021-09-01 12:46:14

相关推荐

Linux文件管理(基础):文件的时间 文件的扩展名 系统目录结构与作用 绝对路径与相

文章目录

一、 Linux系统的单根目录结构文件的时间文件的扩展名二、 系统目录结构与作用三、 绝对路径与相对路径四、 文件管理4.1 文件管理之:基本命令4.2 文件管理之:创建/复制/移动/删除创建复制移动与删除4.3 文件管理之:查看文件内容4.4 文件管理之:修改文件内容五、 vi\vim1、 什么是vim2、 为何要用vim3、 vi与vim的区别4、 vi编辑器的操作模式5、 在vi编辑器中光标的移动6、 在命令行模式下删除与复制的操作7、 粘贴命令8、 复原和重做命令9、 掌握扩展模式下常用的命令10、掌握快速移动光标在文件中的位置的命令11、掌握快速在屏幕中移动光标的位置的命令12、==三种模式下的操作汇总与补充==13、同时编辑多个文件14、文件内容对比15、vim执行过程

一、 Linux系统的单根目录结构

linux与windows的目录结构对比

绝对路径与相对路径

一切皆文件的设计思想

文件的时间

ls -l 文件名 仅看的是文件的修改时间Linux文件有三种时间,用stat查看 例如:stat anaconda-ks.cfg​访问时间:atime,查看内容,用cat检测修改时间:mtime,修改内容改变时间:ctime,修改内容,修改权限等属性,凡是有改动都会变

文件的扩展名

Linux文件是没有扩展名!!!​// 方法一:ls -l 文件名 //看第一个字符- 普通文件(文本文件,二进制,压缩文件,电影,图片。。。),例如:/bin/lsd 目录文件(蓝色),例如/home/b 设备文件(块设备)存储设备硬盘,U盘,例如:/dev/sdac 设备文件(字符设备)打印机,例如:终端/dev/tty1s 套接字文件,例如:/run/rpcbind.sock p 管道文件,例如:/run/systemd/initctl/fifol 链接文件(淡蓝色),例如:/bin​ps:通过颜色判断文件的类型是错误的!!!​// 方法二:[root@xxx ~]# file /etc/grub.conf

bash shell对文件进行管理:

创建复制删除移动查看编辑压缩权限操作查找

二、 系统目录结构与作用

Windows: 以多根的方式组织文件 C:\ D:\ E:\ Linux: 以单根的方式组织文件 /

FHS(Filesystem Hierarchy Standard)指的是文件系统层次化标准,多数Linux版本采用这种文件组织形式,是以树形的结构来组织文件的。

[root@aliyun ~]# ls -l / # /是所有linux操作系统的顶点目录,不像windows,每个分区都有一个顶点目录total 64​# 1、命令相关目录lrwxrwxrwx. 1 root root7 Jul 11 bin -> usr/bin # 普通用户使用的命令如ls、datelrwxrwxrwx. 1 root root8 Jul 11 sbin -> usr/sbin # 管理员使用的命令​​#2、启动目录dr-xr-xr-x. 5 root root 4096 Feb 11 19:06 boot # 存放的启动相关的文件,例如kernel,grub(引导装载程序)#3、系统文件目录drwxr-xr-x. 13 root root 4096 Jul 11 usr # 系统文件,相当于C:\Windowslrwxrwxrwx. 1 root root7 Jul 11 lib -> usr/lib # 库文件Glibclrwxrwxrwx. 1 root root9 Jul 11 lib64 -> usr/lib64 # 库文件Glibc​#4、用户家目录drwxr-xr-x. 5 root root 4096 Feb 24 16:42 home # 普通用户家目录dr-xr-x---. 11 root root 4096 Jul 8 17:03 root # root用户的HOME​#5、配置文件目录drwxr-xr-x. 79 root root 4096 Jul 8 17:04 etc # 配置文件,很重要,系统级服务配置文件都在这里"""/etc/sysconfig/network-script/ifcfg-*,网络配置文件/etc/hostname,系统主机名配置文件/etc/resolv.conf,dns客户端配置文件/etc/hosts,本地域名解析配置文件/etc/fstab 系统挂载目录 开机自启动挂载列表/etc/passwd 系统用户文件"""​#6、设备目录文件drwxr-xr-x 19 root root 2960 Feb 15 17:22 dev # 设备文件,/dev/sda /dev/sr0"""/dev/cdrom 和/dev/sr0,系统光盘镜像设备/dev/null,黑洞设备,只进不出。类似于垃圾回收站/dev/random,生成随机数的设备/dev/zero,能源源不断地产生数据,类似于取款机,随时随地取钱/dev/pts/0,虚拟的Bash Shell终端,提供给远程用户使用 0代表第一个终端 1代表第2个终端以此类推/dev/stderr,错误输出 /dev/stdin,标准输入/dev/stdout,标准输出"""​#7、虚拟文件系统:类似于小汽车的仪表板,能够看到汽车是否有故障,或者是否缺油了。dr-xr-xr-x 89 root root0 Feb 15 17:22 proc # 虚拟的文件系统,反映出来的是内核,进程信息或实时状态 """反映系统当前进程的实时状态/proc/meminfo:内存信息/proc/cpuinfo:cpu信息"""​#8、可变的目录与临时目录drwxr-xr-x. 19 root root 4096 Jul 11 var #存放的是一些变化文件,比如数据库,日志,邮件.... """/tmp,系统临时目录(类似于公共厕所),系统会定时删除该目录下长时间没有访问的文件。/var,存放一些变化文件,如下mysql:/var/lib/mysqlvsftpd: /var/ftpmail: /var/spool/mailcron: /var/spool/cronlog: /var/log 系统日志文件存放目录/var/log/messages系统日志/var/log/secure系统登录日志/var/tmp 临时文件(主要是程序产生的临时文件)​""" ​​# 9、设备(主要指存储设备)挂载目录drwxr-xr-x. 2 root root 4096 Apr 11 media # 移动设备默认的挂载点drwxr-xr-x. 2 root root 4096 Apr 11 mnt # 手工挂载设备的挂载点drwxr-xr-x. 2 root root 4096 Apr 11 opt # 早期第三方厂商的软件存放的目录.drwxrwxrwt. 10 root root 4096 Jul 9 15:16 tmp # 临时存放文件,类似于回收站,超过十天自动删除#10、其他的一些重要目录drwx------. 2 root root 16384 Jul 11 lost+found # 孤儿文件这个目录是使用标准的ext2/ext3档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时, 将一些遗失的片段放置到这个目录下。这个目录通常会在分割槽的最顶层存在, 例如你加装一颗硬盘于/disk中,那在这个系统下就会自动产生一个这样的目录『/disk/lost+foundlost+found这个目录一般情况下是空的,当系统非法关机后,如果你丢失了一些文件,在这里能找回来用来存放fsck过程中部分修复的文件的lost+found:几乎每个被格式化过的Linux分区都会有,意外后找回的文件一般在这里面。这个目录是储存发生意外后丢失的文件的。只有root用户才能打开​drwxrwxr-x 6 root root 4096 Feb 23 19:24 applicationdrwxr-xr-x 25 root root 660 Jul 8 17:00 run # 存放程序运行后所产生的pid文件drwxr-xr-x. 2 root root 4096 Apr 11 srv # 物理设备产生的一些文件dr-xr-xr-x 13 root root0 Feb 16 01:22 sys # 硬件设备的驱动程序信息

三、 绝对路径与相对路径

绝对路径: 从/开头的路径 /home ~alice

相对路径: 相对于当前目录开始

. 链接到当前目录.. 链接到上一级目录 ~当前用户的家目录

# 1、绝对路径示例touch /home/alice/file1touch ~alice/file2​# 2、相对路径示例touch ../file3touch file4touch abc/file5

四、 文件管理

4.1 文件管理之:基本命令

#1、查看当前所在的目录[root@localhost ~]# pwd/root​#2、切换目录cd 绝对路径 如:cd /home/alicecd ~alicecd 相对路径 如:cd home/alicecd ..cd -# 返回上次目录 cd # 直接回家,等同于cd ~cd .#保持当前目录不变cd ..#切换到当前目录的上一级目录​#3、查看目录树:需要先安装tree命令,执行yum install tree -ytree -a 目录 # 显示所有文件,包括隐藏文件tree -d 目录 # 只显示子目录tree -L 1 目录 # -L 遍历目录的最大层数,-L后应该是大于0的正整数tree -F 目录 # -F 在条目后加上文件类型的指示符号,例如会在显示出的目录后面加上左斜杠/​[root@localhost ~]# tree /a /a├── b│ ├── 1.txt│ ├── 2.txt│ └── 3.txt├── bb│ ├── a.txt│ ├── b.txt│ └── c.txt└── bbbb​了解一下tree命令其他选项-a 显示所有文件和目录。-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。-C 在文件和目录清单加上色彩,便于区分各种类型。-d 显示目录名称而非内容。-D 列出文件或目录的更改时间。-f 在每个文件或目录之前,显示完整的相对路径名称。-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。-i 不以阶梯状列出文件或目录名称。-I 不显示符合范本样式的文件或目录名称。-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。-n 不在文件和目录清单加上色彩。-N 直接列出文件和目录名称,包括控制字符。-p 列出权限标示。-P 只显示符合范本样式的文件或目录名称。-q 用"?"号取代控制字符,列出文件和目录名称。-s 列出文件或目录大小。-t 用文件和目录的更改时间排序。-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。​#4、浏览ls # 默认浏览当目录ls -l 目录 # 浏览目录下的子目录子文件名的详细信息ls -al 目录 # 浏览的结果中包含隐藏文件ls -dl 目录 # 查看目录ls -h 目录 # 格式化文件大小​[root@localhost ~]# ll a.txt -rw-r--r--. 1 root root 0 12月 15 14:02 a.txt​# 各部分解析如下-rw-r--r--. 权限,后面的点代表是否在selinux开启的情况下(enforcing或者permissive都属于开启)创建的文件​1硬链接个数root 属主root 属组0文件大小,单位字节12月 15 14:02 文件修改时间a.txt 文件名字​# 权限的第一个为代表文件类型格式 说明- 普通文件(文本, 二进制, 压缩包, 图片, 日志等) d 目录文件b 设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zeros 套接字文件, 进程间通信(socket)p 管道文件l 链接文件​注意: Linux文件扩展名不代表任何含义, 仅仅是为了运维人员便于识别

4.2 文件管理之:创建/复制/移动/删除

创建

#1、=============创建文件:touch touch file1.txt //无则创建,有则修改时间touch /home/file10.txttouch file{1..20}touch Ego{n,N}.txt//等价touch Egon.txt EgoN.txttouch -t 111111 .rmvb 修改文件时间 语法:-t STAMPuse [[CC]YY]MMDDhhmm[.ss] instead of current time了解文件的三个时间参数:/linhaifeng/articles/13324247.html​#2、=============创建目录:mkdir -p : 递归创建-v : 显示创建过程mkdir dir1mkdir /home/dir2 /home/dir3mkdir /home/{dir4,dir5}mkdir -v /home/{dir6,dir7}mkdir: 已创建目录 “/home/dir6”mkdir: 已创建目录 “/home/dir7”mkdir -p /home/dir8/111/222//包括其父母的创建

复制

#1、=============复制:cp cp 源 目标​-r : 递归复制-v : 显示过程-f : 强制复制cp -v install.log /home/dir1cp -v install.log /home/dir1/aaa.txtcp -r /etc /home/dir1cp install.log /home/dir2cp anaconda-ks.cfg !$cp anaconda-ks.cfg /home/dir2cp -r /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/grub.conf /etc/hosts .​cp -rv /etc /tmp\cp -rv /etc /tmp​扩展用法:cp -rfv /etc/hosts{,.old}cp -rvf /etc/sysconfig/network-scripts/ifcfg-eth0{,.old}​​关于-f参数的一个实验[root@aliyum ~]# echo "1111" > /opt/a.txt[root@aliyum ~]# echo "2222" > /t2/a.txt[root@aliyum ~]# [root@aliyum ~]# chmod o=wx /t2[root@aliyum ~]# chmod o=- /t2/a.txt [root@aliyum ~]# [root@aliyum ~]# ll -d /t2drwxr-x-wx 2 root root 4096 Oct 20 00:07 /t2[root@aliyum ~]# ll /t2/a.txt -rw-r----- 1 root root 5 Oct 20 00:07 /t2/a.txt[root@aliyum ~]# [root@aliyum ~]# su - xxxLast login: Tue Oct 20 00:05:43 CST on pts/2[xxx@aliyum ~]$ cp /opt/a.txt /t2/a.txt # 失败cp: cannot create regular file ‘/t2/a.txt’: Permission denied[xxx@aliyum ~]$ \cp /opt/a.txt /t2/a.txt # 失败cp: cannot create regular file ‘/t2/a.txt’: Permission denied[xxx@aliyum ~]$ [xxx@aliyum ~]$ [xxx@aliyum ~]$ cp -f /opt/a.txt /t2/a.txt # 成功[xxx@aliyum ~]$ exitlogout[root@aliyum ~]# cat /t2/a.txt 1111[root@aliyum ~]# ​​========================================================小知识:root用户使用cp (默认有一个别名 alias cp='cp -i') -i 显示提示信息(是否覆盖)1. /bin/cp -rf /etc /tmp2. # unalias cp# cp -rf /etc /tmp 3. # \cp -rf /etc /tmp4.-f 参数是强制复制,比如你在A文件夹里面有个文件名叫B,然后你把C文件夹里面的另一个文件名叫B的复制到A里面,这个时候会照成冲突,然后会提示你要不要继续复制.加上-f 就不会提示你了.​你输入-f 还是会提示你的原因是-------------------------------------------------------------有的系统在安装的时候,cp - i 的 alias 就是 cp也就是说你在执行cp的时候,其实是执行的cp -i 取消掉cp的alias就好了 ==========================================解决办法unalias cp ========================================================

移动与删除

#1、=============移动:mv mv 源 目标# mv file2 /home/dir3 将file2移动到/home/dir3里# mv file4 file5将file4重命名为file5,当前位置里的移动就是重命名​​#2、=============删除:rm示例:删除/home/dir1 # cd /home# rm -rf dir1 -r 递归-f force强制-v 详细过程

4.3 文件管理之:查看文件内容

==============(cat less more head tail grep)==============/etc/hosts/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0/etc/passwd/etc/shadow /etc/group/etc/grub.conf/etc/resolv.conf/var/log/messages //系统的主日志文件​cat-n 显示行号-A 包括控制字符(换行符)linux $ Windows ^M$========================================================扩展知识:dos2unix 将Windows格式的文件转换成Unix格式unix2dos 将Unix格式的文件转换成Windows格式例如# unix2dos file1# dos2unix file2========================================================​less more head tail head /etc/passwdhead -2 /etc/passwdtail /etc/passwdtail -1 /etc/passwdmore /etc/passwd # 使用more命令之后,每次在屏幕上显示一屏(一页)的文件内容,并且在屏幕的尾部将会出现“—More--(n%)”的信息,其中,n%是已经显示文件内容的百分比。按空格下一页,按b上一页,more +40 a.txt从第40行开始查看​tail -f /var/log/messages //-f 动态查看文件的尾部logger xxxxxxxxx //手动产生日志信息

grep 针对文件内容进行过滤# grep 'root' /etc/passwd# grep --color 'root' /etc/passwd# grep --color '^root' /etc/passwd# grep --color 'bash$' /etc/passwd

4.4 文件管理之:修改文件内容

使用 vi\vim 修改文件内容

五、 vi\vim

1、 什么是vim

可以理解为windows下面的文本编辑器,比如记事本,比如word文档。

vi编辑器通常被简称为vi,而vi又是visual editor的简称。它在Linux上的地位就像Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。

vi 编辑器并不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。没有菜单,只有命令,且命令繁多。

2、 为何要用vim

1.修改配置2.写脚本

3、 vi与vim的区别

vi不显示高亮颜色语法​vim显示高亮颜色语法。​其他功能没有什么区别。​所以在linux系统下,使用vi还是vim取决个人习惯。​默认vi是安装的 , vim需要通过yum install vim -y

4、 vi编辑器的操作模式

#1、命令行模式:在编辑模式下按下ESC键返回命令行模式。vi的默认模式。在这一模式中,所有的输入被解释成vi命令,可以执行修改、复制、移动、粘贴和删除正文等命令,也可以进行移动光标、搜索字符串和退出vi的操作等。​#2、编辑/插入模式:输入a、i、o之一在编辑模式中,可以往一个文件中输入正文。在这一模式下,输入的每一个字符都被vi编辑器解释为输入的正文。使用ESC键返回命令行模式。a:进入插入模式并在光标之后进行添加。i:进入插入模式并在光标之前进行插入。o:进入插入模式并在当前(光标所在)行之下开启新的一行。​#3、扩展/末行模式:输入冒号:在一些UNIX系统上也叫最后一行模式。在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器等。要进入最后一行模式,需要在命令行模式中输入冒号(:),冒号这一操作将把光标移到屏幕的最后一行。

5、 在vi编辑器中光标的移动

6、 在命令行模式下删除与复制的操作

7、 粘贴命令

8、 复原和重做命令

9、 掌握扩展模式下常用的命令

10、掌握快速移动光标在文件中的位置的命令

11、掌握快速在屏幕中移动光标的位置的命令

12、三种模式下的操作汇总与补充

vi ===> vim 文件编辑器# vim /boot/grub2/grub.cfg# vim /etc/sysconfig/network-scripts/ifcfg-eth0​命令模式:a. 光标定位 hjkl 左下上右0 $行首、行尾gg G 首行的行首、末行的行首nG进入第 n 行的行首 H : 看到的界面中 第一行的行首M : 看到的界面中 中间行的行首L : 看到的界面中 最后一行的行首/string(n N 可以循环的) 快速定位到某一行 b. 文本编辑(少量)y 复制 yy 3yy ygg yG (以行为单位)d .删除 dd 3dd dgg dG(以行为单位) p 粘贴x 删除光标所在的字符D 从光标处删除到行尾u undo撤销^rredo重做r可以用来修改一个字符c. 进入其它模式a 进入插入模式i 进入插入模式o 进入插入模式A 进入插入模式: 进入末行模式R 进入替换模式^v 进入可视块模式'''可视块:ctrl + v: 选择你要修改的内容,删除:x编辑:shift + i(退出可视块编辑模式按ESC键,等一会才会同步修改内容) '''​插入模式:^p 唯一补齐​​末行模式:a. 保存退出:10 进入第10行 :w保存 :q退出 :wq保存并退出:w!强制保存 :q!不保存并退出 :wq! 强制保存退出:x保存并退出b. 查找替换:范围 s/old/new/选项 :1,5 s/Note/yyy/从1-5行的Note 替换为yyy :5,$ s/Note/yyy/$表示最后一行:1,$ s/to/xxx/g= :% s/to/xxx/g %表示全文 g表示全局:4,9 s/^#//4-9行的以#开头的替换为空:% s#/dev/sda#/var/ccc#g:,8 s/to/xxx/ 从当前行到第8行c. 读入文件/写文件:w:w /aaa.txt 另存为/aaa.txt :1,3 w /2.txt1到3行另存为/2.txt :1 w! /root/ccc.txt 如果目标文件已经存在则需要加!号:r /etc/hosts​d. 设置环境临时设置: :set nu 设置行号:set ic 不区分大小写:set ai 自动缩进:set list :set nonu 取消设置行号:set noic ​永久的环境:/etc/vimrc 影响所有系统用户~/.vimrc影响某一个用户# vim ~/.vimrc # 在家目录下新增一个文件,输入下述内容set icset nu​# vim -O /etc/hosts /etc/grub.conf^w 按两次切换# vimdiff grub.conf /etc/grub.conf对比文件,^w 按两次切换 # vim -p /etc/hosts /etc/grub.conf^PgUp, ^PgDn

13、同时编辑多个文件

#1、vim -o 文件1 文件2 # 水平分隔vim -O 文件1 文件2 # 垂直分隔使用ctrl + ww切换​#2、vim -p /etc/hosts /etc/grub.conf使用 ^PgUp, ^PgDn切换

14、文件内容对比

# 相同文件之间差异对比,通常用于对比修改前后的差异。diff #文件对比(No)​vimdiff #以vim方式打开两个文件对比,高亮显示不同的内容​# patch实验:touch a.txt b.txt[root@localhost ~]# echo 111 >> a.txt[root@localhost ~]# echo 222 >> b.txt [root@localhost ~]# diff -u a.txt b.txt > patch.diff[root@localhost ~]# patch a.txt patch.diff patching file a.txt[root@localhost ~]# cat a.txt222

15、vim执行过程

============== Vim非正常退出 ==============

(1)、模拟故障: 编辑文件的时候断开连接即可(断网或断电) 重新连接服务器 再次进行编辑文件

(2)、故障报错: Found a swap file by the name “.vim.log.swp” Swap file “.vim.log.swp” already exists

(3)、故障解决: 删除临时文件或者先恢复内容再删除 使用-r选项进行恢复。

Linux文件管理(基础):文件的时间 文件的扩展名 系统目录结构与作用 绝对路径与相对路径 文件管理 vi\vim

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。