Linux目录结构学习与文件系统操作
1.Linux目录结构
-
/:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。
-
/bin(binary的缩写)
:该目录为命令文件目录,也称为二进制目录。包含了供系统管理员及普通用户使用的重要的linux命令和二进制(可执行)文件,包含shell解释器等。(/usr/bin) -
/boot:该目录中存放系统的内核文件和引导装载程序文件(启动Linux的一些核心文件),包括一些连接文件和镜像文件。
-
/dev(device)
:设备(device)文件目录,存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件,包括字符设备和块设备等,常用的是挂载光驱mount /dev/cdrom/mnt。 类似Windows里面的设备管理器。 -
/etc
:系统配置文件存放的目录,该目录存放系统的大部分配置文件和子目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11(X Window系统有关)、/etc/sysconfig(与网络有关)、/etc/xinetd.d修改配置文件之前记得备份。该目录下的文件由系统管理员来使用,普通用户对大部分文件有只读权限(系统相关的配置文件)。 -
/home
:(所有普通用户家目录的存放地) 系统默认的用户宿主目录,新增用户账号时,用户的宿主目录都存放在此目录下,~ 表示当前用户的宿主目录,~ test表示用户test的宿主目录。 -
/lib( library):系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,该目录下存放了各种编程语言库。典型的linux系统包含了C、C++和FORTRAN语言的库文件。(系统开机所需要的最基本的动态链接共享库 /usr/lib)
-
/media:U盘,光驱等外设存储硬件设备存放的地方,一般都会挂载在这个地方。
-
/opt(option选项):给主机额外安装软件所摆放的目录。相当于Windows里的Download。
-
/proc:虚拟目录,此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间。
-
/mnt(mount)
:mnt目录主要用来临时挂载文件系统,为某些设备提供默认挂载点,如floppy,cdrom。这样当挂载了一个设备如光驱时,就可以通过访问目录/mnt/cdrom下的文件来访问相应的光驱上的文件了。 -
/root
:超级管理员的家目录 普通用户进不来。 -
/run:系统运行时所需要的文件。
-
/sbin
:s是SuperUser的意思 里面存放的是超级管理员能够使用的一些指令。 -
/srv:service 存放的是一些服务启动后存取的数据。
-
/sys system
跟proc差不多,主要记录Linux内核信息。 -
/usr
:应用程序存放目录,/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件,/usr/local 存放软件升级包,/usr/share/doc 系统说明文件存放目录。 -
/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log。
/var/log/message: 所有的登录文件存放目录。
/var/spool/mail: 邮件存放的目录。
/var/run: 程序或服务启动后。建议单独分区,设置较大的磁盘空间。 -
/tmp:存放临时文件目录,一些命令和应用程序会用的到这个目录。该目录下的所有文件会被定时删除,以避免临时文件占满整个磁盘。
2.Linux文件类型
Linux文件类型常见的有:普通文件、目录、字符设备文件、块设备文件、符号链接 文件等。其中普通文件类似于记事本文件txt 也包含其他的exe,mp3,avi等。
- d目录文件 director
- c字符设备文件Character串口端设备读写,键盘。
- b block表示块设备,比如硬盘,光驱等设备。
- p 管道文件,他主要的目的在解决多个程序同时存取一个文件所造成的错误问 题。FIFO是first-in-first-out的缩写。第一个属性为[p]。
- s 套接字文件。这种类型的文件通常被用在网络上的数据承接了。我们可以启 动一个程序来监听客户端的要求, 而客户端就可以透过这个socket来进行数据的 沟通了。
- l链接文件 link 类似于Windows中的快捷方式。
2.1 软链接和硬链接
2.1.1 软链接(符号链接)
ln -s 被链接的源文件 链接文件
:
建立文件的软链接,用通俗的方式讲类似于 Windows 下的快捷方式。
没有 -s 选项建立的是一个 硬链接文件两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接。
源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后, 仍然能够正常使用。
2.1.2 硬链接
ln 源文件 链接文件
:
硬链接存储的是源文件的inode(物理内存地址),可以 理解为C语言中的指针,实际上存的就是 源文件的数据(追随源文件修改的复制 文件)。
文件软硬连接示意图
3.cat、more、less、head、tail文本查看
3.1 cat
cat : cat 命令可以用来以只读的方式
查看文件内容、创建文件、文件合并、追加文件内容等功能。cat 会一次显示所有的内容,适合查看内容较少的文本文件。
3.2 more
more:基于VIM编辑器文本查看器/编辑器,可以用于分屏显示文件内容,每次只显示一页内容。适合于查看内容较多的文本文件。
3.3 less
less与more 类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件(省一些内存空间)。
3.4 head
head 查看文本文件头部的部分内容(前10行的内容)。
3.5 tail
tail :查看文本文件尾部的部分内容(后10行的内容)
-f 实时追踪文件更新的内容(一般追加)适合用于日志
4.wc、cut、sort、uniq、grep文本统计排序筛选
4.1 wc
wc:文本统计
在UTF-8编码中,英文字符占一个字节 中文字符占三个字节
4.2 cut
cut:文本切割,用于按列提取文本内容。
[root@localhost ~]# head -n 10 /etc/passwd >> user.txt
[root@localhost ~]# cat user.txt root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# cut -d: -f 1-4 user.txt
root:x:0:0
bin:x:1:1
daemon:x:2:2
adm:x:3:4
lp:x:4:7
sync:x:5:0
shutdown:x:6:0
halt:x:7:0
mail:x:8:12
operator:x:11:0
[root@localhost ~]# cut -d: -f 1,3,4 user.txt
root:0:0
bin:1:1
daemon:2:2
adm:3:4
lp:4:7
sync:5:0
shutdown:6:0
halt:7:0
mail:8:12
operator:11:0
[root@localhost ~]# cut -d: -f 1,3,4 --output-delimiter=, user.txt
root,0,0
bin,1,1
daemon,2,2
adm,3,4
lp,4,7
sync,5,0
shutdown,6,0
halt,7,0
mail,8,12
operator,11,0
[root@localhost ~]# cut -d: -f 1,3,4 --output-delimiter= user.txt
root00
bin11
daemon22
adm34
lp47
sync50
shutdown60
halt70
mail812
operator110
[root@localhost ~]# cut -d: -f 1,3,4 --output-delimiter=" " user.txt
root 0 0
bin 1 1
daemon 2 2
adm 3 4
lp 4 7
sync 5 0
shutdown 6 0
halt 7 0
mail 8 12
operator 11 0
4.3 uniq
uniq去除文本重复内容(行),一般与sort命令结合使用。
命令 | 作用 |
---|---|
-c或-count | 在每列旁边显示该行重复出现的次数 |
-d或-repeated | 仅显示重复出现的行列 |
-f<栏位>或-skip-fields=<栏位> | 忽略比较指定的栏位 |
-s<字符位置>或-skip-chars=<字符位置> | 忽略比较指定的字符 |
-u或-unique | 仅显示出一次的行列 |
-w<字符位置>或-check-chars=<字符位置> | 指定要比较的字符 |
–help | 显示帮助 |
–version | 显示版本信息 |
4.4 sort
sort对文本内容进行排序(按行)。
-u 排序的同时去重复
sort -t: -k 3 -n /etc/passwd
以:为分隔符 找第3列数据 以数字形式 升序排序 在passwd文件中
sort -t: -k 1 /etc/passwd
以:为分隔符 找第1列数据 以字符形式 升序排序 在passwd文件中
4.5 grep(重点)
grep: Linux 系统中 grep 命令是一种强大的文本搜索工具.grep 允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式。
grep的语法格式:
grep -option(参数) ‘word’(关键词) file(文本文件);
命令 | 作用 |
---|---|
-a | 不要忽略二进制数据。 |
-A<显示列数> | 除了显示符合范本样式的那一行之外,并显示该行之后的内容。 |
-b | 在显示符合范本样式的那一行之外,并显示该行之前的内容。 |
-c | 计算符合范本样式的列数。 |
-C<显示列数>或-<显示列数> | 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。 |
-d<进行动作> | 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。 |
-e<范本样式> | 指定字符串作为查找文件内容的范本样式。 |
-E | 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。 |
-f<范本文件> | 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。 |
-F | 将范本样式视为固定字符串的列表。 |
-G | 将范本样式视为普通的表示法来使用。 |
-h 文件名 | 查找文件里含有字符串h的行并输出 |
-H | 在显示符合范本样式的那一列之前,标示该列的文件名称。 |
-i | 忽略字符大小写的差别。 |
-l | 列出文件内容符合指定的范本样式的文件名称。 |
-L | 列出文件内容不符合指定的范本样式的文件名称。 |
-n | 在显示符合范本样式的那一列之前,标示出该列的编号。 |
-q | 不显示任何信息。 |
-R/-r | 此参数的效果和指定“-d recurse”参数相同。 |
-s | 不显示错误信息。 |
-v | 反转查找。 |
-w 单词 文件名 | 查找文件里含有单词的行并输出 |
-x | 只显示全列符合的列。 |
-y | 此参数效果跟“-i”相同。 |
-o | 只输出文件中匹配到的部分。 |
^ [q] | 文件名 查找匹配以q开头的行 |
^ [the] | 以t或h或e开头的行 |
5.一个小作业
A远程登录B的虚拟机,B实时监控一个文件C,A向该文件C中传输数据,B最后统计单词的个数,再按照字母顺序逆序排 不忽略大小写 再查找非法内容 fuck
- root与个人用户的实时联通监控
- 我和另外一台电脑的实时监控,首先,需要共用一个网络,这里我们共用了一个手机热点,然后在xshell中连接它的虚拟机的ip 用户名用户密码,然后使用tail命令进行实时监控。
文件传输
实时监控
查看文件内容
查看文件内容里的单词数
将文件顺序排列
将文件逆序排列
查找单词
添加单词fuck,再次查找
找到了单词。