Linux基础知识汇总(1)...持续更新中

简介:

1
2
3
4
5
6
7
8
9
linux启动流程: {
         1. BLOS  识别硬件,自我测试,导向MBR
         2. MBR  提供菜单选择系统项 , grup
         3. Boot loader   kernel 与 加载内存及检测硬件情况
         4. 内核文件   加载init进程 基本命令  ls  , cp  , 其他软件加载到内存中
         5. 配置文件    /etc/rc .d /rc .sysinit
         6. 执行服务的启动
         7. 加载  /etc/rc .d /rc . local
     }


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
shell特殊符号: {
     # 注释
     \ 转义
     | 管道  用于数据定向   cat  etc /passwd  cut  -d: -f1
     ; 分隔符
     ~ 用户根目录
     $ 变量符号
     & 作业控制
     ! 非
     / 目录符号
     >> > 数据输出
     < << 数据输入
     ''  ""  ``
     ()
     {}
}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
shell脚本编程: (用于系统维护,自动化管理,检测) {
     习惯良好的编程习惯
     #!/bin/bash  作为起始描述.
     定义变量  declare  -i num=1   declare  -s str= "sss"
     执行shell脚本    source  xxx.sh(父进程中执行,可更新配置文件)    bash  xxx.sh
     bash  -x xxx.sh  执行调试
     输入  read  -p  ""  var  输出  echo  -e  (格式化输出)
     字符的作用   ''   只做字符的引用   ""   还可做变量的引用  ``  命令做执行结果
                                                                                             
     测试包含: 1. 数字测试   2. 字符测试  3. 文件测试
     1.数字测试   -gt  -lt  - ge   - le   - eq   - ne   可用中括号完成
     2.字符测试   ==  =~ 正则匹配测试 !=   -n  判断字符是否为空  null位真  -z  可用两对中括号完成
     3.文件测试   -e 存在 -f 普通文件 -d 目录 -b 块设备 -c 正则表达式字符设备 -S socket文件 -p FIFO文件 (键盘设备??) -L 连接文件  可用中括号完成
     -nt file1是否比file2新?  -ot  file2是否比file2旧?  -ef  两个文件的inode号是否一致
     4.文件权限测试   -r  -w  -x
                                                                                             
     多条件判断  && || !
         个人倾向   [ a ] && [ b ]   可有:  [[ a && b ]]  [ a && y ]
     变量分类:
     本地变量   可由用户定义,只能在当前的上下文中使用,其他shell均没有权限
         定义  num=1   但在使用的时候   $1
     局部变量   $?   当前命令执行的状态
     环境变量   比如shell脚本第一句导入,就是环境变量,当前的shell可以访问环境变量 比如$path
     位置变量    #1 #2 #2  与shell脚本执行的参数变量
     特殊变量   $ #(参数个数) $@(总参数列表)
     算数运算:   let  sum +=2
     流程控制:
         if  [ conditions ];  then  fi
         if  [ conditions ];  then  else  fi
         if  [ conditions ];  then  elif  [ conditions ];  then  else  fi
         case  $1  in
             "a" )
             ;;
             "b" )
             ;;
               *)
             ;;
         esac
         for  $i  in  列表;  do
         done
         列表生成
             1.  for  in  1 6 8;
             2.  for  in  /usr/log/ *
             3.  for  in  {0..10}
                for  in  ` seq  1 10 1`
                for  in  ` seq  1 $line 2`
         for  (( i=0; i<n; i++ ));  do
         done
         while  [ conditions ];  do
         done
         while  read  line;  do
         done  /etc/passwd
         until  [ !conditions ];  do
         done
     函数定义:  function  name() {
                 echo  $1
              }
              name 1
     shift : 参数轮替
}



1
2
3
4
5
6
7
8
9
10
11
shell特性重定向: {
     每一个命令都支持支持最基本的linux标准输入和输出
     ls  /etc/passwd    可将信息输出到用户频幕上
     . /a .txt <  /etc/passwd     . /a .txt <<  /etc/passwd    讲信息输入到a ??
     cat  /etc/passwd  > . /a .txt   >>
     可以在 set  -C 禁止覆盖
     &>   和错误也定向输出
     cat  /dev/zero  /dev     清空硬盘
     ls  /etc  &>  /dev/null     讲错误定向到null区域
     双向重定向    tee    输出屏幕和文件   tee  后一般是文件
}



1
2
3
4
5
6
7
8
9
10
11
12
13
shell命令: {
     cat    输出
     ll =  ls  -l
     who   谁在线
     cut   讲信息进行切割    cut  -d ' '  -f1 (-d 切割字符   -f  获取切割段)
     grep   对文件进行正则匹配查找   ( grep  ""  文件 /  cat  /etc/passwd  grep  "" )
     last  最后登陆信息 20条
     export   打印当前用户的环境
     sprt 排序  sort  -t  ''  -k 3 (-t 切割字符 -k 切割后的条件)
     uniq   排除重复
     wc   -c -l  (字符数  ,   文件行数)
     tr  '[A-Z]'  '[a-z]'   大小写转换
}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
shell常用目录或文件: {
     /etc/passwd    账户信息
     /dev/null     null黑洞
     /dev/zero     zero0用于填充磁盘
     /etc/rc .d /rc .init    启动信息
     /etc/vimrc    ~/.vimrc   vim配置信息
     /proc/partitions   分区信息
     /proc/cpuinfo    /proc/meminfo    cpu meminfo信息
     /etc/fstab   挂载点信息(可更新)    /proc/mounts    详细   /etc/mtab
     /proc/sys/vm/swapiness     内存策略  是否启用交换分区
     /etc/mdadm .conf    阵列配置信息
     /proc/mdstat       整列设备信息
     /dev/rc .d /rc .sysinit   开机启动项
     /etc/sysconfig/network-scripts/ifcfg-eth0    网络配置
     /etc/yum .conf     /etc/yum .repos.d/*   软件源配置
     /etc/issue    欢迎信息
     /boot/grup     引导器       /boot/grup/menu .lst  引导列表
     /etc/man .config     man 文档匹配
     /etc/profile .d   脚本配置目录
     /usr/include     头文件目录
     /etc/ld .so.conf.d/    库文件所在
     /proc/meminfo     内存信息
}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
vim的使用: {
         模式:
             编辑模式  默认 /esc   命令模式  :  输入模式  i  可视模式   v
         按键:
             编辑模式             gg
                 移动      ^ h j k l $    可与数字配合   10j
                               G
                 ZZ  退出
                 dd   删除整行  d
                 o   新插入一行
                 yy  复制整行  y
                 p   粘贴
                 J   合并行
                 u   还原   ctrl+r  撤销
                 r   替换一个字符
                 CTRL+w s   窗口分割
             可视模式   v   V  选择块   行
             命令模式  / 搜索  :n,md  从n到m删除    :n,ms/原内容(     可正则)/       新内容 /g    :wq  保存退出    :q!  强制退出
                                                                                  
         设置:
             nu  ai  sm  括号匹配  syntax 语法
         其他问题:
         编码:
             可设置当前主机  LANG=
         断行符:
             UNIX2dos -k 文件
             dos2UNIX -k 文件
         语系编码转换:
             iconv -f 原编码 -t 现编码 filename newfilenamew
     }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
磁盘管理: 新建普通 {
     磁盘有物理和逻辑结果组成(机械式)
     物理结构:  扇区  512KB 物理结构最小单位  扇面   柱面  分区最小单位 (千层饼??)
     在磁盘的第一个扇区  有446KB的MBR主引导   分区表64KB  (16*4) 2KB标识位
     逻辑结构:  磁盘被分为许多block, inode
     众多的block组成了block  group  ->  super block,文件描述信息,inode talbe,block bitmap,inode bitmap,block
         文件描述信息: 描述上述东西的存在
         super block: 描述block,inode数量   使用量
         block: 最小逻辑单位   1K  2K  4K
         inode: 记录block12个block的位置   共128byte   一般情况下拥有12个直接  1一个间接  1个双间接  1个三间接
         block bitmap: 记录block的使用情况
         inode bitmap: 记录inode的使用情况
     常见文件系统格式:
         基本: ext2  ext3  ext4  Reiserfs(小)  JFS   vfat  xfs(大)
         集群: GFS2 , OCFS2
         网路: NFS , smbfs
         光盘: ISO9660
         交换分区: SWAP
     分区磁盘分为两种情况:
         1, 已存在系统
             kpartx -i  /dev/sda
             kpartx -af  /dev/sda
             partx -a  /dev/sda
         2, 新磁盘
     操作:
         查看 cat  /proc/partitions  磁盘信息
         1. 分区    fdisk    sfdisk   parted
         2. 格式化  mkfs   mkfs.exts   mk2efs (在格式化也可对文件系统调整)
         3. 信息查看/调整
             blkid (格式化后文件系统信息)
             dumpe2fs (超级块信息)
             tune2fs (调整文件系统选项)
             e2label (改变label)
             hdparm  (硬件信息)
             resize2fs  (从新调整大小)
         4. 检测    fsck    e2fsck
         5. 交换分区  mkswap  swapon /off
         6. 挂载     mount    umount   (手动,开机)
         过程中需要使用到的信息
         fuser 挂载占用  df  磁盘空闲状态  du  目录评估占用  dd  填充  ln  链接
}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
磁盘管理: raid {
         HBA        查看机器raid情况   /proc/mdstat
         raid的出现是为了   1.提高 读 a 写 b 速度  2. 容错能力  3. 备份  4.利用率  5. 至少数量
                                                                            
         raid 0      yes    no   no    100    2
         raid 1     1a     yes   yes     50    2
         raid 5      yes    yes   no  n-1 /n     3
         raid01     1a     yes   yes  n-2 /n     4
         raid10      yes    yes   yes  n-2 /n     4
         jbad  连接磁盘
         实例:创建一个空间大小为10G的RAID5设备,要求其chunk大小为1024K,格式经为ext4文件系统,开机可自动挂载至 /backup 目录,并支持acl功能;
             mdadm -C  /dev/md0  -a  yes  -l 5 -n 4 -c 1024K  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde
             # 只有阵列完毕才可以格式化
             mkfs -t ext4  /dev/md0
             #调整绝大数磁盘信息
             tune2fs -o acl  /dev/md0
             可以调整目录的label的名字
             e2label  /dev/md0  "xxxx"
             dumpe2fs -h  /dev/md0
             #编辑/etc/fstab
             /dev/md0                 /backup                  ext4    defaults        0 0
             UUID=5dc72528-30ef-44cd-a38f-7fd0ee176a46  /backup                  ext4    defaults        0 0
     }



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
磁盘管理: LVM {
     LVM:  逻辑卷管理器(可弹性管理磁盘策略)  扩容不需要停止业务     缩容需要停止业务
     分区之后的物理盘加入到卷组中(逻辑概念)之后假如逻辑卷(中间多了一个中间层,由内核驱动完成,内核提供了这样的中间层)
     流程:
         1. 将需要假如LVM的磁盘格式化
         2. pvcreate  /dev/sd {a-z}
         3. vgcreate -s 16M vgname  /dev/sd {a-z}
         4. lvcreate -L 容量 lvname vgname
         5. 挂载  /dev/vgname/lvname
     动态其他操作:
         1. 扩容   先扩大物理容量,再逻辑容量
         2. 缩小   先缩小逻辑容量,再物理容量
     练习:
         1、创建一个由两个物理卷组成大小为20G的卷组myvg,要求PE大小16M;而后新建 大小为7G逻辑卷mylv1,要求其文件系统为ext4,块大小为2048,且开机能自动挂载至 /users
         2、新建用户openstack,其家目录为 /users/openstack ,而后切换至openstack用户,复制一些文件至其家目录中;
         3、缩减mylv1至5G大小;而后切换至openstack用户,确保其数据没有丢失;
         4、对mylv1创建快照卷snap-mylv1,并通过其备份数据至 /tmp/user . tar .bz2;
         #1
         pvscan
         pvcreate  /dev/sd {b,c}
         pvdisplay
         vgcreate -s 16M  test  /dev/sd {b,c}
         vgscan
         vgdisplay
         lvcreate -L 7G -n mylv  test
         mkfs -t ext4  /dev/test/mylv
         tune2fs -r 2048  /dev/test/mylv
         vi  /etc/mdadm .conf
         ARRAY  /dev/md0  UUID=5dc72528-30ef-44cd-a38f-7fd0ee176a46
         #编辑/etc/fstab
         /dev/md0                 /backup                  ext4    defaults        0 0
         UUID=5dc72528-30ef-44cd-a38f-7fd0ee176a46  /backup                  ext4    defaults        0 0
         #2
         useradd  openstack -d  /users
         su  openstack
         cp  -rf  /var/ /users
         #3
         pvdisplay
         umount  /dev/test/mylv
         e2fsck -f  /dev/test/mylv
         resize2fs  /dev/test/mylv  5G
         mount  /dev/test/mylv  /users
         lvresize -L 5G  /dev/test/mylv
         #4 快照
         lvcreate -L 50M -s -n mylv-snap  /dev/test/mylv
         mkdir  /snap
         mount  /dev/test/mylv-snap  /snap
         tar  -jcf  /snap/ * >  /tmp/user . tar .bz2
         tar  -jcv -f  /tmp/user . tar .bz2  /snap/
}



1
2
3
4
5
6
7
8
9
10
11
12
13
压缩,归档工具: {
     这里包含压缩和归档的过程,两个在这里就不区分了,因为使用非常简单
     tar  -c 创建压缩/归档文件夹
         -x 解压压缩/归档文件
         -f 欲解压压缩的文件或包
         -j 对应使用 gzip 压缩工具
         -z 对应使用 bzip2 压缩工具
         -J 对应使用xz压缩工具
         - v  查看解压压缩过程
     实例  在解压和压缩的过程   j J z 都可以省略  自动判断后缀选择压缩工具
         tar  -xf nginx-1.4.2. tar .gz    解压
         tar  -cf axel-2.4. tar .bz axel-2.4/   压缩
}





     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1362564 ,如需转载请自行联系原作者


相关文章
|
1月前
|
Linux 应用服务中间件 Apache
Linux Apache服务详解——Apache服务基础知识
Linux Apache服务详解——Apache服务基础知识
33 2
|
1月前
|
域名解析 缓存 网络协议
Linux DNS服务详解——DNS基础知识
Linux DNS服务详解——DNS基础知识
73 1
|
2月前
|
Linux Shell 数据安全/隐私保护
【Linux】基础学习篇三:用户与权限(持续更新)
【Linux】基础学习篇三:用户与权限(持续更新)
|
2月前
|
Linux
【Linux】基础学习篇一:Linux初始设置(持续更新)
【Linux】基础学习篇一:Linux初始设置(持续更新)
|
15天前
|
安全 Unix Linux
一、linux 常用命令之 linux版本信息 系统管理与设置 持续更新******
一、linux 常用命令之 linux版本信息 系统管理与设置 持续更新******
15 0
|
1月前
|
运维 网络协议 安全
Linux vsFTPd服务详解——vsFTPd基础知识
Linux vsFTPd服务详解——vsFTPd基础知识
28 4
|
1月前
|
Linux C语言 芯片
嵌入式linux系统中设备树基础知识
嵌入式linux系统中设备树基础知识
49 0
|
2月前
|
机器学习/深度学习 Ubuntu Linux
Linux基础操作(持续更新)
Linux基础操作(持续更新)
|
2月前
|
监控 Ubuntu Linux
【Linux】基础学习篇四:实用操作(持续更新)
【Linux】基础学习篇四:实用操作(持续更新)
|
2月前
|
Linux 开发工具 虚拟化
【Linux】基础学习篇二:Linux基础命令(持续更新)
【Linux】基础学习篇二:Linux基础命令(持续更新)