启动区之后的是超级区(Super block)。它存储有文件系统的相关信息,包括文件系统的类型,inode的数目,数据块的数目。
随后是多个inodes,它们是实现文件存储的关键。在Linux系统中,一个文件可以分成几个数据块存储每个文件对应一个inode。这个inode中包含多个指针,指向属于该文件各个数据块。当操作系统需要读取文件时,只需要对应inode的"地图",收集起分散的数据块,就可以收获我们的文件了。
floralin@ubuntu:~$ ls -al
1)第一栏代表这个文件的类型与权限(permission):
第一个字符d则是目录,当为-则是文件,若是[ l ]则表示为连结档(link file),是b则表示为装置文件里面的可供储存的接口设备(可随机存取装置),若是c则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,均为rwx三个参数组合,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。第一组为文件拥有者的权限,第二组为同群组的权限,第三组为其他非本群组的权限。
2)第二栏表示多少个档名连结到此节点
3)第三栏表示文件的拥有帐号
4)第四栏表示这个文件所属群组
5)第五栏表示这个文件的容量大小,默认单位为bytes
6) 第六栏表示这个文件的建档日期或是最近的修改日期
floralin@ubuntu:~/Desktop/linux_study$ mkdir test floralin@ubuntu:~/Desktop/linux_study$ ls test
删除空文件夹
floralin@ubuntu:~/Desktop/linux_study$ rm test rm: cannot remove ‘test’: Is a directory floralin@ubuntu:~/Desktop/linux_study$ rmdir test floralin@ubuntu:~/Desktop/linux_study$ ls
改变文件属性与权限
chgrp :改变文件所属群组 chown :改变文件拥有者 chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
改变文件所属群组
floralin@ubuntu:~/Desktop/linux_study$ sudo chgrp users linux_study
floralin@ubuntu:~/Desktop/linux_study$ sudo chown root linux_study
floralin@ubuntu:~/Desktop/linux_study$ sudo chmod 755 linux_study
更改文件的权限为755: owner r+w+x, group: r+x, others: r+x
文件显示
$cat filename : 显示文件 $cat file1 file2 : 连接显示file1和file2 $head -1 filename :显示文件第一行 $tail -5 filename : 显示文件倒数第五行 $diff file1 file2 :显示file1和file2的差别
floralin@ubuntu:~/Desktop/linux_study$ wc test2 6 15 71 test2
显示日期
$date +"%Y-%m-%d_%T" 以YYYY-MM-DD_HH:MM:SS的格式显示日期时间 (格式可参考$man date) $date --date="1999-01-03 05:30:00" 显示从1900-01-03 05:30:00具体信息
网络
显示网络借口以及相应的IP地址。ifconfig可用于设置网络接口:
floralin@ubuntu:~/Desktop/linux_study$ ifconfig
运行eth0接口
floralin@ubuntu:~/Desktop/linux_study$ sudo ifup eth0
关闭eth0接口
floralin@ubuntu:~/Desktop/linux_study$ sudo ifdown eth0
显示无线网络接口
floralin@ubuntu:~/Desktop/linux_study$ iwconfig
显示路由表。route可用于修改路由表
floralin@ubuntu:~/Desktop/linux_study$ iwconfig
当前网络连接状态
floralin@ubuntu:~/Desktop/linux_study$ netstat
发送ping包到地址IP
floralin@ubuntu:~/Desktop/linux_study$ ping 10.21.171.15
向DHCP主机发送DHCP请求,以获得IP地址以及其他设置信息
floralin@ubuntu:~/Desktop/linux_study$ sudo dhclient
使用wget 下载url指向的资源
floralin@ubuntu:~/Desktop/linux_study$ sudo dhclient
DNS查询,寻找域名domain对应的ip
floralin@ubuntu:~/Desktop/linux_study$ sudo dhclient
floralin@ubuntu:~/Desktop/linux_study$ gzip test
floralin@ubuntu:~/Desktop/linux_study$ gzip -d test
[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩! [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩 [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src [root@linux src]# tar -zxvf /tmp/etc.tar.gz
floralin@ubuntu:~$ ps -eo pid,comm,cmd
-e代表列出全部进程,-o pid,comm,cmd代表我们需要pid,comm和cmd信息。
每一行代表一个进程,三列的信息分别代表,每一行进程的唯一PID表示、COMMAND是进程的简称、CMD是进程所对应的程序以及运行时所带的参数(对于使用使用[ ]的,是kernel的一部分功能,被打扮成进程的样子,方便操作系统管理)。
如何创建进程
实际上计算机在开机的时候,内核kernel只建立了一个init进程,linux kernel是并不直接建立新进程的系统调用。所有的进程是通过fork机制建立的。(fork,新的进程需要通过的的进程复制自身得到)。当进程fork的时候,linux在内存中开辟出一片新的内存空间给新的进程,并将老的进程空间中的内容复制到新的空间中,从此两个进程同时运行。可以通过pstree命令来显示整个进程树:
子进程的终结
当子进程终结时,会通知父进程清空自己所占据的内存,并在kernel中留下自己退出信息。
父进程在得知子进程终结时,会对该子进程使用wait系统调用。这个wait函数能从kernel中取出子进程的退出信息,并清空该信息在kernel中所占据的空间。
但是,如果父进程早于子进程终结,子进程就会成为一个孤儿(orphand)进程。孤儿进程会被过继给init进程,init进程也就成了该进程的父进程。init进程负责该子进程终结时调用wait函数。
$kill -SIGCONT 9575
传递SIGCONT信号给ping进程。