Linux 基本命令

## 1.配置环境centos7.x

## 2.基本命令

[root@localhost ~]#   $

[用户名@主机名 当前用户家目录] #管理员命令提示符  $普通用户的命令提示符

#ip  a  查看主机ip地址

#dhclient 自动获取ip

#pwd      打印当前工作目录

#hostname  查看主机名

#hostname NAME 修改主机名

,命令格式:    命令   -选项    参数

#su  切换用户(默认切换的是管理员身份)

#su  redhat   切换到指定用户身份,不改变当前工作目录

#su -  redhat    切换到指定用户身份,并进入当前用户自己的家目录

#passwd   默认修改当前用户的密码

​          管理员身份:

​          普通身份:

#passwd -d USERNAME    删除指定用户的密码

#cd  切换目录

绝对路径:从/ 开始查找   cd /home/redhat

相对路径: 相对于当前工作目录查找    home]#cd  redhat

.     当前目录

..  上一级目录

”-“返回上一次所切换的目录

~   当前用户的家目录

/      根目录

#ls     list  列出

  -l     长格式列出    ---> ls -l == ll

  -a    all列出目录下所有的文件(./ .. 隐藏文件)

   -A

  -i  查看文件的inode编号

  -d  列出指定目录相关信息

   -r 反序显示

## 3.破解密码:

关机------开机------选择引导菜单---按  e   ----找linux16开头的行在行尾添加 rd.break

-----------按  CTrl+X---------mount   -o   remount,rw     /sysroot  (给/文件系统设置读写权限)--------chroot    /sysroot (切换到根文件系统)--------passwd   root     -------设置密码--------touch      /.autorelabel------------exit-----exit-----等待系统自动重启

 [root@localhost /]# ls /root -l

总用量 4

-rw-------. 1 root root 1423 6月  21 18:59 anaconda-ks.cfg

第一个字符:-普通文本文件    d 目录文件   l 软链接  (b  块设备文件    c   字符设备文件    p 管道文件 s socket套接字文件)   文件类型   

(2-10字符)  权限标识位

第二列  硬链接次数

第三列  所属用户

第四列  所属组

第五列   文件大小

第六列   创建时间、修改时间

第七列  文件名

软链接:

概念:软链接也是单独的文本文件,类似于window快捷方式

作用:方便,便捷

状态:l

硬链接:

概念:多个文件名指向同一个Inode、

作用:防止误删除,对文件名备份

状态:根据文件的硬链接次数

```

------创建软连接-----ln -s  源文件   目标文件

[root@localhost test]# touch file

[root@localhost test]# mkdir dir

[root@localhost test]# ll

总用量 0

drwxr-xr-x. 2 root root 6 6月  23 12:32 dir

-rw-r--r--. 1 root root 0 6月  23 12:32 file

[root@localhost test]# ln -s file  file.lnk   -==file文件创建软连接文件为file.lnk

[root@localhost test]# ll

总用量 0

drwxr-xr-x. 2 root root 6 6月  23 12:32 dir

-rw-r--r--. 1 root root 0 6月  23 12:32 file

lrwxrwxrwx. 1 root root 4 6月  23 12:34 file.lnk -> file

[root@localhost test]# ln -s dir dir.lnk

[root@localhost test]# ll

总用量 0

drwxr-xr-x. 2 root root 6 6月  23 12:32 dir

lrwxrwxrwx. 1 root root 3 6月  23 12:36 dir.lnk -> dir

-rw-r--r--. 1 root root 0 6月  23 12:32 file

lrwxrwxrwx. 1 root root 4 6月  23 12:34 file.lnk -> file

-------------硬链接文件---ln 源文件   目标文件----------------

[root@localhost test]# ln file f1

[root@localhost test]# ll -i

总用量 0

    6665 drwxr-xr-x. 2 root root 6 6月  23 12:32 dir

50738230 lrwxrwxrwx. 1 root root 3 6月  23 12:36 dir.lnk -> dir

50738228 -rw-r--r--. 2 root root 0 6月  23 12:32 f1

50738228 -rw-r--r--. 2 root root 0 6月  23 12:32 file

50738229 lrwxrwxrwx. 1 root root 4 6月  23 12:34 file.lnk -> file

[root@localhost test]# ln -s /test/file /fff.lnk

   注意:创建连接文件源文件和目标文件不在同一路径,文件路径需要通过绝对路径标记。对于当前系统目录文件不能创建硬链接。

```

```

eg:在root家目录创建文件file, 在/目录下创建file文件的软链接文件haha

#touch file

#ln -s /root/file   /haha

    要求在/home创建文件为aaa,并在/目录下创建软链接文件a.txt,/root下创建硬链接文件为A。

    #touch /home/aaa

    #ln -s /home/aaa   /a.txt

    #ln /home/aaa  /root/A

```

FHS:文件系统的层级结构(标准)

#date  查看系统时间

#date 月日时分年点秒

#clock 查看硬件时间

#hwclock 查看硬件时间

   -s   系统时间向硬件时间同步

  -w  硬件向系统时间同步

#cal   1752      

  cal   [option]  [[[日]月]]年]

   -j  

--help    man  

## 1.文件管理的命令

#touch  [option]... [file]...  创建文本文件

​                #touch 1 2 3

​                #touch  /root/f1  f2   f3

​                #touch   {1..3}

#mkdir   [option]... [dir]...    创建目录文件

​        -p  --parents  指定父目录创建

​        -v   --verbose   详细信息

​         #mkdir  /1/2/3/4/5    -pv

练习题

1、#创建目录

​        在/mnt下创建boot和sysroot目    #cd /mnt   #mkdir {boot,sysroot}   #mkdir   boot   sysroot

​        在/mnt/boot下创建grub目录       

​        在/mnt/sysroot下创建proc,sys,bin,sbin,lib,usr,var,etc,dev,home,root,tmp

​                在/mnt/sysroot/usr下创建bin,sbin,lib

​                在/mnt/sysroot/lib下创建modules

​                在/mnt/sysroot/var下创建run,log,lock

​                在/mnt/sysroot/etc下创建init.d

2.如何一次性在/test目录创建以abc表示的100个文件,例如abc1,abc2,abc3,..abc100

#cp [选项]... 源文件... 目录(目标路径)

   -r   递归复制目录及其子目录内的所有内容

   -p   复制文件保持文件的原来属性

   -a   复制目录保持目录属性信息

   -i    交互提示

​                        #mkdir  /test 

​                        #touch /test/file

​                        #cp /test/file  /root   

​                        #cp -rp /test     /root    ---复制目录文件

​           #cp  -a   /test/  /root

​          [root@localhost test]# cp /test/abc100  /100      复制abc100文件到/目录并改名为100

​         [root@localhost test]# cp abc1 abc2 abc3    /      复制多个文件abc1 abc2 abc3 到/目录

#mv   [选项]... 源文件... 目录(目标路径)

​        #mv   /test/abc1    /

​       [redhat@localhost ~]$ mv abc12  12   文件重命名  (将abc12  改名为12)

#rm   remove 

#rm   [options]...  [file]...  *  通配符(任意长度任意字符)

​         -r    -r   递归删除目录及其子目录内的所有内容   

​         -f       强制

查看文本文件:

cat   tac        (建议查看内容较少的文件)    -n   显示文件行号

more  less 

head     tail  -n   显示指定行数的信息

#vi   filename 文本编辑命令

​        命令模式: 终端末行没有任何显示或者显示文件名信息

​        dd   删除光标所在行

​        d+enter  删除光标以及下一行

​        dG         删除光标所在行到文档尾的内容

​        dgg       删除光标所在行到文档首的内容

​        4G            跳转的文档尾的行首

​        gg          跳转到文档首部行首

​        ^              跳转到行首

​        $              跳转到行尾

​        编辑模式:   insert      i

​        末行模式:   终端末行显示:

​        w   写入     w   file

​        q   退出     wq

​        !     强制符    wq!

​        set  nu  显示行号

​        set   nonu   取消行号标记

## 2.文本处理

#cut   文本剪切

-c  按照字符进行剪切

-d  标记分割符类型

-f   标记字段

#echo  x回声,影子(打印命令)标准输入输出指令

">" 重定向符       将前面输出的字符信息写入指定文件并覆盖原有信息

“>>” 追加重定向符    将前面输出的字符信息追加写入指定文件不会覆盖原有信息

“<”   输入重定向符

“<<” EOF     输入终止结束符

```

[root@localhost ~]# cat <<EOF >  mingdan

> caotong

> wangmingkai

> moukai

> EOF

> [root@localhost ~]# cat mingdan

> caotong

> wangmingkai

> moukai

```

"   "弱引用    可以显示变量的值

'   '  强引用      显示字符本身,不显示变量的值

`` 反引号      实现命令替换

“|”  管道符  将前边命令标准输出的字符信息通过管道连接作为后边命令的标准输入

|tee    “T”管道 

文件三个标记值  0 标准输入   1正确输出   2 错误输出

#sort  排序  (按照字符排序)

-n  按照数值大小排序  升序

-r 降序

-u 去重

uniq 去重(重复行必须相邻)

-c 统计重复行次数

-d 显示重复行

-D显示所有重复行

练习题:       

1.在终端中显示当前系统时间,时间格式为月日时;

2.截取当前日期的年月日显示在文件A.txt 中;

3.用户配置文件将3,4 字段分别截取出来写入文件UID和文件GIU但是要使这两个文件中的信息是以数值由大到小的形式显示;/etc/passwd

4.将当前系统所有的用户名写入到user文件;

5.将当前系统root用户执行频率最高的三个命令显示在终端; ~/.bash_history

 history | sort| uniq -c | sort  | tail -3

6.通过cat 结合> 和<<编辑file文件,文件内容为

redhat linux

centos linux

ubuntu  linux

kali linux

#cat > file << EOF

#wc  文本统计(行   单词数  字节数  文件名)

-l    行数

-w   单词书

-c    字节

-m   字符

#grep   文本内容过滤

grep  root   /etc/passwd   显示有关键字root 行的信息

grep  -v root /etc/passwd   不显示关键字root行的所有信息

grep -w  root /etc/passwd  单词是root的行过滤显示

#tr 

## 3.系统查找文件

#which       基于环境变量$PATH ---查找是命令文件(可执行文件)

```

[root@localhost home]# which passwd

/usr/bin/passwd

[root@localhost home]# which haha

/usr/bin/which: no haha in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

```

#locate  基于/var/lib/mlocate/mlocate.db数据库文件编辑查找字符串文件,遍历速度快,需要时常更新数据库文件

```

#yum install mlocate

[root@localhost ~]# locate file

locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录

[root@localhost ~]# updatedb

[root@localhost ~]# locate file

/filea

/fileb

/filec

/boot/grub2/i386-pc/configfile.mod

/boot/grub2/i386-pc/file.mod

/boot/grub2/i386-pc/search_fs_file.mod

/etc/filesystems

/etc/makedumpfile.conf.sample

```

whereis   查找文件  基于环境变量查找所有文件

```

[root@localhost ~]# ll /usr/bin/lxx

-rw-r--r--. 1 root root 0 6月  23 14:33 /usr/bin/lxx

[root@localhost ~]# whereis lxx     ---文件

lxx: /usr/bin/lxx

[root@localhost ~]# which lxx    ---可执行文件

/usr/bin/which: no lxx in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

```

#find  文件查找命令

find [path] [options] [expression] 

​        查找路径的范  查找方式 (时间,权限,文件名,inode...  )   参数对象

         -name   通过文件名查找

​     -uid     通过uid查找,

​     -gid

​      -user

​     -group

​      -inum  基于inode编号搜索

​      -type   查找指定类型的文件(f d  l  b  c  p  s)

## 1.用户管理

#useradd  USERNAME   添加用户

#userdel -r USERNAME   删除用户

#usermod  

​        -l修改登录名称

​    -u 修改用户的ID唯一

​    -g 更改用户的基本组

​    -G修改/添加附加组

​    -c 更改注释字段

​     -d 修改家目录

​     -s 更改shell ---(/bin/bash     /sbin/nologin)

​     -L  锁定用户

​     -U  解锁

#/etc/passwd    用户配置文件

用户名:密码占位符:UID:GID:注释:家目录:shell(/bin/bash     /sbin/nologin)

#groupadd GROUPNAME   添加组

#groupmod       修改组信息

​        -n     修改组名

​        -g      修改GID

#groupdel  GROUPNAME  删除组

/etc/group    组配置文件

组名:组密码占位符:GID:当前组中的用户名

```

#usermod -G redhat haha    -将haha 用户加入redhat组

```

[root@localhost ~]# cat /etc/default/useradd

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

[root@localhost ~]# grep -v ^# /etc/login.defs  | grep -v ^$

MAIL_DIR        /var/spool/mail

PASS_MAX_DAYS        99999

PASS_MIN_DAYS        0

PASS_MIN_LEN        5

PASS_WARN_AGE        7

UID_MIN                  1000

UID_MAX                 60000

SYS_UID_MIN               201

SYS_UID_MAX               999

GID_MIN                  1000

GID_MAX                 60000

SYS_GID_MIN               201

SYS_GID_MAX               999

CREATE_HOME        yes

UMASK           077

USERGROUPS_ENAB yes

ENCRYPT_METHOD SHA512

/etc/shadow

用户名:密码:距离1970.1.1修改的天数:最短时间:最长时间:警告时间:宽限时间:精确时间:保留字段

/etc/gshadow

组名:组密码:组长:组成员

useradd     /etc/passwd    -----------/etc/login.defs     /etc/default/useradd

​                    /etc/group

​                    /etc/shadow

​                   /etc/gshadow

​                  /home/USERNAME

​                  /var/spool/mail

#newgrp 登录新租

#gpasswd     修改组密码

​          -a   将用户加入组

```

[root@localhost ~]# usermod -G g1 xixi

[root@localhost ~]# gpasswd  -a hehe g1

正在将用户“hehe”加入到“g1”组中

```

​          -M  指定用户列表添加

#gpasswd -M  haha,hehe,xixi g1

​            -d 从组中移除用户

​            -A  指定组长

​                 -R  锁定组

## 实验

创建学习组1,学习组2 ;他们的组gid分别为1111,2222,添加成员并将uid为1088,和uid为1066的成员为两组的组长,其中一组组长有一个‘外号’laoda。不同学习组进入需要密码才能进入(设置密码);即使密码泄露也不希望组之外的成员进入。

```

#groupadd std1

#groupmod -g 1111 std2

#groupadd -g 2222 std2

---添加用户

#useradd   -u 1088 haha

#usermod -c laoda haha

#useradd hehe

#useradd  xiaoming

#useradd xiaobai

     #usermod -u 1088 haha

#usermod -u xiaoming

---组添加用户

#usermod -G  1111   haha

#usermod -G 1111 hehe

#gpasswd -M xiaoming,xiaobai std2

---组设置密码

#gpasswd std1

#gpasswd std2

#gpasswd -R std1

#gpasswd -R std2

------------------------用户设置密码----------------

[root@localhost ~]# echo redhat | passwd  --stdin root

更改用户 root 的密码 。

passwd:所有的身份验证令牌已经成功更新。

```

#sudo 用户提权

root用户授权: /etc/sudoers

redhat    ALL=(root)   /usr/sbin/useradd

1.通过redhat用户提权

2.登陆者用户的主机名ALL(任意主机)

3.通过哪个身份授权

4.下发的权限(可以让普通用户执行哪些命令,写命令文件的路径)

```

----1.管理员授权-----

#vi /etc/sudoers   追加

redhat   ALL=(root)   /usr/sbin/useradd

```

```

-----提权----

$sudo useradd xx

我们信任您已经从系统管理员那里了解了日常注意事项。

总结起来无外乎这三点:

    #1) 尊重别人的隐私。

    #2) 输入前要先考虑(后果和风险)。

    #3) 权力越大,责任越大。

[redhat@localhost ~]$ id xx

uid=2230(xx) gid=2230(xx) 组=2230(xx)

```

```

----2.管理员授权-----

#vi /etc/sudoers

追加

redhat   ALL=(ALL)   /usr/sbin/useradd

```

```

[redhat@localhost ~]$ sudo useradd lisi

[sudo] redhat 的密码:

```

```

----3.管理员授权-----

#vi /etc/sudoers

追加

redhat   ALL=(ALL)  NOPASSWD: /usr/sbin/useradd

```

```

[redhat@localhost ~]$ sudo useradd zhangsan

```

## 1.权限控制

```

[root@localhost ~]# ll

总用量 48

-rw-r--r--. 1 root root         0 6月  23 14:19 a

rw-   6  所属用户的权限(a文件对所属用户root的权限是读写的权限)

r--   4  所属组的权限(a文件对所属组root有只读的权限)

r--   4  其他用户的权限(a文件对于系统其它用户的权限是只读)

./+  扩展权限标识位 .标识没有扩展权限+有扩展权限

```

标准权限:r   读   w  写      x执行

权限的描述形式:字符形式描述

​                               数值形式     4 =r     2=w       1=x

系统默认文本文件的权限值:644

​                目录文件的权限值: 755

系统目录文件最高权限是777   

​        文本文件最高权限666

#umask  查看系统权限掩码值(权限过滤符)    022                                     

​                rwx   rwx   rwx            7       7       7                                  

​                ---        -w-     -w-           0     2        2

​                rwx     r-x      r-x            7     5       5

------------------------------------------------------------

​                  rw-     rw-    rw-          6             6          6

​             ---        -w-     -w-          0       2        2

              rw-     r--        r--         6        4        4

-----------------------------------------------------------------------------------------------------

文件权限匹配顺序:

首先判断发起者用户(当前用户)是否是目标文件的所属用户,如果是只匹配所属用的权限;

如果不是则判断是否是目标文件的所属组成员,如果是所属组成员只匹配所属组权限;

如果不是所属组成员则直接匹配其他用户的权限。

----注意root是管理员,忽略所有权限。

chmod   权限   文件名  修改权限

```

----------数值

#chmod    777   1

​        #chmod     7    2     -->   007

------------字符方式

​        chmod  u=rw,g=r,o=rx   file     

​        chmod   u=rwx    dir

​        chmod g+w   dir     |  chmod g-r   dir

```

#chown 所属用户   文件名       --->更改文件的所属用户

```

[root@localhost dir]# id redhat

uid=1000(redhat) gid=1000(redhat) 组=1000(redhat)

[root@localhost dir]# chown redhat 1

[root@localhost dir]# ll

总用量 4

-------rwx. 1 redhat root 27 6月  24 09:25 1

drwxr-xr-x. 2 root   root  6 6月  24 08:59 d

[root@localhost dir]# chgrp redhat 1

[root@localhost dir]# ll

总用量 4

-------rwx. 1 redhat redhat 27 6月  24 09:25 1

drwxr-xr-x. 2 root   root    6 6月  24 08:59 d

```

```

[root@localhost dir]# chown hehe:hehe d

[root@localhost dir]# ll

drwxr-xr-x. 2 hehe   hehe    6 6月  24 08:59 d

[root@localhost dir]# chown .xixi  d

[root@localhost dir]# ll

drwxr-xr-x. 2 hehe   xixi    6 6月  24 08:59 d

```

文本文件:

r          读:cat  tac   more less head tail  

w         写:vi      >      >>    |tee

x          执行:运行文件脚本信息   ./file

目录文件:

r           读:ls

w          写:    touch   mkdir   cp   mv  rm

x           执行:cd

```

案例1:

前提条件:在/目录下创建test文件,所有用户没有任何权限

#touch    /test

#chmod ugo=- /test

创建普通用户lala,要求lala用户对该文件有读写的权限。

```

## 实验

1.-rw-rw-r--. 1 root   redhat     0 11月 24 15:48 aa

  drwxr-xr-x. 2 root   root       6 11月 24 16:11 test

  简述aa普通文件和test目录权限位分别表示什么,指定用户可以执行哪些命令。

2.为当前班级创建一个公共目录存放所有学生每天的练习文档,

[root@localhost ~]# mkdir /pub

[root@localhost ~]# chmod 777 /pub

要求所有学生只能查看,修改自己的文件,对别人的文件没有任何权限

[root@localhost ~]# su - lala

上一次登录:四 6月 24 10:16:26 CST 2021pts/0 上

[lala@localhost ~]$ touch /pub/book1

[lala@localhost ~]$ ll /pub

总用量 0

-rw-rw-r--. 1 lala lala 0 6月  24 11:31 book1

[lala@localhost ~]$ chmod 600 /pub/book1

[lala@localhost ~]$ ll /pub/book1

-rw-------. 1 lala lala 0 6月  24 11:31 /pub/book1

3. 在/test下创建文件,要求任何用户创建的文件所属组的权限默认和/test目录的所属组一致。

   mkdir /test

   chmod g+s /test

\4. 创建文件file,要求所属用户为hehe所属组为xixi,只有hehe用户对该文件有编辑权限

touch  file

useradd hehe 

groupadd xixi

chown hehe.xixi file

chmod u=rw,g=-,o=-  file

5创建文件a,将/etc/passwd文件里的信息显示在a文件,它所属用户所属组为haha,要求系统当前属于haha组的用户可以读取该文件。创建redhat的所属目录dir1,要求redhat组里的成员可以在该目录下查看创建文件。

#cat /etc/passwd > a

#useradd haha

#chown haha:haha  a

#chmod g=r a

useradd  redhat

su -  redhat     mkdir   dir1

#mkdir /dir1    chown redhat:redhat dir1

chmod g=rwx dir1

## 2.特殊权限

u+s    uid的强制位

​    设置对象: 仅对可执行文件设置有意义

 (目标表文件所属用户取决于取决于可执行文件本身所属用户,和用户发起者没有关系,但所属组取决于发起者用户的基本组。)      

g+s    gid的强制位

设置对象: 对可执行文件设置有意义

 (目标表文件所属组决于取决于可执行文件本身所属组和用户发起者没有关系,但所属用户取决于发起者用户。

​                 也可以对目录文件设置        

(在该目录下创建的所有文件的所属组都取决于当前目录的所属组)

o+t     冒险位

​        仅对目录设置有意义

(公共目录下所有用户可以删除自己文件,不能删除别人的文件)

   如果文件本身没有执行权限字符在执行位大写标记,如果有执行权限小写标记

```

[root@A ~]# ll touch

-rwxr-xr-x. 1 root root 62480 6月  24 12:37 touch

[redhat@A ~]$touch red1

             touch  redhat.redhat

-rw-r--r--  1  redhat   redhat   400 6月24 12:37 red1

------------------------------------------------------------

[root@A ~]# ll touch

-rwsr-xr-x. 1 root root 62480 6月  24 12:37 touch

[redhat@A ~]$touch red1

            touch 进程 root.redhat

-rw-r--r--  1  root   redhat   400 6月24 12:37 red2

```

#chmod  u+s  file      

#chmod g+s  file

#chmod   o+t file

综合练习:

1.在g1   g2 两个组分别有两个用户。

要求:在同一组中的成员可以互相看看文件不同组不能互相查看文件;并且每个用户只能修改自己创建的文件和删除自己的文件。

#groupadd   g1

#groupadd g2

#useradd haha 

#useradd hehe

#useradd xiaoming

#useradd xiaobai

#gpasswd -M haha,hehe g1

#gpasswd -M xiaoming,xiaobai  g2

#mkdir   /mulu1     #chgrp g1   /mulu1    #chmod g+s  /mulu1

#mkdir /mnlu2        #chgrp g2  /mulu2    #chmod g+s  /mulu2

chmod g=rx      /mulu1 -R

#chmod o=- /mulu1

2.新建目录要求如下:                           

​    \* /pub目录为公共存储目录对所有用户可以读,写,执行,但用户只能删除属于自己的文件

#mkdir /pub  

#chmod 777 /pub

#chmod o+t /pub

​    \* /sc 目录为生产部存储目录只能对生产部人员可以写入,

​           并且生产部人员所建立的文件都自动归属到shengchan组中

#mkdir /sc

#groupadd shengchanbu

#chgrp shengchanbu /sc

#chmod 070 /sc

#chmod g+s /sc

​    \* /cw 目录为财务部存储目录只能对财务部人员可以写入,

​           并且财务部人员所建立的文件都自动归属到caiwu组中

​    \* admin用户能用touch工具在/sc目录中任意建立文件,但不能删除文件。

mkdir /cw

groupadd caiwubu

chgrp caiwubu /cw

chmod 070 /cw

chmod g+s /cw

useradd admin

gpasswd -a admin shengchanzu

#chmod o+t /sc     自己的目录下只能删除自己的文件不能删除别人的文件。有写权限的时候才能删除。

3.研发部开发人员David和Peter属于组A,行政部人员Jack和Mike属组B;

#groupadd A

#groupadd B

useradd David

useradd Peter

useradd Jack

useradd Mike

#gpasswd -M David,Peter A

#gpasswd -M Jack,Mike B

扩展权限:

getfacl  文件名                    查看指定文件有没有扩展权限(列出文件权限列表)

setfacl  -m  u:用户名:权限   文件名     设置扩展权限

​        touch  file

​        chmod 000 file

​        setfacl -m u:haha:rwx  file

setfacl -b 文件名                                                    清空指定文件的扩展权限

setfacl  -x  u:用户名:    文件名     删除指定用户的某条扩展权限

1、磁盘管理

①磁盘必须要创建分区吗?

②创建多个分区的作用?以及系统至少要创建哪些分区?

/分区:  尽可能足够大的空间

/root   引导分区    >=200M

Swap  交换分区(虚拟内存)7:x  2G  8: 4G

文件系统:是操作系统作用于明确磁盘或分区上的文件的方法和数据结构。即磁盘上组织文件的方法

#lsblk 

[root@bohe ~]# lsblk

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda               8:0    0   20G  0 disk

├─sda1            8:1    0  200M  0 part /boot

└─sda2            8:2    0   12G  0 part

  ├─centos-root 253:0    0   10G  0 lvm  /

  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]

sr0              11:0    1  973M  0 rom 

#sda  s硬盘设备类型   ide h nvme nvme0n  1p1  d 设备   a 第几块硬盘1-第几个分区

Sr0:光盘  s:设备类型    ----#cdrom

[root@bohe ~]# ll /dev/cdrom

lrwxrwxrwx. 1 root root 3 6月  21 17:39 /dev/cdrom -> sr0

2、创建分区

(1)查看磁盘设备有没有剩余空间,可以分区管理---lsblk

(2)创建分区fdisk磁盘管理命令

主分区:默认只能创建“四个主分区”    可直接使用

扩展分区:就要把一个主分区弄成扩展分区     不能直接使用

逻辑分区:一个扩展分区可分成24个逻辑分区  可直接使用

代码:

[root@bohe ~]# lsblk

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda               8:0    0   20G  0 disk

├─sda1            8:1    0  200M  0 part /boot

└─sda2            8:2    0   12G  0 part

  ├─centos-root 253:0    0   10G  0 lvm  /

  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]

sdb               8:16   0   10G  0 disk

sr0              11:0    1  973M  0 rom 

[root@bohe ~]# fdisk

用法:

 fdisk [选项] <磁盘>    更改分区表

 fdisk [选项] -l <磁盘> 列出分区表

 fdisk -s <分区>        给出分区大小(块数)

选项:

 -b <大小>             扇区大小(512、1024、2048或4096)

 -c[=<模式>]           兼容模式:“dos”或“nondos”(默认)

 -h                    打印此帮助文本

 -u[=<单位>]           显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)

 -v                    打印程序版本

 -C <数字>             指定柱面数

 -H <数字>             指定磁头数

 -S <数字>             指定每个磁道的扇区数

[root@bohe ~]# fdisk /dev/sdb       对指定磁盘管理(系统中第二块硬盘)

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0x78dd59bb 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m

命令操作

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition     删除分区

   g   create a new empty GPT partition table

   G   create an IRIX (SGI) partition table

   l   list known partition types    列出分区类型

   m   print this menu       打印菜单(命令帮助)

   n   add a new partition      添加分区

   o   create a new empty DOS partition table

   p   print the partition table     打印分区表

   q   quit without saving changes     退出不保存

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit     保存退出

   x   extra functionality (experts only)

命令(输入 m 获取帮助):n     ------新建分区

Partition type:

   p   primary (0 primary, 0 extended, 4 free)   主分区

   e   extended      扩展分区

Select (default p): p            

分区号 (1-4,默认 1):1        ----回车

起始 扇区 (2048-20971519,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G  ----从起始点位置开始+2个G

分区 1 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos  ------mbr引导各式

磁盘标识符:0x78dd59bb---唯一的字符串信息

   设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     4196351     2097152   83  Linux

命令(输入 m 获取帮助):

命令(输入 m 获取帮助):n

Partition type:

   p   primary (1 primary, 0 extended, 3 free)

   e   extended

Select (default p): e

分区号 (2-4,默认 2):

起始 扇区 (4196352-20971519,默认为 4196352):

将使用默认值 4196352

Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+5G

分区 2 已设置为 Extended 类型,大小设为 5 GiB

命令(输入 m 获取帮助):n

Partition type:

   p   primary (1 primary, 1 extended, 2 free)

   l   logical (numbered from 5)

Select (default p): p

分区号 (3,4,默认 3):

起始 扇区 (14682112-20971519,默认为 14682112):+0G

值超出范围。

起始 扇区 (14682112-20971519,默认为 14682112):+1G

值超出范围。

起始 扇区 (14682112-20971519,默认为 14682112):

将使用默认值 14682112

Last 扇区, +扇区 or +size{K,M,G} (14682112-20971519,默认为 20971519):

将使用默认值 20971519

分区 3 已设置为 Linux 类型,大小设为 3 GiB

命令(输入 m 获取帮助):d  

分区号 (1-3,默认 3):

分区 3 已删除

命令(输入 m 获取帮助):n

Partition type:

   p   primary (1 primary, 1 extended, 2 free)

   l   logical (numbered from 5)

Select (default p): l

添加逻辑分区 5

起始 扇区 (4198400-14682111,默认为 4198400):

将使用默认值 4198400

Last 扇区, +扇区 or +size{K,M,G} (4198400-14682111,默认为 14682111):

将使用默认值 14682111

分区 5 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x78dd59bb

   设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     4196351     2097152   83  Linux

/dev/sdb2         4196352    14682111     5242880    5  Extended

/dev/sdb5         4198400    14682111     5241856   83  Linux

命令(输入 m 获取帮助):l

 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris       

 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-

 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-

 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-

 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx        

 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据

 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .

 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具     

 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt        

 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问      

 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O       

 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor     

 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs       

 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT           

 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/

10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC 

11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor     

12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor     

14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要      

16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS   

17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE

18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动

1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep       

1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT           

1e  隐藏的 W95 FAT1 80  旧 Minix      

命令(输入 m 获取帮助):w

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

[root@bohe ~]# ll

总用量 20

drwxr-xr-x. 2 root root    6 6月  22 23:27 -

-rw-r--r--. 1 hehe xixi    0 6月  22 23:25 1

-rw-r--r--. 1 root root    0 6月  22 15:18 123

-rw-r--r--. 1 haha haha    0 6月  22 23:30 a

-rw-------. 1 root root 1395 6月  21 11:58 anaconda-ks.cfg

-rw-r--r--. 1 root root   20 6月  22 15:39 a.txt

drwxr-xr-x. 2 root root    6 6月  22 10:47 d1

drwxr-xr-x. 2 root root    6 6月  22 10:47 d2

drwxr-xr-x. 2 root root    6 6月  22 10:47 d3

drwxr-xr-x. 2 root root    6 6月  22 10:48 d4

drwxr-xr-x. 2 root root    6 6月  22 19:45 dir

-rw-------. 2 hehe xixi    0 6月  22 23:25 f1

-rw-r--r--. 1 root root    0 6月  22 10:45 fie[a..c]

-rw-------. 2 hehe xixi    0 6月  22 23:25 file

-rw-r--r--. 1 root root   53 6月  22 15:41 GIU

drwxr-xr-x. 2 root root    6 6月  22 23:27 heip

drwxr-xr-x. 2 root root    6 6月  22 23:27 help

-rw-r--r--. 1 root root   26 6月  22 14:56 mingdan

-rw-r--r--. 1 root root    0 6月  22 23:15 mulu

drwxr-xrwx. 2 root root    6 6月  23 00:09 p1

lrwxrwxrwx. 1 root root    4 6月  22 19:44 test -> test

-rw-r--r--. 1 root root   52 6月  22 15:40 UID

#fdisk -l显示分区列表

(3)格式化----指定文件系统类型----mkfs.(对分区进行格式化)---mkfs.ext  /dev/sdb

[root@bohe ~]# mkfs .

mke2fs 1.42.9 (28-Dec-2013)

. is not a block special device.

无论如何也要继续? (y,n) y

mkfs.ext2: Device size reported to be zero.  Invalid partition specified, or

partition table wasn't reread after running fdisk, due to

a modified partition being busy and in use.  You may need to reboot

to re-read your partition table.

①[root@bohe ~]# mkfs.ext4 /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=

OS type: Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

131072 inodes, 524288 blocks

26214 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=536870912

16 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成                           

正在写入inode表: 完成                           

Creating journal (16384 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

[root@bohe ~]# mkfs.xfs /dev/sdb5

meta-data=/dev/sdb5              isize=512    agcount=4, agsize=327616 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=1        finobt=0, sparse=0

data     =                       bsize=4096   blocks=1310464, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal log           bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

④挂载使用-------------- #mount文件系统名称()

 命令: [root@bohe ~]# mount /dev/sdb1   /mnt

开机自动挂载:/etc/fstab

#vim/etc/fstab

文件系统名称(UUID)挂载点目录 文件系统类型(格式化类型)   参数 备份 检查

/dev/sdb5      /sdb5     xfs      defaults   0   0

#rebot  | |  #mount  -a  重新读取开机自动挂载配置文件

#mount  查看所有挂载点信息

#blkid 查看文件系统UUID并且可以显示文件系统类型

Parted

[root@bohe ~]# parted /dev/sdb

GNU Parted 3.1

使用 /dev/sdb

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted)                                                                 

align-check  mklabel      print        resizepart   toggle      

disk_set     mkpart       quit         rm           unit        

disk_toggle  mktable      rescue       select       version     

help         name         resize       set         

(parted)

创建GPT分区表:

Parted /dev/sdb mklabel gpt 

创建分区:

Parted /dev/sdb ,mkpart pname(p1) 0G 2G

打印:

Parted /dev/sdb unit GB print

删除分区:

Parted /dev/sdb rm 2(指定的分区编号)

压缩与解压

 -c, --create               创建一个新归档(创建一个打包文件)

-f, --file=ARCHIVE         使用归档文件或 ARCHIVE 设备

      --force-local

                          即使归档文件存在副本还是把它认为是本地归档

-j, --bzip2                通过 bzip2 过滤归档

  -J, --xz                   通过 xz 过滤归档

      --lzip                 通过 lzip 过滤归档

      --lzma                 通过 lzma 过滤归档

      --lzop

      --no-auto-compress     不使用归档后缀名来决定压缩程序

  -z, --gzip, --gunzip, --ungzip   通过 gzip 过滤归档

  -Z, --compress, --uncompress   通过 compress 过滤归档

 -C, --directory=DIR        改变至目录 DIR(放到指定文件下)

Tar  [option…]   [file]…

主选项:

-c, --create               创建一个新归档(创建一个打包文件)

-x    解包

-t  查看归档中的文件

-v 显示信息

辅助选项:

-f:指定文件名,后面需要立即跟文件名

-j:

--bzip2                通过 bzip2 过滤归档

  -J   --xz                   通过 xz 过滤归档

-z:  --gzip, --gunzip, --ungzip   通过 gzip 过滤归档

-Z     --compress, --uncompress   通过 compress 过滤归档

window和linux之间传输文件:xftp

linux和linux之间传输文件:scp

Scp  源文件  目标路径

    -r传输目录文件

文件发送:scp  file 链接目标机的用户@目标主机的ip:目标主机的绝对路径

[root@130 ~]# scp zuoye root@192.168.83.129:/

文件接收:[root@bohe test]# scp root@192.168.93.100:/root/zuoye   .

两台虚拟机之间传输文件:

192.168.83.129向192.168.83.100传送

[root@bohe test]# ll /zuoye

-rw-r--r--. 1 root root 0 6月  25 14:52 /zuoye

[root@bohe test]# scp root@192.168.93.100:/root/zuoye   .

ssh: connect to host 192.168.93.100 port 22: Connection refused

[root@bohe test]# scp root@192.168.93.100:/root/zuoye   .

^[[A^C[root@bohe test]#

[root@bohe test]#

[root@bohe test]#

[root@bohe test]#

[root@bohe test]#

[root@bohe test]#

[root@bohe test]# scp root@192.168.83.100:/root/zuoye   .

The authenticity of host '192.168.83.100 (192.168.83.100)' can't be established.

ECDSA key fingerprint is SHA256:AUTW08MXVkQAX1pwyRttM0qup0ucS7VsWEGaqPsKkTs.

ECDSA key fingerprint is MD5:f7:2b:ce:a2:50:f3:1e:27:b4:b4:3d:a7:e5:e7:d9:8e.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.83.100' (ECDSA) to the list of known hosts.

root@192.168.83.100's password:

zuoye                                                                                                                                                             100%    0     0.0KB/s   00:00   

[root@bohe test]# ll

总用量 48

-rw-r--r--. 1 root root     0 6月  25 14:23 {

-rw-r--r--. 1 root root     0 6月  25 14:23 10

-rw-r--r--. 1 root root     0 6月  25 14:23 1..10}

-rw-r--r--. 1 root root 10240 6月  25 14:35 12345.tar

-rw-r--r--. 1 root root   137 6月  25 14:38 12345.tar.

-rw-r--r--. 1 root root   137 6月  25 14:38 12345.tar.gz

-rw-r--r--. 1 root root     0 6月  25 14:23 6

-rw-r--r--. 1 root root     0 6月  25 14:23 7

-rw-r--r--. 1 root root     0 6月  25 14:23 8

-rw-r--r--. 1 root root     0 6月  25 14:23 9

-rw-r--r--. 1 root root     0 6月  22 11:22 {abc1..abc100}

-rw-r--r--. 1 root root     0 6月  22 11:05 boot

drwxr-xr-x. 2 root root     6 6月  22 10:48 d2

drwxr-xr-x. 2 root root     6 6月  22 10:48 d3

drwxr-xr-x. 2 root root     6 6月  22 10:49 d4

drwxr-xr-x. 2 root root     6 6月  22 10:48 d5

drwxr-xr-x. 2 root root     6 6月  22 10:48 d6

-rw-r--r--. 1 root root     0 6月  22 11:05 sysroot

-rw-r--r--. 1 root root     0 6月  25 14:55 zuoye

-rw-r--r--. 1 root root 25272 6月  25 14:45 北信实训.txt

192.168.83.100向192.168.83.129传输

[root@localhost ~]# hostname 130

[root@localhost ~]# bash

[root@130 ~]# touch zuoye

[root@130 ~]# echo zheshiwodezuoye

zheshiwodezuoye

[root@130 ~]# ll

总用量 4

-rw-------. 1 root root 1311 5月  24 19:11 anaconda-ks.cfg

-rw-r--r--  1 root root    0 6月   3 14:48 file1

drwxr-xr-x  2 root root    6 6月   6 07:25 log

drwxr-xr-x  2 root root   36 6月   3 16:39 test

-rw-r--r--  1 root root    0 6月  25 12:33 zuoye

[root@130 ~]# scp zuoye root@192.168.83.129:/

The authenticity of host '192.168.83.129 (192.168.83.129)' can't be established.

ECDSA key fingerprint is SHA256:5KL26Id1gyVMSMqOzRySzJueW4488OZgTEKkaaAPwrw.

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '192.168.83.129' (ECDSA) to the list of known hosts.

root@192.168.83.129's password:

zuoye                            

软件安装

 .rpm

rpm -ivh 包名(安装软件包)

        -evh 软件名 (卸载软件)

        -ql    软件名 (查看软件安装释放的文件)

        -qf    文件绝对路径 (查看某个文件是哪个包释放的)

        -qa   查看当前系统所有已安装的安装包  | gerp

        -Uvh   根据主机

        -qpi  包名  查看软件包的详细信息

        -Va 校验文件,查看软件程序缺失哪个文件

1、mount/dev/sr0 /mnt

2、查找软件包 cd/mnt/Package ||

3、#rpm -ivh 包名  #rpm -ivh /mnt/Package

yum本地软件包的安装方式

YUM:(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

格式:yum【opyion】【command】【package】

Yum -y install 软件名-----------安装

          remove

          update

             groupinstall

          list

         repolist        列出yum源状态信息

        clean  all --清楚所有yum的缓存

       makecache ----简历yum源的缓存

    yum配置文件------yum源   *.repo

/etc/yum.repos.d /*.repo     

[base]------------源标识名称(自定义)

name=base----源名称

baseurl=file:///mnt/  统一资源定位符定位软件包的路径

Gpgcheck=0(0:关闭;1:打开)---公钥验证关闭

enabled=1--------设置开机启用(默认开机使用可以省略)

网络安装

baseurl=file:(后面跟要下载的路径)

配置cockpit web 管理程序

1.yum -y install cockpit

   yum -y install httpd

2.systemctl start httpd cockpit

                   stop

                   status       查看状态

                   restart

                   enable      开机启用

                   disabel

3.systemctl stop firewalld    

systemctl disable firewalld     开机不启用

4.setenforce 0    临时关闭selinux

 [root@bayern ~]# vim /etc/selinux/config       永久关闭selinux

SELINUX= permissive

配置ftp服务器

服务器-----linux虚拟机

客户端主机-----window

(1)配置服务端,配置ftp服务

#yum-y install vsftpd

(2)systemctl start vsftpd

Systemctl  enabl  evsftpd-----systemctl enable vsftpd - -now

(3)systemctl stop firewalld     临时停止selinux

Systemctl disable firewalld     开机不启用

(4)systemforce 0  临时关闭selinux

[root@bohe~]#vim /etc/selinux/config    永久关闭selinux

实现上传下载

(5)#vi /etc/vsftpd/vsftpd.conf

29行删除注释

33行删除注释,并在34行添加一条配置anon_other_write_enable=YES

(6)system restart vstfpd

(7)touch /var/ftp/pub/test{1..10}

(8)客户端window上通过计算机资源链接栏:ftp//ip

LVM  逻辑卷管理

lvm可以实现磁盘管理,可以将一块硬盘或者多块硬盘上的几多个分区逻辑上集合,后期可以把多块硬盘看做一块硬盘,也可以对逻辑上的分区动态扩大或者减少分区的大小。

pv(物理卷)===对标准分区管理,将标准分区物理实现

vg(卷组)===将多个物理卷整合放到一个组当中。类似于物理硬盘。

lv(逻辑卷)====类似于所创建的标准分区(用户可以自定义文件系统类型)

操作方式:

添加两块硬盘分别分成5G,将 第一块硬盘创建一个分区大小5G,第二块硬盘创建两个分区大小分别为2G和3G

第一块硬盘

#fdisk  /dev/sdb

n

P

起始点:回车

结束点:回车

t:改变分区   8e标记

p:打印

w:保存

第二块硬盘:

#fdisk /dev/sdc

n

P

回车

2G

t:8e

P

n

P

回车

回车

t 更改分区类型

8e

P

w

 

[root@bohe ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.23.2)

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0x39666d8c 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

分区号 (1-4,默认 1):1

起始 扇区 (2048-10485759,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+2G

分区 1 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):t

已选择分区 1

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):n

Partition type:

   p   primary (1 primary, 0 extended, 3 free)

   e   extended

Select (default p): p

分区号 (2-4,默认 2):2

起始 扇区 (4196352-10485759,默认为 4196352):

将使用默认值 4196352

Last 扇区, +扇区 or +size{K,M,G} (4196352-10485759,默认为 10485759):+3G

值超出范围。

Last 扇区, +扇区 or +size{K,M,G} (4196352-10485759,默认为 10485759):+3G

值超出范围。

Last 扇区, +扇区 or +size{K,M,G} (4196352-10485759,默认为 10485759):

将使用默认值 10485759

分区 2 已设置为 Linux 类型,大小设为 3 GiB

命令(输入 m 获取帮助):t

分区号 (1,2,默认 2):2

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

[root@bohe ~]# lsblk

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda               8:0    0   20G  0 disk

├─sda1            8:1    0  200M  0 part /boot

└─sda2            8:2    0   12G  0 part

  ├─centos-root 253:0    0   10G  0 lvm  /

  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]

sdb               8:16   0    5G  0 disk

├─sdb1            8:17   0    2G  0 part

└─sdb2            8:18   0    3G  0 part

sr0              11:0    1  973M  0 rom 

[root@bohe ~]#

[root@bohe ~]# pv

pvchange   pvck       pvcreate   pvdisplay  pvmove     pvremove   pvresize   pvs        pvscan    

[root@bohe ~]# pvcreate /dev/sdb1/ /dev/sdb2

  Device /dev/sdb1/ not found.

  Physical volume "/dev/sdb2" successfully created.

[root@bohe ~]# pvcreate /dev/sdb1 /dev/sdb2

  Physical volume "/dev/sdb1" successfully created.

  Physical volume "/dev/sdb2" successfully created.

[root@bohe ~]# pvs

  PV         VG     Fmt  Attr PSize  PFree

  /dev/sda2  centos lvm2 a--  12.00g  4.00m

  /dev/sdb1         lvm2 ---   2.00g  2.00g

  /dev/sdb2         lvm2 ---  <3.00g <3.00g

[root@bohe ~]# vg

vgcfgbackup    vgchange       vgconvert      vgdisplay      vgextend       vgimportclone  vgmknodes      vgremove       vgs            vgsplit       

vgcfgrestore   vgck           vgcreate       vgexport       vgimport       vgmerge        vgreduce       vgrename       vgscan        

[root@bohe ~]# vgcreate vg0 /dev/sdb1 /dev/sdb2

  Volume group "vg0" successfully created

[root@bohe ~]# vgs

  VG     #PV #LV #SN Attr   VSize  VFree

  centos   1   2   0 wz--n- 12.00g 4.00m

  vg0      2   0   0 wz--n-  4.99g 4.99g

[root@bohe ~]# lv

lvchange     lvcreate     lvextend     lvmconf      lvmdiskscan  lvmetad      lvmsadc      lvreduce     lvrename     lvs         

lvconvert    lvdisplay    lvm          lvmconfig    lvmdump      lvmpolld     lvmsar       lvremove     lvresize     lvscan      

[root@bohe ~]# lvcreate -n lv1 -L 3G vg0

  Logical volume "lv1" created.

[root@bohe ~]# lvs

  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

  root centos -wi-ao---- 10.00g                                                   

  swap centos -wi-ao----  2.00g                                                   

  lv1  vg0    -wi-a-----  3.00g    

[root@bohe ~]# mkfs.xfs /dev/vg0/lv1

meta-data=/dev/vg0/lv1           isize=512    agcount=4, agsize=196608 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=1        finobt=0, sparse=0

data     =                       bsize=4096   blocks=786432, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal log           bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@bohe ~]# mkdir /lv1

[root@bohe ~]# mount /dev/vg0/lv1 /lv1

[root@bohe ~]# cd /lv1

[root@bohe lv1]#

创建逻辑卷:

PV:

#pvcreate /dev/sdb1  /dev/sdb2

#pvs

Vg:

Vgcreate  卷组名称(vg0)   /dev/sdb1 /dev/sdb2

Lv:

#lvcreat -n 逻辑卷名称(lv1) -L 3G vg0

使用逻辑卷

格式化:

#mkfx.xfs /dev/vg0/lv1   

挂载:文件系统名  挂载点目录

Mount   /dev/vg0/lv1 /lv1

删除:

扩大卷组:

#lvextend vg0 /dev/sdb2

#volume group "vg0" successfully extended

扩大逻辑卷:

#lvextend /dev/vg0/lv1 -L+3G vg0

Physical volume "vg0" not found in volume Group "vgo"

同步文件系统:

#xfs_growfs /dev/mapper/vg0-lv1

查看文件系统使用情况:

#df -h

删除逻辑卷:

Umount  /lv1

Lvremove /dev/vg0/lv1

Vgremove vg0

Pvremove /dev/sdb1 /dev/sdb2

Fdisk /dev/sdb

D

W

创建交换分区:swap

1、查看磁盘的使用情况  lsblk

2、创建指定大小的分区 1G

3、指定文件系统类型  mkswap  /dev/sdb1

4、挂载链接

Vim /etc/fstab

#mkdir /swap

5、临时激活:#swapon/dev/sdb1

UUID

#reboot

一:基本概念:

1、服务:

服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。 

2、协议:http https区分不同的流量

3、端口:http(80、8080)https(443)区分不同的协议

4、基本框架:S/C     S/B

5、web服务的基本框架:LAMP

6、静态网站,动态网站

7、网站访问的格式:

二:配置web服务

1、静态网站搭建

(1)配置环境centos7.x搭建

(2)安装服务软件Apache http server

#yum install httpd

(3)开启服务

#systemctl enable httpd--now

(4)关闭防火墙,关闭selinux

#systemctl disable firewalld

#systemtcl stop  firewalld

#setenforce 0

#vim /etc/selinux/config

SELINUX=permissive

ll /var/www/html

cd /var/www/html

vi index.html

(5)测试

2、配置文件介绍

/etc/httpd/conf    主配置目录

/etc/httpd/conf.d     辅助(子)配置目录

/etc/httpd/conf.modules.d模块配置目录

#vim /etc/httpd/conf/httpd.conf

31   ServerRoot    "//etc/httpd"

42   Listen 80    服务监听的端口

Include conf.modules.d/*.conf      加载程序匹配模块配置文件

66   Userapache  程序运行后的所属用户

67  Groupapche所属组

86ServerName root@localhost  服务的管理员

95    SerberName 0.0.0.0:80 服务名称(按照ip格式匹配)

102 <Directory />     目录标签/

103     AllowOverride none         不允许覆盖

104     Require all denied        请求所有拒绝

105 </Directory>  

119 DocumentRoot "/var/www/html"             文本主目录(静态网页文件的目录)

         </Directory“/var/www">        目录标签           /var/www

125     AllowOverride None            不允许覆盖

126     # Allow open access:

127     Require all granted                     请求所有允许

128 </Directory>

163 <IfModule dir_module>         目录模块

164     DirectoryIndex index.html        网站主目录下索引的资源文件

165 </IfModule>

353 IncludeOptional conf.d/*.conf      加载子目录下所有配置文件

为什么能访问apache测试界面?

为什么自定义界面之后,访问的是自定义界面不是欢迎界面?

案例一:

多ip访问不同网站信息

①配置httpd的配置文件

vim /etc.httpd/conf.d/vhosts.conf

 <VirtualHost 

192.168.60.128:80>

ServerName 

192.168.60.128

DocumentRoot /www

</VirtualHost>

<Directory /www>

AllowOverride none

Require all granted

</Directory>

②创建资源目录和文件

mkdir /www

echo this is 100>/www/index.html

③重启服务识别自定义的配置信息

④客户端访问测试 

http://192.168.60.128

1.通过浏览器缓存

2.本地主机hosts

C:\Windows\System32\drivers\etc

/etc/hosts

3.通过主机定义dns匹配本地dns服务器学习

邮件收发方式:

(1)配置邮件客户端:mailx

通过客户端mail命令收发邮件

#mail to redhat@localhost.localdomain            ./ctrl+d

#echo "邮件内容信息"|mail -s "邮件主题"收件人邮箱账号

切换到收件用户$mail           q

(2)邮件群发

Vi /etc/aliases (追加信息)

群发名称:    真实邮件用户名

#postalias /etc/aliases     把数据库导入

首先在/etc/mail.rc/文件中添加(需要root权限)

set from=lxx1065372737@163.com(自己的邮箱)

set smtp=smtp.163.com(163邮箱默认使用)

set smtp-auth-user=lxx1065372838@163.com(与第一行一致)

set smtp-auth-password=aaaaaa(等号后面填写的是163邮箱的客户授权密码,下面会告诉你在哪里找到)

set smtp-auth=login(登录方式)

添加完成后保存

vim:

gg:光标移动到文件首行

G:光标移动到文件的末尾   shift+G

^:以….开头

$:以….结尾

^$:表示空白

fx:光标移动到当前行下一个x

Fx:光标移动到当前行上一个x

w:向右移动一个单词

b:向左移动一个单词

dd:删除一行

ndd:删除n行

d$:删除光标至行尾内容

u:撤销上一步操作,可以多次使用uu表示撤销两步操作

yy:复制

p:粘贴至当前行之后

J:删除换行符,将两行合并成一行

ctrl+w:按单词删除

查 找:

“?”:?+要查找的单词

?short

Vim /etc/passwd

:%s/sbin/bin/g       将所有/sbin替换成bin

显示行号:“:set nu”

忽略大小写:“:ignorecase”

多窗口编辑:

水平分割:“: split /加文件名”

垂直分割:“:vsplit”

Ctrl+ww从上一个区域切换到下一个区域(退出:光标在哪里就输入:q)我·

:!命令   按回车就返回来了(在vim下)

Yum -y install vim

一些常见的yum命令:

  yum  clean all                           清空缓存信息

  yum  list                                   列出所有包的信息

  yum  list  httpd                         查看 httpd 是否安装

  yum  info httpd                        显示 httpd 包的详细具体信息

  yum install httpd   -y               安装 httpd 包

  yum remove httpd  -y               卸载 httpd 包

  yum search 关键词                 根据关键词,在已发现的repo源中搜索包含关键词的rpm包

  yum provides 命令                   根据命令,在已发现的repo源中搜索安装指令的rpm包

  yum history  list/info/undo/redo number             history可以列出,查看,重装,反安装对应的包,但是是以yum指令的操作顺序为依据的,所以需要加指定的数字执行

  yum update -y                        升级所有包同时也升级软件和系统内核

  yum upgrade  -y                     只升级所有包,不升级软件和系统内核

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值