Linux

操作系统

  • 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中已经有了当前的分区配置,内容可能类似:


    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()函数后,系统先给新的进程分配资源,例如存储数据和进程空间,然后把原来进程的所有值复制到新进程中,只有少数值与原来进程不同。相当于克隆了一个自己。

你可能感兴趣的:(Linux)