Linux学习(2)——根文件系统详解


Linux:ELF文件:可执行文件的存储格式。可执行的、可链接的文件类型。

Windows上是:PE  可移植的。


文件系统:

rootfs:根文件系统。


FHS:文件系统层级标准

[root@beny ~]# ls /
bin   dev  home  lib64       media  mnt  opt   root  selinux  sys       tmp  var
boot  etc  lib   lost+found  misc   net  proc  sbin  srv      tftpboot  usr


/boot:系统启动相关文件,如内核、initrd(初始化内存磁盘)、grub(bootloader)

[root@beny ~]# ls /boot
config-2.6.18-308.el5      lost+found                 vmlinuz-2.6.18-308.el5
grub                       symvers-2.6.18-308.el5.gz
initrd-2.6.18-308.el5.img  System.map-2.6.18-308.el5


/dev:device 设备文件

       两种类型:块设备——随机访问的设备,数据块(硬盘等)

                         字符设备——线性访问的设备,按字符为单位逐个访问。(键盘,显示器)

  特殊文件无大小,以设备号存储

主设备号(major)和次设备号(minor)。

[root@beny ~]# ls -l /dev
总计 0
crw-rw---- 1 root audio  14,   12 03-25 06:14 adsp
crw------- 1 root root   10,  175 03-25 06:14 agpgart
crw-rw---- 1 root audio  14,    4 03-25 06:14 audio
crw------- 1 root root   10,   59 03-25 06:15 autofs
drwxr-xr-x 3 root root         60 03-25 06:14 bus
lrwxrwxrwx 1 root root          3 03-25 06:14 cdrom -> sr0          //链接到同一个
lrwxrwxrwx 1 root root          3 03-25 06:14 cdrom-sr0 -> sr0
lrwxrwxrwx 1 root root          3 03-25 06:14 cdrw -> sr0
lrwxrwxrwx 1 root root          3 03-25 06:14 cdrw-sr0 -> sr0
lrwxrwxrwx 1 root root          3 03-25 06:14 cdwriter -> sr0
lrwxrwxrwx 1 root root          3 03-25 06:14 cdwriter-sr0 -> sr0
crw------- 1 root root    5,    1 03-25 23:26 console
lrwxrwxrwx 1 root root         11 03-25 06:14 core -> /proc/kcore
drwxr-xr-x 6 root root        120 03-25 06:14 cpu
crw------- 1 root root   10,   63 03-25 06:14 cpu_dma_latency
drwxr-xr-x 5 root root        100 03-25 06:14 disk
crw-rw---- 1 root root   14,    9 03-25 06:14 dmmidi
crw-rw---- 1 root audio  14,    3 03-25 06:14 dsp
lrwxrwxrwx 1 root root          3 03-25 06:14 dvd -> sr0
lrwxrwxrwx 1 root root          3 03-25 06:14 dvdrw -> sr0
lrwxrwxrwx 1 root root          3 03-25 06:14 dvdrw-sr0 -> sr0
lrwxrwxrwx 1 root root          3 03-25 06:14 dvd-sr0 -> sr0
lrwxrwxrwx 1 root root          3 03-25 06:14 dvdwriter -> sr0
lrwxrwxrwx 1 root root          3 03-25 06:14 dvdwriter-sr0 -> sr0
lrwxrwxrwx 1 root root         13 03-25 06:14 fd -> /proc/self/fd
crw-rw-rw- 1 root root    1,    7 03-25 06:14 full
srwxrwxrwx 1 root root          0 03-25 06:15 gpmctl
crw------- 1 root root  253,    0 03-25 06:14 hidraw0
crw------- 1 root root   10,  228 03-25 06:14 hpet
prw------- 1 root root          0 03-25 23:26 initctl
drwxr-xr-x 2 root root        180 03-25 06:14 input
crw------- 1 root root    1,   11 03-25 06:14 kmsg
srw-rw-rw- 1 root root          0 03-25 06:15 log
brw-r----- 1 root disk    7,    0 03-25 06:14 loop0
brw-r----- 1 root disk    7,    7 03-25 06:14 loop7
lrwxrwxrwx 1 root root         13 03-25 06:14 MAKEDEV -> /sbin/MAKEDEV
drwxr-xr-x 2 root root        100 03-25 06:14 mapper
crw------- 1 root root   10,  227 03-25 06:14 mcelog
brw-r----- 1 root disk    9,    0 03-25 06:14 md0
crw-r----- 1 root kmem    1,    1 03-25 06:14 mem
crw-rw---- 1 root audio  14,    2 03-25 06:14 midi
crw-rw---- 1 root audio  14,    0 03-25 06:14 mixer
drwxr-xr-x 2 root root         60 03-25 06:14 net
crw------- 1 root root   10,   62 03-25 06:14 network_latency
crw------- 1 root root   10,   61 03-25 06:14 network_throughput
crw-rw-rw- 1 root root    1,    3 03-25 06:14 null
crw-rw---- 1 root root   10,  144 03-25 06:14 nvram
crw------- 1 root root    1,   12 03-25 06:14 oldmem
crw-rw---- 1 root lp     99,    0 03-25 06:14 parport0
crw-r----- 1 root kmem    1,    4 03-25 06:14 port
crw------- 1 root root  108,    0 03-25 06:14 ppp
crw-rw-rw- 1 root tty     5,    2 04-06 22:50 ptmx
drwxr-xr-x 2 root root          0 03-25 06:13 pts
lrwxrwxrwx 1 root root          4 03-25 06:14 ram -> ram1
brw-r----- 1 root disk    1,    0 03-25 06:13 ram0
brw-r----- 1 root disk    1,    1 03-25 06:13 ram1
brw-r----- 1 root disk    1,   10 03-25 06:13 ram10
brw-r----- 1 root disk    1,    9 03-25 06:13 ram9
lrwxrwxrwx 1 root root          4 03-25 06:14 ramdisk -> ram0
crw-rw-rw- 1 root root    1,    8 03-25 06:14 random
crw------- 1 root root  162,    0 03-25 06:14 rawctl
brw------- 1 root root  253,    0 03-25 06:14 root
crw-r--r-- 1 root root   10,  135 03-25 06:13 rtc
lrwxrwxrwx 1 root root          3 03-25 06:14 scd0 -> sr0
brw-r----- 1 root disk    8,    0 03-25 06:14 sda
brw-r----- 1 root disk    8,    1 03-25 06:14 sda1
brw-r----- 1 root disk    8,    2 03-25 06:14 sda2
crw-rw---- 1 root audio  14,    1 03-25 06:14 sequencer
crw-rw---- 1 root audio  14,    8 03-25 06:14 sequencer2
crw------- 1 root root   21,    0 03-25 06:14 sg0
crw------- 1 root root   21,    1 03-25 06:14 sg1
drwxrwxrwt 2 root root         40 03-25 06:14 shm
crw------- 1 root root   10,  231 03-25 06:14 snapshot
drwxr-xr-x 2 root root        180 03-25 06:14 snd
brw-rw---- 1 root disk   11,    0 03-25 06:14 sr0
lrwxrwxrwx 1 root root         15 03-25 06:14 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root         15 03-25 06:14 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root         15 03-25 06:14 stdout -> /proc/self/fd/1
crw------- 1 root root    4,    0 03-25 06:13 systty
crw-rw-rw- 1 root tty     5,    0 03-25 06:14 tty
crw-rw---- 1 root root    4,    0 03-25 06:13 tty0
crw-rw---- 1 root root    4,    7 03-25 06:13 tty7
crw-rw---- 1 root tty     4,    8 03-25 06:14 tty8
crw-rw---- 1 root tty     4,    9 03-25 06:13 tty9
crw-rw---- 1 root uucp    4,   64 03-25 06:13 ttyS0
cr--r--r-- 1 root root    1,    9 03-25 06:13 urandom
crw------- 1 root root  442,    0 03-25 06:14 usbdev1.1_ep81
crw------- 1 root root  442, 2048 03-25 06:14 usbdev2.1_ep00
crw------- 1 vcsa tty     7,    6 03-25 22:16 vcs6
crw------- 1 vcsa tty     7,    7 03-25 22:16 vcs7
crw------- 1 vcsa tty     7,    8 03-25 06:14 vcs8
crw------- 1 vcsa tty     7,  128 03-25 06:14 vcsa
crw------- 1 vcsa tty     7,  136 03-25 06:14 vcsa8
drwxr-xr-x 2 root root         80 03-25 06:14 VolGroup00
lrwxrwxrwx 1 root root          4 03-25 06:14 X0R -> null
crw-rw-rw- 1 root root    1,    5 03-25 06:14 zero


/etc:配置文件。

[root@beny ~]# ls /etc
a2ps.cfg               dumpdates             ldap.conf       pango           scim
a2ps-site.cfg          enscript.cfg          ld.so.cache     passwd          scrollkeeper.conf
acpi                   environment           ld.so.conf      passwd-         scsi_id.config
adjtime                esd.conf              ld.so.conf.d    pcmcia          securetty
alchemist              exports               lftp.conf       php.d           security
aliases                fb.modes              libaudit.conf   php.ini         selinux
aliases.db             filesystems           libuser.conf    pinforc         services
alsa                   fonts                 localtime       pki             sestatus.conf
alternatives           foomatic              login.defs      pm              setroubleshoot


/home:用户家目录。默认家目录通常为/home/USERNAME

/root:在根目录下,root用户的家目录。

/lib:库文件——静态库, .a   链接到程序的地址空间中,作为程序的一部分。

[root@beny ~]# file /lib/libc-2.5.so 
/lib/libc-2.5.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, not stripped
[root@beny ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), stripped

                          动态库, .dll, .so(shared object)共享库。载入内存后可以重复使用,无需重复载入。

     /lib/modules:内核模块文件

[root@beny ~]# ls /lib
bdevid                  libdevmapper-event.so.1.02    libnss_ldap-2.5.so
cpp                     libdevmapper.so               libnss_ldap.so.2
firmware                libdevmapper.so.1.02          libnss_nis-2.5.so
i686                    libdl-2.5.so                  libnss_nisplus-2.5.so
kbd                     libdl.so.2                    libnss_nisplus.so.2
ld-2.5.so               libe2p.so.2                   libnss_nis.so.2
ld-linux.so.2           libe2p.so.2.3                 libpamc.so.0
ld-lsb.so.3             libexpat.so.0                 libpamc.so.0.81.0
libacl.so               libexpat.so.0.5.0             libpam_misc.so.0
libacl.so.1             libext2fs.so.2                libpam_misc.so.0.81.2
libacl.so.1.1.0         libext2fs.so.2.4              libpam.so.0
libanl-2.5.so           libgcc_s-4.1.2-20080825.so.1  libpam.so.0.81.5
libanl.so.1             libgcc_s.so.1                 libpthread-2.5.so
libasound.so.2          libglib-2.0.a                 libpthread.so.0
libasound.so.2.0.0      libglib-2.0.so                libresolv-2.5.so
libattr.so              libglib-2.0.so.0              libresolv.so.2
libattr.so.1            libglib-2.0.so.0.1200.3       librt-2.5.so
libattr.so.1.1.0        libgmodule-2.0.a              librt.so.1
libaudit.so.0           libgmodule-2.0.so             libSegFault.s


[root@beny ~]# ls /lib/modules/
2.6.18-308.el5


/media:挂载点目录。将某个设备与当前文件系统某个目录建立关联关系——挂载。通常用于移动设备。

/mnt:挂载点目录,通常用于挂载额外的临时文件系统。

/opt:optional  可选目录。早期安装第三方应用程序。

/proc:伪文件系统。内核映射文件。内核的参数以及统计内容的映射,可以修改内核的相关内容。系统启动后才有。

[root@beny ~]# ls /proc
1     2577  2870  3247  3579  3926  4491  4575  590  619  8            ioports     self
10    2578  2876  33    3589  3928  4495  4579  591  620  9            irq         slabinfo
11    2580  2877  3344  3598  4     4497  4580  592  621  acpi         kallsyms    stat
12    2601  2990  3362  3616  4322  4501  4582  6    622  asound       kcore       swaps
13    2737  3     3395  3650  4328  4502  4584  603  623  buddyinfo    keys        sys
14    2783  30    3396  3667  4329  4505  4589  604  624  bus          key-users   sysrq-trigger
1969  2789  304   3397  3672  4330  4509  4591  605  625  cmdline      kmsg        sysvipc
1971  2790  305   3398  3700  4331  4511  4593  606  626  cpuinfo      loadavg     tty
2     2791  306   34    3709  4332  4525  4630  607  627  crypto       locks       uptime
204   2792  307   3407  3722  4333  4528  4665  608  628  devices      mdstat      version
205   2810  308   3435  3740  4376  4533  4752  609  629  diskstats    meminfo     vmcore
206   2828  309   3457  3749  4378  4537  4872  610  630  dma          misc        vmstat
207   2829  31    3469  3759  4379  4541  4873  611  631  driver       modules     zoneinfo
2084  2830  310   3478  3768  4395  4544  5     612  632  execdomains  mounts
210   2835  311   3484  3801  4427  4545  514   613  638  fb           mpt
212   2842  32    3513  3818  4430  4547  580   614  659  filesystems  mtrr
2159  2843  3216  3551  3842  4459  4553  581   615  682  fs           net
23    2844  3218  3561  3862  4461  4555  582   616  7    ide          partitions
2575  2845  3235  3570  3863  4469  4565  588   617  713  interrupts   schedstat
2576  2850  3244  3571  3923  4471  4572  589   618  746  iomem        scsi


/sys:伪文件系统。跟硬件设备相关的属性映射文件。通常用于对设备的管理。比如修改磁盘I/O调度队列。系统启动后才有内容。

[root@beny ~]# ls /sys
block  bus  class  devices  firmware  fs  kernel  module  power


/tmp:临时文件。一些公共的临时文件。一般一个月没有被访问过就会被删除。

[root@beny ~]# ls -ld /tmp
drwxrwxrwt 10 root root 4096 04-06 22:25 /tmp


[root@beny ~]# ls /tmp
gconfd-root     scim-bridge-0.3.0.lockfile-0@localhost:0.0  scim-socket-frontend-root
keyring-4EklPP  scim-bridge-0.3.0.socket-0@localhost:0.0    ssh-bADrWT4395
mapping-root    scim-helper-manager-socket-root             virtual-root.qCuVcP
orbit-root      scim-panel-socket:0-root


/var:可变化的文件。

[root@beny ~]# ls /var/
account  crash  db     games  lib    lock  mail  opt       racoon  spool  tux  yp
cache    cvs    empty  gdm    local  log   nis   preserve  run     tmp    www


[root@beny ~]# ls /var/run/
acpid.socket      cupsd.pid      klogd.pid       pm                   sm-client.pid
atd.pid           dbus           lvm             ppp                  sshd.pid
audispd_events    gdm.pid        mdadm           restorecond.pid      sudo
auditd.pid        gpm.pid        mdmpd           rhsm                 syslogd.pid
autofs.fifo-misc  haldaemon.pid  messagebus.pid  rpc.statd.pid        utmp
autofs.fifo-net   hpiod.pid      netreport       saslauthd            winbindd
avahi-daemon      hpiod.port     NetworkManager  sdp                  wpa_supplicant
console           hpssd.pid      nscd            sendmail.pid         xfs.pid
crond.pid         hpssd.port     pcscd.comm      setrans              xinetd.pid
cron.reboot       iscsid.pid     pcscd.pid       setroubleshoot
cups              iscsiuio.pid   pcscd.pub       setroubleshootd.pid


/bin:binary 可执行文件,用户命令。

[root@beny ~]# ls /bin
alsacard              dbus-uuidgen   gunzip           mknod            rpm            traceroute
alsaunmute            dd             gzip             mktemp           rvi            traceroute6
arch                  df             hostname         more             rview          tracert
awk                   dmesg          igawk            mount            sed            true
basename              dnsdomainname  ipcalc           mountpoint       setfont        umount
bash                  doexec         kbd_mode         mv               setserial      uname
cat                   domainname     kill             netstat          sh             unicode_start
chgrp                 dumpkeys       ksh              nice             sleep          unicode_stop
chmod                 echo           ksh93            nisdomainname    sort           unlink
chown                 ed             link             pgawk            stty           usleep
cp                    egrep          ln               ping             su             vi
cpio                  env            loadkeys         ping6            sync           view
csh                   ex             loadkeys.static  ps               tar            ypdomainname
cut                   false          logger           pwd              taskset        zcat
date                  fgrep          login            raw              tcptraceroute
dbus-cleanup-sockets  gawk           ls               red              tcsh
dbus-daemon           gettext        mail             redhat_lsb_init  touch
dbus-monitor          grep           mailx            rm               tracepath
dbus-send             gtar           mkdir            rmdir            tracepath6


/sbin:管理命令。

[root@beny ~]# ls /sbin/
accton                  getkey             mdassemble.static              pivot_root
addpart                 grub               mdmpd                          plipconfig
adsl-connect            grubby             mgetty                         portmap
adsl-setup              grub-install       microcode_ctl                  poweroff
adsl-start              grub-md5-crypt     mii-diag                       pppoe
adsl-status             grub-terminfo      mii-tool                       pppoe-relay
adsl-stop               halt               mingetty                       pppoe-server
agetty                  hdparm             mkbootdisk                     pppoe-sniff
alsactl                 hisaxctrl          mkdosfs                        ppp-watch
arp                     hwclock            mkdumprd                       pvscan
arping                  ibod               mke2fs                         quotacheck
audispd                 icnctrl            mkfs                           quotaoff


/usr: universal shared read-only  全局共享只读文件。

[root@beny ~]# ls /usr/
bin  etc  games  include  kerberos  lib  lib64  libexec  local  sbin  share  src  tmp  X11R6

    /usr/bin和/usr/sbin 所依赖的库如果不是公共库,那么久需要放在/usr/lib下。

    /usr/local:  第三方软件的安装路径。

          /usr/local/bin

          /usr/local/sbin

          /usr/local/lib   


命名规则:

1、文件名长度不超过255个字符;

2、不能使用“/”当文件名;

3、严格区分大小写;


目录管理:

ls

cd

pwd

mkdir:创建空目录。

      -p:父目录。自动创建父目录。

      -v:verbose 详细信息

[root@beny ~]# mkdir -pv /tmp/test/{x/m,y}     //花括号展开,还有~展开。
mkdir: 已创建目录 “/tmp/test”
mkdir: 已创建目录 “/tmp/test/x”
mkdir: 已创建目录 “/tmp/test/x/m”
mkdir: 已创建目录 “/tmp/test/y”


[root@beny ~]# mkdir /tmp/test2/{a,d}_{b,c} -pv
mkdir: 已创建目录 “/tmp/test2”
mkdir: 已创建目录 “/tmp/test2/a_b”
mkdir: 已创建目录 “/tmp/test2/a_c”
mkdir: 已创建目录 “/tmp/test2/d_b”
mkdir: 已创建目录 “/tmp/test2/d_c”


tree:查看目录树。

rmdir:删除目录。 

            只能删除空目录。

            -p:一线单传。


touch:可以用来创建文件。主要目的是修改时间戳。

         -c: 若不存在文件,也不创建文件。

         -a:仅修改最近一次访问时间戳。

         -m:仅修改最近一次的修改时间戳。

         -t:指定时间。

[root@beny ~]# touch -m -t 200001011111.11 a
[root@beny ~]# stat a

  File: “a”
  Size: 0         Blocks: 8          IO Block: 4096   一般空文件
Device: fd00h/64768d Inode: 4447821     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-04-07 00:04:37.000000000 +0800
Modify: 2000-01-01 11:11:11.000000000 +0800
Change: 2016-04-07 00:09:44.000000000 +0800


NAME
       touch - change file timestamps


stat:显示文件的状态。

NAME
       stat - display file or file system status


创建文件,可以使用文件编辑器。

文本编辑器:只是编辑成ASCII码。


Linux下的文本编辑器:nano

NAME
       nano - Nano’s ANOther editor, an enhanced free Pico clone


删除文件:

rm:  -i:交互式。仅管理员才有这个提示。

          -f:强行删除。force。

          -r:删除目录时,递归删除目录下的文件。

[root@beny ~]# type rm 
rm is aliased to `rm -i'     ——别名。


[root@beny ~]# \rm a     ——不使用别名。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值