设为首页 收藏本站
查看: 2133|回复: 2

[经验分享] Linux笔记

[复制链接]

尚未签到

发表于 2019-2-18 07:53:50 | 显示全部楼层 |阅读模式
  Linux的基本原则:
  1、有单一的小程序组成,结合小程序完成复杂任务;
  2、一切皆文件;
  3、尽量避免捕获用户接口;
  4、配置文件保存为纯文本格式。
  切换用户:su:switch user
  su [-l] 用户名 #全切换
  su 用户名 #半切换
  exit #退出当前登陆
  1lo:本地回环
  以太网网卡:ethX
  ifconfig:显示当前主机的ip详细信息;
  -a:显示所有接口的配置信息
  up/down:ifconfig eth0 up/down #启用或关闭网卡(重启后失效)
  /etc/init.d/network {start/stop/restart/status}
  route:
  add:添加
  -host:主机路由
  -net:网络路由
  del:
  route -n:
  网络配置文件:/etc/sysconfig/network
  网络接口配置文件:/etc/sysconfig/network-scripts/ifcfg-interface_name
  DEVICE=“关联设备名称,要与文件名的后半部interface_name保持一致”
  BOOTPROTO={static|none|dhcp|bootp}:引导协议;要使用静态地址,使用static或none;DHCP表示使用dhcp服务器获取地址;
  IPADDR=:IP地址
  NETMASK=:子网掩码
  GETEWAY=:设定默认网关;
  ONEBOOT=:开机时是否自动激活此网络接口;
  HWADDR=:硬件地址,要与硬件中的地址保持一致,可省略
  USERCTL={yes|no}:是否允许普通用户控制此接口;
  PEERDNS{yes|no}:是否在bootproto为dhcp时接受由服务器指定的dns地址;
  不会立即生效,但是重启网络服务或主机重启后都会生效;
  路由:
  /etc/sysconfig/network-scripts/route-ethx
  添加格式一:DEST via NEXTHOP
  添加格式二:
  ADDRESSO=
  NETMASK=
  GATEWAY=
  DNS服务器指定方法只有一种:
  /etc/resolv.conf
  nameserver DNS_IP_1
  nameserver DNS_IP_2
  指定本地解析:
  /etc/hosts
  主机IP                 主机名                                 主机别名
  192.168.1.100     www.commander.com     commander
  DNS-->/etc/hosts-->DNS
  配置主机名:
  hostname HOSTNAME
  立即生效,但不是永久生效;
  /etc/sysconfig/network
  HOSTNAME=
  ifconfig 老旧
  IP route
  ip
  link:配置网卡属性
  show:ip -s link route
  set:
  ip link set DEVICE{up|down}
  addr:协议地址一块网卡可以使用多个地址:
  网络设备可以别名:
  eth0
  ethx:x       eth0:0
  route:路由
  /etc,/bin,/sbin,/lib,系统启动就需 要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上
  /usr/;操作系统核心功能,可以单独分区
  bin
  sbin
  lib
  init:是所有进程的父进程,其进程号永远为1
  ps:process state
  sysV风格;
  BSD风格;
  -a:显示所有跟终端有关的进程;
  -u:显示相关进程的用户;
  -x:显示所有跟终端无关的进程;
  -elF:
  -ef:
  -eF:
  进程的分类:
  跟终端相关的进程;
  跟终端无关的进程;
  100-139:用户控制
  0-99:内核调整
  进程的状态:
  D:不可中断的睡眠;
  R:运行或就绪;
  S:可终端的睡眠;
  T:停止;
  Z:僵死;
  bios(boot sequence)-->mbr(bootloader,446)-kernel->/sbin/init
  启动的服务不同:
  运行级别:0-6
  0:halt(关机)
  1:single user mode,单用户模式,直接以管理员身份切入;
  2:multi user mode,no NFS(多用户模式)
  3:multi user mode,text mode(正常多用户文本模式)
  4:reserved(此前尚未定义,属于保留级别)
  5:multi user mode,graphic mode(图形界面)
  6:reboot(重启)
  详解启动过程:
  boot leader(MBR)
  LILO:Linux loader
  GRUB:grand unified bootloader
  stage1:mbr
  stage1.5:
  stage2:/boot/grub/
  /boot/grub.conf/ #以下文本内容的文件路径
  default=0 #设定默认启动的title的编号;
  timeout=5 #等待用户选择的超时时长;
  splashimage=(hd0,0)/grub/splash.xpm.gz #grub的背景图片
  hiddenmenu #隐藏菜单;
  password Redhat #明文加密grub
  password --md5 $1$VQIZS/$CBruMoSKxXv72k/IG5mUy #密文加密grub
  title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) #内核标题或操作系统名称,字符串,可自由修改;
  root (hd0,0) #内核文件所在的设备,对grub而言,所有类型硬盘一律hd;格式为(hd#,n),#表示第几个磁盘,最后的n表示对应磁盘的分区;
  kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapp
  er/vg_commander-lv_root rd_NO_LUKS rd_LVM_LV=vg_commander/lv_sw
  ap rd_NO_MD.UTF-8 rd_LVM_LV=vg_commander/lv_root  KE
  YBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet #内核文件路径,及传递给内核的参数
  initrd /initramfs-2.6.32-431.el6.x86_64.img #ramdisk文件路径
  核心:动态加载,内核模块
  内核:/lib/modules/‘内核版本号命名的目录’
  vmlinuz-2.6.32.
  内核设计风格:
  单内核:Linux(LWP:轻量级进程)
  核心:ko(kernel object)
  微内核:Windows,Solaris(支持多线程)
  文件系统:
  rootfs:根文件系统
  FHS:linux
  /boot:系统启动相关的文件,如内核、initrd以及grub(bootloader)
  /dev:设备文件
  设备文件:
  块设备:随机访问,数据块
  字符块设备:线性访问,按字符为单位
  设备号:主设备号(major)和次设备号(minor)
  /etc:配置文件
  /etc/mtab
  /home:用户的家目录,默认为/home/USERNAME
  /root:管理员家目录
  /lib:库文件
  /lib/modules:内核模块文件
  静态库:.a
  动态库:.dll,.so(shared object)
  /media:挂载点目录,移动设备
  /mnt:挂载点目录,额外的临时文件系统
  /misc:杂项
  /opt:可选目录,第三方程序安装目录
  /proc:伪文件系统,内核映射文件
  /sys:伪文件系统,跟硬件设备相关的属性映射文件
  /tmp:临时文件
  /var/tmp:临时文件
  /var:可变化的文件
  /bin:可执行文件,用户命令
  /sbin:管理命令
  /usr:shared,read-only
  /usr/bin
  /usr/sbin
  /usr/lib/
  /usr/local:第三方程序安装目录
  /usr/local/bin
  /usr/local/sbin
  /usr/local/lib/
  文件和目录命名规则:
  1、长度不能超过255个字符;
  2、不能使用/当文件名;
  3、严格区分大小写;
  相对路径:
  绝对路径:
  系统管理工作如下:
  文件管理:touch、stat、file、rm、cp、mv、nano
  目录管理:ls、cd、pwd、mkdir、rmdir、tree
  运行程序
  设备管理
  软件管理
  进程管理: 1、在每个进程看来,当前主机上只存在内核和当前进程
  2、进程是程序的副本,进程是程序的执行实例
  网络管理
  安全功能
  驱动程序
  日期时间:date、clock、hwclock、cal
  查看文本:cat、tac、more、less、head、tail
  文本处理:cut -d : -f1或者(f1,3)或者(f1-3) /etc/passwd #-d:指定分隔符,默认为空格;-f:指定要显示的字段
  sort
  -n:升序排序
  -nr:逆序排序
  -t:字段分隔符
  -k:以那个字段为准排序
  -u:排序后相同行只显示一次
  -f:排序时忽略字符大小写
  uniq:
  -c:显示文件中行重复的次数
  -d:只显示重复的行
  join、sed、awk
  文本统计:wc(word count)
  -l:统计行数
  字符处理命令:tr #转换或删除字符
  tr 'a-z' 'A-Z' /etc/profile.d/*.sh-->~/.bash_profile->~/.bashrc-->/etc/bashrc
  非登陆式shell:
  ~/.bashrec-->/etc/bashrc-->/etc/profile.d/*.sh
  加密方法:
  对称加密:加密和解密使用同一个密码;
  公钥加密:每个密码都成对出现,一个为私钥(secret),一个为公钥(public key)
  单向加密:散列加密,提取数据特征码
  I/O重定向:
  set -C:禁止覆盖重定向
  set +C:关闭上述功能
  >:覆盖重定向
  >>:追加重定向
  2>:错误覆盖重定向
  2>>:错误追加重定向
  管道:前一个命令的输出,作为后一个命令的输入
  文本查找的需要:
  grep:根据模式搜索文本,并将符合模式的文本行显示出来。
  -i:忽略字符大小写
  --color:对匹配的字符做高亮显示
  -o:只显示被模式匹配到的字符串
  -E:使用扩展正则表达式
  fgrep:不支持正则表达式
  

  匹配次数:
  *:匹配其前面的字符任意次
  \?:匹配其前面的字符一次或0次
  \{m,n\}:匹配其前面的字符至少m次,至多n次。
  位置铆钉:
  ^:铆钉行首,此字符后面的任意内容必须出现在行首
  $:铆钉行尾,此字符前面的任意内容必须出现在行尾
  ^$:空白行
  \或\b:铆定词尾,其前面的任意字符必须作为单词的尾部出现
  shell编程:
  bash变量类型:
  环境变量
  本地变量(局部变量)
  位置变量:
  $1,$2...:第一个参数,第二个参数
  特殊变量:
  $?:上一个命令执行状态返回值
  $#:参数的个数
  $*:参数列表
  $@:参数列表
  脚本在执行时会启动一个子shell进程
  命令行在启动的脚本会继承当前shell环境;
  系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量
  bash如何实现条件判断:
  条件测试类型:
  整数测试:
  -eq:测试两个整数是否相等 [ a -eq b ]
  -ne:测试两个整数是否不等,不等为真,相等为假;
  -gt:测试一个属是否大于另一个数,大于为真,小于为假;
  -lt:测试一个数是否小于另一个数,小于为真,大于为假;
  -ge:大于或等于;
  -le:小于或等于;
  命令间的逻辑关系:
  逻辑与:&&
  逻辑或:||
  字符测试:
  ==或=:相等为真,不等为假
  !=:不等为真,相等为假
  -n:测试指定的字符串是否为空,空则真,不空则假
  -z:测试指定的字符串是否为空,不空为真,空则为假
  文件测试:
  -e file:测试文件是否存在
  -f file:测试文件是否为普通文件
  -d file:测试指定路径是否为目录
  -r file:测试当前用户对指定文件受否有读取权限
  -w file:测试当前用户对指定文件受否有写权限
  -x file:测试当前用户对指定文件受否有执行权限
  shell中如何进行算数运算:
  let 算术表达式
  c=$[$a+$b]
  $((算术运算表达式))
  expr {例子:c=`expr $a + $b`}算数运算表达式,表达式中各操作数及运算符要有空格
  grep、sed(流编辑器)、awk
  sed的基本用法:
  模式空间:默认不编辑源文件,仅对模式空间中的数据做处理,处理结束后将模式空间打印至屏幕
  sed [options] 'AddressCommand' file ...
  -n:静默模式,不在默认显示空间中的内容
  -i:之间修改原文件
  -e script -e script ...:可以同时执行多个脚本
  -f /PATH/TO/SED_SCRIPT
  sed -f /path/to/scripts  /file
  -r:表示使用扩展正则表达式
  Address:
  1、StartLine,EndLine
  比如1,100
  $:最后一行
  2、/RegExp/
  /^root/
  3、/pattern1/,/panttern2/
  第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行
  4、LineNumber
  指定的行
  5、StartLine,+N
  从startline开始,向后的N行
  Command:
  d:删除符合条件的行
  p:显示符合条件的行
  \n:可以换行
  a \string:在指定的行后面追加新行,内容为string
  i \string:在指定的行前面添加新行,内容为string
  r FILE:将指定文件的内容添加至符合的行处
  sed '$r /etc/issue' /etc/fstab
  sed '1,2r /etc/issue' /etc/fstab
  w FILE:将指定范围内的内容另存至指定的文件中
  sed  '/root/w /tmp/root.txt' /etc/passwd
  s/pattern/string/':查找并替换,默认至替换每一行中第一次被模式匹配到的字符串
  s/pattern/string/g':全局替换
  s/pattern/string/i':忽略字符大小写
  文件查找:
  locate:非实时,非精确查找,是根据全系统文件数据库进行的
  updatedb:手动生成文件数据库
  find:实时查找,精确,支持众多查找标准,遍历指定目录中的所有文件完成查找,速度慢
  find 查找路径(可以省略) 查找标准 查找到以后的处理标准
  查找路径:默认当前路径
  查找标准:默认当前路径下的所有文件
  处理运作:默认为显示
  匹配标准:
  -name ‘FILENAME':根据文件名查找,支持通配符
  -iname “FILENAME':文件名匹配时不区分大小写
  -regex PATTER :基于正则表达式进行文件名查找
  -user  USERNAME:根据属主查找
  -group GROUPNAME:根据属组查找
  -uid UID:根据UID查找
  -gid GID:根据GID查找
  -nouser:查找没有属主的文件
  -nogroup:查找没有属组的文件
  -type
  f:普通文件
  d:目录
  c:字符
  b:块设备
  s:套接字设备
  l:连接文件
  -size
  [+|-]#k/M/G :+表示大于,-表示小于
  #K:
  #M:兆
  #G:GB
  组合条件:
  -a:与关系
  -o:或关系
  -not:非
  vim编辑器:
  1、打开文件:
  vim +# :打开文件,并定位于第#行
  vim +:打开文件,定位至最后一行
  vim +/pattern:打开文件,定位至第一次被pattern匹配到行的行首
  2、模式转换:
  i:在当前光标所在所有字符的前面,转为输入模式
  a:在当前光标所在所有字符的后面,转为输入模式
  o:在当前光标所在行的下方,新建一行,并转入输入模式
  I:在当前光标所在行的行首,并转换为输入模式
  A:在当前光标所在行的行尾,并转换为输入模式
  O:在当前光标所在行的上方,新建一行,并转入输入模式
  3、以单词为单位移动:
  w:移动至下一个单词的词首
  e:跳到当前单词词尾或下一个单词的词尾
  b:跳到当前单词词首或前一个单词的词首
  4、行内跳转:
  0:跳至行首
  ^:行首的第一个非空白字符
  $:绝对行尾
  5、行间跳转
  #G:直接跳转至第#行
  G:最后一行
  6、翻屏操作
  ctrl + f:向后翻屏
  ctrl + b:向上翻一屏
  ctrl + d:向下翻半屏
  ctrl + u:向上翻半屏
  7、删除单个字符
  #x:删除光标所在处及向后的共#个字符
  x:删除光标处的字符
  8、删除命令
  d命令和跳转命令组合使用
  #dd:删除#行
  dd:删除当前光标所在行
  9、末行模式
  startAdd,EndAdd
  .:表示当前行
  $:最后一行
  +#:向下的#行
  10、粘贴命令
  p:如果删除的或复制的为整行内容,则粘贴至光标所在行的下方,如果复制的或删除的内容为非整行,则粘贴至光标所在字符的后面
  P:如果删除的或复制的为整行内容,则粘贴至光标所在行的上方,如果复制的或删除的内容为非整行,则粘贴至光标所在字符的前面
  11、复制命令
  yy:复制一行
  y$:复制光标到行尾
  12修改
  cc:先删除光标所在行,然后转为输入模式
  13、替换
  r:替换
  R:替换模式
  14、撤销编辑操作
  u:撤销前一次的编辑操作
  连续u命令可撤销此前n次的编辑操作
  #u:直接撤销最近#次的操作
  ctrl+r:撤销最近一次的撤销操作
  15、重复前一编辑操作
  .:重复前一编辑操作
  16、可视化模式
  v:按字符选取
  V:按矩形选取
  17、查找
  /PATTERN
  ?PATTERN
  使用vim编辑多个文件:
  vim file1 file2...
  :next:切换至下一个文件
  :prev:切换至前一个文件
  :last:切换至最后一个文件
  :first:切换至第一个文件
  :qa:全部退出
  分屏显示:
  ctrl+w,s:水平拆分窗口
  ctrl+w,v:垂直拆分窗口
  ctrl+w,ARROW:在窗口间切换光标
  qa:全部退出
  分窗口编辑多个文件
  vim -o:水平分割显示
  vim -O垂直分割显示
  将当前文件中部分内容另存为另外一个文件
  :w
  :ADDR1,ADDR2w /path/to/somewhere
  在当前光标下方将另外一个文件的内容填充在当前文件中
  :r /path/to/somewhere
  根shell交互
  :!:COMMAND
  高级话题
  set nu:显示行号:
  set nonu:取消显示行号
  set ic:忽略大小写
  set noic:不忽略大小写
  set ai:设定自动缩进
  set noai:取消自动缩进
  set hlsearch:设定高亮显示搜索到的文本
  set nohlsearch:取消高亮显示搜索到的文本
  set syntax on:设定语法高亮显示
  set syntax off:取消语法高亮显示
  配置文件:
  /etc/vimrc:全局配置文件,对所有用户都生效
  ~/.vimrc:当前用户配置文件
  组合测试条件:
  -a:与关系
  -o:或关系
  !:非关系
  例如:if [ $# -gt 1 -a $# le 3 ]
  或者if [ $# -gt 1 ] && [ $# le 3 ]都是可以的
  赋值表达式:
  let i+=1相当于i++
  let i-=1相当于i--
  特殊权限:
  SUID:运行某程序时,相应的进程的属主是程序文件自身的属主,而不是启动者;
  chmod u+s
  chmod u-s
  SGID:运行某程序时,相应的进程的属组是程序文件自身的属组,而不是启动者;
  chmod g+s
  chmod g-s
  sticky:在一个公共目录,每个人都可以创建文件,删除自己的文件,但是不能删除别人的文件
  chmod o+t DIR
  chmod o-t DIR
  facl:文件访问控制列表(Filesystem Access Control List)
  setfacl:
  -m:设定
  u:UID:权限
  g:GID:权限
  -x:取消
  u:UID:权限
  g:GID:权限
  getfacl file:查看文件的facl权限
  常用命令详解:
  last:显示/var/log/wtmp文件,显示用户登陆历史及系统重启历史
  -n #:显示最近#次的相关信息
  lastb:/var/log/wtmp ,显示用户错误的登陆尝试
  -n #:显示最近#次的相关信息
  lastlog:显示每个用户最近一次的成功登陆信息
  -u USERNAME :显示指定用户最近的登陆信息
  basename:显示路径基名
  $0:执行脚本时的脚本名称
  hostname:修改主机名
  echo $RANDOM:生成随机数
  终端类型:
  console:控制台
  pty:物理终端(VGA)
  tty#:虚拟终端(VGA)
  ttys#:串行终端
  pts#:伪终端
  面向过程:
  控制结构:
  顺序结构
  选择结构:if、case语句
  循环结构:for、while语句
  磁盘管理:
  创建链接:
  硬链接:ln  src desc
  1、只能对文件创建,不能应用于目录
  2、不能跨文件系统
  3、创建硬链接会增加文件被链接的次数
  软链接: ln -s src desc
  1、可应用于目录
  2、可以跨文件系统
  3、不会增加被链接文件的连接次数
  4、其大小为指定的路径所包含的字符个数
  设备文件:
  b:按块为单位,随机访问的设备(硬盘)
  c:按字符为单位,线性设备(键盘)
  /dev:
  主设备号(major number)
  标识设备类型
  次设备号(minor number)
  标识同一种类型中不同设备
  mknod [OPTION] NAME TYPE [MAJOR NINOR]
  -M MODE
  硬盘设备的设备文件名:
  IDE\ATA:hd
  第一个IDE接口:主、从
  /dev/hda、/dev/hdb
  第二个IDE接口:主、从
  /dev/hdc、/dev/hdd
  SATA:sd
  SCSI:sd
  USB:sd
  a、b、c...来区别同一种类型下的不同该设备
  hda:
  hda1:第一个主分区
  hda2:第二个主分区
  hda3:第三个主分区
  hda4:第四个主分区
  hda5:第一个逻辑分区
  查看当前系统识别了几块硬盘设备:
  fdisk -l /dev/to/some_device_file
  fdisk /dev/sda:分区操作
  p:显示当前硬件的分区,包括没保存的改动
  n:创建新分区
  e:扩展分区
  p:主分区
  d:删除一个分区
  w:保存退出
  q:不保存退出
  t:修改分区类型
  l:显示所有支持的分区类型
  cat /proc/pattitons:查看当前系统挂载的分区
  partprobe /dev/sda :重新探测分区
  cat /proc/filesystems:查看当前内核所支持文件系统类型
  创建文件系统:
  mkfs:make file system
  -t FSTYPE:(ext2、ext3、ext4)指定文件类型
  专门管理ext系列文件:
  mke2fs:
  -j:创建ext3类型文件系统
  -b BLOCK SIZE:指定块大小,默认为4096,可用取值为1024、2048、4096;
  -L LABLE:指定分区卷标
  -m #:指定预留给超级用户的块数百分比
  -i #:用于指定为多少字节的空间创建一个inode,默认为8192,这里给出的数值大小应该为块大小的2^n倍
  -N #:指定inode个数
  -F:强制创建文件系统
  -E:用户指定额外文件系统属性
  blkid /dev/sda:查询或查看磁盘设备的相关属性
  UUID:设备唯一标识符
  TYPE:文件系统格式
  LABLE:查看卷标
  e2lable:查看或设定卷标
  e2lable /dev/sda 卷标:设定卷标
  e2lable /dev/sda:查看卷标
  tune2fs:无损调整文件系统相关属性
  -j:不损坏原有数据,将ext2升级为ext3
  -L:用于设定或更改卷标
  -m #:调整预留百分比
  -r:指定预留块数
  -o:设定默认挂载选项
  -c #:指定挂载次数达到#次后进行自检,0或-1表示关闭此功能
  -i:每挂载使用多少天后进行自检,0或-1表示关闭此功能
  -l:显示超级块中的详细信息
  dumpe2fs:显示文件属性信息
  -h:只显示超级块中的信息
  fsck:检查并修复linux文件系统
  -t FISTYLE:指定文件系统类型
  -a:自动完成修复
  e2fsck:专用于修复ext2、ext3文件系统
  -f:强制检查
  -p:自动修复
  mount:显示当前已挂载的设备及挂载点{挂载:将新的文件系统关联至当前根文件系统}
  -a:表示挂载/etc/fstab文件中定义的所有文件中的设备
  -n:默认情况下,mount命每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;使用-n选项意味着挂载设备时,不把信息写入此文件
  -t FSTYPE:指定正在挂载设备上的文件系统的类型,不使用此选项时,mount命令会调用blkid命令获取对应文件系统的类型
  -r:只读挂载,挂载光盘时常用此选项
  -w:读写挂载
  -o:指定额外的挂载选项,也即指定文件系统启用的属性
  remount:重新挂载当前文件系统
  ro:挂载为只读
  rw:读写挂载
  loop:挂载本地回环设备
  mount 设备 挂载点
  设备文件:/dev/sda
  卷标:LABLE=‘’
  UUID:UUID=“”
  挂载点:目录
  要求:
  1、此目录没有被其他进程使用
  2、目录的是新啊存在
  3、目录中的原有文件会暂时隐藏
  umount:卸载(将某文件系统于当前文件系统的关联关系移除)
  umount 设备或者挂载点
  卸载注意事项:
  1、挂载的设备没有被进程使用
  swap分区:虚拟内存
  mkswap /dev/sda2:创建交换分区
  -L LABLE
  swapon /dev/sda2:启用交换分区
  swapoff /dev/sda2:关闭交换分区
  dd命令:
  if=数据来源
  of=数据存储目标
  bs=#M:块大小为#M
  count=#:总共#块
  senk=#:创建数据文件时,跳过的空间大小
  dd if=’/etc/passwd‘ of=’/home/passwd'
  dd if=/dev/sda of=/home/mbr.bak bs=512 count=1:备份磁盘mbr
  dd if=/dev/zero of=/var/swapfile bs=1M count=1024
  文件系统配置文件:/etc/fstab
  OS在初始时,会自动挂载此文件中定义的每个文件系统
  要挂载的设备 挂载点 文件系统类型 挂载选项   转储频率
  /dev/mapper/vg_server-lv_root                /         ext4     defaults                1 1
  UUID=48968f07-cae1-4b7e-b14f-cae762877300   /boot       ext4     defaults                1 2
  /dev/mapper/vg_server-lv_home                /home     ext4     defaults         1 2
  /dev/mapper/vg_server-lv_swap                swap      swap     defaults         0 0
  tmpfs                                      /dev/shm     tmpfs    defaults         0 0
  devpts                                  /dev/pts   devpts   gid=5,mode=620   0 0
  sysfs                                        /sys   sysfs    defaults         0 0
  proc                                        /proc   proc     defaults         0 0
  /dev/sdb/   /mnt/  ext4  defaults 0 0
  fuser :验证进程正在使用的文件或套接字文件
  -v:查看某个文件上正在运行的进程
  -k:
  -m:
  fuser -km MOUNT_POIT:中止正在访问此挂载点的所有进程
  压缩解压:
  gzip :.gz
  gzip /PATH/TO/SOME_FILE:压缩完成后会删除源文件
  -d:解压缩
  #:1-9,指定压缩比,默认是6
  gunzip:解压缩
  zcat PATH/TO/SOME_FILE:不解压的情况下临时查看压缩文件内容
  bzip2:.bz2比gzip有着更大的压缩比,使用格式类似
  bzip  /PATH/TO/SOME_FILE:压缩完成后会删除源文件
  -d:解压缩
  -k:压缩时保留原文件
  #:1-9,指定压缩比,默认是6
  bunzip /PATH/TO/SOME_FILE:压缩完成后会删除源文件
  bzcat PATH/TO/SOME_FILE:不解压的情况下临时查看压缩文件内容
  xz :.xz
  /PATH/TO/SOME_FILE:压缩完成后会删除源文件
  -d:解压缩
  -k:压缩时保留原文件
  #:1-9,指定压缩比,默认是6
  unxz /PATH/TO/SOME_FILE:解压缩完成后会删除源文件
  xzcat PATH/TO/SOME_FILE:不解压的情况下临时查看压缩文件内容
  xzdec PATH/TO/SOME_FILE:不解压的情况下临时查看压缩文件内容
  zip:既归档又压缩
  zip FILENAME.ZIP FILE1 FILE2 ...:压缩后不删除原文件
  unzip FILENAME.ZIP:解压缩
  tar:归档工具,只归档,不压缩
  -c:创建归档文件
  -f FILENAME.tar:操作的归档文件
  -x:展开归档
  --xzttrs:归档时,保留文件的扩展属性
  -t:不展开归档查看归档了哪些文件
  -zcf:调用gzip工具,压缩成gzip
  -zxf:调用gzip解压缩并展开归档
  -jcf:调用bzip2归档并调用gzip2
  -xcf:调用bzip2解压缩并展开归档
  cpio:归档工具
  read:内建命令
  read name:直接在屏幕为name赋值
  -t #:指定默认超时时间为#
  -p:
  用read写一个可选择性的备份脚本:
  #/bin/bash
  read -p "输入三个文件:"FILE1 FILE2 FILE3
  read -p "输入文件保存位置:"DEST
  read -p "请选择压缩方式[gzip|bzip2|xz]"COMP
  case $COMP in
  gzip)
  tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3
  ;;
  bzip2)
  tar -zcf ${DEST}.tar.bz $FILE1 $FILE2 $FILE3
  ;;
  xz)
  tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3
  xz ${DEST}.tar
  ;;
  *)
  echo "Uknown"
  exit 9
  ;;
  esac
  RAID:
  级别:仅代表磁盘组织方式的不同,没有上下之分
  0:条带
  性能提升:读写
  冗余能力(容错能力):吴
  空间利用率:ns
  至少需要2块盘
  1:镜像
  性能表现:写性能下降,读性能提升
  冗余能力:有
  空间利用率:1/2
  至少需要2块盘
  2
  3
  4
  5:性能表现:读写提升
  冗余能力:有
  空间利用率:(n-1)/n
  至少需要2块盘
  10:性能表现:读写提升
  冗余能力:有
  空间利用率:1/2
  至少需要4块盘
  01:性能表现:读写提升
  冗余能力:有
  空间利用率:1/2
  至少需要4块盘
  50:性能表现:读写提升
  冗余能力:有
  空间利用率:(n-1)/n
  至少需要6块盘
  jbod:性能表现:无提升
  冗余能力:无
  空间利用率:100%
  至少需要两块盘
  逻辑RAID:
  /dev/md0
  /dev/md1
  mdadm:将任何块设备做成RAID;md命令
  模式化的命令:
  创建模式
  -C:
  专用选项:
  -l:级别
  -n :设备个数
  -a {yes|no}:自动为其创建设备文件
  -c :CHUNK大小
  管理模式
  --add,--del,--fail
  监控模式:
  -F
  增长模式:
  -G:
  装配模式
  -A
  mdadm -D /dev/md0:查看raid设备详细信息
  pv:命令
  pvcreat,pvremove,pvscan,pvdisplay,pvmove
  vg:命令
  vgcreate VG_NAME /PATH/TO/PV
  -s #:PE大小,默认为4MB
  

  ,vgmove,vgextend,vgreduce,vgs,vgdisplay,vgscan
  lv:
  lvcreat -n LV_NAME -L #G VG_NAME
  lvremove:移除逻辑卷组
  lvextend:
  -L [+]# /PATH/TO/LV :扩展逻辑分区
  lvreduce,lvs,lvdisplay
  resize2fs -p /PATH/TO/LV:扩展逻辑分区
  扩展逻辑卷:
  缩减逻辑卷:
  注意:1、不能在线缩减,得先卸载
  2、确保缩减后的空间大小依然能够存储原有的所有数据
  3、在缩减之前应该先强行检查文件,以确保文件系统处于一致状态
  df -lh
  umount /PATH/TO/DEVICE
  e2fsck -f
  网络配置:
  IP:
  DHCP:动态主机配置协议
  static :手动指定地址
  NETMASK
  GATEWAY
  HOSTNAME
  DNS1
  DNS2
  ifconfig:
  -a:显示所有接口的配置信息
  ifconfig eth0 ip/mask:临时配置主机ip地址
  ifconfig eth0 up/down:启用或者禁用eth0网卡,并且立即生效
  route:
  route add -net|-host DEST/NETMASK gw NEXTDEST#添加路由信息
  route add default gw NEXTDEST#添加默认路由信息
  route del default gw NEXTDEST#删除默认路由信息
  route del -net|-host DEST/NETMASK#删除路由信息
  -n:以数字显示主机各端口信息
  add:添加
  -host:主机路由
  -net:网络路由
  -net 0.0.0.0
  del:删除 route del -net DEST
  -host:
  -net:
  网络接口配置文件:/etc/sysconfig/ifcfg-ethX
  1DEVICE=eth0#关联的设备名称
  2 HWADDR=00:E0:4C:13:71:CF#MAC地址
  3 TYPE=Ethernet
  4 UUID=d714b59a-4923-492f-b079-87b4b8f96d3b
  5 ONBOOT=yes#开机时是否自动激活此网络接口
  6 NM_CONTROLLED=yes
  7 BOOTPROTO=static#应道协议
  8 IPADDR=10.10.174.150#IP地址
  9 NETMASK=255.255.254.0#子网掩码
  10 GATEWAY=10.10.175.254#网管
  11 DNS1=202.99.96.68#DNS地址
  12  PEERDNS:{yes|no}#是否在BOOTPROTO为dhcp时接受由DHCP服务器指定的dns指定的地址
  13  USERCTL:{yes|no}#是否允许普通用户控制此接口
  以上配置不会立即生效,但是重启主机或是重启网络服务后会永久生效
  DNS:域名解析配置方法
  /etc/resolv.conf:DNS配置文件
  指定本地解析:
  /etc/hosts:本地解析配置文件
  DNS-->/etc/hosts-->DNS缓存
  被指主机名:hostname NAME
  /etc/sysconfig/metwork:主机名配置文件
  进程:ps
  -a:显示所有和终端有关的进程
  -x:显示所有和终端无关的进程
  -u:显示用户信息
  进程状态;
  D:不可中断的睡眠;
  R:运行或就绪
  s:可中断的睡眠
  T:停止
  Z:僵死
  root (hd0,0)  #指定安装位置
  grub>setup (hd0)  #安装
  grub>quit  #退出
  安装grub第二种方式:
  #grub-install --root-directory=/
  grub>find
  grub>root (hd#,N)
  grub>kernel /PATH/KERNEL_FILE
  grub>initrdn/PATH/INITRD_FILE
  grub>boot
  kernel初始化过程:
  1、设备探测
  2、驱动初始化(可能从initrd(initramfs红帽6)文件中装载驱动模块)
  3、以只读挂载根文件系统
  4、装载第一个进程init(PID:1)
  /sbin/init:(/etc/inittab)
  upstart:Ubuntu,d-bus,event-drive
  systemd:
  id:runlevels:action:process
  id:标识符
  runlevels:在那个级别下运行此行
  action:在什么情况下执行此行
  process:要运行程序
  id:5:initdefault:(/etc/inittab)
  ACTION:
  initdefault;设定默认运行级别
  sysinit:系统初始化
  wait:等待级别切换至此级别时执行
  /etc/rc.d/rc.sysinit完成的任务:
  1、激活udev和selinux
  2、根据/etc/sysctl.conf文件,来设定内核参数
  3、设定时钟
  4、装载键盘映射
  5、启用交换分区
  6、设置主机名
  7、根文件系统检测,并以读写方式重新挂载
  8、激活raid和lvm设备
  9、启用磁盘配额
  10、根据/etc/fstab;检查并挂载其他文件系统
  11、清理过期的锁和pid文件
  for i in /etc/rc3.d/k*
  do
  $i stop
  done
  for i in /etc/rc3.d/s*
  do
  $i start
  done
  先关闭以k开头的服务,后启动以s开头的;
  /etc/rc.d/init.d
  服务类脚本:
  start
  SysV:/etc/rc.d/init.d
  start|stop|restart|status
  reload|configtest
  chkconfig:runlevels SS KK
  当chkconfig命令来为此脚本在rcc#.d目录创建链接时,runlevels表示默认创建为S*开头的链接,除此之外的级别默认创建为K*开头的链接;
  S后面的启动优先级为ss所表示的数字;K后面关闭优先次序为kk所表示的数字;
  description:用于说明此脚本的简单功能;\ 续行
  chkconfig --list:查看所有独立守护服务的启动设定;独立守护进程
  chkconfig --list service_name
  chkconfig --add service_name:添加服务链接
  chkconfig --del service_name:删除服务链接
  chkconfig --level runlevels service_name(on|off)
  /etc/inittab的任务:
  1、设定默认运行级别
  2、运行系统初始化脚本
  3、指定运行级别对应的目录下的脚本
  4、设定ctrl+alt+del组合键的操作
  5、定义ups电源在电源故障/恢复时执行的操作
  6、启动虚拟终端(2345级别)
  7、启动图形终端(5级别)
  守护进程的类型:
  独立守护进程
  xinitd:超级守护进程
  瞬时守护进程,不需要关联至运行级别
  核心:/boot/vmlinuz-version
  内核模块(ko):/lib/modules/version
  内核设计:
  单内核
  模块化设计
  微内核
  装载模块:
  insmod:
  modprobe:
  www.kernel.org
  用户空间访问、监控内核方式:
  /proc、/sys
  伪文件系统:/proc/sys:此目录中的文件是可读写的
  /sys:某些文件可写
  

  设定内核参数值的方法:
  echocalue > /proc/sys/to/somefile
  sysctl -w kernel.hostname='commander':修改主机名,重启后失效,可以立即生效
  永久生效,但不能立即生效:/etc/sysctl.conf
  修改完配置文件后,执行如下命令:
  sysctl -p
  sysctl -a:显示所有内核参数及其值
  内核模块管理:
  lsmod:查看
  modporbe mod_name:装载某模块
  modprobe -r mod_name:卸载某模块
  modinfo mod_name:查看模块的具体信息
  insmod /PATH/TO/MODULE_NAME:装载模块
  rmmod mod_name:移除模块
  depmod /PATH/TO/MODILES_DIR
  内核中的功能除了核心功能之外,在编译时。大多功能都有三种选择:
  1、不使用此功能;
  2、编译成内核模块;
  3、编译进内核;
  如何手动编译内核:
  make gconfig:Gnome桌面使用环境,
  make kconfig:KDE桌面使用环境
  grub-->kernel-->initrd-->rootfs(/sbin/init,/bin/bash)
  /etc/inittab:
  设定默认运行级别
  系统初始化(/etc/rc.d/rc.sysinit)
  运行指定级别的服务脚本
  /etc/rc.d/init.d
  /etc/rc.d/rc#.d
  rc0.d--rc6.d
  K*
  S*
  00-99:运行次序
  启动虚拟终端
  启动图形终端
  /etc/rc.d/rc.sysinit:
  检测并以只读方式重新挂载根文件系统;
  设定主机名;
  检测并挂载/etc/fstab中的其他文件系统;
  启动swap分区;
  初始化外围硬件设备驱动;
  根据/etc/sysctl.conf设定内核参数;
  激活udev和selinux;
  激活LVM和RAID设备;
  清理过期锁和PID文件;
  装载键映射;
  关机和重启:
  mount -n :挂载时不更新/etc/mtab文件;
  设定内核参数:
  /etc/sysctl.conf
  sysctl -p
  用户:
  PAM:
  /etc/pam.d
  绕过PAM:
  /bin/login:
  用户:uid /etc/passwd
  组:gid /etc/group
  login:验证
  nsswitch:network service switch
  框架:/etc/passwd, /etc/group, /etc/shadow
  配置文件:/etc/nsswitch.conf
  /etc/rc.d/init.d/服务脚本
  服务脚本支持配置文件:/etc/sysconfig/服务脚本同名的配置文件
  mktemp:用于创建临时文件或目录;
  mktemp /tmp/file.XXXX
  -d:创建为目录;
  任务计划:
  1、在未来的某个时间点执行一次;
  at now+times(minutes...)
  at>command
  at>ctrl+d:保存退出
  指定时间:
  绝对时间:HH:MM,DD:MM:YY,MM/DD/YY
  相对时间:now+*
  单位:mintues,hours,days,weeks
  模糊时间:noon,midnight,teatime
  命令执行结果,将以邮件方式
  at -l:显示队列
  at -d:删除队列
  batch
  2、周期性的执行;
  cron:自身是一个不间断运行的服务;
  anacron:cron的补充,能够实现让Cron因为各种原因在过去的时间该执行而未执行的任务恢复正常执行一次;
  cron:
  系统cron任务:/etc/crontab
  分钟 小时 天 月 周 用户 任务
  用户cron任务:/var/spool/cron/USERNAME
  分钟 小时 天 月 周 任务
  # For details see man 4 crontabs
  Example of job definition:
  .---------------- minute (0 - 59)
  |  .------------- hour (0 - 23)
  |  |  .---------- day of month (1 - 31)
  |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
  |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  |  |  |  |  |
  *  *  *  *  * user-name command to be executed
  5  *  *  *  * /home/major/shell_编程/1.sh
  时间有效取值:
  分钟:0-59
  小时:0-23
  天:1-31
  月:1-12
  周:0-7,0和7都表示周日
  时间统配表示:
  *:对应的所有有效值
  3 * * * 7 :每个礼拜天的每个小时的第三分钟
  每两个小时执行一次:08 */2 * * *
  每两天执行一次:10 04 */2 * *
  执行结果将以邮件形式发送给管理员:*/3 * * * * cat /etc/fatab &> /dev/null
  cron的环境变量:cron执行的所有命令都去PATH环境变量指定的路径下去找
  PATH /bin:/sbin:/usr/bin:/usr/sbin
  用户任务的管理:
  crontab:
  -l:列出当前用户的所有Cron任务;
  -e:编辑;
  -r:移除所有任务;
  -u USERNAME:管理其他用户的cron任务;
  日志系统:syslog、syslog-ng(开源)
  信息详细程序:日志级别
  子系统:facility,设施
  syslog服务:
  syslogd:系统,非内核产生的信息
  klogd:内核,专门负责记录内核产生的日志
  信息详细程序:
  子系统:facility 设施
  动作:
  日志需要滚动(日志切割):
  message1 message2 message3
  /sbin/init:
  /var/log/message:系统标准错误日志信息;非内核产生引导信息,各子系统产生的信息;
  /var/log/maillog:邮件系统产生的日志信息;
  /var/log/secure:和安全相关的日志记录,并且会记录ssh登陆的详细信息
  telnet:远程登陆协议,tcp
  C/S:架构
  S:telnet远程服务器
  C:telnet客户端
  ssh:secure shell,协议 22/tcp
  通信和认证过程都是加密的,主机认证;
  用户认证过程加密
  sshv1:已经被破解,容易被中间人***;
  sshv2:建议使用;
  认证过程:
  基于口令认证;
  基于密钥认证;
  协议即规范;
  实现:服务端、客户端;
  Linux:openSSH
  C/S:
  服务器端:sshd、配置文件/etc/ssh/sshd_config
  客户端:ssh、配置文件/etc/ssh/ssh_config
  ssh-keygen:密钥生成器;
  ssh-copy-id:将公钥传输至远程服务器
  scp:跨主机安全复制工具
  ssh:
  ssh USERNAME@HOST
  ssh -l USERNAME HOST
  ssh USERNAME@HOST ‘command’
  scp:
  scp SRC DEST
  -r:
  -a:
  scp USERNAME@HOST:PATH/to/somefile  /path/to/local
  ssh-keygen:
  -t rsa
  ~/.ssh/id_rsa
  ~/.ssh/id_rsa.pub
  公钥保存到远程主机某用户的家目录下的.ssh/aut
  如何将远程服务器的目录,拷贝到本地:
  scp -r root@192.168.2.105:/root/rules /opt:意思为将远程服务器上/root/rules目录内的内容拷贝到本地的opt目录下
  将本地的文件上传到远程服务器上:
  scp /root/node-v4.2.1-linux-x64.tar.gz root@192.168.2.105:/opt/test:将本地文件node-v4.2.1-linux-x64.tar.gz上传到服务器/opt/test目录下
  dropbear:嵌入式系统是专用的ssh服务器端和客户端工具;
  服务器端:dropbear
  dropbearkey
  客户端:dbclient
  dropbear默认使用nsswitsch实现名称解析
  /etc/nsswitch.conf
  /usr/libnss_files*
  /usr/lib/libnss.so
  /usr/lib/libnss_files*
  dropbear会在用户登录检查其默认shell是否当前系统的安全shell
  /etc/shells
  linux常见的系统故障排除:
  1、确定问题的故障特征;
  2、重现故障;
  3、使用工具收集进一步信息;
  4、排除不可能的原因;
  5、定位故障:
  从简单的问题入手;
  一次尝试一种方式;
  6、备份原文件;
  7、尽可能借助工具;
  可能会出现的故障:
  1、管理员密码忘记;
  2、系统无法正常启动;
  a、grub损坏(mbr损坏、grub配置文件丢失)
  b、系统初始化故障(某文件系统无法正常挂载、驱动不兼容)
  c、服务故障;
  d、用户无法登陆系统(bash程序故障)
  3、命令无法运行
  4、编译过程无法继续(开发环境缺少基本组件)
  sudo的配置文件 /etc/sudoers
  -l:列出当前用户可以使用的所有sudo的命令;
  -k:让认证信息失效;
  修改网卡的网络属性
  TCP/IP安全:
  机密性:明文传输(ftp、http、smtp、telnet)
  plaintext(明文)-->转换规则-->ciphertext(密文)
  ciphertext(密文)-->转换规则-->plaintext(明文)
  openssl实现私有CA;
  1、先生成一对密钥
  2、生成自签署证书
  DNS(Domain Name Service):域名解析
  TLD:
  组织域:.com,.org,.net,.cc
  国家域:.cn,.jp
  DNS:分布式数据库
  上级仅知道其直接下级
  下级只知道根的位置
  DNS服务器:
  接受本地客户查询请求(递归)
  外部客户端请求:请求权威答案
  肯定答案:TTL
  否定答案:TTL
  外部客户端请求:非权威答案
  数据库中的每一个条目称作一个资源记录
  资源记录格式如下:
  NAME TTL IN RRT VALUE
  PHP:超文本预处理器
  数据的组织结构:
  1、层次结构
  2、网状型
  3、关系型
  RDBMS:
  1、数据库的创建、删除
  2、创建表、删除表、修改表
  3、索引的创建、删除
  4、用户和权限
  5、数据的增、删、改
  6、查询
  DML:数据操作语言 insert、update、delete、
  DDL:数据定义语言 create、alter、drop
  DCL:数据控制语言 grant、revoke
  RDBMS:
  oracle、Sybase、infomix、SQL server;
  mysql、postgresql
  MySQL:
  软件包格式:
  软件包管理器特有的格式
  rpm包,.exe格式
  通用二进制格式
  源程序
  交互模式中的命令类别:
  客户端模式
  服务器端命令
  都必须使用语句结束符,默认为分号;
  SQL接口:
  Oracle,PL/SQL
  SQL server,T-SQL
  关系数据库对象:
  表
  索引
  视图
  约束
  存储过程
  存储函数
  触发器
  游标
  用户
  权限
  事务
  库本身
  表:
  行和列的组合;
  表:实体集
  行:row
  列:field也叫column(字段)
  字段名称,数据类型,类型修饰(限制)
  字符:
  char(n)
  varchar(n)
  binary(n)
  varcharbinary(n)
  text(n)
  blob(n)
  数值:
  精确数值型
  整型
  十进制
  近似数值
  float
  double
  日期时间:
  date
  time
  datetime
  stamp
  日期
  布尔
  内置
  DDL:
  create
  alter
  drop
  DML:
  insert
  update
  delete
  DCL:
  grant
  revoke
  创建数据库
  CREATE DATABASE testda;
  删除数据库
  DROP DATABASE db_name;
  创建表
  CREATE TABLE ;
  查看表
  SHOW TABLES;
  查看库中的表
  SHOW TABLE FROM DB_NAME;
  查看表结构
  DESC STUDENTS;
  删除表
  DROP TABLE DB_NAME;
  修改表
  ALTER TABLE DB_NAME;
  MODIFY
  CHANGE
  ADD
  DROP
  DML:
  INSERT INTO TB_NAME ;
  REPLACE
  DCL:
  创建用户:
  CREATE USER 'USENAME'@'HOST' IDENTIFIED BY 'PASSWD';
  删除用户:
  DROP USER 'USERNAME'@'HOST';
  HOST:
  IP;
  HOSTNAME;
  NETWORK;
  通配符:
  _:匹配任意单个字符,192.168.1._
  %:匹配任意字符;
  GRANT PRIL1,PRIL2...ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWD'];给用户授予权限
  REVOKE PRIL1,PRIL2...ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';删除用户权限
  SHOW GRANTS FOR 'USERNAME'@'HOST'; 查看用户的权限
  为用户设定密码:
  1、SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('PASSWORD');
  修改用户密码:
  UPDATE USER SET PASSEORD=PASSWORD('PASSWORD') WHERE USER='root';
  图形化客户端:
  1、phpmyadmin
  2、workbench
  3、MySQL front
  4、navicat for MySQL
  单层结构
  二层结构
  三层结构
  PHP:脚本编程语言,php解释器
  webapp:面向对象的特性
  zend:
  第一阶段:词法分析,语法分析,编译为opcode;
  第二阶段:执行opcode;
  PHP缓存器:
  APC
  eaccelerator
  cache
  PHP解释器-->MySQL,如何交互:
  bash:a.sh
  php-mysql
  mysql:配置文件格式,集中式配置文件,可以为多个程序提供配置
  MySQL服务器维护了两类变量:
  服务器变量:
  定义MySQL服务器运行特性
  SHOW GLOBAL VARIABLES [LIKE 'STRING'];
  状态变量:
  保存了MySQL服务器运行统计数据
  SHOW GLOBAL STATUS [LIKE 'STRING'];
  压力测试工具
  ab
  http_load
  webbench
  siege
  mail server:
  SMTP:简单邮件协议(tcp25号端口)
  ESMTP:简单扩展邮件协议
  pop3:邮局协议
  IMAP4:
  uucp:Unix to Unix copyd
  Unix主机复制文件的协议
  MTA:邮件传输代理,SMTP服务器
  sendmail,uucp
  qmail
  postfix:模块化设计,安全,跟sendmail兼容,效率高
  exchange:(Windows,异步消息协作平台)
  MDA:邮件投递代理
  procmail
  maildrop
  MRA:邮件检索代理
  pop3:邮局协议
  imap4
  Cyrus-imap
  dovecot
  thunderbird
  evolution
  mutt(文本界面)
  webmail:
  openwebmail
  squirrelmail
  extmail(extman)
  EMOS,centos
  SASL:v2
  cyrus-sasl
  courier-authlib
  postfix+SASL+(courier-authlib)+mysql
  dovect+mysql
  extmail+extman+httpd
  postfix:rpm
  MUA:mutt
  都是以明文方式工作
  pop3:tcp/110
  imap4:tcp/143
  dove支持四种协议:pop3,imap4,pops,imaps
  配置文件:/etc/dovecot.conf
  有ssl认证能力
  邮箱格式:
  mbox:一个文件存储所有邮件
  maildir:一个文件存储一封邮件,所有邮件存储在一个目录中
  FTP:文件传输协议
  端口:21/tcp
  文件共享服务:应用层服务
  NFS:network file sysytem(RPC:remote procedure call:远程过程调用)
  smba:CIFS/SMB;
  ftp:基于tcp协议,有两个连接
  命令连接,也叫控制连接,一直存在:tcp/21
  数据连接,按需打开,按需关闭:
  主动模式:20/tcp
  被动模式:
  数据传输模式:
  文本:
  二进制:
  服务器端程序:
  wuftpd:华盛顿大学服务器程序
  vsftpd:very secure ftp doemon
  proftpd:
  pureftpd:
  serv-u:windows
  filezilla:既有Linux又有Windows
  客户端程序:
  CLI;
  ftp:
  lftp:
  GUI:
  gftpd
  flashfxp
  cuteftp
  filezilla
  vsftpd:
  /etc/vsftpd:配置文件目录
  /etc/init.d/vsftpd:服务脚本
  基于PAM实现用户认证:
  /etc/pam.d/*
  /lib/security/*
  /lib64/security/*
  支持虚拟用户
  文件服务权限
  守护进程:
  独立守护进程
  瞬时守护进程
  由xinetd代为管理
  vsftpd:
  max_clients=#最大客户端连接数
  max_per_ip=#每个用户最多能发起几次请求
  ftp:用户
  用户
  匿名用户——》系统用户:anonmous
  系统用户
  虚拟用户———》系统用户
  文件服务权限:文件系统权限*文件共享权限
  ftp软件:flashfxp
  NFS:network file system
  RPC:remote procedure call(远程过程调用)
  linux :提供RPC服务的程序:portmap:111/tcp,111/udp
  RPC:编程技术,也是一种协议,简化分布式应用程序的开发,c-rpc c--》rpc s
  RPC:二进制格式,文本格式(xmlrpc)-->SOPA(轻量级的RPC)
  服务器端:nfsutils
  nfs:nfsd(nfs服务进程)mountd(挂载),quotad(配额)
  nfsd:2049/tcp,2049/udp
  quotad:
  安全通信方式:
  ftps:ftp+ssl
  Linux:网络防火墙
  netfilter:frame
  IP tables:数据报文过滤,NAT、mangle等规则生成的工具;
  网络:IP报文首部,tcp报文首部
  防火墙:硬件,软件:规则(匹配标准,处理办法)
  framework:
  默认规则:
  开放:堵
  关闭:通
  规则:匹配标准
  IP:源ip,目标ip
  TCP:源端口,目标端口
  UDP:源端口,目标端口
  ICMP:icmp-type
  hook function:钩子函数
  prerouting
  input
  output
  forward
  postrouting
  规则链:
  prerouting
  input
  output
  forward
  postroutin
  filter(过滤):
  input
  output
  forward
  nat(地址转换):
  prerouting
  postroutin
  mangle(拆开、修改、封装):表
  prerouting
  input
  output
  forward
  postroutin
  raw():
  prerouting
  output
  iptables:
  能否使用自定义链?
  可以使用自定义链,但只在被调用时才能发挥作用,而且如果没有自定义链中的任何规则匹配,还应该有返回机制:
  用户可以删除自定义的空链
  默认链无法删除
  每个规则都有两个内置的计数器:
  被匹配的报文个数
  被匹配的报文大小之和
  规则:匹配标准,处理动作
  iptables [-t TABLE] COMMAND CHAIN [num] 标准匹配 -j 处理办法
  匹配标准:
  通用匹配
  -s,--src:指定源地址
  -d,--dst:指定目标地址
  -p,{tcp|udp|icmp}
  -i interface :指定数据报文流入的接口
  可用于定义标准的链:prerouting,input,forward
  -o interface:指定数据报文流出的接口
  可用于标准定义的链:output,postrouting,forward
  扩展匹配
  隐含扩展:不用特别指明由那个模块进行的扩展,因此使用-p{tcp|udp|icmp}
  显式扩展:必须指明由那个模块进行的扩展,在iptables中使用-m选项可完成此功能
  命令:
  管理规则
  -A:附加一条规则,添加在链的尾部
  -I:chain[num]:插入一条规则,插入为对应chain的第num条
  -D:chain[num]:删除链中的第num条规则
  -R:chain[num]:替换指定的规则
  管理链:
  -F:[chain] flush,清空指定的规则链,如果省略chain,则可以删除对应表中的所有链
  -P:chain:设定指定链的默认策略;
  -N:自定义一个新的空链
  -X:删除一个自定义的空链
  -Z:置零指定链中的所有规则的计数器
  -E:重命名自定义的链
  查看类:
  -L:显示指定表中的规则
  -n:以数字格式显示主机地址和端口
  -v:显示链及规则的详细信息
  -x:显示计数器的精确值
  --line-numbers:显示规则号码
  动作(target):
  ACCEPT:放行
  REJECT:丢弃
  DNAT:目标地址转换
  SNAT:源地址转换
  REDIRECT:端口重定向
  MASQUERADE:地址伪装
  LOG:日志
  MARK:打标机
  iptables不是服务,但有服务脚本;服务脚本的主要作用在于管理保存的作用
  NAT:network address translation
  DNAT:目标地址转换
  SNAT:源地址转换
  samba:
  web:
  httpd:
  1、事先创建进程;
  2、按需维持适当的进程;
  3、模块化设计,核心比较小,各种功能都能模块添加,支持运行时配置,支持单独模块编译;
  4、
  Tomcat
  Hadoop
  MPM:Multi Path Modules(/etc/sysconfig/httpd,apache的三种工作模式,默认是prefork)
  mpm_winnt
  prefork:一个请求用一个进程响应
  worker:一个请求用一个线程响应(启动多个进程,每个进程生成多个线程)
  event:一个进程处理多个请求
  URL路径跟本地文件系统路径不是一回事儿,URL是相对于DocumentRoot的路径而言的
  Options:
  Indexs:允许索引目录
  FollowSynLinks:允许访问符号链接指向源文件
  Includes:允许执行服务器端包含(SSI)
  ExecCGI:允许运行CGI脚本
  ALL:启用所有选项
  Order:用于定义基于主机的访问控制功能的,IP,网络地址或主机定义访问控制机制
  Order allow,deny
  allow from 192.168.0.0/24#只允许此网络访问
  deny from




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673718-1-1.html 上篇帖子: Linux进程内存统计 下篇帖子: linux常用操作命令

尚未签到

发表于 2022-8-3 13:59:15 | 显示全部楼层

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

累计签到:109 天
连续签到:1 天
发表于 2023-2-9 22:56:20 | 显示全部楼层
大佬  为啥你的金币能负的?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表