Linux笔记(从基础到高级):前篇
基于CentOS 7 ,CentOS官方
linux使用的范围
- linux运维工程师 规划 优化 监控 故障处理
- linux嵌入式工程师 嵌入式的应用开发
Linux的应用领域
- 桌面开发
- 服务器领域 linux免费稳定高效
- 嵌入式领域 低成本 对软件进行裁剪 智能家居 物联网
Linux入门
常见的操作系统很多
作者
linux的发行版本
Linux和Unix的关系
- unix是怎么来的
- 贝尔实验室
- 多用户分时操作系统multics,b语言到c语言
Linux安装
- VM和Linux的关系
- centos安装
- Linux分区设置
- boot分区 1g
- 交换分区swap 分配的内存大小 2g
- 零时充当内存,速度较慢
- 根分区 17g
- Linux分区设置
虚拟机网络连接模式
- 同一个网段可以相互通讯
- 桥接模式 虚拟系统可以和外部系统相互通讯,容易造成ip冲突
- NAT模式 相当于在一个有虚拟机的系统中有两个网段,虚拟机有一个专属的和系统通讯的网段,系统有一个和外界通讯的网段,外界网络不能直接与系统内部的虚拟机通讯,需要通过系统和虚拟机的网络实现通讯。
- 仅主机模式
虚拟机的克隆
- 用已有的安装的linux系统,将虚拟机文件拷贝到另外一个文件夹,再通过vm软件打开
- vm克隆操作,先关闭在运行的操作系统,在虚拟机打开处右键,一般使用创建完整克隆,会出现新的虚拟机,和被克隆的虚拟机系统在同一个文件夹下
虚拟机快照
- 避免系统奔溃,返回正常状态
- 虚拟机开启处,右键快照管理
虚拟机迁移和删除
- 剪贴虚拟机文件夹
- 删除虚拟机文件夹
- vm移除,文件并没有删除,而是移除了指向
安装vmtools
- 安装vmtools,可以让我们在windows下更好的管理vm虚拟机
- 可以设置windows和centos的共享文件夹
设置共享文件夹
Linux的目录结构
基本介绍
- 记住Linux的树状目录
- linux中一切皆文件,硬件也映射为文件
具体目录结构
远程登陆Linux服务器
为什么要远程登录
- 正式上线的项目是运行在公网的
- 开发小组共享
- 公网,有ip可公共访问的网络
- 远程登陆工具 xshell
- 文件上传下载 xftp
远程登陆 Xshell6
需要知道Linux公网的IP地址
ifconfig //获取Linux的IP地址的指令
//如下
[qxd@qxdEdu01 ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.182.134 netmask 255.255.255.0 broadcast 192.168.182.255
inet6 fe80::febe:a278:c225:edcf prefixlen 64 scopeid 0x20
ether 00:0c:29:80:b3:b1 txqueuelen 1000 (Ethernet)
RX packets 352 bytes 235641 (230.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 252 bytes 21589 (21.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:ed:b2:08 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
xshell设置
文件 -> 新建
名称随意,主机地址写为Linux公网的IP地址,协议为ssh
已经可以远程登陆Linux系统
安装xftp7
新建 协议 SFTP
可以实现远程的文件传输
vi和vim的基本介绍
vi 文本编辑器 类似于Windows记事本
vim 是vi 的增强版
常用三种模式
- 正常模式
- 插入模式
- 命令行模式
实际工作中 一般用xshell
vim和vi的各个模式的切换图
vim 键位图 https://blog.csdn.net/www_helloworld_com/article/details/103610639
不需要花太多精力
开机、重启和用户登陆注销
关机重启命令
一般不用root登入
在多用户级别下才能用logout
再次logout则退出系统
用户管理
基本介绍
一般都是在root权限下
创建新用户
useradd 用户名 //默认在home目录下创建一个新的用户
useradd -d /home/test king //在指定目录下创建一个新用户
设置密码
passwd //为当前用户设置密码
passwd 用户名 //为指定用户设置新密码
pwd //显示当前目录
删除用户
userdel 用户名 //删除用户,但是保留用户的主目录
userdel -r 用户名 //删除用户及用户的主目录 慎重!
查询用户信息指令
id 用户名 //查看用户的相关信息
切换用户
su - 用户名 //切换用户,也可切换到root,由权限高到低不需要输密码,相反需要
查看当前用户
who am i //查看当前登陆的用户
用户组
- 类似于角色,系统可以对多个用户进行统一管理
groupadd 组名 //添加组
groupdel 组名 //删除组
useradd -g 用户组 用户名 //增加用户时直接加上组
usermod -g 用户组 用户名 //移动用户到另外一个组
- 在没有指定组时,用户默认在自己用户名的组
用户和组相关文件
实用指令
指定运行级别
init [0、1、2、3、4、5、6] //切换运行级别
- 指定默认的运行级别
systemctl get-default //获取当前运行级别
reboot //重启
找回root密码
适用于CentOS 7.6
开机按e进入编辑模式
找到linux16那一行,光标移动到最后
init=/bin/sh
- 输入完,按快捷键Ctrl + x 进入单用户模式
mount -o remount,rw / //按回车
接着输入passwd 回车
输入密码
再次输入密码
touch /.autorelabel
exec /sbin/init //时间长需等待
- 登陆即可
帮助指令
man ls //查看ls 的命令的详细说明
ls -a //显示目录中的所以文件,包括以.开头的文件
ls -l //目录列输出
ls -al //可以组合使用
ls -al /home //例如
文件目录类
pwd //显示当前绝对路径
ls //显示目录
ls -l
ll
ls -lh //详细显示,内存
cd
cd ~ //回到家目录,自己用户的目录
cd .. //回到上一级
cd ../../root //使用相对路径到root目录
mkdir
mkdir //创建目录
mkdir -p /home/dog/tiger //创建多级目录
remdir
rmdir //删除目录,只能删除空目录
redir -rf /home/dog/tiger //强制删除
tonch
touch //创建空文件
touch hello.txt
cp
cp 文件 位置//将文件拷贝到位置
cp -r 位置/目录名 位置 //拷贝整个目录到位置
\cp -r 位置/目录名 位置 //强制覆盖
rm
rm -r //删除整个文件夹的文件
rm /home/hello.txt
rm -rf /home/bbb //强制全部删除,不提示 !!!注意!
mv
mv 文件 位置 //将文件移动到某位置
mv 已存在文件 不存在文件 //相当于将文件名重命名
mv 位置/文件夹名 位置 //移动文件夹
cat
cat //查看文件内容
cat -n //显示行号
//管道命令 : 将前面的结果交给下一个处理
cat -n /etc/progile | more //enter下一行 空格下一页
more
more 要查看文件//基于vi编辑器的文本过滤器,以全屏幕的方式按页显示文本文件的内容
less
less 文件 //采用分屏查看文件内容,与more类似
echo
echo //输出内容到控制台
echo $HOSTNAME //输出主机名
echo “hello,world” //输出文字
echo “hello” > /home/mydate.txt //将文字输出到文件
> //重定向输出到,并覆盖文件
>> //重定向输出,对文件追加
head
head 文件名 //显示文件的前10行的代码
head -n 5 文件 //显示文件前5行的代码
tail
tail 文件 //查看文件尾10行内容
tail -n 5 文件 //查看文件尾10行内容
tail -f 文件 //事实追踪文档的更新
>
ls -l > 文件 //将列被的内容写入文件a.txt中,覆盖写
ls -al >> 文件 //列表的内容追加到文件aa.txtd末尾
cat 文件1 > 文件2 //将文件1的内容覆盖到文件2
echo “内容” >> 文件
ln
软联接也称为符号链接,类似与windows里的快捷方式,主要存放了链接其他文件的路径
ln -s 原文件 软链接名 //给原文件创建一个软链接
ln -s /root /home/myroot
rm /home/myroot // 删除软链接
history
history //显示历史操作
history 5 //显示5条指令
!历史行数 //执行历史指令
date
date //显示当前时间
date +%Y //显示年
date +%m //显示月
date +%d //显示天
date “+%Y-%m-%d %H:%M:%S” //显示年月日时分秒
date -s “2020-11-03 20:02:10” //设置当前系统时间
cal
cal //显示日历
cal 2021 //显示整年日历
搜索查找类
find
find 目录 -name 文件名
find 目录 -user root //查找用户名文件,文件太多了加 | more
find 目录 -szie +200M
locate
updatedb //创建locate数据库
locate 文件名 //快速定位文件路径,不遍历整个文件系统,要定期更新
which
which 指令名 //查看某个指令在哪个目录下
grep
| //管道符号,将前一个命令结果输出传递给后面的命令处理
grep 选项 查找内容 源文件 //过滤查找
cat /home/hello.txt | grep -n “yes”
grep -n “yes” /home/hello.txt
压缩和解压类
gzip
gzip 文件 //压缩文件
gunzip 文件.gz //解压缩文件命令
zip
zip 选项 文件.zip 将要压缩的内容 //压缩文件和目录的命令
unzip 选项 文件.zip //解压文件
-r //递归压缩,压缩目录
-d 目录 //解压后文件的存放目录
zip -r myhome.zip /home/ //将home目录及其包含的文件和子文件夹都压缩
unzip -d /opt/tmp/home/myhome.zip
tar
tar 选项 文件.tar.gz 要打包内容 //打包目录,压缩后的文件格式为.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt //打包多个文件
tar -zcvf pc.tar.gz /home/pig.txt /home //打包文件到某位置
tar -zxvf pc.tar.gz //解压到当前目录
tar -zxvf /opt/tmp2 tar -zxvf /home/myhome.tar.gz -C /opt/tmp2










































