Linux目录与文件操作命令

一、Linux目录结构:树形目录结构

根目录(父目录):所有分区、目录、文件等的位置起点
表示形式:整个树形目录结构中,使用独立的额一个“/ "表示

根目录下的子目录
Linux目录与文件操作命令

1、/- 根
linux文件系统的最顶端是/,我们称/为Linux的root。也就是 Linux操作系统的文件系统。Linux的文件系统的入口就是/,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。

2、/bin 所有用户的二进制命令目录
包含二进制可执行文件。
在单用户模式下,你需要使用的常见Linux命令都位于此目录下系统的所有用户使用的命令都设在这里。
例如:ps、ls、ping、grep、cp

3、/sbin目录 - 系统管理的二进制命令目录
跟/bin类似,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例:iptables、reboot、fdisk、ifconfig、swapon命令

4、/etc - 配置文件目录
二进制安装包的配置文件默认路径和服务启动命令存放的目录

5、/dev - 设备文件目录
例:声卡、磁盘、光驱等。在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中。 只要通过存取这个目录下的某个档案,就等于存取某个装置。比要重要的档案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等

6、/proc - 进程信息及内核信息目录
这个目录本身是一个虚拟文件系统(virtual filesystem), 他放置的资料都是在内存当中,例如系统核心、行程资讯(process)、周边装置的状态及网络状态等等。因为这个目录下的资料都是在记忆体(内存)当中,所以本身不占任何硬盘空间。比较重要的档案(目录)例如: /proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports,
/proc/net/*等等。

7、/var - 变量文件目录
var代表变量文件。
如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。
因为/var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file,
run file),或者例如MySQL数据库的文件等等。

8、/tmp - 临时文件目录
包含系统和用户创建的临时文件。
当系统重新启动时,这个目录下的文件都将被删除。

9、/usr -(Unix Software Resource)Unix操作系统软件资源放置的目录
所有系统默认的软件都会放置到/usr底下,包含二进制文件、库文件、文档和二级程序的源代码。
/usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。(跟/sbin和/bin的区别是非必备的)
这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime

10、/home -普通用户家目录
所有普通用户用home目录来存储他们的个人档案。
例如:/home/john、/home/nikita

11、/root -root用户家目录

12、/boot - 引导加载程序文件目录
包含引导加载程序相关的文件。
内核的initrd、vmlinux、grub文件位于/boot下。
例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic

13、/lib - 系统库
用于存放程序的动态库和模块文件

14、/opt - 可选的附加应用程序安装目录
opt代表可选的。
包含从个别厂商的附加应用程序。
附加应用程序应该安装在/opt/或者/opt/的子目录下。

14、/mnt - 挂载目录
系统管理员可以挂载其他临时文件系统。

15、/media - 可移动媒体设备
用于挂载可移动设备的临时目录。
举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;

16、/srv - 服务数据目录
srv代表服务。存放服务进程所需的数据文件和一些服务执行脚本
例如,/srv/cvs包含cvs相关的数据

二、文件操作命令

查看文件内容

  • cat    (针对小文件查看,不能看目录的内容)
    cat     [选项]    文件名

  • more  [选项]  文件名    (全屏方式分页显示文件内容)
    按enter逐行滚动
    按空格键向下翻一屏
    按b键向上翻一屏
    按q键退出

  • less  [选项]  文件名
    按pageup键向上翻一页,pagedown键向下翻
    “/ “查找内容,” n “对查找的内容进行向下查看,” N "对查找的内容进行向上查看

  • head:查看文件开头的一部分内容(默认为10行)
    head   -n  文件名    (查看前n行内容)

  • tail:查看后几行
    tail  -n  文件名
    tail  -f  文件名    (显示文件最尾部内容,并且不断刷新,只要文件更新就可以看到文件内容,ctrl+c 中断,可用于查看日志内容)
    :tali  -f  /var/log/messages

统计文件内容
wc  -l  文件名    (统计文件中内容的行数)
wc  -w  文件名    (统计文件中内容的单词数量)
wc  -c  文件名    (统计文件中内容的字节数)
wc   -wlc  文件名  (得到的是行数、单词数、字节数,顺序是固定的,与wlc顺序无关)

检索和过滤文件内容:grep  (在文件中查找并显示包含指定字符串的 “行”)
grep  [选项]  查找条件  目标文件

检索:查找含有***的内容:
grep  -i   “ *** ”  文件名    (-i 代表查找时忽略大小写,根据需要添加)

过滤:-v  查找时输出与查找条件不相符的行
grep  -v  “ ^…"   文件名 grep  -v  (过滤掉以…开头的行数。)
grep  -v   ” …$ "grep  -v  文件名 grep  -v  (表示过滤掉以…结尾的行)

多级过滤:条件之间用 | 分隔
:grep  -v   ^#     /etc/ntp.conf | grep -v   ^$ | grep   -v   ^sever
(逐级过滤了文件ntp.conf中以 # 开头的行、空行、以sever开头的行)

压缩文件命令(不能压缩目录):gzip   bzip2

压缩:-9代表深度压缩

  • gzip   [-9]   文件名
  • bzip2   [-9]   文件名

解压缩:必须加文件名的后缀

  • gzip   -d   文件名.gz      等价于gunzip   文件名.gz

  • bzip2   -d   文件名.bz2      等价于bunzip2   文件名.bz2

归档命令:tar(对目录或文件打包)
tar   [选项]   归档文件名   源文件或目录,用空格隔开
tar   [选项]   归档文件名   [-C   目标目录]

-c:建立打包文件
-t:查看打包文件内容
-x:解压缩
-j:解压缩.bz2的文件
-z:解压缩.gz的文件
-v:显示压缩解压缩的过程
-f:要处理的文件名
-p:保留源文件属性不变

tar   zcf   123.tar.gz   /root   /etc
123是自定义的文件名,.tar.gz,是必须要的后缀,将/root和/etc打包并压缩成 123.tar.gz

tar    zxf   123.tar.gz  -C  /
将123.tar.gz解压缩,并指定到 / 目录下,之前打包的文件123.tar.gz依旧存在

如果需要.tar.bz2,文件,则选项变为 jcf  和 jxf。