Linux部分笔记

home  家目录
dev  设备挂载目录
mnt  临时挂载目录
media 媒体

cd 切换目录
cd .. 退出  返回上一级目录
ls 列出当前目录内容
  -a all 所有文件 包括隐藏文件
  -l d/r-x/r-x/r-x     
     1、代表文件的类型 d目录 l 链接文件 -普通文件
     2 3 4、文件的权限  rwx read write x执行 -代表没有
     2、文件的所属者的权限
     3、文件所属组的权限 wjw class11
     4、其他用户的权限
创建文件夹:man 帮助
   mkdir [参数] 文件夹名字
   参数:-m  创建文件的同时为文件设置权限
           u=rwx  g  o   user(所属者)  group(所属组)  other(其他用户)
删除文件夹:
   rmdir 删除空目录
      -p 逐级删除
      -v 显示删除状态
复制文件或目录
   cp 源文件名 复制后的文件名
     -a 连同文件的属性一起复制
移动文件
   mv
   mv a b   //将a重命名为b
   mv a b/  //将a移动到b里
   mv a b/c //将a移动到b里,并重命名为c
删除文件或目录:对比  rm  rmdir
   rm  remove
     -r 删除文件夹 逐级进入  逐级删除
     -f 强制  不询问
    
查看文件:/etc/passwd
   创建文件  touch
   查看文件:  
     cat  + 文件名  正向查看  tac+文件名 倒序查看
     more + 文件名  显示一部分 空格显示剩余的 Q 退出
     less + 文件名  逐行查看  方向键  Q退出
     head + 文件名  显示文件的前10行
     tail + 文件名  显示文件的后10行
编辑文件
   vim a.txt  编辑a.txt这个文件
   解释:如果a.txt事先是存在的  继续编辑这个文件
         如果事先不存在,先创建a.txt在编辑
   vim编辑器:
     三种模式:
        命令模式
        输入模式:先按i 可以输入
        末行模式
    先按i进行输入  (进入的是输入模式)
    输入完了按esc键 (退出输入模式,进入命令模式)
    在输入: (末行模式)
    在输入wq就保存退出了


vim编辑器
   :末行模式
       :set nu 设置行号
       :set nonu 取消行号
       :q  退出  q! 强制退出
       :w 保存  wq  保存并退出
       :r /mnt/b.txt   将文件读入到当前文件的最后一行(tab补齐可以使用)
       :/关键字  查找 找到的内容高亮显示  n(next)向下查看
       :s/要替换的/替换成的  --只替换一次 找到一个替换完成后面不管
          % s/要替换的/替换成的  --每行都执行 在这一行找到一个替换完就不管了
           % s/要替换的/替换成的/g   全部替换
       :2,7 co 7  复制2到7行的内容粘贴到底7行后面
命令模式:
      dd 剪切  3dd  从当前光标向下剪切3行
      yy复制   3yy   从当前光标向下复制3行
      p 当前光标所在位置向下粘贴  
      P(大写)当前光标所在位置向上粘贴
      gg快速回到首行  G 快速回到末行(最后一行)  26G 快速定位到26行
      x 删除当前光标覆盖的内容
      r 在输入其他内容  替换当前光标覆盖的内容
      d^删除当前光标前的内容
      d$ 删除当前光标后的内容
      ctrl + 方向键  空格的跳 以空格为分界跳
      数字+方向键  10 ->  向左跳10的字符
      u 撤销上一次的行为

grep过滤
     grep “root”a.txt   --在a.txt;里查找root关键字
         -n 带行号显示
         --color 关键字高亮显示
         -v 反选  不看关键字所在的行
         -c  统计关键字出现的次数
       “^root” 过滤关键字开头的行
       “root$”过滤关键字结尾的行
     不单单可以过滤文件里的内容还可以过滤别的
         ls  | grep shadow  --  | 管道符  将前面的内容作为后一项得到参数
        
linux中用户和组:
   windows创建一个用户 默认将用户添加到users组
   linux创建一户  默认创建一个同名组
   linux中有几个特殊文件(etc文件夹下)
     passwd 存放的是用户信息
     shawod 存放用户的密码信息
     group  存放组的信息
passwd文件:用户信息
    wjw:x:500:500:jw:/home/wjw:/bin/bash
    1、用户名
    2、密码占位符
    3、uid user id  用户id
        0 永远是超及用户 root
        1-499 程序用户(没有登录权限的用户)
        500以上 普通用户
    4、gid group id
    5、用户信息
    6、家目录所在位置   wjw root
    7、用户的登录权限 /bin/bash有登录权限  
                      /sbin/noligin  没有登录权限
    命令解释器(软件) ls grep useradd
    登录权限和没登录权限?
       执行程序
shadow文件  密码信息
    wjw:xxxxxxx:18216:0:99999:7:::
    1、用户名
    2、加密后的密码信息
    3、密码最后修改时间 天数(举例1970年1月1日)
    4、密码最短有效期 5密码在五天内不能修改
    5、密码最长有效期
    6、密码过期前7天提示
    7、密码不活跃期 5密码过期五天以内还可以修改
    8、密码失效期
group文件: 组信息
    bin : x : 1 : bin,daemon
    1、组名
    2、组密码占位符
    3、gid group id
    4、组成员

创建组:
   groupadd [选项] 组名
     选项: -g 指定gid
            -o 创建可重复gid组
            -f 强制执行 有就用原来的  没有就创建(重复不报错)
    groupdel + 组名 删除组
    修改组信息:groupmod + 组名
           上面的
           g  
           o  
           n 重命名  groupmod -n 新名  旧名
           
创建用户:
   useradd [选项] 用户名
   创建用户的同时 会创建家目录和邮箱文件
      家目录所在位置 /home
      邮箱文件所在位置 /var/spool/mail/
      选项:
        -u uid 制定用户id
        -g  制定用户的组 gid 组名
        -G  附加组(一个用户可以存在多个组中)
        -M  不创建家目录
        -s  指定用户登录权限   没有登陆权限-s /sbin/nologin
        -o  uid可重复
   删除用户:
      userdel +用户名 (只是删除用户 用户家目录和邮箱文件还存在)
       -r将用户彻底删除
       -f删除一个正在登录的用户
   修改用户信息:
       usermod +用户名 (上面的参数还都能用)
查看用户信息:
     id+用户名
查看文件权限  ls -l 所有文件权限
              ls -dl 查看当前文件权限
              ls -dl kaso 查看指定文件权限
文件权限修改:change modify
   chmod 用户 选项 权限 文件名
   举例: 用户:u g o
          选项:+ - =
          权限:rwx
    chmod u+x kaso5
    chmod g-r kaso5
    chmod o=rw- kaso5
    rwx r=4 w=2 x=1  6/6/6  4/4/4  5/5/5 r-x/r-x/r-x
       十六进制 f 15  
       十进制 9
       八进制 7
       二进制 1
    八进制   二进制   666  110/110/110
                           rw-rw-rw-
             r/w/x    
       0     000  ---   0没有  1是有
       1     001  --x
       2     010  -w-
       3     011  -wx
       4     100  r--
       5     101  r-x
       6     110  rw-
       7     111  rwx
修改文件的所属者 所属组   root wjw
   修改文件所属者:
     chown 要改成谁 文件名
   修改文件所属组:
      chgrp 要改成的组 文件名
      
源码包安装: GUN 源码压缩上传
   1、查找
      find 查找某一个目录下是否存在某个具体文件
         制造大文件“
        dd if=/dev/zero of=/mnt/bigfile1 bs=1M count=10
          input file从哪输入  
          output file 输出到哪
          bs size =1M  count 10
      find 查找范围 查找类型 查找条件  (模糊查询)
  查找类型:按名字 -name  查找条件:
            按类型 -type     d 文件夹 f 普通文件 l 连接
            按大小 -size     5M 左右  +5M 大于  -5M小于
      grep ls | C*
(find /路径/ -d 名
    find /路径/ -name 名
    ls /路径/ | grep 名
    cd /路径/名    按两次tab键 列出显示)
   2、压缩  
        gzip + 文件名
        bzip2 + 文件名
          只能压缩文件
        tar 能压缩文件夹的
          tar -cf kaso5.tar kaso5(并不能改变文件的大小,但是可以将一个文件夹进行归档,形成一个文件)
             将kaso5文件夹下的所有文件进行压缩,压缩成新创建的文件叫kaso.tar
          解释:tar 压缩命令
                -cf 新创建一个文件 (新文件的后缀必须是.tar,否则虽然能压缩,但是解不开)
                   create创建 f file文件
      解压缩
        gunzip + 压缩文件名.gz
        bunzip + 压缩文件名.bz2
        tar -xf 压缩文件 -C(大)要解压到的位置
编译:
  自己写这一个脚本
      vim test.c
        #include <stdio.h>
         main(){
            printf("hellow word");
         }
   对脚本进行编译:
      gcc test.c -o test   // 编译test.c这个脚本,out生成test可执行文件
      解释:gcc 一个编译器
            -o out
   源码包安装:
      vim README  ----> vim INSTALL
      1、./configure --prefix=安装路径  //检测安装路径是否具备安装条件
      2、make  //开始编译  执行大量的gcc
      3、make install  //正式安装
      4、安装路径下 /bin/apachectl start 启动软件了
                                   stop 关闭
                       restart 重启
                                   
    修改配置文档:
       安装路径下: conf/httpd.conf
         末行模式下: /ServerName   91行  
             加一行: ServerName localhost:80  (解决启动警告问题)
    网页存放位置:
         安装路径下/htdocs/index.html
    关闭防火墙:service iptables stop            
   验证:浏览器 localhost  127.0.0.1  欢迎界面   It works
如果没有出现:
        netstat -antpl | grep httpd      查看所有httpd
        killall httpd                   杀死所有httpd
        ./apachectl start            重启httpd
编译后的软件包安装:
    软件所在位置:
       /media/cenos_6.9_final/packages
      #######.rpm   .rpm结尾的文件 都是编译后的软件包
    rpm  (Redhat package manger)
第一步:确定这个软件有没有被安装过
     rpm -qa      //q报    错提示  a   all   列出所有已经安装过的软件包
第二步:确定软件的功能
     rpm -qpi    //p  package  包   i     infromation   显示信息
第三步:确定包的安装位置
     rpm -qpl   //list  列出包的安装位置
第四步:安装
    rpm -ivh    //i   install  安装  v 显示详细信息   h  以#作为进度条
使用:      tree  树状显示当前文件夹的内容
    tree+文件名  树状显示制定文件夹内容
卸载:rpm -e  包名 (软件名)  不用版本号
     // e   erase (橡皮)
查看某一个文件或文件属于谁
    rpm -qf +文件或文件夹的名称
yum安装:
    软件依赖:A->B->C->D
    rpm -e vim-common 被vim-enchanced需要
    先卸载enchanced 再卸载common
    依赖关系表:存在光盘中
    /media/centos_6.9_final/repodata (本地路径)
    yum源文件:作用安装软件时,帮助有依赖关系的软件找到依赖关系表
    依赖源关系表:有点指向网络
                 有的指向本地
    自己编写yum源文件,将依赖关系指向本地
    编写位置:/etc/yum.repos.d
        vim xxxx.repo
         【标签】 //标签任意  不要有空格
        name=xxxxxxxxx   //描述  任意   不能有空格
        baseurl=file://路径       //路径本地依赖关系表所在位置
        gpgcheck=0          //公钥验证  0不验证   1验证
清缓存: yum clean all
    安装:yum  install  要安装的软件名 -y   //直接自动安装  不询问
      卸载:yum  erase  软件名 -y     //不询问直接卸载   不建议  有些关联的软件还有用
添加硬盘
       实验步骤:
       1.添加一个硬盘
       2.查看磁盘信息 /dev目录下可以查看  sda sdb sdc sde
       3.root身份 fdisk -l
       4.用到的分区工具  parted (软件)
    1.parted /dev/sdb   启动分区工具
     2.mklabel gpt          make lable 确定分区表
    3.mkpart primary 1 200
        在sdb硬盘上从1M到200M区间进行分区
    quit         退出分区工具
    查看分区信息
        ls dev/sdb1 sdb2
        lsblk
        cat /proc/partition
        parted /dev/sdb -s print
    5.使用分区
        1.建立文件系统
        mkfs.ext4 -b 1024 /dev/sdb1
        //make file system  -b  指定单元格大小
        2.挂载:才能存放文件
        mount /dev/sdb1 /mnt/kaso
        //mount 挂载  将sdb1 挂载在kaso文件夹上     在kaso文件夹存放数据就等于在sdb1上存数据
        3.卸载:
        umount /dev/sdb1 /mnt/kaso
        //卸载后,文件不会丢失,还在sdb1中,只是在目录中没有了,从新挂载就恢复了
    6.查看磁盘使用情况
    df -Th
    7.删除分区
    parted /dev/sdb1 -s rm 序号
永久挂载:
    mount /dev/sdb1 /mnt/kaso  挂载在临时  重启后失效
    永久挂载:修改挂载列表  /etc/fstab (file system table)
    设备名      挂载点    文件系统类型    属性    0开机检测级别 0宕机记录
                                1记录
                                0不记录
在vim编辑器中 末行模式下:
    :r /文件路径
    :r !Linux命令 将命令返回值写入到文件的最后一行
    命令模式下:ctrl+v+方向键  实现区域选择
    blkid /dev/sdb1   查看设备uuid
添加一个vfat32系统
    mkfs.vfat -F32 /dev/sdb2
建立加密分区
   前提: 空白分区
   1、对空白分区建立加密系统:
      cryptsetup luksFormat 分区名 //建立加密系统 YES 两次密码
   2、建立映射问文件:
      cryptsetup luksOpen 设备名 映射名  //输密码 建立好的映射在dev/mapper
   3、对映射做文件系统
      mkfs.ext4 映射名
   4、挂在映射使用
   5、卸载 关闭映射
       umount   
       cryptsetup luksClose 映射名  
   6、再次使用
       1、再次开启映射  需要密码的
       2、映射的名字的可以不一样
       3、再次开启的映射直接使用就行 不需要再建立文件系统
       4、加密分区没必要永久挂载  没意义
       
逻辑卷:
   物理 physical 组 group  卷 volume  逻辑 logical 创建 create 扫描 scan 显示 display
   1、创建物理卷 pv
       pvcreate /dev/sd[bcd]
       查看:pvsacn  pvdisplay
   2、创建卷组:
       vgcreate 卷组名字 -s 16M  物理卷(dev/sdb /dev/sdc)
          查看:
   3、创建逻辑卷:
       lvcreate -n 逻辑卷名 -L 200M 卷组名
       查看:
   4、在逻辑卷上可以建立文件系统  挂在使用   建立加密系统        
   5、逻辑卷扩容:
       lvextend -L +200 逻辑卷名  物理卷
       // -L +200 在原来的基础上增加200M
       // -L 400  增加到400M
       扩充文件系统:
       resize2fs + 逻辑卷名字 (安装原来的文件系统,在没有文件系统的部分重新建立文件系统)
删除磁盘:
    严格按着顺序:
      卸载--》lvremove--》vgremove--》pvremove
逻辑卷缩减:
   1、e2fsck -f 逻辑卷名字   //对文件系统进行强制检查(不进行这步,后面没法进行)
   2、缩减文件系统:
      resize2fs  逻辑卷名字 200M   //将文件系统缩减到200M
   3、lvreduce -L 200M 逻辑卷名字  //将逻辑卷缩减到200M
数据转移,拔出硬盘:
    1、pvscan 扫描 查看硬盘使用情况
    2、数据转移
       pvmove /dev/sdb /dev/sdc  //将sdb上的数据转移到sdc上
    3、缩减卷组
       vgreduce kaso_vg /dev/sdb
    4、这时候可以直接将sdb进行热插拔(开机状态),放在别的地方不能用
        因为这个sdb还建立者物理卷 要把物理卷删除
        pvremove /dev/sdb
磁盘加密:
    crypsetup luckFormat /dev/sdb1          建立加密
    crypsetup luckopen /dev/sdb1 kaoso         建立映射
    mksf.ext4 dev/mapper/kaoso                  映射到文件
    mount /dev/mapper/kaoso /mnt/kaoso      挂载
逻辑卷的缩减:
    resize2fs lv 500M            缩减文件系统
    lvreduce -L 500M /lv        缩减逻辑卷
    pvmove /dev/sdb /dev/sdc        转移数据
    vgreduce /vg /dev/sdb        缩减卷组
    pvremove /dev/sdb            删除物理卷
创建磁盘阵列:
    1.mdadm -C /dev/md0 -l5 -n3 /dev/sd[bcd]
    -C     create 创建     -l5  level 5     -n3   num3   使用了3块磁盘
    2.查看磁盘创建状态:
    watch -n1 cat /proc/mdstat
    watch -n1   1秒执行一次后面的命令
    3.创建逻辑卷,挂载使用
创建磁盘阵列的配置文件:/etc/mdadm.conf
    ARRAY /dev/md0 UUID=*******
    uuid:mdadm -D /de    v/md**
模拟一个坏硬盘:
    1.标记:
              mdadm /dev/md0 -f /dev/sdb                        -f   failut
    2.移除:
              mdadm /dev/md0 -r /dev/sdb            -r   remove
    3.增加一个:
              mdadm /dev/md0 -a /dev/sdd            -a   add
开机启动流程:
  1、  开机读秒时按任意键(回车不行)进入brub菜单
  2、选择系统界面: 方向键上下 回车选择
  3、root(hd0,0)  //根分区位置  hd0,0  第一个硬盘的第一个分区
     karnal xxxxxxxxxxxxxxxxxx   //内核信息
     initxxxxxxxxxx              //驱动信息
实验:单用户破解密码
   实验步骤:  
   1、选择内核哪一行  按e键 进行编辑  添加一个单词 single/s/1(数字)
   2、回车 退出
   3、按键b 重启了  直接进入字符界面(全过程不需要密码)
                    root身份进入的字符界面
实验二:
   修改grub菜单的配置文件:/boot/grub/grub.conf
   1、timeout   //倒计时时间
   2、splashimage=     //修改grub菜单背景
   3、为grub菜单添加密码:
      password=123456  //使用明文密码
      加密:  grub 两次tab键  会有很多的加密方式
    使用加密后的密码:--encrypt
root(hd0,0) 根分区    hd0第一块硬盘   0第一个分区  系统位置
kernel            内核信息
initrd            驱动信息
硬盘前512字节是inode区     后半的是block区
模拟grub菜单损坏:
    修改grub菜单的后缀,使Linux开机时找不到grub配置文件,导致开机时找不到根分区、内核信息、驱动信息。
    截屏/boot/grub/grub.conf文件
    reboot重启-->输入刚刚截屏的信息-->boot重启(完了将配置文件后缀改回来)
破坏sda硬盘:(pwd  查看当前在那个文件夹中)
要先添加一块硬盘 备份sda硬盘的grub.conf文件:要创建物理卷,挂载文件,备份文件 如果是逻辑卷一会就比较麻烦了
    备份sda invde分区到sdb block分区:
         dd if=/dev/sda of=/mnt/kaoso/sda.bak bs=512 count=1
    破坏sda:dd if=/dev/zero of=/dev/sda bs=512 count=1(hexdump 查看乱码后的文件)
        将sda文件填充为0  也备份一份  dd if=/dev/sda  of=/mnt/kaoso/sda.now 重启-->正常关机-->
        虚拟机设置-->找到镜像-->开机-->第三个  救援模式-->选语言(English)-->键盘类型(us)-->
        设置网络(no)-->救援模式(cont inue 可以做任何改变)-->ok-->(shell 命令解释器 reboot 重启 fakd 运行诊断模式)
        shell  按tab键选择或-->如果是分区直接挂载,如果是逻辑卷要激活(给逻辑卷组激活逻辑卷也会跟着激活
        激活逻辑卷组的方式:vgchange -a y //active  开始)-->挂载到文件夹kaoso(mount /dev/kaoso_vg/kaoso_lv/ mnt/kaoso)-->
        将刚刚备份的文件复制回/dev/sda(dd if=/mnt/kaoso/sda.bak of=/dev/sda bs=512 count=1)-->reboot重启
init 6:在/etc下   inittab是开机启动级别的配置文件
        0  halt             关机
        1 single user mode        单用户模式
        2 multiuser,without nfs    字符型界面  有网络  多用户
        3 full             没网络         全用户
        4 unused             未使用
        5 x11            默认级别
        6 reboot            重启
    init.conf :开机启动级别的配置文件
    init.d目录中,可执行程序
    vim NetworkManager
        -23 84 -   开机启动级别   23  开机启动顺序   84 关闭顺序
        default start  2 3 4 5   该程序在 2 3 4 5 级别启动
        default stop  0 1 6       该程序在0 1 6 级别启动
    5级别在/etc/rc0.d---rc6.d目录  存放了很多的连接文件
        k   kill  不开启   s   start  开启
        s23NetworkManager (连接文件)     网络管理器
        11 s23NetworkManager 查看连接文件指向的是谁
管理开机自启动的管理:
    在etc/
    临时关闭:servicce  服务名字stop  |   start   |   restart
        例:service Networkmanager stop
    永久关闭:chkconfig --level 开机级别 服务名 off  |  on
        例:chkconfig --level  45 Networkmanager off  |  on
        解释:对于Networkmanager服务在4 5 级别中默认开机时关闭
    pid进程号:进程号有限(僵尸进程会占用pid,导致后面的进程无法启动)
    查看进程命令:ps aux                //all   user   程序名
user        pid        %cpu        vsz rss            tty(CTRL+alt+f2进入中端)        stat
使用者        进程号        cpu占用率        虚拟内存 路由内存占用    终端‘?’表示不占用        状态
状态:S  sleeping  休眠状态    R  runing  运行状态         + 表示前台运行    Ss  有子进程      Z Zombie 僵尸进程(开发不完善的程序在关闭时造成的)
          I 还有有这个进程开启的其他进程
               pstree        //树状显示
               top            //动态实时监测性显示进程
输入h显示帮助     输入M 按内存占用率降序排序    输入P显示CPU占用率      q退出
    关闭进程:kill pia killall 程序名
    ctrl+z将前台程序调入后台    fg # 将后台序号为#的程序调回前台
    jobs  显示所有程序
创建一个程序模拟占用大内存:
    1.创建文件vim test.sh
    2.#/bin/bash              使用当前命令解释器
    while [ 5 -gt 3 ]        当5>3时
      do
        echo“kaoso”        输出kaoso
    done
    3.保存退出
    4.添加执行权限
    chmod +x test.sh
    5.开启另外一个终端
    top输入p:发现test.sh占用率比较高,输入k  提示输入要杀死的pid 输入pid后提示按什么级别杀死  输入9最高级别
    6、回到另一个终端查看  输出结束了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值