1.安装 CentOS
- 官网下载 CentOS 8 64
- 软件安装源
- 源:
https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
- Centos 安装软件:
- 将带有 sh 的程序放在指定位置(sh 相对于 windows 的 exe)
- 创建快捷方式:
- 创建一个:*.desktop 文件,vim 进行编辑
- 将创建好的快捷方式移动到:/usr/share/applications/目录下即可
- Centos 安装软件:
[Desktop Entry]
Type=Application
Name=Pycharm
GenericName=Pycharm3
Comment=Pycharm3:The Python IDE
Exec=sh /home/pycharm-community-2020.1/bin/pycharm.sh
Icon=/home/pycharm-community-2020.1/bin//pycharm.png
Terminal=pycharm
Categories=Pycharm;
2.SSH 连接
- CMD 执行 ssh 不存在:
- 产看服务器 ip:
- ip addr
- ifconfig
- 主机连接:
- ssh 用户名@ip
- 之后就可以正常使用命令行
- 如果 IP 没错还是无法链接服务器安装 SSH 服务:
yum install openssh-server
1)SCP 指令传输文件和下载文件
- 传输文件:
- scp 本地路径 用户名@服务器 IP:服务器路径
- 下载文件
- scp 用户名@服务器 IP:服务器路径 本地路径
- 传输目录:
- scp -r 本地路径 用户名@服务器 IP:服务器路径
- 下载目录:
- scp -r 用户名@服务器 IP:服务器路径 本地路径
3.安装 Python
- 按顺序执行命令:
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
- 下载:
找到一个目录 wget python 链接,下载指定版本 python 到当前目录
- 解压:
tar -zxvf 文件名
- 进入目录:
cd 解压目录
- 配置环境:
./configure
- 编译:
make
- 安装:
make install
- 我执行到这里系统执行
python3
就已经变成我需要的版本了 - 设置 python 默认安装源:
pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
1)Python 包的管理
- 尽量创建虚拟环境进行包的安装
- 创建虚拟环境
- 进到需要创建的环境:一般选 opt 目录(用户程序目录)
- python -m venv 环境名
- 进入环境:进入到环境的 bin 目录内通过 source 执行 acticate
- 进入环境:
source bin/activate
- 退出环境:执行指令
deactivate
- 进到需要创建的环境:一般选 opt 目录(用户程序目录)
4.安装 docker
- 其他 docker 源可以访问: Docker
- 安装依赖:
yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置 yum 源:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装 docker:
yum install -y docker-ce --allowerasing
- 设置开机自动启动:
systemctl enable docker
- 启动 docker:systemctl start docker
- 重启 docker:systemctl restart docker
- 结束 docker:systemctl stop docker
- 查看版:
docker -v
1)docker 常用操作
- 复制到宿主机,或者宿主机复制到容器:docker cp /路径 id 或者名字:路径
- 查看已安装容器:
docker images
- 查看正在运行的容器:
docker ps
- 启动容器:
docker start 容器 ID/名称
- 停止容器:
docker stop 容器 ID/名称
- 重启容器:
docker restart 容器 ID/名称
- 删除容器:
docker rmi -f 容器 ID 号
- 进入容器:
docker exec -ti 容器名 bash
- 删除已经运行的容器:
docker container rm name
- 删除所有容器:
docker container rm $(docker container ls -aq) -f
- 退出容器:
exit
2)docker 安装 MySQL
- 安装最新版本:
docker pull mysql:latest
- 查看是否已经安装:
docker images
- 启动 MySQL:
docker run --name 服务名 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
- 指定 3306 端口,密码 root,设置服务显示名
- 外部访问:
mysql -u root -h IP -p
- 远程指定端口访问:mysql -h 0.0.0.0 -P 3306 -u root -p
1)更改 MySQL 编码格式:
- 进入 MySQL 容器:
- 找到:cd /etc/mysql/conf.d 目录下的 mysql.cnf 文件(可以不进入直接复制)
- 复制文件到宿主机:docker cp ID 或名字:/etc/mysql/conf.d/mysql.cnf /宿主机路径
- 退出容器 vim 编辑文件输入以下内容:
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
- 将文件替换回原始路径即可
- 显示编码:show variables like ‘character%’;
3)docker 安装 redis
- 安装最新版本:
docker pull redis:latest
- 启动 redis:docker run –name redis -p 6379:6379 redis
- 指定将内部端口 6379 向外开放
- 启动 redis 并设置密码: docker run --name redis -p 7777:6379 -d redis --requirepass “密码”
- 如果你要进行 scrapy 可视化部署的搭建,就不要以 6379 端口启动,因为后面的一键部署是以 6379 进行的。
- 已经设置密码修改密码方法:
- 1.进入 redis 的容器 docker exec -it 容器 ID bash
- 2.进入 redis 目录 cd /usr/local/bin
- 3.运行命令:redis-cli
- 4.查看现有的 redis 密码:config get requirepass
- 5.设置 redis 密码 config set requirepass ** 为你要设置的密码
- 6.若原来有密码,则使用 auth 密码 来认证密码
- 远程连接:./redis-cli -h 192.168.100.109 -p 6379
5.CentOS 指令集
- 指令 –help 可以显示帮助信息
- 立即重启:shutdown
-r
now - 立即关机:shutdown
-h
now- 数字格式为延迟多少关机
- shutdown -h 10 ‘关机提示
- 时间格式为指定点关机
- shutdown -h 15:25 ‘关机提示
取消
定时关机:shutdown -c
- 数字格式为延迟多少关机
- 立即重启 2:reboot
1)指令 [选项] [操作对象]
- ls:列出所有文件(当前目录、指定目录)
- -l 以列表形式详细显示
- -la 以列表形式显示所有文件(包括隐藏文件)
- -lh 以列表形式显示,按大小进行排序
- ls 列出的文件:蓝色代表文件夹,黑色代表文件,绿色为拥有所有权限
- Linux 所有
隐藏文件都是以.
开头
- pwd:输出当前工作目录的绝对路径
- cd:切换工作目录
- Linux 中~表示当前用户家目录
- cd -:在最近两次工作目录切换
- mkdir:创建一个目录(相对路径或者绝对路径)
- -p 可以直接多层路径创建
- mkdir 路径 1 路径 2 路径 3 一次性创建多个目录
- 可以配合-p 使用
- touch:创建文件(相对路径或者绝对路径)
- 也可以创建多文件
- cp:复制文件/文件夹到指定路径
- cp 路径 目标路径
- -r 当复制目录的时候需要增加-r
- mv 指令(移动文件,重命名文件)
- mv 源文件路径 目标文件路径
- 两种指令语法一样
- rm 指令(删除文件,目录)
- -f 直接删除,不会出现提示
- -r 递归删除
- 可以配合通配符,进行大量删除
- ln -s 源文件 链接文件(类似快捷方式文件)
- -s 如果没有-s 链接的文件会和源文件一样大小
- -f 建立时,将同档案名删除
- -i 删除前进行询问
- 尽量使用绝对路径
- > or >>输出重定向:将终端中的内容输出到文本中
- 指令>:
覆盖
原有文件内容 - 指令>>:
追加
在文件内容 - 正常输出指令的语法>文件路径
- 指令>:
- cat 指令:直接打开一个文件(多个文件合并成一个文件)
- 直接打开一个文件:cat 文件路径
- 合并文件内容:cat 文件路径 1 文件路径 2 文件路径 3 …. > 保存文件名
- tar:打包(解包)文件
- tar -选项 打包文件.tar 被打包的文件/路径
- tar -选项 打包的文件.tar
- tar -zxvf 解压
- tar - zcvf 压缩
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件(压缩用) |
x | 解开档案文件,解开打包文件(解压用) |
z | 表示用 gunzip 解压或者压缩 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后 |
2)进阶指令
- df -h:
查看系统磁盘剩余容量
- -h 以更加人性化的方式显示
- free : 查看内存使用情况
- -m :单位切换为 m
- -g:单位切换为 g
- -h 以更加人性化的方式显示
head -n:查看一个文件的前 n 行,不指定默认显示 10 行
- head -5 文件路径
tail -n:查看一个文件的后 n 行,不指定默认显示 10 行
- tail -f 文件路径
- 可以动态的查看文件的变化内容(不能是用户自己添加的)
- 一般用于日志的查看
- tail -f 文件路径
- date:(读取,设置时间)(直接输出详细信息)
- 输出年月日格式:date +%Y-%m-%d 或者 date +%F
- 输出年月日时分秒:date ‘+%F %T
- 输出指定天数之前/后的日期:
- date -d ‘-1 day’ ‘+%F +%T
- date -d ‘5 years’ ‘+%F +%T’
- 输出指定天数之前/后的日期:
- cal:直接输出当前月日历
- cal -3:输出前一个本月和后一个月总共三个月
- cal -y 年份:输出指定月份全年的日历
- clear/ctrl+L:清除控制台信息
- wc:统计文件内容信息
- wc -参数 路径
- c 统计字节数。
- l 统计行数。
- w 统计字数
- wc -lwc ./cpp
- 管道操作( grep )
- ls / |grep o:
- 输出根目录下包含 o 的文档
- ls /:会输出目录所有内容
- |grep o:通过管道加 grep 进行过滤
- ls / | wc -w:查看指定文件目录文件数量
- ls / |grep o:
3)高级指令
- hostname:输出完整主机名
- id:查看一个用户的基本信息
- 用户 id,用户组 id,附加组 id
- whoami:显示当前登陆用户名 一般用于 shell 指令
- ps:用于查看服务器进程
- -e:表示列出全部进程
- -f:表示全部的列
- top:查看服务器进程占用的资源
- 执行完指令后可以按
- M:按内存高低排序
- P:按 CPU 占用进行高低排序
- 执行完指令后可以按
- du:查看目录真实大小
- -s:只显示汇总的大小
- -h:以较高可读性的形式进行显示
- du -sh 路径
- kill:结束(杀死)一个进程
- kill 进程 ID:结束指定进程
- killall 进程名:杀死所有同名进程
- ip addr:查看网卡(ifconfig 也可以)
- ifconfig:有的无法使用
- uptime:获取计算机开机到目前的时间
- uname:获取操作系统类型
- uname - a:a 表示 all 获取详细系统信息
- netstat - tnlp:获取网络链接信息
- 出现-bash: netstat: command not found 需要安装 net-tools
- yum install net-tools
- -t:表示只列出 tcp 协议
- -n:以更人性化的样式显示
- -p:表示显示发起连接的进程 pid 和进程名称
- 出现-bash: netstat: command not found 需要安装 net-tools
- find 路径 -选项
- 查找指定路径下文件
- -name:按文档名称进行搜索
- -type:按文档类型进行搜索
- -表示文件(在使用 find 的时候使用 f 代替-)
- d 表示文件夹
- 实例:
- find / -name conf.* :查找全部文件内 conf 任意格式的文件
- find / -type -f:查找根目录下所有的文件(f)
- find ./gcc -type f|wc -l:查找并统计
- service:控制一些软件的服务 启动/停止/重启
- start stop restart
- service 服务 操作
- man:包含 linux 中全部命令的手册
- man 命令
- q 退出
- ctrl + u:删除光标之前所有内容
- ctrl + k:删除光标之后所有内容
)还有不计其数的指令,用到的时候面向百度编程吧
6.CentOS 文件解析
- Bin:存放常用命令目录(普通用户也能执行的命令)*
- Dev:存放外接设备,不能直接使用,需要手动挂载。
- Mnt:上面 Dev 挂载的的内容会被挂载到这里
- Etc:该目录存储配置文件
- Home:存储除了 root 以外的主目录(类似 Windows 下的 User)
- Proc:存储 Linux 运行运行时候的进程目录
- Root:存储 root 的主目录
- Sbin:系统管理员目录存放目录(只有管理员才可以执行的命令)
- Tmp:存储运行时的临时文件
- Usr:存放用户自己安装的软件
- Var:存放程序/系统的日志文件目录
- Boot:存放启动引导/配置等文件/核心文件
- lib:系统最基本的动态链接共享库
- lib64:64 位的的动态链接共享库
- media:通过目录来访问外设中的内容。
- ops:表示“可选的应用软件包”,用于安装多数第三方软件和插件;
- srv:表示“服务”,包含一些网络服务启动之后所需要取用的数据;
- sys:包含各种注册到系统上的设备和总线的文件
- run:临时文件系统,存储系统启动以来的信息,重启时目录内容将被删除
7.rpm 软件管理
- 查询:rpm -qa|grep 关键词
- 查询所有软件
- -q :query 查询
- -a :all 全部
- 配合 grep 管道查询指定软件
- 卸载:rpm -e
- e :卸载指定软件
- 没有依赖关系可以直接卸载
- 依赖关系:被其他软件包需要
- 没有依赖关系可以直接卸载
- rpm -e * –nodeps(尽量不要强制卸载,会出现问题)
- –nodeps:无视依赖关系,强制卸载
- e :卸载指定软件
- 安装:rpm -ivh rpm 软件包名
- i:install,安装
- v:显示进度条
- h:以’#‘显示进度条