linux知识扫盲

情到浓时终转凉″ 提交于 2019-12-05 16:45:15

一、磁盘分区的配置

  mbr与gpt的区别:参考资料网站   https://zhidao.baidu.com/question/457998790987659965.html

 

二、什么是LVM

  LVM(逻辑卷管理程序),是Linux环境下对磁盘分区进行管理的一种机制。

  参考资料网站  https://baike.baidu.com/item/LVM/6571177?fr=aladdin

 

三、什么是挂载点

  一棵大树(根目录/)有很多树枝(目录,挂载点),每个树枝上都挂着一个箱子(分区,存储空间)。

 

四、基础命令

  0.改变文件属性与权限:

    chgrp:改变文件所属群组   chgrp  群组名  目录或文件

    chown:改变文件拥有者     chown  账号名[账号名:群组名]  目录或文件

    chmod:改变文件的权限    chmod  xyz[ugoa +-= rwx]  目录或文件

  1.文件与目录的监视:  ls  [-adl]  [--full-time]  [--time=atime,ctime]  文件名或目录名称  

    -a : 全部文件,连同隐藏文件

    -d : 仅列出目录

    -l  : 包含属性和权限。

    full-time : 显示完整时间

    atime(access time),ctime(change time),mtime(modify time)

  2.复制:  cp  [-aipr]  来源文件或目录  目标文件或目录

    -a :所有全部复制,跟-p有点像

    -i  :复制时会询问是否复制

    -p :文件属性一起复制(权限,用户,时间)

    -r :复制目录时使用,不改变权限就用-a

  3.移除: [\]rm  [-fir]  文件或目录

    -f:忽略不存在的文件,不询问

    -i:复制时会询问是否移除

    -r:删除目录时使用

    \:不询问直接操作

  4.移动或更名: mv  [-fiu]  来源文件或目录  目标文件或目录

    -f:文件存在,不询问直接覆盖

    -i:文件存在,询问是否覆盖

    -u:文件存在,只在来源文件比较新时才覆盖。-

  5.取路径的文件名/目录名:  basename/dirname  路径 

  6.文件内容查阅:

    cat  [-n]  文件  连同空白行打印出行号

    tac  [-n]  文件  从最后一行到第一行开始打印

    less/more  文件    可以对显示出来的内容进行翻页。

    head/tail  [-n number]  文件  取前面/后面几行,默认显示10行。

    od  [-t  TYPE]  文件  非纯文本档的显示。

  7.修改文件时间或建新文件:  touch  [-td]  文件

    -d:修改日期: touch  -d  "2  days  ago"  文件

    -t:修改时间

  8.文件权限查看:  umask  [-S] 

    -S:已字符形式显示,无者数字形式显示

  9.文件修改默认权限:  umask  [xyz]  

    “ [ ] ”中的数字是减去权限。比如此群主默认权限是666,设置002后,变成664。

  10.配置文件隐藏属性:  chattr  [+-=][ai]  文件或目录

    +:增加一个特殊参数

    -:减少一个特殊参数

    =:设定特殊参数

    a:只能增加

    i:不能做任何变动

  11.显示文件隐藏属性: lsattr  [-adR]  文件或目录

    -a:将隐藏文件的属性显示出

    -d:仅列出目录本身的属性

    -R:连同子目录的数据也一并列出

  12.文件特殊权限:

    SUID:只对二进制程序有效;出现在文件拥有者的x权限上;执行者有x的权限;仅在执行该程序的过程中有效;执行者将具有该程序拥有者的权限。

    SGID:对文件或目录都可以设定;出现在群组的x权限上;执行者对程序有x的权限;执行者在执行的过程中获得该群组的支持

    SBIT:只对目录有效;用户对此目录具有w,x权限时,在此目录下创建文件或目录,只有自己和root有权利删除该文件;无法删除其他人的文件。

  13.文件特殊权限设定:

    SUID:4  u+s

    SGID:2  g+s

    SBIT:1  o+t

  14.观察文件类型:  file  文件

  15.命令文件名的搜寻:  which  [-a]  命令

    -a:列出所有可以找到的指令。

  16.文件名的搜寻1:  whereis  [-lbmsu]   文件或目录名  ps:只在几个特定目录进行搜索

    -l:搜寻了哪几个目录

    -b:只找二进制binary文件

    -m:只找说明文件manual路径下的文件

    -s:只找source来源文件

    -u:搜寻不在上面三个项目的其他特殊文件。

  16-2.文件名的搜寻2:  locate  [-icl]  文件或目录名  ps:查找前先进行更新命令  updatedb

    -i:忽略大小写的差异

    -c:不输出文件名,仅计算找到的文件数量

    -l:仅输出几行的意思,例如输出5行则是  -l  5  

  17.文件名的搜寻3:  find  [PATH]  [option]  [action]  ps:全盘进行搜索,很操硬盘,无法必要少用

    PATH:路径,比如“/”,“/home”

    option:选项与参数

    action:行为

      find  PATH  -mtime  [n,+n,-n]                      【第n天的当天内,n天之前,n天之内】被改动过的文件

      find  PATH  -newer file                      列出比file文件还要新的文件名

      find  PATH  [-user,-group]   使用者账号,群组名

      find  PATH  [-nouser,-nogroup]

      find  PATH  [-uid,-gid]  n                     n为数字

      find  PATH  -name  filename                   filename可以是广泛匹配 ,“*部分文件名*”

  18.更新磁盘内容。 sync

  19.列出文件系统的整体磁盘使用量:  df  [-ahi]  [目录或文件名]

    -a:列出所有的文件系统

    -h:以较易阅读的 GB MB KB等格式自行显示

    -i:不用显示磁盘容量,而以inode的数量来显示

  20.评估文件系统的磁盘使用量:  du  [-as]  文件或目录

    -a:列出所有的文件与目录容量

    -s:列出总量,而不列出每个个别的目录占用的容量

  21.建立实体链接:  ln  [-s]  源文件  目标文件

    -s:有s就是symbolic link(类似快捷方式),无s就是hard link。

  22.列出系统上的所有磁盘列表:  lsblk  [-ip]  [device]

    -i:使用ASCII的线段输出,不要使用复杂的编码

    -p:列出改装置的完整文件名!而不是仅列出最后的名字而已

    MAJ:MIN:主要:次要装置代码

  23.列出装置的UUID等参数:  blkid

  24.列出磁盘的分区表类型与分区信息: parted  device_name  print

  25.磁盘分区:  gdisk或fdisk  装置名称

  26.更新linux核心的分区表信息:  partprobe  -s

  27.磁盘格式化:mkfs.xfs  [-f]  装置名称

    -f:强制格式化

  28.XFS文件系统检验:  xfs_repair  [-fnd]  装置名称

    -f:后面的装置是个文件而不是实体装置

    -n:仅做检查不做修改

    -d:进入单人模式时,针对根目录进行检查与修复,务必随便使用

  29.挂载文件系统: 

      mount  -a

      mount  [-l]

      mount  LABEL=''"  挂载点

      mount  UUID=''" 挂载点

      mount  装置文件名  挂载点

    -a:依照配置文件/etc/fstab的数据将所有未挂载的磁盘都挂载上来

    -l:单纯的输入mount会显示目前挂载的信息。有 -l 可增列Label名称

  30.从新挂载目录(remount)并加入参数rw与auto:  mount  -o  remount,rw,auto  挂载点

  31.卸除装置文件或挂载点:  umount  [-fn]  装置文件或挂载点

    -f:强制卸除

    -n:不更新/etc/mtab情况下卸除

  32.磁盘/文件系统参数修订:  mknod  装置文件名  [bcp] [Major]  [Minor]

    b:设定装置名称成为一个周边储存设备文件,例如磁盘

    c:设定装置名称成为一个周边输入设备文件,例如鼠标

    p:设定装置名称成为一个FIFO文件

    Major:主要装置代码

    Minor:次要装置代码

  33.修改XFS文件系统的UUID与Label name:  xfs_admin  [-lu]  [-L label_name]  [-U uuid]  装置文件名

    -l:列出这个装置的label name

    -u:列出这个装置的UUID

    -L:设定这个装置的Label name

    -U:设定这个装置的UUID

  34.产生新的UUID: uuidgen

  35.挂载光盘/DVD映像文件:  mount  -o  loop  映像文件  挂载点

  36.开机挂载/etc/fstab级/etc/mtab:

    /etc/fstab的文件内容:[装置/UUID等]  [挂载点]  [文件系统]  [文件系统参数]  [dump]  [fsck]

  36.特殊装置loop挂载: 

    1.  dd  if=/dev/zero  of=/srv/loopdev  bs=1M  count=512  创建一个大文件(/srv/loopdev),块复制。

    2.  ll  -h  /srv/loopdev

    3.  mkfs.xfs  -f  /srv/loopdev

    4.  blkid  /srv/loopdev

    5.  mount  -o  loop  UUID="取上一步查出的值"  /mnt

    6.  df  /mnt

    7.  nano  /etc/fstab

    8.  /srv/loopdev  /data/file  xfs  default,loop  0  0

    9.  umount  /mnt

    10.  mkdir  /data/file

    11.  mount  -a

    12.  df  /data/file

    总结:分区 -- 格式化 -- 挂载 -- 设置/etc/fstab -- 卸载挂载点 -- 创建新的挂载点 -- 重新挂载所有

  37.利用gdisk/fdisk创建新分区槽(一下例子已创建swap为例):

    1.  fdisk /dev/sda

    2.  建立新分区槽(n) -- 输入分区槽大小(?G) -- 生成新的分区槽

    3.  partprobe    强制更新分区槽

    4.  lsblk   查看新的分区槽

    5.  mkswap  /dev/vda6   创建swap格式

    6.  blkid  /dev/vda6 

    7.  free   观察分区槽剩余容量

    8.  swapon /dev/vda6  启动swap。  关闭swap的命令是:swapoff

    9.  free

    10.  swapon -s

    11.  nano /etc/fstab

    12.  UUID=''' swap swap default  0 0

    总结: fdisk建立新分区槽 -- partprobe强制更新分区表 -- mkfs.xfs -f格式化 -- mkdir创建挂载点 -- nano /stc/fstab增加一行配置 -- mount -a重新挂载所有。

  38.利用GNU的parted进行分区行为: parted  [装置即入径]  [指令 [参数]]

    指令功能:

      新增分区:mkpart  [ primary | logical | extended ]  [ ext4 | vfat | xfs ]  开始  结束

      显示分区:print

      删除分区:rm  [ partition ]

    1.  parted  /dev/vda  unit  mb  print

    2.  parted  /dev/vda  mkpart  primary  fat32  36.0GB  36.5GB  (最后两个参数是分区的起始点和结束点)

    3.  parted  /dev/vda  print

    4.  partprobe

    5.  lsblk  /dev/vda7

    6.  mkfs  -t  vfat  /dev/vda7

    7.  blkid  /dev/vda7

    8.  nano  /etc/fstab

      UUID="上一步骤查到的UUID"  /data/win  vfat  defaults  0  0

    9.  mkdir  /data/win

    10.  mount  -a

    11.  df  /data/win

  39.了解下这6个文件系统是什么:

    boot sector  ,   引导扇区,启动区

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

    inode bitmap  ,   索引节点位图,记录使用与未使用的inode。

    block bitmap  ,   块的位图,记录使用与未使用的block。

    inode table  ,   记录文件属性:该文件的存取模式;该文件的拥有者与群组;该文件的容量;该文件的atime,ctime,mtime,SUID;该文件真正内容的指向。

    data block   ,  存放文件内容数据。

  40.gzip压缩:  gzip  [-vdc#]  文件名  

    -v:可以显示出原文件/压缩文件的压缩比等信息(占比源文件多少)

    -d:解压缩

    -c:gzip -c 文件名 > 文件名.gz    保留源文件

    -#:为数字的意思,默认是6。 数值越高压缩越慢,压缩比越好。

  41.在压缩文件中找出某个关键词的位置:  zgrep  -n  '关键词'  压缩文件

  42.  cat/more/less读取纯文本文档。 zcat/zmore/zless读取压缩后的压缩文件

  43.bzip2压缩:  xz/bzip2 [-vdc#] 文件名

    同上

  44.打包指令:

    压缩:  tar  -jcv  -f  待建立的新文件名  要被压缩的文件或目录名称

    查询:  tar  -jtv  -f  已有的tar文件名

    解压缩:  tar  -jxv  -f  已有的tar文件名  -C  预解压缩的目录

      -j:通过bzip2的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2 (-z:gzip ,*.tar.gz ; -J:xz, *.tar.xz)

      -c:建立打包文件

      -t:查看打包文件的内容含有哪些文件名

      -x:解打包或解压缩的功能

      -v:在压缩/解压缩的过程中,将正在处理的文件名属性显示出来

      -C:用于解压缩至指定目录

    备份:  time  tar  -zpcv  -f  备份的文件名  被备份的文件名     

      -time:会显示程序运作的时间

      -p:保留备份数据的原本权限与属性

      -P:保留绝对路径,即允许备份数据中含有跟目录存在。

  45.仅解打包文件里的单一文件:  tar  -jxv  -f  已有的tar文件名  预解的文件

  46.打包某目录,但是不含该目录下的某些文件:  tar  -jcv  -f  /root/system.tar.bz2  --exclude=/root/etc* --exclude=/root/system.tar.bz2  /etc  /root

  47.仅备份比某个时刻还要新的文件:  tar  -jcv  -f  备份的文件名  --newer[-mtime]="2019/11/12"  被压缩的文件名

  48.将文件备份到磁带机:  tar  -cv  -f  磁带机名  被打包的文件

    联系题: -time tar  -jpcv  -f  /backups/backup-system-20150701.tar.bz2  --exclude=/home/loop* --exclude=/root/*.bz2.*  /etc/*  /home/*  /var/spool/mail/*  /var/spool/cron/*  /root

  49.备份xfs系统文件: 

    xfsdump  [-L S_label]  [-M M_label]  [-l #]  [-f  备份文件名]  被备份文件名

      -L:xfsdump会记录每次备份的session表头,这里可以填写针对此文件系统的简易说明

      -M:xfsdump  可以记录储存的标头,这里可以填写此媒体的简易说明

      -l:指定等级0-9,(默认为0,即完整备份)

      -f:有点类似tar。后面接产生的文件,亦可接例如 /dev/st0装置文件名或其他一般文件名等

    xfsdump  -I

       -I:从/var/lib/xfsdump/inventory列出目前备份的信息状态

  50.制作/修改可开机光盘映像档:

    1.  isoinfo  -d  -i  /home/Image文件.iso

    2.  mount  /home/image文件.iso  /mnt

    3.  mkdir  /srv/newcd

    4.  rsync  -a  /mnt/  /srv/newcd

    5.  ll  /srv/newcd

    6.  ll  /srv/newcd/isolinux/

    7.  cd  /srv/newcd

    8.  mkisofs  -o  /custom.iso  -b  isolinux/isolinux.bin  -c  isolinux/boot.cat  -no-emul-boot  -V  'CentOS 7 x86_64'  -boot-load-size  4  -boot-info-table  -R  -J  -v  -T

   51.光盘刻录工具: 

    wodim  --devices  dev=/dev/sr0...    查询刻录机的BUS位置

    wodim  -v  dev=/dev/sr0 blank=[fast|all]    抹除重复读写片

    wodim  -v  dev=/dev/sr0  -format        格式化DVD+RW 

      --devices:用在扫描磁盘总线并找出可用的刻录机,后续的装置为ATA借口

      -v:在cdrecord运作的过程中,显示过程

      dev/dev/sr0:找出此光驱的bus地址

      blank=[fast|all]:blank为抹除可重复写入的CD/DVD-RW,使用fast较快,all较完整

      -format:对光盘进行格式化

    wodim  -v  dev=/dev/sr0  [可用选项功能]  file.iso

      -data:指定后面的文件以数据格式写入,不是已CD音轨方式写入

      speed=X:指定刻录速度,例如CD可用speed=40为40倍数,DVD则可用speed=4

      -eject:指定刻录完毕后自动退出光盘

      driveropts=burnfree:打开Buffer Underrun Free模式的写入功能

      -sao:支持DVD-RW的格式

    实例步骤:

    1.  wodim  -v  dev=/dev/sr0  blank=fast  清除DVD旧记录

    2.  wodim  -v  dev=/dev/sr0  speed=4  -dummy  -eject  /tmp/system.img    刻录DVD

    3.  mount  /dev/sr0/mnt

    4.  df  -h  /mnt

    5.  ll  /mt

    6.  umount  /mnt

  52.  dd  if="input_file"  of=''output_file"  bs="block_size"  count="number"

    if:就是input file ,也可以是装置

    of:就是output file , 也可以是装置

    bs:规划的一个block的大小,若未指定则默认是512bytes(一个sector的大小)

    count:多少个bs的意思

      实用案例:备份映像档至USB中,并设置成开机默认USB

      1.  lsblk  /dev/sda

      2.  dd  if=/tmp/system.iso  of=/dev/sda

      3.  mount  /dev/sda  /mnt

      4.  ll  /mnt

  53.可以备份任何东西的指令 cpio    

    备份:cpio  -ovcB  > [file | device]

      -o:将数据复制输出到文件或装置上

      -B:让预设的Blocks可以增加至5120bytes

    还原:cpio  -ivcdu < [file | device]

      -i:将数据从文件或装置复制到系统中

      -d:自动建立目录。

      -u:自动的将较新的文件覆盖较旧的文件

      -t:需配合-i选项,可用在“察看”以cpio建立的文件或装置的内存

    察看:cpio  -ivct  < [file | device]

    实例:

      1.  find  boot | cpio  -ocvB > /tmp/boot.cpio

      2.  cpio  -idvc < /tmp/boot.cpio

五。程序编辑器vi,vim

   1)一般指令模式按钮说明(常用)

    ctrl+f:屏幕向下移动一页

    ctrl+b:屏幕向上移动一页

    数字0或功能键home:移动到这一行的最前面字符处。

    $或功能键end:移动到这一行的最后面字符处

    G:移动到这个文件的最后一行

    nG:n为数字,移动到这个文件的第n行

    gg:移动到这个文件的第一行。

    n<Enter>:n为数字,光标向下移动n行

    /word:向光标以下寻找一个名称为word的字符串

    ?word:向光标以上寻找一个名称为word的字符串

    :n1,n2s/word1/word2/g:n1,n2为数字,在第n1行和第n2行之间寻找word1这个字符串,并取代为word2。  实例: :100,200s/word1/word2/g

    :1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并取代为word2

    :1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并取代为word2。并跟用户确认是否取代。

    x , X:x向后删除,X向前删除

    dd:删除光标所在的一整行

    ndd:n为数字,删除光标以下的n行

    yy:复制光标所在的行

    nyy:n为数字,复制光标向下n行

    p , P:p为将已复制的数据在光标下一列粘贴,P为在光标上一列粘贴

    u:复原前一个动作

    Ctrl+r:重新做上一个动作

    .:重复前一个动作

   2)一般指令模式切换到指令模式的可用按钮

    :w  将编辑的数据写入硬盘文件中

    :q  离开vi

    :set nu  显示行号

    :set nonu  取消行号

    :r 文件名  将文件的内容读入现在打开的文件

   3)区块选择

     v:字符选择,会将光标经过的地方反白选择

    V:行选择,会将光标经过的行反白选择

    [Ctrl]+v:区块选择,可以用长方形的方式选择

    y:将反白的地方复制起来

    d:放反白的敌法删除掉

    p:将复制的区块,在游标处贴上

  4)多文件编辑

    :n  编辑下一个文件

    :N  编辑上一个文件

    :files  列出目前这个vim开启的所有文件

  5)多窗口功能

    :sp 文件名  打开多一个窗口

    [ctrl]+w+↓  窗口切换

    [ctrl]+w+q  结束下方窗口

  6)挑字补全功能

    [ctrl]+x -> [ctrl]+n  透过目前正在编辑的这个[文件的内容文字]作为关键词,予以补齐。

    [ctrl]+x -> [ctrl]+f  以当前目录内的[文件名]作为关键词,予以补齐

    [ctrl]+x -> [ctrl]+o  以扩展名作为语法补充,以vim内建的关键词,予以补齐

   7)vim环境设定与记录

    :set  hlearch/nohlsearch  设置搜索词高亮

    :set  autoindent/noautoindent  自动缩排

    :set  backup  自动备份

    :set  ruler  显示右下角的状态栏说明

    :set  showmode  在左下角显示--INSERT--之类的说明

    :set  backspace=(012)  按 i 进入编辑模式后,是否可以利用(backspace)退格键删除字符,2可以,01不行。

    :set all  显示目前所有的环境参数设定值

    :set  显示自行变动过的设定参数

    :syntax on/off  依据程序相关语法显示不同颜色

    :set bg=dark/light  可用于显示不同的颜色色调

    以上设置可在~/.vimrc中配置。

  8)常用指令示意图

     

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!