Linux目录结构学习与文件系统操作(cat,more,less,head,tail,wc,cut,sort,uniq,grep)

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等。

  1. d目录文件 director
  2. c字符设备文件Character串口端设备读写,键盘。
  3. b block表示块设备,比如硬盘,光驱等设备。
  4. p 管道文件,他主要的目的在解决多个程序同时存取一个文件所造成的错误问 题。FIFO是first-in-first-out的缩写。第一个属性为[p]。
  5. s 套接字文件。这种类型的文件通常被用在网络上的数据承接了。我们可以启 动一个程序来监听客户端的要求, 而客户端就可以透过这个socket来进行数据的 沟通了。
  6. 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

  1. root与个人用户的实时联通监控

在这里插入图片描述在这里插入图片描述

  1. 我和另外一台电脑的实时监控,首先,需要共用一个网络,这里我们共用了一个手机热点,然后在xshell中连接它的虚拟机的ip 用户名用户密码,然后使用tail命令进行实时监控。

文件传输
在这里插入图片描述
实时监控
在这里插入图片描述
查看文件内容
在这里插入图片描述
查看文件内容里的单词数
在这里插入图片描述
将文件顺序排列
在这里插入图片描述

将文件逆序排列
在这里插入图片描述
查找单词
在这里插入图片描述
添加单词fuck,再次查找
在这里插入图片描述找到了单词。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值