linux基础总结
linux11 复习
linux文件
1.创建
touch [创建的文件路径]
touch 1.txt
#创建test1 test2 ....test100
[root@localhost ~]# touch test{1..100}
2.删除
rm [选项(非必须)] [要删除的文件路径]
选项:
-i : 删除前提示
-r : 递归删除 可以删除文件夹
-f : 忽略不存在的文件和参数,从不提示 强制删除 -i就没有作用了 忽略是否删除此文件夹
#删除/root目录下以abc1--abc10的文件
[root@localhost ~]# rm -f ./abc{?,10}
mv [选项(可加可不加)] [原来的文件路径] [现在的文件路径]
选项:
-i : 覆盖前提示 这个在alias里面起了别名默认有提示
3.查看
cat :读取文件
cat[读取的文件路径]绝对路径,相对路径都行
4.修改
echo :输出一段字符
echo[选项(非必须)] [输出内容][重定向字符(非必须)][重定向文件(非必须)]
-n显示行数
> 覆盖重定向,删除之前的,从新加内容
>> 追加重定向,在之前内容的结尾 加内容,原有的不变
重定向 : 把某个内容,通过某种方式输入到指定文件中,即为重定向
vi/vim的三种模式
#命令模式:
i : 进入编辑模式(在光标之前输入)闪烁的地方前面
a : 进入编辑模式(在光标之后输入)闪烁的地方后面
o : 进入编辑模式(在光标所在位置另起一行输入) 闪烁的行的下一行
gg : 跳转到首行
G :跳转到末行
dd : 删除当前行
u : 回撤(类似于windows中的crtl + z)
ndd : 在光标所在位置向下删除n行
yy : 复制光标所在行
nyy : 在光标所在位置向下复制n行
p(小写) : 粘贴到光标的下一行
P(大写) : 粘贴到光标的上一行
/[搜索的内容] : 在文本中搜索相关内容, 按n键,下一个, 按 shift + n 键,上一个
ctrl + v : 可视化编辑模式
shift + i : 进入可视化编辑模式
1、按 shift + i 进入可视化编辑模式
2、编辑一行
3、按 ESC 退出编辑
4、按下键(可按可不按)
x : 删除选中内容
#末行模式:
w : 保存
q : 退出编辑
wq : 保存并退出
x : 保存并退出
! : 强制退出(不保存退出,必须跟在指令后面) q! 或者wq!
n : 直接跳转到第n行 先输入:在输入n
set nu : 显示行号
set nonu : 取消行号
作用开始的行号,作用结束的行号 s# [被修改的内容] # [修改的内容] #g
1,% s#苹果#鸭梨#g
% : 代表的是文本有多少行
0,410 s#man#MAN#g
可视化编辑操作
ctrl+v 进入可视化编辑 上下键选择要操作的内容
shift+i 在某一行输入东西
esc 稍等 就刚才选择的内容都加上东西了
也可以输入下(可以不输)
5.dd 创建文件
if : 指定读取的文件路径
of : 指定写入的文件名称
bs : 定义一次写入多少内容
count:定义写入多少次
要求生成一个1000M的文件
dd if=/dev/zero of=1.txt bs=10M count=100 : 结果是生成一个名为1.txt的文件,大小是1000M
文件夹
1.创建
mkdir[选项(非必须)](被创建的目标路径)
选项:
-p:递归创建文件夹
循环创建:{}
mkdir test{0..100}
2.查看文件夹内容
ls[选项][指定的路径(不加默认查询所在路径)]
选项:
-l:查看文件详细信息 等同于ll
-a:查看隐藏文件
-h : 格式化显示文件大小(前提:必须跟-l参数一起使用)变成带k或者kb或者m的单位
--color=auto : 显示颜色(注:不能够通过颜色判断文件属性)
3.切换文件夹
cd (目标的路径)
4.复制
cp [选项(非必须)] [原路径] [新路径]
选项:
-r : 递归复制目录-复制目录 自己调自己,把一个文件夹所有内容全部复制过去
-i : 增加覆盖提示
-p : 保留原有文件的属性 比如时间等
-d : 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录; 原来的软连接一并复制过去
stat : 查看文件创建时间的
路径
1.根路径
顶级目录是根目录,也就是说一切的路径都是从根开始的
2.特殊路径
~ :家目录
. :当前目录
.. :上层目录
- :上一次待得目录
3.软连接和硬链接
硬链接:ln[源来的路径] [新的路径]
都指向了硬盘一块空间,相当于文件别名,ID号一致 新路径ln里面创建
硬链接个数为0时,才会删除源文件
软链接:ln -s[源来的路径] [新的路径]
相当于一个文件的快捷方式
启动模式
0--6
0:关机
1:单用户模式
2:多用户模式没网络
3:多用户模式有网络
4:未使用
5:图形化界面
6:重启
文件系统
1.常用的目录作用
/etc : 系统配置目录
/bin -> /usr/bin : 保存常用命令的目录
/root : 超级管理员目录
/home : 普通管理员目录
/usr : 存放应用程序的目录
/boot : 存放系统启动文件
/dev : 存放硬件相关信息
/proc : 存放系统运行的信息
/mnt : 临时挂载目录
/opt : 相当于下载目录
/usr/local : 安装第三方软件的目录
/tmp : 临时文件
/var : 存放日志的目录
/run : 存放应用程序运行时产生的临时文件
2.磁盘分区
2.1虚拟机加一块磁盘
在虚拟机直接加就好了
2.2给磁盘分区
2.2.1 输入fdisk[要分区的磁盘的路径]
[root@localhost ~]# fdisk /dev/sdb
2.2.2 按n进入分区
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
2.2.3 按p选择主分区
Select (default p): p
2.2.4 输入分区的名字1-4
Partition number (1,2,4, default 1): 4
2.2.5 选择开始的位置
由于我之前分过一次,不选择默认从剩下的空间开始,第一次分区要写2048 因为磁盘自己也占空间
First sector (209717248-314572799, default 209717248):
2.2.6 选择结束的位置
我写的是+10G
Last sector, +sectors or +size{K,M,G} (209717248-314572799, default 314572799): +10G
2.2.7 输入p查看分区列表
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdb3 2048 209717247 104857600 83 Linux
/dev/sdb4 209717248 230688767 10485760 83 Linux
2.2.8 w写入到磁盘并退出
Command (m for help): w
The partition table has been altered!
2.3格式化磁盘
mkfs.xfs [文件系统分区的路径]
mkfs.xfs /dev/sdb4
2.4挂载磁盘 分两种 临时挂载和永久挂载
#一临时挂载
mount [选项(参数,非必须)] [磁盘分区的路径] [挂载的路径]
mount /dev/sdb4 /mnt
#二 永久挂载 又分为两种
#第一种方式:(做快照!!!)
将挂载信息配置到/etc/fstab中。
/dev/mapper/centos-root / xfs defaults 0 0
分区的路径(sdb1,sdb2),挂载的目录的路径,挂载的分区文件系统的类型 权限 是否备份,是否检测
/dev/sdb4 /mnt xfs defaults 0 0
注:当挂载信息出现问题时,linux主机将无法正常开机
在添加完配置信息之后,一定要检测语法是否正确,记住检查
#第二种方式:
在开机自启动脚本中增加挂载命令
1、添加挂载命令到:/etc/rc.local
mount /dev/sdb4 /mnt
2、添加可执行权限
[root@python ~]$ chmod +x /etc/rc.d/rc.local
3、重启
reboot
2.5测试
lsblk查看信息
rf -h查看挂载信息
3.proc文件系统
proc/cpuinfo 和 lscpu 相同 查看cpu信息
cat /proc/meminfo 和free -h依赖于/proc/meminfo 查看当前系统运行状态
/proc/loadavg 保存当前系统负载情况 单位时间内 系统进程占用cpu的相对时间
[root@localhost ~]# w 后面这块也是负载
15:53:32 up 6:06, 2 user, load average: 0.05, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.15.1 13:21 4.00s 0.17s 0.01s w
---------------------------------------------------------------
15:53:32--当前系统时间
up--状态(up启动,down关闭)
6:06--启动时间
2 user 有几个一个窗口(虚拟机的也算一个)
load average:0.05, 0.03, 0.05--负载
一分钟 十分钟 十五分钟
5% 3% 5%
4.dev文件系统
存放硬件设备的地方 比如字体,磁盘
yum仓库搭建
下载软件主要需要有epel.repo源和Centos.base.repo源,如果没有可以通过wget去华为镜像源下载wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo
如果wget也没用 可以用curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo
上面是下载CentOS-Base.repo 还有一个epel.repo
[root@python yum.repos.d]$ vim epel.repo 打开这个文件
下面是添加的
[epel]
name="epel源"
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
gpgcheck=0
-----------------------------------------------------------------------------------
1.创建目录,充当仓库 #房子
mkdir /myyum
2.在仓库创建Packages目录,用来存放软件 #家具
mkdir /myyum/Packages
3.下载测试软件到Packages #装家具
w
基础为前三步
4.下载访问软件Nginx #装电话
5.下载仓库初始化软件,yum-utils 和createrepo #电话卡,依赖关系
6.createrepo 仓库名称 初始化仓库
会在仓库目录中自动创建 repodata目录,主要存放yum依赖关系的软件
7.修改nginx配置文件,使其代理yum仓库
#修改 /etc/nginx/nginx.conf 里面的
root 改成自己仓库路径;
#实现目录索引 加到server里
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
#systemctl restart nginx 重启nginx
8.编辑yum源
留一个新建的源 其他.repo移动到里面新文件夹
新建的源编写
[local] 不是local也行
name=德玛西亚 源的简介
baseurl= 指定的地址
gpgcheck=0 默认不检测
还可以
[root@localhost ~]# yum-config-manager --add-repo http://192.168.15.222/
9.更新源
yum clean all
yum makecache
10.测试
yum.remove zip
yum.install zip
安装软件的三种方式
rpm
rpm ivh : 安装
rpm -e : 卸载
rpm -Uvh: 更新
rpm -qa : 查看当前系统安装过的安装包
rpm -qc : 查看指定软件的配置文件
yum
安装
yum install [软件包]
卸载
yum remove [软件包]
更新
yum update [软件包]
-y : 免交互,不让他提示
二进制编译
先进入他这个解压后的文件里面
1、设置系统参数
[root@localhost ~]# yum install pcre pcre-devel zlib zlib-devel -y
[root@localhost nginx-1.20.1]# ./configure
2、编译
[root@localhost nginx-1.20.1]# make
3、安装
[root@localhost nginx-1.20.1]# make install
下载软件
wget : 下载软件
-O : 指定下载路径
curl :读取内容
-o : 指定保存路径
rz sz : 通过命令行的方式进行上传与下载(必须依赖于xshell),yum install lrzsz
lrzsz一次只能传输一个文件,传输大文件的时候,容易掉线
rz : 上传到linux系统里面 传到当前所在文件夹
sz :下载到windows电脑里,需要指定文件比如 sz 1.txt
用户和用户组
1.涉及的四个文件
#/etc/passwd 保存用户信息
root :x: 0: 0: root: /root: /bin/bash
用户名 密码占位符 用户uid 用户组id 用户简介 用户家目录 该用户登录默认解析器
随便改
#/etc/shadow 保存用户的密码
test004: !!: 18893:0:99999:7:::
用户名 密码占位符
!!没有密码
#/etc/group 保存用户组文件
test: x: 995:
用户名 密码占位符 组id
#/etc/gshadow 保存组密码文件
test001: !::
用户名 密码占位符(!空密码)
2.手动创建一个用户
2.1首先修改gshadow 组密码
test666:!::
2.2修改group 增加一个用户组, 组文件
test666:x:123:
2.3修改passwd 用户文件
test666:x:124:123:手动创建用户:/home/test666:/bin/bash
2.4修改shadow 密码文件-
test666:$6$8cg6F/NW$sDTlotFbwR3QuSIsDl/ydTwZ5VC9zzn79gsNzploJg9WgtO0pZh3UycRzgFd4RsfD9dXsryOxPSByGKcoOvRk.:18888:0:99999:7:::
2.5在home下创建目录
mkdir test666
2.6把etc/skel的隐藏文件都拿过来
mv /etc/skel/.* test666/
2.7修改用户即用户组chown test666.test666 test666
修改用户和用户组chown test666.test666 test666
2.8.修改权限chmod 700 test666
chmod 700 test666
2.9.test下所有文件权限设置为chown test666.test666 ./.*
chown test666.test666 ./.*
2.10.测试ssh test666@192.168.15.222
ssh test666@192.168.15.222
Connecting to 192.168.15.222:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
3.权限(chmod)等问题
数字权限
可读 r 4
可写 w 2
可执行 x 1
字母权限
可读 r
可写 w
可执行 x
权限的归属
属主 :u
属组 :g
其他人 :o
权限的加减法,需要配合字母权限
+ :增加权限
- :去掉权限
chmod的参数
-R : 递归
4.设置用户及用户组
chown [选项][用户][用户组] 路径
选项:
-R : 递归,这个路径下的都设置这个用户 和用户组
chown test6.test6 test6
在test6这个路径下,所有文件都设置用户为test6,用户组为test6
系统安全优化
selinux
路径:/etc/selinux/config
永久禁用:
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
也可以进路径下修改SELINUX=dissabled
临时禁用:
setenforce 0
0 : 临时禁用
1 :临时启用
查看selinux状态:
[root@localhost ~]# getenforce
一般永久禁用和临时一起用,因为,如果永久禁用了,
那是禁止启动,重启才可以,目前可能已经启用,所以先临时禁用一下
filewalld 防火墙
systemctl disable --now firewalld
disable : 禁止开启
--now : 立即执行
systemctl enable --now firewalld
enable : 开机自启动
systemctl start firewalld # 开启
systemctl stop firewalld # 关闭
systemctl status firewalld # 查看防火墙状态
防止系统乱码优化
en_US.UTF-8 :
en :英文
US :美式
UTF-8 : 指定的编码
zh_CN.UTF-8
zh : 中文
CN :简体中文
1.LANG=zh_CN.UTF-8 临时修改
2.持久化保存字符编码:/etc/locale.conf
3.通过命令的方式修改字符集编码,需要重启或者断开连接重新连接
[root@localhost ~]# localectl set-locale LANG=en_US.utf8
查看当前登录用户
whoami 查看当前登录用户
设置密码
passwd test
交互模式echo 123456 | passwd --stdin test