Linux的7个运行级别

0:关机
1:单用户(root,经常用来找回root密码)
2:不带NFS的多用户
3:完全多用户模式
4:系统保留,未分配
5:X11图形化界面
6:重启
修改运行级别

  1. # 临时修改
  2. init 5
  3. init 0
  4. # 永久修改
  5. /etc/inittab

开机自启动

  1. chkconfig --list iptables
  2. chkconfig --level 245 iptables off

如果是centos7

  1. systemctl enable iptables.service
  2. systemctl start iptables.service
  3. systemctl status iptable.service
  4. 如果不是rpm
  5. 把启动命令写入/etc/rc.local 注意给脚本可执行权限
  6. 当然也可以自己编写systemd脚本

字符集

  1. export LANG=zh_CN.UTF-8
  2. LANG PATH PS1
  3. /etc/sysconfig/i18n

tar排除选项

  1. cd / && tar czf etc.tar.gz --exclude /etc/service etc
  2. exclude 就是排除的意思
  3. -j 打包的时候使用bzipbzip2
  4. -C 指定解压目录
  5. -t 查看压缩包内文件

统计文件行数

  1. cat /etc/services | wc -l
  2. awk 'END{print NR}' /etc/services
  3. # awk 'BEGIN{nu=0}{nu++}END{print nu}' /etc/services

磁盘使用过程

  1. 分区
  2. 格式化
  3. 挂载
  4. 使用

    inode与block

    产生

    格式化创建文件系统时产生的

    作用

    每创建一个文件和目录就用掉一个inode,用来记录文件属性和block位置

    查看

    1. ls -lhi
    2. df -i

    block

    实际用来存放数据的地方,默认是4KB

    superblock

    记录此filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及档案系统的格式与相关信息等

    软连接和硬连接

    软连接:相当于windows下的快捷方式,里面存放的是实际的文件位置,它指向源文件。创建软连接使用-s参数,ln -s用来创建软连接,不加阐述默认创建硬链接,如果已经创建的软连接,原文件被删除后,指向原文件的连接会红底白字地闪烁。
    硬链接:相当于超市的前后门,创建硬链接相当于在屋子上新开了一个门,是新文件的入口。在同一个文件系统中,如果两个文件的inode号相同,那么它们互为硬链接。创建硬链接的主要目的是:防止文件被误删除。对目录不能创建硬链接。

    文件删除原理

  5. 文件硬链接数为 0

  6. 文件进程调用数为 0

文件是否被使用

  1. lsof |grep oldboy.txt
  2. lsof |grep deleted
  3. # 第一列可以看到文件被谁打开了

Linux中的三种时间

  1. mtime 文件内容发生改变
  2. ctime 文件属性发生改变(文件大小,文件属主,硬链接,权限)
  3. atime 访问时间(看一次改变一次)

文件属性存储在inode中,每一次修改都将写入磁盘

&& 前一个命令执行成功了,再执行下一个
|| 前一个命令执行失败了,再执行下一个(若是前一个命令执行成功,后面的则不执行)

通配符

目的是方便大家找出文件

过滤掉空行

  1. grep -v '^$' test.txt
  2. grep '.' test.txt
  3. sed '/^$/d' test.txt
  4. awk '!/^$/' test.txt

useradd

-g:属于其他的家庭(原来的组消失),指定用户所属的用户组
-G:属于多个家庭(原来的组不消失),指定用户所属的附加组

usermod

-s:修改用户使用shell
-g:属于其他的家庭
-G:属于多个家庭

各种常见RAID级别及使用场景

RAID0(条带化) 速度快,无冗余 性能要求高,数据安全要求低(MySQL从库)
RAID1(镜像) 写入慢,冗余高 对数据安全要求高的场景(监控服务器)
RAID5(奇偶校验) 写入慢,读取快,有冗余 适合大多数场景
RAID10(镜像条带) 读写都快,冗余高 对性能和数据安全都有要求的场景(MySQL主库)
RAID6(奇偶校验) 两块校验盘

主引导记录(MBR)

0磁头 0磁道 1扇区 的那512Bytes
MBR不支持2TB以上磁盘

创建一个Swap分区

  1. 先创建一个swap文件

    1. dd if=/dev/zero of=/tmp/swap_mem bs=1M count=2048
  2. 格式化为swap分区

    1. mkswap /tmp/swap_mem
    2. file /tmp/swap_mem
  3. 挂载为swap

    1. swapon /tmp/swap_mem
    2. swapon -s # 查看swap分区
  4. 开机自动挂载

    1. /tmp/100m swap swap default 0 0

    shell脚本调试

  5. 使用echo打印信息,类似于python的print打印

  6. 命令行中使用sh -x script.sh
  7. 脚本中设置 sh -x 开启调试, sh +x 关闭调试

普通变量只在当前shell作用,环境变量在任何地方都可以使用。

FTP的主动模式和被动模式

DNS解析的过程

  • DNS协议:域名与ip的对应关系
  • ARP协议:ip与mac地址的对应关系

DNS解析原理
递归查询、迭代查询

TCPDUMP的使用方法

ssh防止入侵的办法

  1. 不使用密码而使用密钥登录
  2. 设置访问控制白名单
  3. 尽量不给服务器公网ip,开启ssh只监听本地内网地址
  4. 系统最小化安装,减少漏洞
  5. 给系统的重要文件加上特俗权限 chattr ```shell

ssh -p22 root@10.0.0.100

scp -P22 -r -p /etc/passwd root@10.0.0.100:/root

-P大写

sftp -oPort=52113 oldboy@10.0.0.100

sshpass -p 123456 ssh root@10.0.0.100

ssh-copy-id root@10.0.0.100 ssh-copy-id 10.0.0.100

ssh-keygen -t ecc -f “/root/.ssh/id_ecc” -N “” -q

sh-copy-id -i /root/.ssh/id_dsa.pub “172.16.1.$ip -p$Server_Port -o StrictHostKeyChecking=no” ```

常见的HTTP状态码

200:请求已正常处理
204:请求处理成功,但没有任何资源可以返回给客户端
206:是对资源某一部分的请求
301:永久重定向
302:临时重定向
303:请求的对应资源存在另外一个URL,应使用GET方法定向获取请求的资源
304:资源已找到,但未符合请求(Header)
400:服务器无法理解客户端请求(请求错误)
401:认证失败
403:不允许访问
404:服务器没有请求的资源
500:内部资源故障,可能是web应用程序bug
502:网关错误
503:服务不可用

IPC 进程间通信的几种方式

  1. 半双工unix管道
  2. 命名管道(Windows)
  3. 消息队列
  4. 信号量
  5. 共享内存
  6. 网络sock

    nginx优化(web调优)

    一、安全优化

  7. 不显示nginx版本(http块 server_tokens off)

  8. 修改nginx版本(需要修改源码后重新编译)
  9. 用普通用户运行nginx

    二、性能优化

  10. worker_process 等于cpu线程数 主区块

  11. worker_cpu_affinity 绑定cpu核心(主区块 减少上下文切换)
  12. 优化事件处理模型(event块 use epoll)
  13. worker_connections nginx单个进程最大连接数(evnet块)
  14. worker_rlimit_nofile nginx服务进程打开文件数 (主区块)

    nginx限制访问速率(并发数、带宽)

    防止DDOS,恶意爬虫
    ngx_http_limit_conn_module
    ngx_http_limit_req_module

kvm

是一个开源的系统虚拟化模块,它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko 或 kvm-amd.ko)。kvm
还需要一个经过修改的QEMU 软件(qemu-kvm),作为虚拟机上层控制和界面。每个虚拟机都有各自的虚拟硬件