查看linux的版本信息:
lsb_release -a
一、Linux的文件系统目录结构
Linux只有一个根目录: /,根目录下有bin、home、lib、root等等。
①bin ---------->各种常见的指令
②dev---------->把硬件映射成一个文件来进行管理
③etc----------->管理各种配置文件
④home------->当我们创建一个普通用户后,就会在home目录下生成一个文件
⑤media------->多媒体 比如 U盘等
⑥usr------------>用户的很多应用程序都放在这个目录下
usr/local-------->存放安装好的软件
⑦proc---------->内核的一些东西,不要动他
⑧root----------->root用户的一些文件
⑨lib-------------->系统开机需要的最基本的动态连接共享库
⑩mnt------------>让用户临时挂载别的文件系统,可以将外部的存储挂载在/mnt/上
var----------------->存放日志文件
二、vi和vim编辑器
1.什么是vi和vim?
vi是一个文本编辑器
vim是一个增强版的文本编辑器,方便程序设计。
2.vi和vim的三种常见模式
①正常模式:
以vim打开一个档案就进入了一般模式。
在这个模式可以 删除字符、删除整行、复制、粘贴来处理文件数据。
②插入模式/编辑模式
按下i、I、o、O、a、A、r、R等任意一个字母之后才会进入编辑模式,一般来说按i即可。
在这个模式可以,输入内容
编辑完成后,如何保存退出?
按下 esc
输入 :
输入 wq
③命令行模式
在这个模式可以提供相关指令: 完成读取、存盘、替换、离开vim、显示行号等会。
三种模式的转换
vi和vim的快捷键:
1.粘贴拷贝: 控制光标,按下yy或yy进行复制,按下p进行粘贴
2.删除:控制光标,按下dd或5dd
3.查找:在正常模式下,按/,输入要查找的数字,按下回车
4.设置行号和取消行号
set nu
set nonu
5.移动到文件最末行或者第一行
6.撤销
正常模式下 ,输入u
7.跳转指定行
编译和运行一个java程序
编译:javac {文件名.java}
运行:java {文件名}
运行jar包:java -jar {jar包}
三、关机重启
注意:使用shutdown以后,需要到阿里云云服务器管理平台重启机器。
四、用户的登录和注销
①用户的登录
登录时尽量不要使用root用户登录,应该使用普通用户登录,如果权限不够,使用 su - 用户名 来切换成系统管理员身份
②用户的注销
logout
③用户管理
1.添加用户
1.)采用默认目录
useradd {用户名}
passwd {用户名}
创建用户后,默认会在/home/目录下,创建一个相同名字的目录:
2.)指定目录
useradd -d /home/{自定义目录} {用户名}
passwd {用户名}
2.删除用户
1.)删除用户但保留家目录(开发时用这个)
userdel {用户名}
2.)删除用户并删除家目录
userdel -r {用户名}
3.查询和切换用户
①查询用户信息
id {用户名}
[root@iZbp1fbtwv3e6u41btq4rkZ ~]# id machenfei
uid=1004(machenfei) gid=1004(machenfei) groups=1004(machenfei)
②切换用户
1.)切换:su -u {用户名}
2.)返回切换前的用户:exit
3.)查看当前用户
whoami / who am i
4.用户组
通过用户组进行对多个用户的权限进行统一的管理,即一个组的所有用户权限一样
1.)添加用户组
groupadd {组名}
2.)删除用户组
groupdel {组名}
3.)添加用户时并将其指定到特定的组
groupadd {用户组}
uesradd -g {用户组} {用户名}
4.)修改用户的用户组
usermod -g {用户组} {用户名}
5.)用户和组的相关文件
保存用户信息
保存用户组的信息
五、如何找回root密码?
①运行级别:
②丢失root密码?(不能远程登录修改)
进入单用户模式运行级别,修改密码即可。
六、常用指令
rm -rf 尽量不要用 (切记)
①帮助指令
当我们对某个指令不熟悉时,通过帮助指令可以了解到该指令的作用
1.)man {指令}
2.)help {指令}
②文件目录类
1.)pwd :显示当前目录的绝对路径
参数:
2.)ls :查看当前目录下的所有内容
参数:
ls -a:显示所有的目录或文件 包括隐藏的
ls -l: 以列表的形式显示所有内容
举例:
3.)cd:切换目录
参数 :
cd ~ 或者 cd : -----------> 回到自己的家目录
cd . . ------------------------->回到当前目录的上一级目录
举例:
4.)mkdir:创建目录
创建单级目录:
创建多级目录:
5.)rmdir :删除目录
删除空目录:
删除有内容的目录:
6.)touch:创建一个空文件
一次创建一个文件
一次创建多个文件
7.)cp:拷贝文件到指定目录
cp {源文件} {要拷贝到的目录}
案例一、将/home/aaa.txt拷贝到 /home/bbb目录下
案例二、递归复制整个文件夹
将 /home/test 的整个目录 拷贝到 /home/zhangwuji目录 下
案例三、强制覆盖原来的文件,不会有提示,提升效率
8.)rm:移除文件或目录
普通删除文件:
删除目录:
9.)mv:移动文件或者重命名
重命名:(源文件和目标文件 都在同一目录)
移动文件:
10.)cat :以只读的形式查看文件内容
普通查看:
查看并显示行号:
分页查看 :按下空格翻页
11.)more:基于文本编辑器的文本过滤器
以全屏的方式按页显示
一行一行的浏览: 按enter
一页一页的浏览: 按空格
回头看上一页:ctrl + B
12.)less:功能和less相似,适用于大型文件
less在显示文件时,并不是一次将整个文件加载后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
详细解释
13.)>和>>
> 将输出的内容 覆盖写入 到指定文件当中 (覆盖)
>>将输出的内容 追加写入 到指定文件当中 (追加)
案例一: 将/home目录下的文件列表 写入到/home/info.txt
>和>>的区别?
案例二: 将当前日历信息 追加到 /home/mycal文件中
案例三:echo 的使用
14.)echo:输出内容到控制台
案例一、使用echo输出环境变量
15.)head:显示文件的开头部分
案例一:显示hello.java文件的前3行(默认前10行)
16.)tail:输出文件的末尾部分
案例一:查看文件末尾2行
案例二:实时监控hello.java的末尾
退出实时监控 :ctrl+C
17.)ln:快捷方式
建立快捷方式:
删除快捷方式:
注意快捷方式后加了 / ,与快捷方式同级的文件都会被删除
18.)history:查看已经执行过历史命令
显示所有执行过的指令
③时间日期类
显示时间:
设置时间:
查看日历:
显示2023年的日历
④搜索查找类
1.)find
案例一、 按文件名:根据名称查找 /home 目录下的hello.txt文件
案例二、按拥有者:查找/root目录下,用户名称为root的文件
案例三、查找整个linux系统下大于20m的文件
案例四、查找txt文件,并将所有路径存储到一个txt文件中
2.)locate
首先执行 yum -y install mlocate
3.)grep指令和管道符号 |
管道符号 |:将前一个命令的处理结果输出传递给后面的命令处理。
案例一、在hello.txt文件中,查找“hello” 所在行,并且显示行号
⑤压缩和解压缩
1.)gzip :压缩 gunzip:解压
2.)zip:压缩 unzip:解压
压缩:
解压:
3.)tar :既可以压缩 也 可以解压
案例一:压缩多个文件:将/home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz
案例二、 解压 a.tar.gz
案例三、解压a.tar.gz到指定目录
七、组管理和权限管理
1.)查看文件的所有者、所在组
准备工作:
mcfMCF7777
2.)修改文件的所有者
只改变文件的所有者:
案例一、将/home/kkk 目录下的所有文件和目录的所有者 都修改成 tom
3.)修改文件所在组
案例一、将/home/kkk目录下的所有文件和目录的所在组 都写改成 bandit组
![
](https://img-blog.csdnimg.cn/c25517791afd48789e3ad6cd7e112862.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP55m955qE5aSp5LiL,size_17,color_FFFFFF,t_70,g_se,x_16)
4.)权限详细介绍
5.)权限管理
通过chmod指令,可以修改文件或目录的权限。
案例一:给abc文件 的所有者读写执行的权限,给所在组读执行的权限,给其他组读的权限
案例二、给abc文件所有者 减少执行的权限,增加组写的权限
案列三、给abc的所有用户添加读的权限
八、定时任务调度
案例一、每分钟执行 ls -l /etc/ > /temp/to.txt
①开启调度:
案例一、每隔一分钟就将当前的 日期信息 ,追加到 /tmp/mydate 文件中
1.)编写 shell 脚本 /home/mytask.sh
2.)给文件一个可执行权限
3.)crontab -e
4.)*/1 * * * * /home/mytask.sh
②终止调度:
九、磁盘分区
1.)linux分区
硬盘说明:
2.)挂载的经典案例
3.)磁盘情况查询
①查看系统整体磁盘使用情况
②查看目录的磁盘占用情况
③工作实用指令
1.
2.
3.
4.
2. 如果不能用 tree,可以使用 yum install tree 安装。
十、网络配置原理和说明
①Linux网络配置原理图
目前我们的网络配置采用的是NAT
②查看虚拟网络编辑器
③修改ip地址(修改虚拟网络ip地址)
④查看网关
⑤查看windows环境中的VMnet8网络配置
ipconfig指令
⑥linux 修改配置文件 指定固定 ip
使用自动配置 后 linux的ip是会变化的,这样是很不适合做服务器的,要将linux的IP地址固定,可以修改其配置文件
①
vi /etc/sysconfig/network-scripts/ifcfg-eth0
②
③ 重启服务
service network restar
十一、进程管理
①查看系统中执行的进程
②查看进程的父进程
查看所有进程的父进程
查询 sshd的父进程
③终止进程
案例一:踢掉某个非法用户
案例二、终止远程登录服务 sshd,在适当的时候重启sshd服务
案例三、终止多个gedit编辑器 (通过 killall 来终止)
案例四、强制杀掉一个终端(必须 要带 参数 -9)
④查看进程树
-p:显示进程的PID
-u:显示进程的所属用户
十二、服务管理
服务的本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,因此我们又称为守护进程。
案例一:查看当前防火墙的状态、关闭防火墙、和重启防火墙(立即、临时生效)
案例二:通过telnet指令检查Linux的某个端口是否在监听,并且可以访问
案例三:查看服务名称
ll /etc/init.d/
①关于防火墙的指令 (适用于centos 7)
1.)查看防火墙的状态
firewall-cmd --state
2.)临时开启防火墙,重启系统失效
systemctl start firewalld.service
3.)临时开启防火墙,重启系统失效
systemctl stop firewalld.service
4.)设置开机 自动启动 防火墙
systemctl enable firewalld
5.)设置开机 自动关闭 防火墙
②关于端口的指令(适用于centos 7)
1.)查看已经开放的端口:
firewall-cmd --zone=public --list-ports
2.)开放某个端口
firewall-cmd --zone=public --add-port=要开的端口/tcp --permanent
firewall-cmd --reload
3.)关闭某个端口
firewall-cmd --zone=public --remove-port=10010/tcp --permanent
firewall-cmd --reload
4.)查看进程所监听的端口
③todo : 感觉阿里云开放端口 有区别
④进程监控
1.)动态监控进程 : top
案例一、监视特定用户
案例二、在top中杀死指定的进程:
案例三、指定系统更新的时间(默认是三秒)
2.)监控网络状态:netstat -anp
案例一、查看所有的网络服务
案例二、查看指定的网络服务
十三、RPM包和YUM
①RPM包的管理
案例一:查询当前Linux中有没有安装 firefox
案例二:查询安装好的jdk的软件包信息
案例三:查询rpm包的文件安装到那里去了
案例四:查询某个文件属于哪个软件包
案例五:卸载rpm包
案例五:安装rpm包 安装 火狐浏览器
1.)先找到火狐的安装包
②YUM(需要联网)
案例一、使用yum安装火狐
bash>yum install firefox
③JDK的安装和配置
JDK的安装和卸载
课前准备:卸载之前安装好的openjdk
压缩包 在 百度网盘 工具文件夹下
④mysql8.0的安装
十四、Shell
①什么是shell?
②shell脚本的快速入门
脚本的格式
1.)脚本以#!/ bin /bash 开头
2.)脚本需要有可执行权限
hello,world
1.)
2.)
3.)
4.)
除了给shell文件一个可执行权限来执行shell文件,还可以通过以下方式来执行shell文件:
③Shell的变量
1.)shell的变量介绍
1.1 系统变量
1.1.1直接输出现有的系统变量
1.1.2查看所有的系统变量
1.1.3自定义系统变量
1.)在/etc/profile下编辑保存系统变量
2.)刷新配置文件
1.2用户自定义变量
1.2.1定义变量和取消变量
1.2.2定义静态变量 和 验证静态变量不能unset
1.2.3把一个变量提升为全局变量,供其他shell使用
1.2.4变量的定义规则
1.2.5将命令的输出作为变量的值
1.3位置参数变量
1.4预定义变量
④shell运算符
⑤shell判断语句
⑥shell流程控制
if
case
for
while
⑦shell读取控制台输入
案例一、读取控制台输入一个num值
案例二、读取控制台输入一个num值,在10秒内输入
⑧shell系统函数
1.)系统函数
basename
dirname
2.)自定义函数
案例一:计算输入两个参数的和