当前位置:系统粉 >  系统教程 > 电脑软件教程 >  Linux系统文件、目录与磁盘格式 学习笔记

Linux系统文件、目录与磁盘格式 学习笔记

时间:2015-12-20 来源:互联网 浏览量:

  有趣的是,因为托瓦茨放置内核的那个FTP网站的目录为Linux,从此,大家便称这个内核为Linux了

  对目录有执行权限(x)才能切换到目录内。

  向上翻页: shift+PgUp 向下翻页:shift+PgDn

  若你的执行文件放置在本目录并且本目录并非正规的执行文件目录(/bin、/usr/bin 等为正规)

  ,此时要执行命令就得要严格指定该执行文件。(./)

  特殊目录:

  .代表次层目录

  .. 代表上一层目录

  - 代表前一个工作目录

  ~ 代表“目前用户身份”所在的主文件夹

  ~account 代表 account 这个用户的主文件夹(account是个账号名称)

  cp -s 符号连接 (symbolic link)

  cp -l 硬链接 (hard link)

  查看文件的命令:

  纯文本文件:

  cat

  tac

  nl

  more

  less

  head

  tail

  非纯文本文件:

  od

  十进制,八进制和十六进制互化应以二进制作为桥梁

  用户创建文件的默认权限为:- rw- rw- rw-

  用户创建目录的默认权限为:d rwx rwx rwx

  又因为

  root: umask: 0022 (--- -w- -w-) (不同用户有不同的umask)

  一般用户: umask: 0002 (--- --- -w-)

  所以

  新建一个文件的权限为: root: (rw- rw- rw-) - (--- -w- -w-) = (rw- r-- r--)

  一般用户: (rw- rw- rw-) - (--- --- -w-) = (rw- rw- r--)

  新建一个目录的权限为:root: (rwx rwx rwx) - (--- -w- -w-) = (rwx r-x r-x)

  一般用户: (rwx rwx rwx) - (--- --- -w-) = (rwx rwx r-x)

  文件隐藏属性: chattr lsattr

  文件特殊权限:SUID、 SGID、 SBIT

  SUID不能用在目录上、SBIT不能用在文件上

  寻找命令文件:which (在用户自己的PATH变量中寻找)

  type (在bash内置命令中寻找)

  寻找普通文件:whereis (在文件数据库中查找)

  locate (在文件数据库中查找 updatedb根据/etc/updatedb.conf的设置

  去查找系统硬盘内的文件名,并更新/var/lib/mlocate内的数据库文件)

  find (在硬盘中查找,本身可以查找子目录)

  “;”在bash中是有特殊意义的,所以利用反斜杠来转义

  一个block中可以有 单个block大小/128byte 个inode

  df 调出目前挂载的设备

  dumpe2fs 查询每个区段与superblock的信息

  查看linux支持的文件系统:ls -l /lib/modules/$ (uname -r) (distruction版本信息)/kernel/fs

  查看系统目前已加载到内存中支持的文件系统:cat /proc/filesystems

  df:列出文件系统的整体磁盘使用量;

  du:评估文件系统的磁盘使用量(常用于评估目录所占容量)

  创建实际连接:ln 源文件

  创建符号连接: ln -s 目标文件

  当我们新建一个新的目录时,新的目录的连接数为2,而上层目录的连接数则会增加1

  磁盘分区:

  fdisk 硬盘文件名称 只有root可以操作

  partprobe 强制让内核重新找一次分区表

  磁盘格式化:

  mkfs (按两下[Tab]可以看到Linux支持的文件系统格式化软件)

  没有特殊需求就使用:mkfs -t ext3 ...

  Ext2/Ext3的公用程序:mke2fs

  磁盘检验:

  fsck 只有root在单用户模式下操作,且被检查的分区务必要处于卸载状态

  (按两下[Tab]可以看到Linux支持的文件系统检验软件)

  badblocks 可用mke2fs -c 设备文件名替代

  磁盘挂载:

  mount 设备文件名 挂载点

  重新挂载根目录:mount -o remount,rw,auto/

  挂载不特定目录:mount -bind /home /mnt/home

  使用 Label name 进行挂载:mount -L "xxxx" /mnt/hdc6

  卸载:unmount 设备文件名或挂载点

  /etc/filesystems: 系统指定的测试挂载文件系统类型;

  /proc/filesystems: Linux系统已经加载的文件系统类型;

  /lib/modules/$ (unmae-r) /kernel/fs/: Linux支持的文件系统的驱动程序

  硬盘参数修改:

  修改设备文件:

  mknod 设备文件名 [bcp] [Major] [Minor]

  主设备代码(Major)

  此设备代码(Minor)

  修改卷标:

  e2label 设备文件名 新的Label名称

  将Ext2的文件系统转换为Ext3的文件系统:

  tune2fs [-jlL] 设备文件名

  设置硬盘参数:(只对IDE接口的硬盘有效)

  hdparm [-icdmXTt] 硬盘文件名称

  开机挂载:

  /etc/fstab -> /etc/mtab, /proc/mounts

  如果修改/etc/fatab错误,可用如下命令解决:

  mount -n -o remount,rw /

  不刻录就读取/修改镜像文件的内容:

  mount -o loop 镜像文件名 挂载点

  新建大文件以制作loop设备文件:

  dd if=/dev/zero of=/home/loopdev bs=1M count=512

  ll -h /home/loopdev

  mkfs -t ext3 /home/loopdev

  mount -o loop /home/loopdev /media/cdroom

  df

  内存交换空间的构建:

  使用物理分区构建swap:

  fdisk /dev/sda

  partprobe

  mkswap /dev/sda6

  free

  swapon /dev/sda6

  free

  swapon -s

  使用文件构建swap:

  dd if=/dev/zero of=/tmp/swap bs=1M count=128

  ll -h /tmp/swap

  mkswap /tmp/swap

  free

  swapon /tmp/swap

  free

  swapon -s

  swapoff /tmp/swap

  swapoff /dev/sda6

  free

  查看文件内容占用空间:

  du -sb /etc

  查看文件实际占用空间:

  du -sm /etc

  如果有大于2TB以上的磁盘,就用parted命令进行分区

  在Linux环境中,压缩文件的扩展名大多是

  *.Z compress程序压缩的文件

  *.gz gzip程序压缩的文件

  *.bz2 bzip2程序压缩的文件

  *.tar tar程序打包的数据,并没有压缩过

  *.tar.gz tar程序打包的文件,其中经过gzip的压缩

  *.tar.bz2 tar程序打包的文件,其中经过bzip2的压缩

  压缩命令:

  压缩:ncompress [-rcv] 文件名或目录

  解压缩:uncompress *.Z

  压缩:gzip [-cdtv#] 文件名(如果是目录,则指的是将目录内的所有文件“分别”进行压缩)

  解压缩:gzip -d 文件

  zcat可以读取纯文本被compress与gzip压缩后的压缩文件。

  使用gzip压缩的文件在Windows系统中,可以被WinRAR解压缩

  压缩:bzip2 [-cdtv#] 文件名(如果是目录,则指的是将目录内的所有文件“分别”进行压缩)

  解压缩:bzip2 -d 文件 / bunzip2 文件,可以解压的压缩文件后缀为:.bz .bz2 tbz tbz2

  bzcat可以读取被bzip2压缩后的压缩文件

  打包命令:

  由于tar的使用太广泛,目前Windows的WinRAR也支持.tar.gz的解压缩

  tar:

  打包:

  tar -zpcv -f /root/etc.tar.gz /etc

  tar -jpcv -f /root/etc.tar.bz2 /etc (推荐,压缩比更高)

  查看:

  tar -jtv -f /root/etc.tar.bz2

  解打包:

  tar -jxv -f /root/etc.tar.bz2 -C /tmp

  解开打包文件内的其中一个文件:

  tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'

  (grep为选取关键字)

  tar -jxv -f 打包文件.tar.bz2 待解开文件名

  tar -jxv -f /root/etc.tar.bz2 etc/shadow

  打包某目录,但不含该目录下的某些文件的做法:

  tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2 /etc /root

  仅备份比某个时刻还要新的文件:

  find /etc -newer /etc/passwd

  ll /etc/passwd

  tar -jcv -f /root/etc.newer.than.passwd/tar.bz2 --newer-mtime="2008/08/05" /etc/*

  tarfile:仅是打包

  tarball:打包又压缩

  备份到磁带机:

  tar -cv -f /dev/st0 /home /root /etc

  将 /etc 整个目录一边打包一边在 /tmp 中解开

  cd /tmp

  tar -cvf - /etc | tar -xcf -

  用dump备份完整的文件系统:

  df -h

  先测试一下如果需要备份此文件系统需要多少容量:

  dump -S /dev/sda1

  将完整备份的文件名记录成为/root/boot.dump,同时更新记录文件:

  dump -0u -f /root/boot.dump /boot

  ll /root/boot.dump /etc/dumpdates

  cat /etc/dumpdates

  新建 level1 的备份:

  看一下有没有任何文件系统被 dump 过的数据

  dump -W

  dd if=/dev/zero of=/boot/testing.img bs=1M count=10

  使用 level1 备份:

  dump -1u -f /root/boot.dump.1 /boot

  ll /root/boot*

  dump -W

  用dump备份非文件系统,即单一目录的方法:

  dump -0j -f /root/etc.dump.bz2 /etc

  用restore查看dump后的备份数据内容:

  restore -t -f /root/boot.dump

  restore -t -f /root/etc.dump

  比较差异并且还原整个文件系统:

  cd /boot

  mv config-2.6.18-128.el5 config-2.6.18-128.el5-back

  restore -C -f /root/boot.dump

  mv config-2.6.18-128.el5-back config-2.6.18-128.el5

  cd /root

  fdisk /dev/hdc

  n

  p

  w

  partprobe

  mkfs -t ext3 /dev/hdc8

  mount /dev/hdc8 /mnt

  cd /mnt

  restore -r -f /root/boot.dump

  仅还原部分文件的restore互动模式

  cd /mnt

  restore -i -f /root/etc.dump

  help

  ls

  cd etc

  pwd

  1s passwd shadow group

  add passwd shadow group

  delete group

  ls passwd shadow group (又要被解压缩的,文件名之前会出现*)

  extract

  quit

  ll -d etc

  ll etc

  光盘写入工具:

  新建镜像文件: mkisofs

  不使用-graft-point:

  mkisofs -r -v -o /tmp/system.img /root /home /etc

  ll -h /tmp/system.img

  mount -o loop /tmp/system.img /mnt

  df -h

  ls /mnt

  umount /mnt

  使用-graft-point:

  mkisofs -r -v 'linux_file' -o /tmp/system.img -m /home/lost+found -graft-point /root=/root /home=/home /etc=/etc

  ll -h /tmp/system.img

  mount -o loop /tmp/system.img mnt

  ll /mnt

  umount /mnt

  刻录光盘:cdrecord

  检测刻录机所在位置:

  cdrecord -scanbus dev=ATA

  进行CD的刻录操作:

  先抹除光盘的原始内容:(非可重复读写则可略过此步骤)

  cdrecord -v DEV=ATA:1,1,0 blank=fast

  开始刻录:

  cdrecord -v dev=ATA:1,1,0 fs=8m -dumy -data /tmp/system.img

  刻录完毕后,测试挂载:

  mount -t iso9660 /dev/cdrom /mnt

  df -h /mnt

  ll /mnt

  umount /mnt

  进行DVD-RW的刻录操作:

  先抹除原本内容:

  cdrecord -v dev=ATA:1,1,0 blank=fast

  开始写入DVD,请注意,有些参数与CD不同:

  cdrecord -v dev=ATA:1,1,0 fs=8m -data -sao driveropts=burnfree /tmp/system.img

  挂载测试:

  mount /dev/cdrom /mnt

  df -h /mnt

  umount /mnt

  其他常用的压缩与备份工具:

  dd:

  将/etc/passwd 备份到 /tmp/passwd.back当中:

  dd if=/etc/passwd of=/tmp/passwd.back

  ll /etc/passwd /tmp/passwd.back

  将磁盘第一个扇区备份下来:

  dd if=/dev/hdc if=/tmp/mbr.back bs=512 count=1

  找出最小的分区,并备份:

  df -h

  dd if=/dev/hdcl of=/tmp/boot.whole.disk

  ll -h /tmp/boot.whole.disk

  cpio:

  将/boot下的文件备份到/tmp/boot.cpio:

  find /boot -print

  find /boot | cpio -ocvB > /tmp/boot.cpio

  ll -h /tmp/boot.cpio

  将刚才的文件在/root/目录下解开:

  cd /root

  cpio -idvc < /tmp/boot.cpio

  ll -h /root/boot.cpio

我要分享:
版权信息

Copyright @ 2011 系统粉 版权声明 最新发布内容 网站导航