Linux[学习笔记] 2022.6.30完结
Linux是经常使用的开发环境,所以其中的一些基本概念和基本指令工具的用法要掌握。
文章目录
一、虚拟机
1、概念
虚拟机的克隆和快照操作,相当于存档
2、快捷操作
ctrl + shift + ‘+’ 快捷放大终端字体
su root 进入root权限
sudo passwd root 修改root用户密码
二、Linux基础-目录结构
Linux目录类似树状图,最上面是根目录/
三、Vi和Vim编辑器
1、正常模式
通过 vim hello.txt 使用vim编辑器编辑hello.txt文件,刚进入vim编辑器时的状态,可以进行【删除字符】以及【删除整行】操作
2、插入模式
按下 i 时进入插入模式,从插入模式按下 esc 退出回到正常模式
3、命令行模式
从正常模式按下 : 进入命令行,输入wq 保存并退出
q!强制退出不保存
4、Vim快捷键以及键位图
正常模式下 yy 复制一行,dd 删除一行啊啊
四、远程登录到服务器
1、下载安装xshell和xftp
ifconfig查看ip地址 / Windows是ipconfig查询ip地址
ping ip地址 连接服务器,查询是否连同
2、xshell连接不成功可能原因
a、使用了VPN
b、建议使用glen用户登录而不是root用户
3、xshell登录linux步骤
ifconfig查询linux服务器的ip地址
xshell新建程序,用户使用glen而不是root
五、用户管理centOS版本,ubuntu指令不一样
1、创建新用户
useradd milan
useradd -d /home/king king # 指定目录创建用户
2、修改用户的密码
passwd 用户名
passwd milan
3、删除用户
userdel milan # 删除用户,但是保留家目录
userdel -r milan # 删除用户,同时删除家目录
logout # 退出登录
4、切换用户
su 用户名
5、用户组
groupadd wudang # 创建一个新组
groupdel wudang
useradd -g wudang zwj # 创建一个新的用户,直接放入wudang这个组里面
# 切换用户到另外的组
groupadd mojiao
useradd zwj
usermod -g mojiao zwj
id zwj # 查看zwj的信息
六、安装VMware tools以及共享文件夹
1、安装vm tools
虚拟机选项下面的安装vmware tools
2、共享文件夹
虚拟机选项下面的设置,共享文件夹
windows下面的文件夹,linux存放在 computer/mnt/hgfs
七、运行级别&使用指令
1、运行级别
init 3
init 5
切换命令行运行级别 图形化运行级别
2、文件目录类指令
pwd
查看当前工作目录的绝对路径
ls
查看当前目录下的文件
-l 以列表的方式显示信息
cd
cd ~ 或者cd : 回到自己的家目录
cd … 回到上一级目录
mkdir
创建文件夹
mkdir tom
touch
创建空的文件
touch hello.txt
cp
copy指令,复制文件或者文件夹到指定目录下
cp -r 复制文件夹
rm
移除文件或者文件夹
rm -r 移除文件夹
mv
移动文件或者重命名
重命名: mv oldname newname
移动文件 mv 目录1 目录2
cat
查看文件内容
cat -n 显示行号
more
more 文件名
以更丰富的操作空间来查看文件内容
less
分屏查看文件内容,对于大文件比较好用
echo
输出环境变量
echo #PATH
head
显示文件开头部分内容
tail
显示文件结尾部分内容
tail -f 实时跟踪文件
> >>
> 覆盖写
>>> 追加写
ln
添加软连接
history
查看指令的历史记录
find
1、按文件名,查找/home目录下的hello.txt文件
find /home -name hello.txt
2、按拥有者,查找/opt目录下的文件
find /opt user nobody
3、查找整个linux系统下大于200m的文件
find / -size +200M
locate
快速定位文件的目录
uplocatedb
locate hello.txt
**grep | **
过滤查找
查找hello.txt文件中存在yes的行,并显示行号
cat /home/hello.txt | grep -n “yes”
相当于
grep -n “yes” /home/hello.txt
3、压缩和解压缩类指令
gzip & gunzip指令
gzip用于压缩 gunzip用于解压
只能压缩以及解压 *.gz 文件
zip & unzip指令
压缩和解压成 *.zip 格式的文件
zip -r 压缩整个文件夹的内容
tar 指令
压缩后的格式 *.tar.gz
八、磁盘分区、挂载
1、查看所有设备挂载情况
lsblk -f
2、增加一块硬盘
- 虚拟机添加硬盘
- 分区
- 格式化
- 挂载
- 设置自动挂载
3、磁盘情况查询
df -h
查询指定目录的磁盘占用情况:
du -hac --max-depth=1 /opt
查询/opt目录的磁盘占用情况,深度为1
4、统计目录下的文件数量
九、Linux网络配置
1、NAT网络配置
2、查看ip地址相关指令
ifconfig ipconfig ping指令
3、Linux网络环境配置
自动获取IP地址&固定IP地址(建议)
4、设置主机名和hosts的映射
hostname # 查看主机名
通过名字对应ip地址
5、主机名解析过程分析(Hosts&DNS)
hosts是一个文本文件,用来记录IP和主机名的映射关系
DNS是一个域名系统,是互联网上作为域名和IP地址相互映射的一个分布式数据库
十、进程管理
1、基本概念
- 程序运行之后就产生进程,每一个进程都有一个对应的进程号
- 进程以前台或者后台的形式存在,通常以后台的方式存在
2、PS指令
PS指令用来查看进程的运行情况
ps -ef | grep ssdh # 查看ssdh相关的进程
3、kill 终止进程
kill 进程号 # 终止进程
ssdh 使用xshell远程登陆linux所产生的进程
kill可以终止进程,killall可以中制多个gedit killall gedit
kill -9 进程号 # 强制终止进程
4、pstree
以树状图的形式显示进程
-u 显示进程所属用户
-p 显示进程的PID
5、service服务管理
服务本质上就是进程,用来等待其他程序的请求,也叫做守护进程比如mysqld,sshd,防火墙等等
6、chkconfig
chkconfig用于管理服务各个运行级别的自启动
7、systemctl管理服务的自启动状态
systemctl list-unit-files | grep 服务名 # 查看服务的开机自启动状态
systemctl enable 服务名 # 开机自启动
systemctl disable 服务名 # 关闭开机自启动
切换防火墙状态
systemctl status firewalld
systemctl start firewalld
systemctl stop firewalld
8、防火墙管理端口
9、动态监控top指令
十一、Linux下的RPM和YUM的软件安装与卸载
yum自动处理软件的依赖关系
十二、shell编程
1、shell是什么
shell是一个命令行脚本,通过编写shell脚本进行linux程序执行。
# 编写第一个shell脚本,输出hello,world。
mkdir /home/shellcode
cd /home/shellcode/
vim hello.sh
# #!/bin/bash 必须以这个开头
# echo "hello.world."
chmod u+x hello.sh
./hello.sh
# 变量的声明
vim var.sh
var.sh
#!/bin/bash
#定义变量A
A=100
#输出变量需要加上$
echo A=$A
#撤销变量A
unset A
echo A=$A
#定义静态变量B
redonly B=2
echo B=$B
sh var.sh # 执行bashell脚本
# 定义环境变量
vim /etc/profile
profile:
export TOMCAT_HOME=/opt/tomcat
source /etc/profile
2、位置参数变量
3、条件判断
# 如果输入的参数大于等于60,输出及格了。小于60,输出不及格
if [ $1 -ge 60 ]
then
echo "及格了"
elif [ $1 -lt 60 ]
then
echo "不及格"
fi
4、shell编程综合案例分析
定时备份数据库
任务调度完成每天备份,shell脚本完成备份数据库以及删除以前的备份。
# 备份目录
BACKUP=/data/backup/db
# 当前时间 年月日
DATATIME=$(data +%Y-%m-%d)
echo $DATATIME
# 数据库的地址
HOST=localhost
# 数据库用户名
DB_USER=root
# 数据库密码
DB_PW=hspdu100
# 数据库名
DATABASE=hspedu
# 创建备份目录,如果不存在就创建
[ ! -d "${BACKUP}/${DATATIME}" ] && mkdir -p "${BACKUP}/${DATATIME}"
# 备份数据库
mysqldump -u${DU_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATATIME}/$DATARIME.sql.gz
# 将文件处理成tar.gz
cd ${BACKUP}
tar -zcvf $DATATIME.tar.gz ${DATATIME}
# 删除对应的备份文件
rm -rf ${BACKUP}/${DATATIME}
# 删除10天前的备份文件
find ${BACKUP} -atime +10 -name "tar.gz" -exec rm -rf {} \;
echo "备份数据库${DATABASE} 成功~"
定时任务调度,完成每天凌晨操作bashell脚本
crontab -e # 设置任务调度
crontab -l # 查看任务调度目录
十三、apt软件管理
1、apt软件管理示意图
sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-get show package 获取包的相关信息
十四、SSH远程登陆
1、安装和启动SSH
sudo apt-get install openssh-server
service sshdrestart
2、集群服务:linux登录宁外一台linux
ssh 要登陆的用户@IP
例如 ssh Glen另外一台的用户@192.168.200.130
十五、高级部分没学
日志管理
定制自己的linux
linux源码
备份与回复
运维工具