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 ——不使用别名。