操作系统
- Linux进程间通信方式:Socket、共享内存、消息队列、信号量
- epoll、select、poll
Tcpdump
- linux tcpdump:根据使用者的定义对网络上的数据包进行截获的包分析工具.tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
- 默认启动: tcpdump
- 监听指定网络接口的数据包: tcpdump -i eth0
- 监听制定主机的数据包:tcpdump host HostName
- tcpdump host helios and ( hot or ace )
监听helios和hot或ace通信的数据包
- tcpdump ip host 210.27.48.1 and ! 210.27.48.2
获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
- tcpdump -i eth0 src host HostName
截获主机HostName发送的所有数据包
- tcpdump -i ethic dst host HostName
截获主机HostName接收的所有数据包
- tcpdump tcp port 23 and host 210.27.48.1
获取主机210.27.48.1接收或发出的telnet包
常用命令
- free 查看内存使用情况
- df 查看硬盘负载情况
- tar
- -c 压缩
- -x 解压
- -r 向压缩归档文件末尾追加文件
- -t 查看内容
- -u 更新原压缩包中的文件
- -v 显示所有过程
- -f 必须有的参数,后接档案名
- 以下为独立的命令,解压或压缩
- -z 带gzip属性
- -j 带bz2属性
- -Z 带compress属性
- -O 将文件解压到标准输出
- usermod(选项)(参数):参数若为两个,顺序一般为 usermod (选项) 目标参数 原始参数
-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s:修改用户登入后所使用的shell;
-u:修改用户ID;
-U:解除密码锁定。
配置文件
-
/etc/fstab
windows的文件结构是多个并列的树状结构,最顶部是不同的磁盘分区,如C/D/E盘,而linux的文件结构是单个的树状结构,最顶部是根目录:/,其他的如:/home、/boot等。Linux的分区必须挂载到具体的目录才可以进行读写操作,而fstab正是负责这一配置。
- 默认情况下,fstab中已经有了当前的分区配置,内容可能类似:
<file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda1 / ext3 errors=remount-ro 0 1
/swapfile swap swap defaults 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
由上面的内容可以看出,系统的 /dev/hda1 分区被挂载在根目录,文件系统是ext3。此外,还有proc、swap等特殊的“分区”,与 /dev/hdc 被作为光驱挂载在了 /media/cdrom0
因此,如果希望将新分区 /dev/hda5 挂载在 /home/new 目录下,则只需在fstab文件中加入一行:
/dev/hda5 /home/new ext3 default 0 1
即可。- 第一列是分区名,第二列是挂载点,第三列是此分区的文件系统类型
- 第四列是挂载的选项
auto: 系统自动挂载,fstab默认就是这个选项
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 开机不自动挂载
nouser 只有超级用户可以挂载
ro 按只读权限挂载
rw 按可读可写权限挂载
user 任何用户都可以挂载
请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto
crontab
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
用* 表示 时
第1列时:表示每分钟都要执行一次,
第2列时:表示每小时都要执行一次,依次类推,
-
iptables防火墙可用于创建filter和NAT规则
iptables结构:iptables->tables->chains->rules
iptables有四种内建表:Filter表、NAT表、Mangle表、RAW表- Filter表
Filter是iptables的默认表,具有三种内建链
- INPUT:处理来自外部的数据包
- OUTPUT:处理发送到外部的数据包
- FORWARD:将数据转发到本机的其他网卡设备- NAT表
NAT表有三种内建链
- PREROUTING:处理刚到达本机并在路由转发前的数据包,它会转换数据包中的目的地址,通常用于DNAT(destination NAT)
- POSTROUTING:处理即将离开本机的数据包。它会转换数据包中的源IP地址,通常用于SNAT(soure NAT)
- OUTPUT:处理本机产生的数据包- Mangle表,用于指定如何处理数据包。它能改变TCP头中的Qos位,有5中内建链
PREROUTING/OUTOUT/FORWRAD/INPUT/POSTROUTING chains
- Raw表,用于处理异常,有2个内建链,PREROUTING/OUTPUT chains
- 系统调用
- fork()
一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和进程空间,然后把原来进程的所有值复制到新进程中,只有少数值与原来进程不同。相当于克隆了一个自己。