纯小白入门Linux基础

目录

第1章 环境搭建

1.1 虚拟机的网络配置

1.2 虚拟机联网

1.3 vmtools工具

1.3.1 作用:

1.3.2 步骤

1.3.3 共享文件夹

第2章 Linux的目录结构

第3章 远程登录Linux系统

3.1 XShell

3.2 XFtp 5 上传下载

第4章 开机、重启和用户登录注销

4.1 关机&重启

4.2 用户登录和注销

第5章 vi和vim编辑器

5.1 vi/vim的三种模式

5.2 快捷键

第6章 用户管理

6.1 添加用户

6.2 指定密码

6.3 删除用户

6.4 查询用户信息

6.5 切换用户

6.6 查看当前用户

6.7 增加组

6.8 删除组

6.9 修改用户组 

6.10 用户和组的相关文件

第7章 使用指令

7.1 指定运行级别

面试题:如何找回丢失的root密码

面试题:运行级别为0或6该怎么办

7.2 帮助指令

7.3 文件目录类

7.3.1. pwd:显示当前工作目录的绝对路径

7.3.2 ls:

7.3.3 cd:

7.3.4 mkdir:创建目录

7.3.5 rmdir:删除空目录

7.3.6 touch:创建空文件

7.3.7 cp:拷贝文件到指定目录

7.3.8 rm:移除文件或目录

7.3.9 mv:移动文件或重命名

7.3.10 cat:查看文件内容,只浏览不能修改

7.3.11 more:以全屏的方式按页显示内容

7.3.12 less:分屏查看内容,根据显示需要加载内容

7.3.13 > 输出重定向和 >> 追加

7.3.14 echo:输出内容到控制台

7.3.15 head:显示文件的开头内容,默认10行

7.3.16 tail:显示文件末尾内容,默认10行

7.3.17 ln:软连接(符号连接),存放链接其他文件的路径

7.3.18 history:查看以执行过的命令

7.4 时间日期类

7.4.1 date:显示当前日期

7.4.2 cal:查看日历

7.5. 搜索查找类

7.5.1 find:从指定目录向下递归遍历各子目录,将满足条件的文件或目录显示在终端

7.5.2 locate:快速定位文件路径

7.5.3 grep指令和管道符号 |

7.6 压缩和解压缩

7.6.1 gzip和gunzip

7.6.2 zip和unzip

7.6.3 tar

第8章 组管理和权限管理

8.1 组管理

8.1.1 文件/目录的所有者

8.1.2 文件/目录的所有组

8.1.3 其他组

8.2 权限

8.2.1 文件权限

8.2.2 目录权限

8.2.3 权限管理

第9章 定时任务调度 crontab

9.1 介绍

9.2 语法

9.3 快速入门

第10章 磁盘分区、挂载

10.1 分区基础知识

10.2 Linux分区

10.2.1 原理介绍

10.2.2 硬盘说明

10.3 挂载

10.4 磁盘情况查询

10.4.1 系统整体磁盘使用情况

10.4.2 查询指定目录的磁盘占用情况

10.4.3 磁盘情况——工作使用指令

第11章 日志管理、备份与恢复(不详细,待更新)

11.1. 简介

11.1.1 确定服务启动

11.1.2 常见日志的作用

 

11.2 rsyslogd日志服务

11.2.1 日志文件格式

11.3 日志轮替

11.4 备份的数据

11.4.1 linux系统需要备份的数据:

11.4.2 apache需要备份的数据:

11.4.3 MySQL需要备份的数据:

11.4.4 备份策略:

11.5 增量备份和恢复

11.5.1 备份命令dump

11.5.2 恢复命令restore

第12章 网络配置

12.1 网络配置原理图(含虚拟机 NAT模式)

12.2 查看网络id和网关 

12.2.1 虚拟网络编辑器

12.2.2 修改虚拟网络的ip

12.2.3 查看网关

12.2.4 查看Windows中的vmnet8网络配置

12.3 自动获取IP

12.4 指定固定IP

第13章 进程管理(重点)

13.1 基本介绍

13.2 显示系统执行的进程

13.2 终止进程

13.2.1 语法

13.2.2 案例

13.2.3 查看进程树

13.3 服务(service)管理

13.3.1 介绍

13.3.2 service管理指令

13.3.3 查看服务名

13.3.4 服务的运行级别

13.3.5 chkconfig指令

13.4 动态监控进程

13.4.1 介绍

13.4.2 语法

13.4.3 案例

13.5 监控网络状态netstat(重要)

第14章 RPM和YUM

14.1 rpm包管理

14.1.1 简单查询指令

14.1.2 其他查询指令

14.1.3 rpm包卸载

14.1.4 rpm包安装

 14.2 yum包管理

14.2.1 基本指令

第15章 Java开发环境

15.1 JDK安装

15.2 Tomcat安装

15.3 Eclipse安装

15.4 Mysql安装

第16章 shell编程

16.1 shell快速入门

16.2 shell的变量

16.2.1 shell变量的定义

16.2.2 变量定义规则:

16.2.3 将命令的结果赋值给变量

16.3 设置环境变量

16.4 位置参数变量

16.4.1 介绍

16.4.2 语法

16.5 预定义变量

16.6 运算符

16.7 判断语句

16.7.1 语法

16.7.2 常用判断条件

16.8 流程控制语句

16.8.1 if

16.8.2 case

16.8.3 for

16.8 4 while

16.9 shell读取控制台输入

16.10 shell系统函数

16.10.1 basename

16.10.2 dirname

16.11 shell自定义函数

16.12 综合案例:shell定时维护数据库

第17章 python开发环境

17.1 Ubuntu的root用户

17.1.1 给root用户设密码

17.2 apt软件管理

17.2.1 Ubuntu软件操作的相关命令【必须会】

17.3 sshd远程登录


第1章 环境搭建

1.1 虚拟机的网络配置

1. 桥接模式:虚拟机与母机同网段,但IP不同,容易IP冲突

2. NAT模式:网络地址转换,虚拟机可以访问外网

3. 仅主机模式:虚拟机时独立的主机

1.2 虚拟机联网

1.3 vmtools工具

1.3.1 作用:

1. 可以直接粘贴命令在Windows和Linux之间

2. 可以设置Windows和Linux的共享文件夹

1.3.2 步骤

1. 进入Linux

2. 点击vm菜单的->install vmware tools

3. Linux出现一个vm安装包

4. 点击右键解压,得到一个安装文件

5. 进入该vm解压的目录,该文件在 /root/桌面/vmware-tools-distrib/ 下

6. 安装 ./vmware-install.pl

7. 全部使用默认设置

8. 需要reboot重启生效

1.3.3 共享文件夹

详情请看

 

第2章 Linux的目录结构

1. /bin指令目录

2. /sbin:系统管理员使用的系统管理指令

3. /home:普通用户的主目录

4. /root

5. /lib:系统开机所需要最基本的动态链接库,类似于Windows的DLL文件

6. /lost+found:一般是空的,系统非法关机后才有文件

7. /etc:所有的系统管理所需要的配置文件和子目录

8. /usr:用户的应用程序和文件

9. /boot:启动Linux时使用的一些核心文件

10. /proc:虚拟目录,系统内存的映射,访问这个目录获取系统信息。别动

11. /srv:service缩写,服务启动后需要提取的数据。别动

12. /sys:别动

13. /tmp

14. /dev:所有的硬件

15. /media:设备

16. /mnt:让用户临时挂载别的文件系统

17. /opt:给主机额外安装软件所摆放的目录

18. /usr/local:额外安装的软件目录

19. /var:;存放不断扩展的东西,通常将不断变化的文件存放在此

20. /seLinux:安全子系统,能控制程序只访问特定文件

 

第3章 远程登录Linux系统

3.1 XShell

3.2 XFtp 5 上传下载

连接

连接后有乱码问题,之后刷新

以上两款软件的使用需要Linux开启sshd服务

 

第4章 开机、重启和用户登录注销

4.1 关机&重启

1. shutdown

1. shutdown -h now:立即关机

2. shutdown -h 1:1分钟后关机

3. shutdown -r now:立即重启

2. halt:直接使用,效果相当于关机

3. reboot:重启

3. sync:把内存的数据同步到磁盘。看不到效果

无论关机、重启,执行前先执行sync

4.2 用户登录和注销

1. 普通用户登录,用su -用户名命令切换成系统管理员身份

2. 在提示符下用logout注销用户。logout命令在图形级别下无效,远程登录才有效

 

第5章 vi和vim编辑器

所有的Linux系统都内建vi文本编辑器。

vim具有程序编程能力,可以视为vi的增强版,可以主动以字体颜色辨别语法的正确性,方便程序设计。

5.1 vi/vim的三种模式

1. 正常模式

正常模式下可以使用快捷键

2. 插入模式

按下i,进入插入模式

按下a,光标定位到当前行的下一行

3. 命令行模式

完成读取、存盘、替换、离开vim、显示行号等动作

wq:保存退出

:q:退出,没有任何修改

:q!:强制不保存退出

5.2 快捷键

1. 拷贝当前行 yy, 拷贝当前行向下的5行 5yy,粘贴 p

2. 删除当前行 dd, 删除当前行下5行 5dd

3. 文档中查找某个单词:在一般模式中,输入“/关键字”回车后即可找到,用“n”查找下一个

4. 设置文件行号 “:set nu”, 取消文件行号“:set nonu

5. 跳到文档末行“G”, 回到文件首行“gg” 

6. 正常模式输入“u”撤销上步操作,可以一直撤销到本次文档打开的位置。撤销的内容为上次插入的全部的内容,而不只是一行

7. 光标快速移动到指定行:

第一步:显示行号

第二步:输入指定行

第三步:点击shift+g

vi/vim快捷键键盘一览图

 

第6章 用户管理

6.1 添加用户

语法:useradd [选项] 用户名

选项:

1. -d:指定该用户的家命令 -> useradd -d 指定目录 用户名  指定目录不能事先存在

2. -g:指定用户的组 -> useradd -g 组名 用户名

说明:用户创建后,如果没有指定组,自动创建与该用户同名的组

6.2 指定密码

语法:passwd 用户名

6.3 删除用户

语法:userdel [选项] 用户名 

选项:

1. 无选项:该方式保留家目录 【推荐】

2. -r:同时删除家目录

6.4 查询用户信息

语法:id 用户名

6.5 切换用户

语法:su - 用户名 

回到原用户:exit 

6.6 查看当前用户

语法:whoani / who am i 

6.7 增加组

语法:groupadd 组名

6.8 删除组

语法:groupdel 组名 

6.9 修改用户组 

语法:usermod -g 用户组 用户名

6.10 用户和组的相关文件

1. /etc/passwd

存放用户的各种信息

每行的含义:用户名:加密口令:用户id:组id:注释性描述:家目录:登录shell

2. /etc/shadow

存放用户的口令

每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

3. /etc/group

存放组的信息

每行含义:组名:口令:组id:组内用户列表

 

第7章 使用指令

7.1 指定运行级别

指定运行级别:init [012356]

面试题:如何找回丢失的root密码

答:进入到单用户模式,然后修改root密码。因为进入单用户模式,root不需要密码就可以登录。关于安全问题:该操作只能在机房打开实体机进行操作,所有可以默认身份没问题

具体操作:开机 -.> 在引导时敲回车键 -.> 看到一个界面输入e -.> 看到新界面,选中第二行(编辑内核)再输入e -.> 在这行输入1,敲回车 -.> 回到上个界面输入b -.> 进入单用户模式,使用passwd改密码 

面试题:运行级别为0或6该怎么办

答:在开机时,进入到单用户模式,将级别改为其他

具体操作:开机 -.> 在引导时敲回车键 -.> 看到一个界面输入e -.> 看到新界面,选中第二行(编辑内核)再输入e -.> 在这行输入5或3,敲回车 -.> 回到上个界面输入b -.> 进入图形界面或多用户有网服务

7.2 帮助指令

1. man

语法:man [命令或配置文件] 

2. help

语法:help 命令

7.3 文件目录类

7.3.1. pwd:显示当前工作目录的绝对路径

基本语法:pwd

7.3.2 ls:

基本语法:ls [选项] [目录或文件]

常用选项:1. -a:显示所有目录和文件,包括隐藏的

                  2. -l:以列表的方式显示

7.3.3 cd:

基本语法:cd [参数]

常用选项:1. cd ~ :回到家目录

                  2. cd .. :

7.3.4 mkdir:创建目录

基本语法:mkdir [选项] 要创建的目录

常用选项:1. -p:创建多级目录

7.3.5 rmdir:删除空目录

基本语法:rmdir [选项] 要删除的目录

7.3.6 touch:创建空文件

基本语法:touch 文件名

可以一次性创建多个文件

7.3.7 cp:拷贝文件到指定目录

基本语法:cp [选项] source dest

常用选项:1. -r:递归拷贝整个文件夹

                  2. \cp [选项] source dest:强制覆盖,不提示

7.3.8 rm:移除文件或目录

基本语法:rm [选项] 文件或目录

常用选项:1. -r:递归

                  2. -f:强制,不提示

7.3.9 mv:移动文件或重命名

基本语法:mv oldFileName newFileName      mv oldFileAdd newFileAdd

7.3.10 cat:查看文件内容,只浏览不能修改

基本语法:cat [选项] 文件

常用选项:1. -n:显示行号

                  2. cat [选项] 文件 | more:分页显示

7.3.11 more:以全屏的方式按页显示内容

基本语法:more 文件

7.3.12 less:分屏查看内容,根据显示需要加载内容

基本语法:less 文件

7.3.13 > 输出重定向和 >> 追加

基本语法:ls -l > 文件:把ls -l的内容覆盖写入到文件中

                  ls -al >> 文件:把ls -al的内容追加到文件中

                  cat 文件1 > 文件2:把文件1的内容覆盖文件2

                  echo “内容” >> 文件:把内容追加到文件中

7.3.14 echo:输出内容到控制台

基本语法:echo [选项] [输入内容]

例子:1. 输入环境变量: echo $PATH

7.3.15 head:显示文件的开头内容,默认10行

基本语法:head [选项] 文件

常用选项:1. head -n 5 文件:显示文件的前5行

7.3.16 tail:显示文件末尾内容,默认10行

基本语法:tail [选项] 文件

常用选项:1. tail -n 5 文件:显示倒数5行

                  2. tail -f 文件:实时追踪该文档的所有更新 

7.3.17 ln:软连接(符号连接),存放链接其他文件的路径

基本语法:ln -s [原文件或目录] [软连接名]

7.3.18 history:查看以执行过的命令

基本语法:history

常用选项:1. history 10:显示使用过的最后10个命令

                  2. !命令序号:再次执行该序号的命令,如!82

7.4 时间日期类

7.4.1 date:显示当前日期

基本语法:date

常用选项:1. date +%Y:当前年份

                  2. date +%m:当前月份

                  3. date +%d:当前日期

                  4. date “+%Y-%m-%d %H:%M:%S”:年月日 时分秒

                  5. date -s 字符串时间:设置系统时间

7.4.2 cal:查看日历

基本语法:cal [选项]

常用选项:1. cal 2020:显示2020年全年的日历

7.5. 搜索查找类

7.5.1 find:从指定目录向下递归遍历各子目录,将满足条件的文件或目录显示在终端

基本语法:find [搜索范围] [选项]

常用选项:1. -name 文件名:按照指定的文件名查找

                  2.  -user 用户名:查找属于指定用户名的所有文件

                  3. -size 文件大小:按照指定文件大小查找

7.5.2 locate:快速定位文件路径

基本语法:locate 搜索文件

需要用uupdate指令创建locate数据库

7.5.3 grep指令和管道符号 |

grep:过滤查找

管道符号:将前一个命令的结果输出给后面的命令处理

基本语法:grep [选项] 查找内容 源文件

常用选项:1. -n:显示匹配行和行号

                  2.  -i:忽略大小写

7.6 压缩和解压缩

7.6.1 gzip和gunzip

gzip压缩【原文件不保留】,gunzip解压

基本语法:gzip 文件名       gunzip 文件名.gz

7.6.2 zip和unzip

在项目打包发布中非常有用

基本语法:zip [选项]  XXX.zip 要压缩的内容       unzip [选项] XXX.zip

选项:1. -r:压缩目录

           2. -d:指定解压后的存放目录

7.6.3 tar

基本语法:tar [选项] XXX.tar.gz 打包的内容

选项:1. -c:产生.tar打包文件

           2. -v:显示详细信息

           3. -f:指定压缩后的文件名

           4. -z:打包同时压缩

           5. -x:解包.tar文件

指定解压到的目录,事先要存在

-C的作用是解压到指定目录

 

第8章 组管理和权限管理

8.1 组管理

8.1.1 文件/目录的所有者

创建用户:useradd 用户名

查看文件所有者:ls -ahl

修改文件所有者:chown 用户名 文件名

8.1.2 文件/目录的所有组

创建组:groupadd 组名

查看文件所有者:ls -ahl

修改文件所有组:chgrp 组名 文件名

8.1.3 其他组

改变用户所在组:

usermod -g 组名 用户名

usermod -d 目录名 用户名 改变该用户登录的初始目录

8.2 权限

8.2.1 文件权限

1. r:读取,查看

2. w:可以修改,但不代表可以删除文件。删除文件的前提是对该文件的所在目录有写权限

3. x:可以执行

8.2.2 目录权限

1. r:可以读取,ls查看目录内容

2. w:可以修改,目录内创建+删除+重命名目录

3. x:可以进入该目录

8.2.3 权限管理

1)通过chmod改变目录/文件的权限

第一种方法:+、-、=变更权限

u:所有者 g:所有组 o:其他组 a:全部用户

1. chmod u=rwx,g=rx,o=x 文件/mul名

2. chmod o+w 文件/目录名

3. chmod a-x 文件/目录名

第二中方式: r=4,w=2,x=1,rwx=4+2+1=7

2)通过chown修改文件所有者

chown newowner file:改变文件所有者

chown newowner:newgroup file:改变文件所有者和所有组

-R:如果是目录,使其所有子目录递归生效

3)通过chgrp修改文件所在组

chgrp newgroup file:修改文件所在组

 

第9章 定时任务调度 crontab

9.1 介绍

任务调度:系统再某个时间执行特定的命令或脚本

9.2 语法

crontab [选项]

选项:

1. -e:编辑crontab定时任务

2. -l:查询crontab任务

3. -r:删除当前用户所有的crontab任务

4. service crond restart:重启任务调度

9.3 快速入门

设置任务调度文件:/etc/crontab

设置个人任务调度,执行crontab -e命令

输入任务到调度文件,如:*/1 * * * * ls -l /etc/ > /tmp/to.txt,意思是每小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令

上述五个占位符的含义:

第1个:一小时的第几分钟,范围:0-59

第2个:一天中的第几小时,范围:0-23

第3个:一个月中第几天,范围:0-31

第4个:一年中第几个月,范围:1-12

第5个:一周中的星期几,范围:0-7(0和7都是周日)

特殊符号的说明:

1. *:代表任何时间,

2. ,:代表不连续的时间,如“0 8,12,16 * * *”代表每天8点,12点,16点都执行一次命令

3. -:代表连续的时间范围,如“0 5 * * 1-6”代表周一到周五的凌晨5点执行命令

4. */n:代表每个多久执行一次,如“*/10 * * * *”代表每隔10分钟执行一次

 

第10章 磁盘分区、挂载

10.1 分区基础知识

分区方式:mbr分区、gtp分区

1. mbr分区:

1. 最多支持4个主分区

2. 系统只能安装在主分区

3. 扩展分区占一个主分区

4. mbr最大支持2TB,但有最好的兼容性

2. gtp分区

1. 支持无限个主分区(但操作系统可能有限制,Windows最大128分区)

2. 最大支持18EB的大容量(EB=1024PB,PB=1024TB)

3. Windows7 64位以后支持gtp

10.2 Linux分区

10.2.1 原理介绍

1. 对Linux而言,无论有几个分区,分给哪个目录使用,归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux每个分区都是用来组成文件系统的一部分

2. Linux采用了“载入”的处理方式,他的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录连续起来。这是要载入的一个分区将使他的存储空间再一个目录下获得

10.2.2 硬盘说明

1. Linux硬盘分IDE硬盘和SCSI硬盘,目前基本是SCSI硬盘

2. 对于IDE硬盘,驱动器识别符为“hdx~”。其中“hd”表明分区所在设备的类型,即指IDE硬盘。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1~4表示,他们是主分区或扩展分区,从5开始为逻辑分区

3. 对于SCSI硬盘,标识符为“sdx~”,SCSI硬盘用“sd”表示分区的类型,其余的于IDE硬盘一样

lsblk -f:查看系统的分区和挂载情况【快速记忆:老师不离开】

10.3 挂载

挂载的案例

10.4 磁盘情况查询

10.4.1 系统整体磁盘使用情况

df -h

10.4.2 查询指定目录的磁盘占用情况

du [参数] 目录

默认为当前目录

其他参数:

1. -s:指定目录占用大小汇总

2. -h:带计量单位

3. -a:含文件

4. --max-depth=1:子目录深度

5. -c:列出明细的同时,增加汇总值

10.4.3 磁盘情况——工作使用指令

1. 统计/home文件的个数

ls -l /home | grrp "^-" | wc -l

2. 统计/home目录的个数

ls -l /home | grrp "^d" | wc -l

3. 统计/home文件的个数,包括子文件夹里的

ls -lR /home | grrp "^-" | wc -l

4. 统计/home目录的个数,包括子文件夹里的

ls -lR /home | grrp "^d" | wc -l

5. 以树状显示文件目录

先安装tree:yum install tree

使用命令:tree

 

第11章 日志管理、备份与恢复(不详细,待更新)

11.1. 简介

11.1.1 确定服务启动

1. ps aux | grep rsyslogd:查看服务是否启动

2. chkconfig --list | grep rsyslog:查看服务是否自启动

11.1.2 常见日志的作用

 

11.2 rsyslogd日志服务

11.2.1 日志文件格式

基本日志格式包含四列:

1. 时间产生的时间

2. 发生事件的服务器的主机名

3. 产生事件的服务名或程序名

4. 事件的具体信息

11.3 日志轮替

 

11.4 备份的数据

11.4.1 linux系统需要备份的数据:

1. /root

2. /home

3. /var/spool/mail

4. /etc

11.4.2 apache需要备份的数据:

1. 配置文件

2. 网页主目录

3.  日志文件

11.4.3 MySQL需要备份的数据:

1. 源码包安装的mysql:/usr/local/mysql/data/

2. rpm包安装的msyql:/var/lib/mysql/

11.4.4 备份策略:

1. 完全备份

2. 增量备份:只备份较上次的新增数据,最初的数据进行完全备份

3. 差异备份:备份较原始数据的新增部分,

11.5 增量备份和恢复

11.5.1 备份命令dump

1. dump需要安装。安装命令:yum -y install dump

2. 语法:dump [选项] 备份后的文件名 原文件名或目录

选项:

1. level:备份级别

2. -f 文件名:指定备份后的文件名

3. -u:备份成功后,把备份时间记录在/etc/dumpdates中

4. -v:显示备份过程中更多的的输出信息

5. -j:调用bzlib库压缩备份文件,

6. -w:显示允许被dump的分区的备份等级及备份时间

11.5.2 恢复命令restore

 

第12章 网络配置

12.1 网络配置原理图(含虚拟机 NAT模式)

12.2 查看网络id和网关 

12.2.1 虚拟网络编辑器

12.2.2 修改虚拟网络的ip

12.2.3 查看网关

12.2.4 查看Windows中的vmnet8网络配置

1. 使用ipconfig

2. 界面查看

12.3 自动获取IP

缺点:每次IP不一样,不适用于服务器

12.4 指定固定IP

修改“/etc/sysconfig/network-scripts/ifcfg-eth0”文件内容

重启服务:service network restart

 

第13章 进程管理(重点)

13.1 基本介绍

1. Linux中,每个执行的程序(代码)都是一个进程,都分配一个进程id

2. 每个进程都要一个父进程。父进程可以复制多个子进程

3. 进程的存在形式:前台和后台

4. 一般系统服务都是以后台进程的方式存在,而且常驻在系统里,直到关机才结束

13.2 显示系统执行的进程

ps -aux:指令可以查看当前进程

-a:显示当前所有进程信息

-u:以用户的形式显示进程信息

-x:显示后台进程的参数

 13.2.1 ps指令详解

13.2 终止进程

13.2.1 语法

kill [选项] 进程号:通过进程号杀死进程

killall 进程名称:通过进程名杀死进程,支持通配符,在系统因负载过大而变慢时非常有用

选项:

-9:强迫进程立即停止

13.2.2 案例

1. 踢掉非法用户

2. 终止远程登录sshd,在适合适合重启sshd服务

3. 终止多个gedit编辑器

4. 强制杀掉一个终端

13.2.3 查看进程树

语法:pstree [选项] 

选项:

1. -p:显示进程id

2. -u:显示进程所属用户

13.3 服务(service)管理

13.3.1 介绍

服务service本质就是进程,运行在后台,通常监听某个端口,等待其他程序的请求,又称为守护进程

13.3.2 service管理指令

service 服务名 [ start | stop | restart | reload | status ]

或者 systemctl

注意:

1. 该方式只是临时生效,系统重启后,恢复之前的状态

2. 永久生效用chkconfig指令

13.3.3 查看服务名

1. 使用setup -> 系统服务

有*号的为启动的,按空格关闭

2. /etc/init.d/服务名称 

13.3.4 服务的运行级别

查看或修改默认级别:vi /etc/inittab

开机流程:

13.3.5 chkconfig指令

通过chkconfig命令可以给各个运行级别设置自动挡/关闭

语法:

1. 查看服务 chkconfig --list | grep xx

2. chkconfig 服务吗 --list

3. chkconfig --level 5 服务名 on/off

config设置后要重启才生效

13.4 动态监控进程

13.4.1 介绍

top与ps命令相似,都是显示正在执行的进程。最大的不同是top在执行一段事件后更新正在运行的进程

13.4.2 语法

top [选项]

选项:

1. -d:指定top隔几秒进行刷新,默认3秒

2. -i:使top不显示任何闲置或僵死进程

3. -p:通过指定监听进程id来仅仅监控某个进程的状态

交互操作说明:

1. P:以CPU使用频率排序,默认

2. M:以内容使用频率排序

3. N:以PID排序

4. q:退出top

13.4.3 案例

1. 监听特定用户

top:输入此命令,按回车,查看执行的进程

u:然后输入u回车,在输入用户名即可

2. 终止指定进程

top:输入此命令,按回车,查看执行的进程

k:然后输入k回车,再输入要结束的进程id

3. 指定系统状态更新时间10s

bash 》 top -d 10

13.5 监控网络状态netstat(重要)

语法:netstat [选项]

选项:

1. -an:按一定顺序排列输出

2. -p:显示哪个进程再调用

 

第14章 RPM和YUM

rpm类似于Windows的setup.exe

yum包是一个shell前端软件包管理器,基于rpm包管理,可以从指定服务器自动下载rpm包并安装,可以自动处理依赖关系,并一次性安装所有依赖的包。使用yum需要联网

14.1 rpm包管理

14.1.1 简单查询指令

查询已安装的rpm列表:rpm -qa | gerp xx

14.1.2 其他查询指令

1. rpm -qa:查询安装的所有rpm包

2. rpm -qa | more

3. rpm -qa | grep XX

4. rpm -q 软件包名:查询软件包是否安装

5. rpm -qi 软件包名:查询软件包信息

6. rpm -ql 软件包名:查询软件包中的文件

7. rpm -qf 文件全路径:查询文件所属的软件包

14.1.3 rpm包卸载

rpm -e rpm包的名称

细节:

如果要删除包,被其他包依赖,则卸载时报错,如果非要删除可以加参数:rpm -e --nodeps 包名

14.1.4 rpm包安装

rpm -ivh rpm包全路径

参数:

1. -i:安装 install

2. -v:提示 verbose

3. -h:进度条 hash

 14.2 yum包管理

14.2.1 基本指令

1. 查询yun服务器是否有需要安装的软件:yum list | grep 软件名

2. 安装指定包:yum install XXX

 

第15章 Java开发环境

15.1 JDK安装

安装步骤:

1. 将软件上传到 /opt 下

2. tar解压

3. 配置环境变量 “/etc/profile”

4. 注销用户,环境变量才生效

如果是3运行级别:logout

如果是5运行级别:重新登录一次【或重启】

15.2 Tomcat安装

安装步骤:

1. 将软件上传到 /opt 下

2. tar解压

3. 启动tomcat

先进入tomcat的bin目录【cd命令】

启动命令“./startup.sh”

4. 开放8080端口,以便外网访问

vim /etc/sysconfig/iptables

5. 重启防火墙 “service iptables restart”

15.3 Eclipse安装

1. 将软件上传到 /opt 下

2. tar解压

3. 启动eclipse,配置jre和server

启动方式:1. 快捷方式;2. 进入到eclipse文件夹,执行“./eclipse”

15.4 Mysql安装

第1步:卸载就版本

 

第16章 shell编程

shell是一个命令行解释器

16.1 shell快速入门

1. 脚本格式要求

1. 以“#!/bin/bash”开头

2. 有可执行权限

2. hello world

代码:

#!/bin/bash
echo hello world

执行:

方式1:

第1步:赋予HelloWorld.sh脚本+x权限

第2步:执行

方式2:不推荐

16.2 shell的变量

shell的变量:系统变量、用户自定义变量。显示上前所有变量用“set”

16.2.1 shell变量的定义

1. 定义变量:变量名=变量值

2. 撤销变量:unset 变量

3. 声明静态变量:readonly 变量。静态变量不能unset

16.2.2 变量定义规则:

1. 变量名习惯大写

2. 等号两侧不能有空格

3. 数字、字母、下划线

16.2.3 将命令的结果赋值给变量

16.3 设置环境变量

基本语法:

1. export 变量名=变量值  :将shell变量输出为环境变量

2. source 配置文件          :让修改后的配置文件立即生效

3. echo $变量名              :查询环境变量值

在实用环境变量前,需要让其生效

16.4 位置参数变量

16.4.1 介绍

使用位置参数变量,可以让执行的shell脚本得到命令行的参数信息。

个人理解:shell脚本视为Java的函数,位置参数变量视为该函数的实参

16.4.2 语法

1. $n :n为数字,$0代表命令本身,$1~$9代表第一到第九个参数,十以上的用大括号包括,如${10}

2. $* :这个变量代表命令行中的所有参数,$*把所有参数看为一个整体

3. $@ :这个变量代表命令行中的所有参数,$@把每个参数区别对待

4. $# :这个变量代表命令行中的所有参数的个数

16.5 预定义变量

shell设计者已经实现定义好的变量,可以直接在shell中使用

语法: 

1. $$ :当前进程号

2. $! :后台运行的最后一个进程的进程号

3. $? :最后一次执行的命令的返回状态。返回0则表示成功,

#!/bin/Bash

echo "当前的进程号=$$"

# 后台运行 myShell.sh
./myShell.sh &
#上面的一个&表示在后台运行

echo "最后运行的进程号=$!"

echo "最后的进行运行结果=$?"

16.6 运算符

语法:

1. “$((运算式))"或"$[运算式]"

2. expr m + n :expr运算符间有空格

3. expr m - n

4. expr \*, /, %

16.7 判断语句

16.7.1 语法

[ condition ] 

condition前后有空格

非空返回true,可使用$?验证

16.7.2 常用判断条件

两个整数比较

1. =:字符串比较

2. -lt:小于

3. -le:小于等于

4. -eq:等于

5. -gt:大于

6. -ge:大于等于

7. -ne:不等于

文件权限判断

1. -r:有读权限

2. -w:有写权限

3. -x:有执行权限

文件类型判断

1. -f:文件存在并且是一个常规文件

2. -e:文件存在

3. -d:文件存在并且是一个目录

16.8 流程控制语句

16.8.1 if

if [ 判断条件 ]

 then

            程序

    elif [ 判断条件 ]

    then

          程序

fi

16.8.2 case

case $变量名 in

”值1“)

        程序1

;;

”值2“)

        程序2

;;

.。。。

*)

        程序n

;;

esac

16.8.3 for

语法1:

for 变量 in 值1,值2,值3

do

     程序

done

语法2:

for((初始值;条件;变量变化))

do

     程序

done

16.8 4 while

while [ 条件 ]

do

     程序

done

16.9 shell读取控制台输入

read (选项) (参数)

选项:

-p:指定读取值时的提示信息

-t:指定读取值时等待的时间

参数:

变量:指定读取值的变量名

16.10 shell系统函数

16.10.1 basename

功能:返回完整路径最后 / 的部分,常用于获取文件名

语法:

basename [pathname] [suffix]

basename [string] [suffix]  (作用:删除所有的前缀包括最后一个 / ,然后将字符串显示出来)

suffix为后缀,如果suffix被指定,basename会将passname或string中的suffix去掉

16.10.2 dirname

功能:返回完整路径最后 / 的前面部分,常用于返回路径部分

语法:

dirname 文件绝对路径

16.11 shell自定义函数

语法:

[ function ] funname [()]

{

     Action;

     [return ]

}

16.12 综合案例:shell定时维护数据库

需求分析:

1. 每天凌晨2:10备份数据库 atguiguDB 到 /data/backup/db

2. 备份开始和备份结束能够给出相应的提示信息

3. 备份后的文件要求一备份的时间为文件名,并打包为 。tar。gz 格式

4. 备份的同时,检查是否有10天前备份的文件,如果有就删除

思路分析:

 

代码:

#!/bin/Bash

# 完成数据库定时备份

# 备份的路径
BACKUP=/data/backup/db
# 当前时间为文件名
DATETIME=$(date +%Y_%m_%d_%H:%M:%S)

echo "=====开始备份====="
echo "备份的路径是 $BACKUP/$DATETIME.tar.gz"

# 数据库信息
HOST=localhost
DB_USER=root
DB_PWD=root
DATABASE=atguiguDB

# 创建备份的路径
if [ | -d "$BACKUP/$DATETIME" ]
then 
    mkdir -p "$BACKUP/$DATETIME"
fi
# 上述代码的其他写法:
# [ | -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"

# 开始备份,先备份压缩到一个临时目录
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
# 打包备份文件
tar -zcvf $DATATIME.tar.gz  $DATETIME
# 删除临时文件
rm -rf $BACKUP/$DATETIME

# 删除十天前的备份
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;

echo "备份成功"

把代码交给crontab,进行执行

指令:crontab -e

在打开的文件中输入:10 2 * * * /usr/sbin/mysql_backuo_db.sh

 

第17章 python开发环境

17.1 Ubuntu的root用户

当普通用户没有权限时,切换root又麻烦,可以在命令前加“sudo ”,就可以有root的权限。

当然,可以用su用来切换root用户,但如果没有给root设置密码,会报错,此时设置一个root密码就可以。

17.1.1 给root用户设密码

1. 输入sudo passwd命令,输入一般用户的命名并设定root用户密码

2. 设定root密码后,输入su命令,并输入root密码,就可以切换为root用户。提示符$为一般用户,提示符#为root用户

3. 输入exit命令,退出root

17.2 apt软件管理

apt是安装包管理工具,类似于Windows的软件管理工具。

17.2.1 Ubuntu软件操作的相关命令【必须会】

1. sudo apt -get update:更新源

2. sudo apt -get install package:安装包

3. sudo apt -get remove package:删除包

 

4. sudo apt-cache search package:搜索软件包

5. sudo apt -cache show package:获取包的相关信息

6. sudo apt-get install package --reinstall:重新安装包

 

7. sudo apt-get -f install:修复安装

8. sudo apt-get remove package --purge:删除包,包括配置文件

9. sudo apt-get build-dep package:安装相关的编译环境

 

10. sudo apt-get upgrade:更新以安装的包

11. sudo apt-get dist-upgrade:升级系统

12. sudo apt-cache depends package:了解使用该包依赖哪些包

13. sudo apt-cache rdepends package:查看该包被哪些包依赖

14. sudo apt -get source package:下载包的源码

17.3 sshd远程登录

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值