linux目录与文件管理

549 阅读6分钟

1.linux常见子目录的作用

目录结构概览

image.png

一级目录

一级目录功能(作用)
/bin/存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
/boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/设备文件保存位置
/etc/配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
/home/普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming
/lib/系统调用的函数库保存位置
/media/挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
/mnt/挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
/misc/挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的
/opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件
/root/root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
/sbin/保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
/srv/服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp/临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空

二级目录

/usr/bin/:主要放置一些应用软件工具的必备执行档例如c++、g++、gcc、chdrv
/usr/sbin/:放置一些网路管理的必备程序例如:dhcpd、httpd
/var/log/:放置日志文件
/var/run/:运行中的文件(pid文件)

linux/var目录

/var 目录用于存储动态数据,例如缓存日志文件软件运行过程中产生的文件等。通常,此目录下建议包含如表中的目录

/var子目录功能(作用)
/var/lib/程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
/var/log/登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。
/var/run/一些服务和程序运行后,它们的 PID(进程 ID)保存位置

2.cat(查看文件内容)

选项

-n显示行号包括空行
-b跳过空白行编号
-s将所有的连续的多个空行替换为一个空行(压缩成一个空行)
-A显示隐藏字符

cat查看多个文件

image.png

补充:tac(可以反向查看文件)

cat命令合并两个文件的内容

image.png

3.more

含义:

more命令类似于cat,不过会以一页一页的形式显示,更方便使用者逐页阅读


基本操作

交互指令功能
h 或 ?显示 more 命令交互命令帮助。
q 或 Q退出 more。
v在当前行启动一个编辑器。
:f显示当前文件的文件名和行号。
!<命令> 或 :!<命令>在子Shell中执行指定命令。
回车键向下移动一行。
空格键向下移动一页。
Ctrl+l刷新屏幕。
=显示当前行的行号。
'转到上一次搜索开始的地方。
Ctrf+f向下滚动一页。
.重复上次输入的命令。
/ 字符串搜索指定的字符串。
d向下移动半页。
b向上移动一页。

4.head/tail

功能与more和cat类似,可以查看文件内容,head用于查看文件的开头10行,head用于查看结尾10行。

选项

  • head -n 文件名 (不加默认开头十行)
  • tail -n 文件名 (不加默认结尾十行)
  • tail -f 文件名 实时跟踪最后十行

5.wc

- wc 【选项】… 目标文件… 统计文件中的单词数量(Word Count)等信息

常用选项:

  • -l:统计行数
  • -w:统计单词个数
  • -c:统计字节数 不带任何选项的wc命令,

(默认同时使用 -lwc三个选项)

6.grep(检索并过滤文件内容)

命令格式

grep [选项]...查找内容 目标文件

常用命令选项

  • -i:忽略大小写
  • -v:反向查找,输出与查找条件不相符的行
  • -o:只显示匹配项
  • -c:统计出现的次数
  • -n:输出行号

基本格式

  • 要查找的字符串以双引号括起来单引号也可以
  • “^……”表示以……开头,“……$”表示以……结尾
  • “^$”表示空行

示例

1.grep不加命令选项搜索示例 image.png

2.gerp -o示例

image.png

7.gzip/dzip

zip 【-9】文件名… #gzip制作的压缩文件默认的扩展名为“.gz”,原始文件不再保留

bzip2 【-9】文件名… #bzip2 制作的压缩文件默认的扩展名为“.bz2”,原始文件不再保留

:-9为压缩比,默认值为6

-d:用于解压缩以及压缩过的文件,相当于使用gunzip、bunzip2命令

gunzip文件名.gz

gzip -d 文件名.gz

bzip2 -d 文件名.bz2

8.tar

含义:可以用于归档普通文件以及压缩过的gzip及dizp文件

tar [选项] ... 归档文件名(压缩包名字) 源文件或目录 tar [选项] ... 归档文件名 [-C 目标目录]

  • -c:创建(Create).tar 格式的包文件
  • -x:解开.tar 格式的包文件
  • -C:解压时指定释放的目标文件夹 指定目录
  • -f:表示使用归档文件(一般都要带上表示使用tar)
  • -v:输出详细信息(Verbose)
  • -j:调用 bzip2 程序进行压缩或解压
  • -z:调用 gzip 程序进行压缩或解压

归档:-zcvf

释放:-zxvf

实例

1.写出把家目录中的 abc.txt 和 123.txt 文件压缩成 abc123.tar.gz 的命令

[root@localhost ~]# tar -zcvf abc123.tar.gz abc.txt 123.txt(需要注意tar后面如果加-的话需要注意选项的顺序,也就是zcvf的顺序)
abc.txt
123.txt
[root@localhost ~]# ls
123.txt        abc.txt          initial-setup-ks.cfg  公共  视频  文档       音乐
abc123.tar.gz  anaconda-ks.cfg  j                     模板  图片  下载       桌面
[root@localhost ~]#

2.写出把家目录中的 abc123.tar.bz2 文件解压缩到 /opt 目录中的命令(需要使用到-C选项)

[root@localhost ~]# tar -zxvf abc123.tar.gz -C /opt(使用-C解压到指定文件夹)
abc.txt
123.txt
[root@localhost ~]# ls
123.txt        abc.txt          initial-setup-ks.cfg  公共  视频  文档       音乐
abc123.tar.gz  anaconda-ks.cfg  j                     模板  图片  下载  桌面
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
123.txt  aaa  abc.txt  b11.ttx  b12.txt  b13.txt  ky18  ky18bp  rename  rh