admin管理员组

文章数量:1651573

第一章、linux系统的安装

1.3lunix的内核

1)任何版本的Linux都使用相同的内核----http//WWW.kernel/

2) 4.13.5------主版本.次版本 修改版本

3) 主,次版本中有一个数字为基数:发展中版本

4) 主,次版本两个数字为偶数:稳定版本

linux的完整系统包括:

1linux kernel                     -------redhat 红帽 centos免费 ubuntu 乌班图

2free software

3documment

遇到问题

1、谷歌、百度搜索

2、查找参考资料

3、查找linux的内部文档

4、看报错命令

1.5虚拟机的安装

1)创建一个虚拟硬盘---虚拟硬盘文件类型

VDIvirtualbox 磁盘映像)

VHD(虚拟硬盘) ------------widow的文件

VMDK(虚拟机磁盘)--------VMware的文件类型

2)存在在物理硬盘上

动态分配----

固定大小

linux版本推荐使用centos7,下载地址为Download

虚拟机推荐vm pro16(比较稳定)

1.6 centos7的安装

热键

主机组合键:ctrl+alt

第二章、linux基础之权限操作

2.1用户的基本操作

1)添加一个用户:

用法:useradd 用户名

2)设置用户的登入密码:passwd(管理员)

--用法:passwd 用户名

3)查看当前登录的用户:whoami

4)切换用户:su

--用法1:su 用户名  用法2: su (直接切换管理员)

---特点:管理员切换普通用户不需要密码,

管理员登入(#),普通用户登入($

2.2shell快捷键

Ctrl+a:调到命令行的开头

Ctrl+e:调到命令行的末尾

Ctrl+u:将光标处到命令行开头的内容清除

Ctrl+k:将光标处到命令行结尾的内容清除

Ctrl+r:在历史记录列表中搜索某一个命令

Ctrl+l:清屏

history:显示历史命令

 {number}  //直接执行曾执行的命令

2.3lunix系统中的目录结构

 /boot   linux启动时,需要的文件    /srv       压缩过的文件

/dev         设备文件                /sys      系统文件

/etc          配置文件               /usr       安装的软件,共享库

/home     用户家目录                /var       可变数据,日志文件

/media    媒体文件                   /tmd           临时文件

/mnt        挂载文件                 /usr/bin          普通用户可以使用的

/opt         第三方软件              /usr/sbin        超级用户可以使用的

/proc       虚拟化文件                /usr/bin              32库文件

/root       管理员的家目录            /usr/lib64           64库文件

/run        进程文件

命令行:供用户输入命令得界面,其本身只是接受输入,然后传递给命令解释器

shell:程序,用户和操作系统之间提供了一个面向行的可交互接口

1.使用通配符和补全指令(lunix下大小写字母是区分滴)

*”用于匹配文件名中任意长度得字符串,ls *.cpp

“?”只匹配一个字符,ls text?

“【】”用于匹配出现在括号内所有得字符 ,ls 【a1】

2.4查看目录和文件

1)显示当前目录路径:pwd

2)列出目录内容:ls

 ls 列出当前目录中的所有文件和子目录

  ls -a 显示所有文件,包含隐藏得文件

  ls -l查看文件得各种属性

  ls -h:显示文件大小

2.5改变目录:cd

 ---: /usr/bin   进入usr子目录

  ---: ..返回上一级目录

  -----  - 返回到之前的目录

 ---:  cd or  cd ~ 到用户所在的家目录

绝对路劲(详细的目录写全)和相对路劲(文件下的路径0000000000000000000000000000000000000000000000000000000

创建一个文件:touch

2.6文件or目录(创建、复制、移动、删除)

 d:表示目录

-:表示文件

l:连接文件

b:设备文件,提供存储的接口设备

c:设备文件,提供单行的接口设备---键盘鼠标

活动

单来源

多来源

复制文件

cp file1 file2

cp file1 file2 file3 dir   (5)

移动文件

mv file1 file2         (1)

mv file1 file2 file3 dir     (4)

删除文件

rm file1

rm -f file1 file2  file3      (5)

创建目录

mkdir dir

mkdie -p par1/par2/dir          (6)

复制目录

cp -r dir1 dir2   (2)

cp -r dir1 dir2 dir3 dir4       (4)

移动目录

mv dir1 dir2       (3)

mv  dir1 dir2 dir3 dir4      (4)

删除目录

rm -r dir1         (2)

rm -f dir1 dir2 dir3                (5)

注:

 (1)结果为重命名

(2)需要使用“递归”选项来处理来源目录   mkdir -p dir

(3)如果dir2存在,则处理结果为移动,否则,则结果为重命名

(4)最后一个参数必须是目录

(5)请谨慎使用“force”选项,系统将不会提示你确认操作

(6)使用创建文件选项应小心,无法捕获键入错误

2.7查看文件

查看文本文件:cat 、more、less

cat显示文件得所有内容   

tac       //从最后一行开始显示

 -A    //整合命令-vET

 -b    //列出行号,但是空白行不标志行号

 -E    //将结尾得断航字符($)显示出来

 -n    //列出行号,空白行也会标志行号

 -T    //将tab按键以~i显示

 -v    //列出一些看不出得特殊字符

more会一页一页显示文件内容

nl       //显示得时候,顺便出现行号

  - ba  //无论是否空行,都列出行号

 -bt   //如果有空行,则布列出行号

 -nln  //行号在屏幕最左方

 -nrn  //行号在屏幕最右方,行号前面加0

 -nrz // 行号在屏幕得最右方

 -w  // 缩进缩少位 

更好得文本阅读工具:less

阅读文件得开头:head

Head -n 文件名,显示文件开头得前n行

Tail -n 文件名,显示文件末尾得后n行

常用在/var/log/massages

wc     //显示文件的行数,数字,字节

 -c      :只显示字节

 -w    :只显示字数,一个字被定义为由空白、跳格或换行字符分隔得字符串

 -l      :只显示行

查找文件内容:grep

 grep 关键词 文件名

2.8VIM编辑器

i键插入

esc退出

u撤销

x删除

                             v选择文本

                            y复制

                            yy复制当前行

                            dd删除光标所在行

                           p粘贴

                                                                 :w保存

                                                                  wq保存退出

                                                                   q!强退

gedit来进行编辑---需要x-widows的支持

2.10文件处理----软连接

软连接==windows下的快捷方式

特点:

1、可以对不存在文件创建软连接

2、可以对文件或者目录创建软连接

3、删除了软连接,不会影响他的指向文件

4、删除了指向文件,该软链接就会变成死链接

 ln -s oldfile newfile

2.10.1文件处理-----硬链接

lnode编号

文件名:给人看的

lnode编号:给机器看的

硬链接:多个文件对应一个lnode编号

对多个文件中的某一个文件进行修改时,其他文件也会同事发生更改,多用户协同一致工作

特点:

1、不能对目录进行硬链接的创建

2、只能对已经存在的文件进行硬链接的创建

3、删除一个硬链接文件,不影响其他相同的lnode编号的文件

创建硬链接

 link oldfile newfile

 ln oldfile newfile

2.11关机

要注意的事项:

 -观察系统的使用状态

 -通知在线使用者关机的时间

 -正确的关机指令使用

关机的指令

 -数据同步写入磁盘-sync

 -常用的关机指令:shutdown

 - t 添加秒数,几秒后关机

  - k 不是真关机,而是发出告警信息

 - r 在系统服务都停止后,重启

 - h 在系统服务都停止后,关机

 - f 关闭并开机以后,强制略过磁盘检查

 - F 重启后,强制进行磁盘检查

 -c 取消已经在进行的shutdown指令内容

 shutdown -h now

 shutdown -h 12:00

 shutdown -h +10

Shutdown -r +30 ‘the system will reboot’

 Shutdown -k +30 ‘the system will reboot’

 -重启,关机:reboot,halt,poweroff

服务等级

 -init0 //关机

 -init6 //重启

 -init3 //纯文本模式

 -init5 //含有图像接口

2.12帮助文件--man

章节

内容类型

1

用户命令(可执行命令和shell程序)

2

系统调用(从用户空间调用的内核例程)

3

库函数(由程序库提供)

4

特殊文件(如设备文件)

5

文件格式(用于许多配置文件和结构)

6

游戏(过去的有趣程序章节)

7

惯例、标准和其他(协议、文件系统)

8

系统管理和特权命令(维护任务)

9

lunix内核API(内核调用)

其余的帮助文档

pinfo

/usr/share/doc

第三章、linux基础权限操作

3.1权限

-rw-r--r--. 1 root root 2380 3  11 11:29 /etc/passwd

权限/ 连接/所有者/所属组容量-默认单位B/修改的日期/文件名

1)文件的权限属性(左数第一个):

d:表示目录

-:表示文件

l:连接文件

b:设备文件,提供存储的接口设备

c:设备文件,提供串行的接口设备---键盘,鼠标

Rwx,读、写、执行,没有权限就是-

第一组rwx:文件所有者的权限

第二组rwx:文件所属组的权限

第三组rwx:文件其他人的权限

例子:假设text1,text2,text3同属于textgroup这个群组,如果又以下面的两个文件,请说明两个文件的拥有者与相关的权限为何

-rwxr-xr-- 1 text1 textgroup 5238jun 19 10:25 lewis。Txt

lewis。txt的拥有者为text1,而所属群组为textgroup

1、text1可以对次文件可读可写可执行

2、同组的text2、text3两个人与text1同样是textgroup的群组账号,则仅可读可执行,但是不能写(不能修改)

3、至于非textgroup这一个群组的人则仅可以读,不能写也不能执行

2)目录的权限:

r:具有读取目录结构列表的权限,可以查看目录下由那些文件

w:该权限对于目录来说是很大的

      1、可以在该目录下新建新的文件和目录

      2、可以删除已经存在的文件和目录

      3、将已经存在的文件和目录重命名

      4、移动该命令内的文件和目录的位置

x:是否可以进入该目录

如果我的目录如下

drwxr-xr-- 1 text1 textgroup 5326 un19 10:25 groups/

1、文件拥有者text1可以在本目录中进行任何工作

2、而textgroup这个群组的账号,例如text2,text3亦可以进入本目录进行工作,但是不能在该目录进行写入

3、other的权限虽然有r,但是没有x的权限,因此others的使用者并不能进入此目录

 chown:

修改文件的拥有者,前提的是要有该拥有者

   chown  拥有者  文件/目录

      -R 递归修改

 chgrp:

修改文件所属组前提是要有该组

      -R 递归修改

 chmod:

修改拥有者和所属组的权限

     加减法:u/g/o     +/-/=      r/w/x

    数字发:r=4,w=2,x=1  三位两位 一位

证明文件的rwx权限的特点

文件的拥有者,及时没有w权限,也可以强制写入,所属组和其他人不行

证明目录的rwx的权限的特点

如果一个用户对一个目录没有w的权限,是否可以编辑改目录中拥有着是自己的文件

3)默认权限--umask

umask:查看当前用户的umask权限:  -S选项

0022 --- 拿走的权限

  第一个数字表示特殊权限

  022=rwxr-xr-x

默认创建文件和目录的权限,文件会拿走x权限

临时的修改:umask 0000

永久修改:/etc/bashrc

何时使用umask,当你和你的同事在编辑同一个文件时,需要将编辑权限从022改为002

4)linux中的特殊权限

s出现在拥有者的x权限位置时候,表示拥有者有SUID的权限(SetUID

s出现在所属组的x权限位置时候,表示拥有者有SGID的权限(SetGID

s出现在其他人的x权限位置时候,表示拥有者有SBIT的权限(Sticky Bit

SUID,临时获取文件拥有者的权限---只能诊断文件

SGID,既可以作用于目录,也可以作用于文件

         作用于文件:SUID一样

         作用于目录:继承父亲目录---目录会不停的继承

SBIT指的是,只有文件的拥有者,才能删除、修改该目录下的文件---只能针对目录(只能在其他人上修改)

ST都有大学和小写之分

大写说明:没有x权限

小写说明:有x权限

SUID=4 SGID=2 SBIT=1

3.2linux中的用户账户管理

账号和组名:人看的

UIDGIDlunix看的

id:查看当前登入用户的UIDGID

当我们使用ls -l的时候,系统会根据/etc/passwd etc/group文件的内容,找到UIDGID对应的名称,进行显示

如果随意修改了/etc/passwd下的用户和UID会发生什么情况

1)/etc/passwd:记录了linux上的所有的账号

sp:x:1000:1000:sp:/home/sp:/bin/bash

sp:用户名

x:早期这个部分放置的是用户的登入密码,现在密码放到/etc/shadow

UID:0表示系统管理员,1--999保留给系统使用的ID1000以上给一般使用者

GID:0表示系统管理员,1--999保留给系统使用的ID1000以上给一般使用者

sp:使用者信息说明

/home/sp:用户家目录,用登入时,所在的目录

/bin/bash:用户在登入的时候,是否可以使用shell,如果不能使用shell,则会显示/sbin/nologin

1)/etc/shadow:记录了账户对应的密码

root:$6$gD5M.5G05C0qbjne$z5UItmegldht.5pU/2mqvVl1PoaZuF7QEG7IBraky0eF/WKEde1PUZ8EMrtCZ8U2ZBbpn6BDUT6E9RzmKIpTs1::0:99999:7: : :

1Root:用户名

2、一串红色的字:经过加密的密码

3、最近更改过密码的日期:lunix中的日期,是通过197011号开始累加的日期

4、密码不能修改的天数:0表示随时可以修改,1表示1天内不能修改

5、密码需要重新被修改的天数:通过修改该值,可以强制用户修改密码

7、密码需要变更的告警天数:7天内系统会想用户发出告警

8、密码到期后,账号还可以使用的时间

9、账号失效日期:通过197011号开始累加的日期,到了时间后,无论密码是否过期,该账号就不能使用了

10、保留

2)/etc/group:记录了所有的组

root:x:0:

1root:组名

2x:组密码一般不需要

31000GID

4、附属组

这些文件不建议直接进行修改,建议使用命令修改

3)创建一个组-groupadd

组的默认信息:/etc/login.defs

-g:指定gid

  groupdel

  groupmod   -n newname oldname

 gpasswd

 -a为组添加用户 gpasswd -a 用户

 -d 为组删除用户

 4)linux用户创建--useradd

Useradd

 -u:设置UID

 -g:设置主要组

  -G:设置附属组

  -c:设置用户说明

  -d:指定用户家目录

  -s:指定用户shell

 -e:账号失效日期,格式为:YYY-MM-DD

 -f:指定密码是否失效,0表示立刻失效,1表示永远不失效

使用useradd后,会默认做以下几个操作

1、在/etc/passwd下建立相关的资料

2、在/etc/shadow写下密码的相关的参数

3、在/etc/group中写入和账号名一样的组

4、在/home下创建用户的家目录

5)Linux用户修改--usermod

 usermod

   -c:账号说明

      -d:修改家目录

      -g:修改主要组

      -G:修改附属组

      -a:与-G一起用,增加附属组

     -l:修改用户名

     -u:修改UID

  -L:冻结账号

  -U:解冻

6)linux用户密码--passwd

passwd用户名//所有人都可以通过改命令来修改自己的密码

 -l:锁住该账号,在/etc/shadow中放密码的位置加个!

 -u:解锁

 -S:显示账号的密码参数

 -n:接天数,设置多久可以不修改密码

 -x:接天数,设置多久内必须修改密码

 -w:接天数,设置密码过期前警告天数

 -i:接天数,设置密码失效天数

6)chage可以修改和密码有关的时间参数

 -L:查看一个账户和秘密有关的时间参数

 -d:YYYY-MM-DD,修改最近一次更改密码的时间

 -EYYYY-MM-DD,修改账号的失效时间

 -l:天数,设置密码几天后失效

 -m:天数,设置密码至少保留几天

 -M:天数。设置密码多久后,需要更新

 -W:天数,设置密码过期前警告时间

删除一个用户--userdel

要彻底删除一个账号,比较麻烦

1、删除/etc/passwd;/etc/shadow文件中的内容

2、删除/etc/group;/etc/gshadow

3、删除/home/username;/var/spool/mail/username

4、删除该用户曾经来该linux中创建的文件

     find进行搜索,先搜索,在使用userdel

 -r 连同家目录和邮箱一起删除

3.3文件权限-getfacl和setfacl

AclAccess Control List:针对单一使用者,设置单一文件或目录来进行rwx的权限修改

 应用场景:当除rootgroupother外新增加用户时需要使用acl

getacl:获取单一使用者,针对单一使用者或目录的权限

setacl:配置单一使用者,针对单一使用者或目录的权限

 -m:配置acl参数

 -x:删除单个文件的acl

 -b:删除acl的配置

 -R:递归配置acl参数

setfacl用法

Setfacl -m u:用户名:rwx 文件或目录

 setfacl -m g:组名:rwx 文件或目录

 setacl -m mrwx 修改mask

 getacl文件名

 mask的定义--权限上限

 1、权限的集合(特点用户,特定组,所属组的并集)

 2、如果mask中没有的权限,即使getfacl设定了,也不会有

第四章、linux基础操作 

4.1Linux中的进程和服务

进程:已经启动的可执行的程序的运行实力

1PID:进程的ID(每一个新进程都有一个唯一的PID

2PPID:父进程的ID

3、任何一个进程都可以创建一个子进程

4、在redhat 7以上,所有的进程父进程:systemd

    redhat 5.6以上,所有的进程父进程:init

 ps用于显示当前进程状态

 常用的选项:

-A :所有的进程均显示出来,与 -e 具有同样的效用;

-a :显示现行终端机下的所有进程,包括其他用户的进程;

-u :以用户为主的进程状态

x :通常与 a 这个参数一起使用,可列出较完整信息

 -aux:列出所有进程

 -ef:列出所有进程

 -l:列出和当前用户有关的进程

-j 显示当前作业进程信息

 

 PGID:线程组ID

 SID:会话ID

 

PID:运行着的命令的进程编号

TTY:命令所运行的位置

TIME:运行着的该命令所占用的CPU处理时间

CMD:该进程所运行的命令

 top可以查看实时的进程状态

运行中:

R:该进程正在运行或等待运行

睡眠:

S:正在休眠但是可以唤醒

D:正在休眠,而且不可以被唤醒,该进程被中断,可能会导致设备的异常状态

K:正在休眠,而且不可以被唤醒,该进程可以被中断

已停止:

T:进程被停止,但是可以通过其他进程进行恢复

T:正在被调试的进程

僵停:

Z:子进程在退出时向父进程发出信号,除PID外,所有资源全部释放

X:父进程获取子进程的机构,子进程可以完全释放,该状态进程中是看不到的

进程优先级

1<高优先级

 2n低优先级

3s包含子进程

4+位于后台的进程组

ps  -aux参数解释

[root@localhost tmp]# ps -aux

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.4 193904  4592 ?        Ss   20:11   0:01 /usr/lib/system

root         2  0.0  0.0      0     0 ?        S    20:11   0:00 [kthreadd]

1%CPU:占用的cpu使用率

2%MEM:占用的记忆体使用率

3VSZ:占用的虚拟记忆体大小

4 RSS:占用的记忆体大小

5TTY:中断的次要装置号码(minor device number of tty

6 STAT:该进程的状态

7START:进程开始时间

8 TIME:执行的时间

9 COMMAND:所执行的命令

4.2linux中的会话和作业

进程:linux自身运行的独立的程序

交互进程:由一个shell启动的进程,可以在前台运行,也可以在后台运行

批处理进程:是一个进程序列,和终端没有联系

监控进程(守护进程):Linux系统启动时,启动的进程,并且在后台运行

作业:一个正在执行的进程,而且作业可以包含一个或者多个进程

作业控制:控制正在运行的进程的行为:如:挂起一个进程,等一会执行,这样用户就在可以再多个作业之间切换

&:在命令后面使用该符号,可以让命令在后台执行

jobs:可以查看正在后台运行的作业

  -l:除了列出作业外同时列出PID

 -r:列出仅仅在后台运行的作业

 -s:列出仅仅在后台暂停的作业

Sleep 10000 延迟几秒

例子:date sleep 10000 date

 ctrl+c:中断

 ctrl+z:挂起

fg:将后台的命令调到前台来继续执行,不能放回后台了

      %作业编号

bg:将后台暂停的命令继续执行

       %作业编号

 ps -j 显示当前作业进程信息

 PGID:线程组ID

 SID:会话ID

信号:传递给linux进程的操作

Kill -l显示可以传递给linux进程的所有的信号

常用:

 kill -9 PID 杀死一个进程---强制

 kill -15 PID 正常的方式终止一个进程

 kill -2 可以control+c的操作是一样的

4.3Linux中的控制服务和守护进程

systemd:是所有进程的父进程(linux内核3.0以上的版本)

systemctl:用户管理各种类型的systemd对象,这些对象称为:单元

        常用的单元:.service(服务单元).socket(套接字).path(路劲单元)

ssh:是一个协议      sshd:是一个进程

systemctl status sshd.service显示中有几个关键字------红帽7

 loaded:单元配置文件以处理      active(running):正在运行   active(exited):配置成功

  disable:开机不自启    static:无法启动,但可以通过某一个已经启动的单元来启动

红帽5.6

 service sshd status

 Chkconfig ssh on/off 开机自动启动

4.4分析和存储日志

日志:用于系统审核和故障排查------linux中的黑匣子

日志文件都是保存在/var/log目录中的(默认保存30天)

再red hat7中,系统日志消息由两个服务负责处理,他们是systemd-journald和rsyslogd

/var/log/massages             ---大多数系统日志消息的日志

/var/log/secure               ---安全和身份验证的消息和错误日志

/var/log/maillog              ---与邮件服务器相关的日志

/var/log/cron                 ---与定期执行任务相关的日志

/var/log/boot/log             ---记录和系统启动有关的日志

许多程序使用syslog协议将事件记录到系统,每一个日志都会根据消息类型和严重性分类

系统日志优先级概述

编码

优先级

严重性

0

emerg

系统不可用

1

alert

必须立即采取措施

2

crit

严重状况

3

err

非严重错误状况

4

warning

警告状况

5

notice

正常但重要的时间

6

info

信息性事件

7

debug

调试级别的消息

大多数日志由四个部分组成

1、记录日志的时间

2、发送该日志的主机

3、发送该日志信息的程序或进程

4、发送的实际消息

日志监控

tail -f /var/log/secure//显示最后10行,如果由新的内容加入,那么会继续输出

4.5打包和压缩

打包程序:tar

  c:创建文档

    t:列出存档内容

   x:提取文档

   f:filename:要操作的存档的文件名

   v:详细信息

例子:

   1tar cf  a.tar  路径  //创建一个压缩文件

注:如果路径是绝对路径就会产生报错tar: Removing leading `/' from member names

   Tar –cfP  //P可解决掉这个问题

   2tar xf  a.tar    //解压提取a.tar中的文件

   3tar tf  a.tar    //列出a.tar中的文件

注意:

1、选项前不用-

2、创建之前请检查有没有重名文件

3、要使tar可以打包选定的文件,执行tar命令的用户必须要能够读取这些文件

tar支持三种不通的压缩方式:

gzip:压缩速度最快,历史最久,应用最广泛

 bzip2:压缩成的存储文档小,可用性不如gzip

 xz:最新的打包方式,提供最佳的压缩率

 实际环境中3中情况都可能遇到,所以创建不一样格式的归档文件就有自己的选项

 z用于gzip压缩:filename.tar.gz

 j用于bzip2压缩:filename.tar.bz2

 J用于xz压缩:filename.tar.xz

例子

  tar zcf a.tar.gz a.tar    //gz格式压缩

 tar jcf a.tar.bz2 a.tar

 tar Jcf a.tar.xz a.tar

4.6周期性计划作业---cron

cron:是一个进程,可以让linux周期性的执行某一个命令

crontab是一个命令,可以设置linux周期性的执行某一个命令

     -u:设置某一个用户的周期性工作---root权限

     -e:编辑crontab的工作内容

     -l:擦活跃crontab的工作内容

     -r:移除所有的crontab的工作内容,若仅要移除一项,请用-e去编辑

crontab的格式

 minute hour day month week commd

 minute:表示分钟,可以从0---59之间的任何整数

  hour:表示小时,可以从0---23之间的任何整数

  day:表示日期,可以从0---31之间的任何整数

  month:表示月份,可以从0---12之间的任何整数

  week:表示星期几,可以从0---7之间的任何整数,这里的0和7都代表星期日

  commd:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件

特殊字符

代表含义

*(星号)

代表任何时刻都接受的意思*代表的是任何时刻

,(逗号)

代表分隔字段的意思

例如:15,30,45 * * * * command代表的是每月每日每小时的15分

,30分,45分的时候执行命令

-(减号)

例如:10 7-10 * * * command代表的是每月每日的7点到10点

的10分整时执行命令

/n

那个n代表数字,也就是每隔n单位间隔的意思

例如*/5 * * * * command代表的是每月每日每时每个5分钟执行一次

实例

 

第一行SHELL变量指定了系统要使用那个shell,这里是bash

第二行PATH变量指定了系统的执行命令的路径

第三行MAILTO变量指定了crond的任务执行信息将会通过电子邮件送给root用户,如果MAILTO变量的值为空,

则表示不发送任务执行信息给用户

4.6.1crontab配置原理

当使用者使用crontab这个命令来创建工作安排之后,该项工作就会被记录到/var/spool/cron/里面去了

而且是以账号来作为判别的

如:sp用户使用crontab后,他的工作会被记录到/var/spool/cron/sp中,另外,cron运行的每一项工作

都会被记录到/var/log/cron这个日志文件中

crond服务每分钟检测一次,所以cron会每分钟去读取一次/etc/crontab与/var/spool/cron里面的数据内容,

因此只要你编辑完/etc/crontab这个文件,并且将他存储之后,那么cron的配置就自动的来回运行了

如果你修改完的crontab或添加的crontab没有马上执行起来,那么你可以用

systemctl restart  crond.service重启

4.7输入输出重定向

 >file                     //标准输出重定向到文件---覆盖

>>file                   //标准输出重定向到文件---追加

2>                             //标准错误重定向到文件---覆盖

2>>                           //标准错误重定向到文件---追加

2>/dev/null              //标准错误重定向到回收站

&>file                        //标准输出和标准错误重定向到文件---覆盖

>>file 2>&1               //标准输出和标准错误重定向到文件---追加

4.8管道符

字符:|这就是管道符

作用有两个:

1、承上启下:将上一个指令的输出作为下一个指令的输入来执行

2、搭配grep字符实现过滤功能

[root@localhost tmp]# ls -l /etc/ | more

 

4.9正则表达式和通配符

在linux中,有通配符和正则表达式,这是两个不同的概念

通配符:他是由shell解析,并且一般用于匹配文件名

正则表达式:是一个字符匹配标准,一些命令工具按此标准实现字符匹配,常用于支持正则表达式的工具,如grep,sed等,一般用于匹配文件中

内容

1.通配符

*”用于匹配文件名中任意长度得字符串,ls *.cpp

“?”只匹配一个字符,ls text?

“【……】”用于匹配出现在括号内所有得字符 ,ls 【a1】

“【!….】”用于不匹配出现在括号内所有得字符 ,ls 【a1】

2.正则表达式

字符匹配

 . :匹配单个字符

 *:匹配其 前面一个字符出现任意次

 ?:匹配其前面的字符10

 +:匹配其前面一个字符出现至少一次(在扩展正则表达式)

位置匹配

^;锚定行首

 $:锚定行尾

 \<\b:锚定词首,其后面的任何字符必须作为单词首部出现

 \>\b:锚定词尾:其前面的任何字符必须作为单词尾部出现

\B:非单词的开头或结尾

 ^$:空白行

\:通常用于打开或关闭后续字符的特事故含义

3.分组():

(ab)*:匹配ab这个分组出现的任意次数

 \1:引用一个左括号以及对应的右括号所包含的所有内容,同理还有\2,\3

 

4.grep只能用于查找文件中的内容

sed可以查找,然后替换或者插入想要的内容

----以下操作都不会对文件内容进行修改,,,sed -i会对文件的内容进行修改

a:新增,a的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)

c:取代,c的后面可以接字串,这些字串可以取代n1,n2之间的行

d:删除,因为删除所以d后面不跟任何东西

i:插入i的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)

p:列印,亦即将某个选择的资料印出,通常p会与参数sed

s:取代,可以直接进行取代的工作!通常这个s的动作可以

 

sed  '2,5d'  123      删除文件1232--5

5.查找语句find

需求:查出所有用户sp拥有的所有文件,并且他们呢拷贝到/tmp/spfile目录中

用法:find 【路劲】【命令参数】【表达式】

参数

 -name“文件名”:查找指定名称文件

 -user用户名:查找指定用户的拥有的文件

 -group组名:查找指定组拥有的文件

 -mtime n:查找在n天前被修改的文件

 -attime n:查找在n天前被访问过的文件

 -type d/f/b/l/p:查找指定类型的文件

 -empty:查找为空的文件

 -size:按容量大小查找

 -perm mode:查找指定属性的文件

 -exec command{}\;:查找指定的文件并执行指定的命令

 -newer 文件名:查找比指定文件新的文件

find /var/ -size +5M -exec {} \;

 find /var/ -size +5M -exec cp -ar {} /tmp/spfile/ \;

第五章:Linux中的磁盘

5.1linux中的磁盘

磁盘分区:将硬盘划分成多个逻辑存储单元

逻辑存储单元:分区

分区的益处:

1、限制应用或用户的可用空间

2、允许同一块磁盘安装不通的操作系统

3、可以给虚拟内存一个单独的分区

4、提高硬盘的使用性能

MBR-Main Boot Record(主引导记录):

告诉硬盘如何进行分区,写在磁盘的第一个扇区中是卸载

特点:

1、支持4个主分区

2、使用扩展分区和逻辑分区可以支持15个分区

3、允许最大分区和磁盘大小为2T

主分区---扩展分区---逻辑分区

fdisk来进行分区--------------------------------------------- df -h(查看磁盘信息)

IDE接口硬盘:/dev/dh[a-z]  SCSI接口硬盘:/dev/sd[a-z]

 n (新建)>  p(创建主分区)分区编号>起始分区>设置分区大小>p(查看)>w(保存)

 d:删除

分区步骤

1、先分区

2、内核重新读取新的分区表

    【root@localhost~】#partprobe /dev/sdb

3、创建文件系统,linux支持很多文件系统,ext4和xfs;widow下的文件系统NTSF   FAT32

    mkfs.ext4 /dev/sdb1 -----格式化

4、挂载,将文件系统连接到目录结构中-----将目录和一个硬盘进行挂钩

    挂载

    手动挂载:重启后会失效,用于检测已经格式化的设备,是否可以和预期一样的进行工作

    mount  文件系统  挂载点 (目录)

永久挂载:就要将设备添加到/etc/fstab中去

  该文件由六个部分组成

第一部分:要使用的设备---可以使用UUID,也可以使用设备文件blkid //查看设备的UUID号

 blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询

,要使用这个命令必须安装e2fsprogs软件包

第二部分:写挂载点,已经存在直接写,不存在使用mkdir来创建

第三部分:文件系统类型

第四部分:挂载时,应用于设备的自定义选项,defauts时必须的

第五和第六部分:转存标志和fsck顺序

      转存标志:用于生成设备内容的备份

            0:表示不需要备份

            1:表示需要备份

     fsck:当有多个文件系统需要检测时,检查的顺序

           0表示不需要检查,开机直接挂载

           1表示检查后第一个挂载

           2表示检查后第二个挂载

使用mount -a命令  检查书写格式是否有误

附发生的问题:

  1. Linux中格式化分区scsi磁盘,显示文件系统不可读,超级块无效

mkfs -n可以查看到备份超级块的位置

1mkfs.ext4 -n /dev/sdc1      //   备份超级块去fsck修复分区

2) mkfs.ext4 -y /dev/sdc     //  修复分区                   

3) mkfs.ext4 -S /dev/sdc      //  mke2fs -S重新生成超级块

5.2交换空间                                                                                                                         

交换空间---虚拟内存

​​​​​​​

1、存放内存中不活动的信息                                                                

2、内存写满时,使用虚拟内存

3、如果虚拟内存写满,操作系统会非常卡,甚至奔溃

创建步骤

1、创建分区

2、将分区类型设为swap--fdiskt(修改分区类型)

3、格式化---mkswap分区

4、挂载:临时和永久(fstable

临时:

free命令:查看可用的内存和虚拟内存空间

swapon命令:激活内存空间

5.3逻辑卷-LV

逻辑卷和逻辑分区不是同一个概念

逻辑卷的作用:

正常的分区如果写满了,我们就可以要数据导入到更大的磁盘中,工作量非常大,而且十分危险

逻辑卷管理器(lvm)可以更加轻松的管理磁盘空间,来轻松的解决一个问题

1)lvm比传统硬盘存储的优点

1、灵活性容量---允许多个磁盘或分区做成一个逻辑卷

2、可伸缩的存储池---可以用命令来修改逻辑卷,而不是格式化

3、在线数据在分配---可以在线移动数据,可以在更换热插拔磁盘

4、设备命名方便

5、镜像卷---很方便的做数据镜像

6、卷快照---快照会把逻辑卷中的内容全部内容保存

2)逻辑卷--lv

物理卷(pv):用于注册基础的物理设备,映射到物理设备

卷组(vg):存储池,由一个或多个物理卷组成

逻辑卷(lv):根据卷租中空闲的物理空间进行分配

3)创建逻辑卷步骤:

1、使用fdisk创建一个硬盘,t设置分区类型为:linuxLVM

2、使用partprobe向内核注册新的分区

3、创建物理卷pvcreate /dev/sdb1

4、创建卷组vgcreate  sp(卷组名字)  /dev/sdb1

5、创建逻辑卷lvcreate -n sp_lv(逻辑卷名字) -L 10m sp(卷组name

6、创建文件系统mkfs.ext4 /dev/sp/abc

7、创建挂载点----永久

查看物理卷信息-pvdisplay /dev/sdc1

查看卷组信息-vgdisplay sp

查看逻辑卷信息-lvdisplay /dev/sp/sp_lv

5.4扩展和减少逻辑卷大小--EXT4文件系统

如果卷组还有空间,直接给逻辑卷增加大小

1、lvextend -L +20M /dev/sp/lv_sp          //增加20M

2、resize2fs /dev/sp/lv_sp                 //使增加的生效

如果卷组不够,需要先增加卷组的空间,再增加逻辑卷的大小

1、如果物理-fdisk,partprobe ,mkfs.ext4

2、创建物理卷

3、给原来的卷组增加物理卷-vgextend sp /dev/sdc2,然后vgdisplay

5.5扩展和减少逻辑卷大小-xfs文件系统

如果卷组还有空间,直接给逻辑卷增加大小

1、lvextend -L +20M /dev/sp/lv_sp          //增加20M

2、xfs_growfs /dev/sp/lv_sp                 //使增加的生效

如果卷组不够,需要先增加卷组的空间,再增加逻辑卷的大小

1、如果物理-fdisk,partprobe ,mkfs.ext4

2、创建物理卷

3、给原来的卷组增加物理卷-vgextend sp /dev/sdc2,然后vgdisplay

物理卷(PV):用于注册基础物理设备,映射到物理设备

卷组(VG):存储池,由一个或多个物理卷组成

逻辑卷(LV):根据卷组中空闲的物理空间进行分配

5.6删除逻辑卷步骤:

1、取消挂载,umount/mnt/sp_m                          同时删除   /etc/fstable                 文件中的内容

2、删除逻辑卷 lvremove /dev/sp/abc

3、删除卷组 vgremove sp

4、删除物理卷 pvremove /dev/sdc1

5.7开机过程(centos7为例)

1、加载BIOS

系统固件加载BIOS(基本输入输出系统)然后进行开机自检(POST),并开始初始化部分硬件

 BIOS:basic input output system,他是一套程序,写死到主板上的一个内存芯片中,这个内存芯片在没有通电的情况下也能将数据记录下来(ROM,非挥发性)

2、读取MBR

系统固件搜索磁盘上的主启动记录(MBR

由于我们的系统软件大多配置在硬盘中,所有BIOS会指定启动的设备,好让我们可以读取磁盘中的操作系统内核文件,这时候就需要一个引导装载程序来处理内核文件加载(LOAD)的问题,这个引导装载程序就被称为BootLoader

哪这个BootLoader放在那里呢

放在我们系统的一个硬盘上的第一个扇区里面,也就是我们说的MBR:master boot record

3、启动加载器(gurb2)

系统固件从磁盘中读取启动(Boot Loader),然后将系统控制权交给启动加载器,在7中,我们的BootLoader是通过一个gurb程序来实现的

现在是gurb2.0,前一个版本是gurb0.97

Gurb2的主要功能:

1、提供菜单:选在不同的启动选项

2、加载内核文件:直接指向可启动的程序区段来开始OS

3、转交其他Loader(多系统时09)

4、显示菜单

启动加载器从我们的磁盘中加载其配置,然后向用户显示用于启动的可能配置的菜单,这就是我们在开机的时候会看到的让你上下选择什么什么版本

,什么什么东西的那个界面

我们可通过以下方式进行配置:

/etc/grub.d/

/etc/default/gurb

/boot/gurb2/gurb.cfg(非手动)

5、加载内核

在用户做出选择(超时)后,启动加载器会从磁盘中加载配置的内核及initramfs,并将其置于内存中

initeamfs是一个归档文件,里面包含了启动时所需要的必要的硬件的内核模块、初始化脚本等等,在7中,initramfs得到了加强,包含自身可用的整个系统

6、系统内部传递信息

这时候我们在启动加载器又将系统控制权交给内核,从而传递启动加载器的内核命令行中指定的任何选项,以及initramfs在内核中的位置

7、初始化

内核这时候会在initramfs中找到驱动程序的所有硬件,并且初始化它,然后作为PID1从initramfs中执行/sbin/init

PID1就是systemd,代表的是系统启动的第一个用户级进程,是所有其他进程的父进程

8、执行单元

初始化完成后,我们的systemd会执行initrd.target目标的所有文件,这些所以的东西都被包括在/sysroot上挂载实际的root文件系统中

9、系统回归

接下来内核root文件系统会回到之前挂载于/sysroot上的系统root文件系统,然后就是我们systemd的时间了,他会使用系统中安装的systemd副本来自定重新执行

10、开机界面

我们熟悉的输入账号密码的界面

5.8root密码破解-----基于红帽7

1、开机按e进入编辑模式

2、选择linux16哪一行,然后光标移动这一行未尾,添加一个参数\rd.break

3、然后按ctrl+x执行,执行之后会进入一个shell界面

4、设置root密码,设置密码一共5步:

          1、重新挂载根目录为读写模式mount-o remount,rw /sysroot

          2、切换到系统真正的根chroot/sysroot

    3、修改密码passwd root

    4、SElinux给所有文件夹标签,必须要有.autrelabel文件,touch /.autorelabel

    5、退出编辑模式(两次),系统会自动重启exit两次

本文标签: 第一部分学习笔记Linux