Loading

Linux开端---Centos

Linux-Centos

虚拟化所需工具:https://pan.baidu.com/s/1643-kYcx9oPGnGEZM1pLOw?pwd=g0v5 提取码:g0v5

问题解决

  • 正常注册网络适配器

    主要原因:原先已经安装过虚拟机,卸载后存在注册表残留,使得安装的新虚拟机无法正常注册网络适配器。

    下载软件:ccleaner

    下载地址:https://www.ccleaner.com/ccleaner/download/standard

    使用该软件清理注册表即可

  • WARNING!The remote SSH server rejected X11 forwarding request.

    • 截图

    • 解决

      X11 forwarding依赖xorg-x11-xauth软件包,安装xorg-x11-xauth软件包。

      yum install xorg-x11-xauth -y,安装后重新连接即可

基础包

# 解决在7的版本中没有ifconfig命令,加上-y不用手动确认
yum install net-tools
yum install net-tools -y
# 两下tab自动补齐
yum install bash-completion -y
# 联网下载文件
yum install wget -y
wget file_addr  # 有-O参数,指定下载地址
# 以树状显示目录结构命令tree
yum install tree -y
# 解决报错:WARNING!The remote SSH server rejected X11 forwarding request.
yum install xorg-x11-xauth -y
# 文件编辑工具
yum install vim -y
# 上传下载
yum install lrzsz -y

快捷键

Ctrl + a    # 光标跳转至正在输入的命令行的首部
Ctrl + e    # 光标跳转至正在输入的命令行的尾部
Ctrl + c    # 终止前台运行的程序
Ctrl + d    # 在shell中,ctrl-d表示推出当前shell。
Ctrl + z    # 将任务暂停,挂至后台
Ctrl + l    # 清屏,和clear命令等效。
Ctrl + k    # 删除从光标到行末的所有字符
Ctrl + u    # 删除从光标到行首的所有字符
Ctrl + r    # 搜索历史命令, 利用关键字,Tab建选中,只能找到最近的一条
Ctrl + w    # 按单词或空格进行向前删除
Ctrl + 左右建  # 按单词或空格进行向前向后跳

# 在命令行前加面加 "#" 则该命令不会被执行

基础命令

# 查看Linux内核版本
cat /proc/version
or
uname -a
# 查看Linux系统版本
cat /etc/redhat-release
# 查看主机名
hostname
井号:通常指超级管理员
$:普通用户
# 创建用户
useradd username
passwd password
# 切换用户
su - username
# 当前用户的家目录
~
# 回到家目录
cd
# 查看当前路径
pwd
# 切换目录
cd *
# 查看当前目录下的文件
ls
ls -a  # 查看隐藏文件 或 ls --all
# 查看详细
ll
ll -a
# 命令缩写用-,全写用--
# 查看命令历史
history
!数字   # 快速执行数字那一行
!yum    # 快速执行最近一条yum命令
history -c   # 清空所有记录(连到人家服务器,操作完了,执行一下)
history -w   # 可以把 历史记录写到用户家路径的.bash_history文件中
> filename  # 清空文件
# 重启网卡
systemctl restart network

# 查看硬盘使用情况
df -h
# 统计文件夹使用情况及空间大小
du -sh /usr/
# 查看登录日志
cat /var/log/secure

# 查看所有程序
ps aux
ps aux | head -n5  # 查看前五条
# 下载
wget -O 路径(可选) 地址
# 测试连通性
curl www.baidu.com
# 文本查看,分页
less、more(百分比):less /etc/services
# 查找命令
grep 'nq' /etc/services  # 查看文件中有nq的行
# 翻页
ctrl+b:下翻页,ctrl+f:上翻页
# 上传下载 (4g以内)
rz:上传,选择文件直接上传
sz:sz 文件路径  可以下载到当前主机
# 排序
sort 文件名  # 对文件内容排序
# uniq 去重,连续挨着的才能去,所以要跟sort连用
sort 文件名 | uniq
# 分割截取
cut -d " " -f2,5 文件名  # 把字符串按“ ” 分割,取出第2和第5个

"""文件属性和类型"""
# 以人性化显示,kb,gb
ll -h, ll /etc/services -h
# 文件类型
-   # 普通文件(文本, 二进制, 压缩, 图片, 日志等) 
d   # 目录文件
# 查看详细的文件类型
file /etc/services

"""软连接,硬链接"""
软链接新建了一个inode(相当于快捷方式),硬链接指向同一个inode
软:ln -s 链接到的路径  哪个文件/文件夹
硬:ln
# 取消软连接 
rm -rf /sbin/nginx  # 最后不能加/

"""vim"""
# 普通模式:
ctrl+b上翻页,ctrl+f下翻页
yy  复制一行
p   粘贴
dd  剪切
p   把上面剪切的粘贴上
# 编辑模式
i  insert插入
a  append追加
o  换行插入
esc回到普通模式
# 命令模式:
w  表示保存
q  退出
!  强制退出
:set nu    显示行号
:set nonu  不显示行号
/字符串     搜索这个字符串
:%s#ctrl#control#g  # 替换文本(:%s###g)

# 查看上一次的命令是否有误,无误显示0
echo $?

# 清空文件内容
cat /dev/null > 文件名

用户

who  # 当前有哪些用户登录了
whoami  # 当前登录用户
w  # 检查用户登陆情况

# id root
uid=0(root) gid=0(root) groups=0(root)
# 用户信息路径
cat /etc/passwd
# 密码存放路径
cat /etc/shadow
# 用户增删改
# 增(一个用户只能属于一个主组,可以属于多个附加组)
groupadd 组名  # 新增一个组
useradd -u 5001 -g 组名 -G 附组名1,附组名2 -c "可以写注释" -s /bin/bash lqz1
# 应用场景
创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统 
useradd mysql -M -s /sbin/nologin
# 改
usermod -c "注释" -md /用户目录 -s /bin/sh -l 用户名 新用户名  # -md,把环境也带过去
usermod -L 用户名  # 锁定后会无法登陆系统
usermod -U 用户名
passwd root  # 修改密码
# 删
userdel 用户名   # 删除用户,不删家目录
userdel -r 用户名  # 删除用户,删家目录(慎用)
# 组的增删改
groupadd no_gid  # 新增组
groupmod -g 1111 组名  # 改组id号
groupmod 组名 -n 新组名  # 改组名字
groupdel new_student  # 删除组(组下如果有人,把人删除,再删)

# 用户UID,系统中约定的含义
0		超级管理员,最高权限,有着极强的破坏能力
1~200	系统用户,用来运行系统自带的进程,默认已创建
201~999	系统用户,用来运行用户安装的程序,所以此类用户无需登录系统
1000+	普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限

# finger查询用户信息以及登录信息
yum install finger -y
finger 用户名

# 切换用户
su user  # 不加载环境变量
su - user  # 加载环境变量

权限

# 修改权限: d r-x r-x r-x
7=4(r)+2(w)+1(x)
r:read写权限
w: write写权限
x:可执行
chmod 777 文件夹/文件

# 特殊权限chattr
# 选项: + 增加权限 -减少权限 =等于某个权限
# a:让文件或目录仅可追加内容
# i:不得任意更动文件或目录
chattr +i 文件名
chattr -i 文件名

解压缩

# gzip(只能压一个文件,不能压文件夹,会把原来的删除)
gzip 文件名
gzip -d 解压文件名
# zip的压缩和解压
yum install zip unzip -y
zip  filename.zip  filename  # 压单个文件
zip -r filename.zip /home/  # 把home文件夹压缩
unzip  filename.zip   # 解压
unzip -l  filename.zip  # 不解压,看内容
unzip filename.zip  -d /home/  # 解压到home路径
# tar打包与压缩
tar czf 文件名.tar.gz 文件名
tar xf  文件名.tar.gz
tar xzvf  xx.tar.gz  # 解压tar.gz,详细过程列出来
tar czf etc.tar.gz --exclude=etc/services etc/  # 排除文件
tar xf /etc/local.tar.gz  -C /home  # -C指定解压到哪个路径

软件下载和安装

# rpm
rpm -ivh tree-1.6.0-10.el7.x86_64.rpm  # 安装rpm的软件
rpm -q  # 查看这个软件是否安装********
rpm -qa |grep tr  # 列出所有安装的软件
rpm -ql  # 查询指定软件包所安装的目录、文件列表rpm -ql unzip *****
rpm -qc unzip  # 查看这个软件的配置文件位置
rpm -qf /etc/pam.d/vsftpd  # 查看配置文件属于哪个软件
rpm -qlp trace-cmd-2.6.0-10.el7.x86_64.rpm  # 查看该软件包安装后会释放哪些文件
rpm -ivh https://*.rpm  # 远程地址下载
rpm -Uivh  # 升级软件需要用  U
rpm -e zabbix-agent
# yum配置源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo  # 阿里源

# 源码安装nginx(其他软件步骤类似)
安装编译依赖
yum install -y make pcre-devel gcc gcc-c++ zlib zlib-devel openssl openssl-devel
1.下载
https://nginx.org/en/download.html
2.解压
tar xf ...
3.cd进入nginx目录,通过configure 生成配置信息,配置相关的选项,并生成Makefile,软件安装的信息
./configure --prefix=/usr/local/nginx
4.make && make install  # 按照Makefile生成的安装软件&&将二进制文件拷贝至对应的目录中
5.在任意路径敲nginx都能执行
建立软链接:ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
把/usr/loacl/nginx/sbin/路径加入环境变量
想使用systemctl管理(制作系统服务)
6.nginx命令介绍
nginx  # 启动
nginx -s reload  # 重新加载,修改配置文件
nginx -s restart  # 重启
nginx -s stop  # 停止

进程管理

1.ps aux 用它,[系统进程]
2.ps ef
3.ps aux|grep id,进程名字,
4.top  # 实时看状态
5.kill -l  # 列出当前系统所支持的信号
6.kill -9 进程id号  # 强行关闭
7.pkill -9 nginx  # 关闭nginx所有进程
8.killall nginx  # 关闭nginx所有进程

# screen管理后台进程
yum install screen -y
screen -S myjobs  # 创建了一个窗口,执行耗时任务,进程
ctrl+a+d  退出当前bashshell但是耗时任务还在后台运行
screen -r myjobs 调到前台执行
screen -list  查看所有任务

系统服务

# 关闭防火墙
systemctl stop firewalld
# 关闭自启
systemctl disable firewalld
# 重新加载单元
systemctl daemon-reload

# 制作nginx服务
1.cd /usr/lib/systemd/system/
2.vim nginx.service
3.写入文件
[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

# 修改文件权限
chmod 745 nginx.service
# 查看服务状态:
systemctl status nginx.service
	# disabled表示没有开机自启动
	Loaded: loaded (/usr/lib/systemd/system/nginx.service; `disabled`; vendor preset: disabled)

# 其他命令
# 启动nginx服务
systemctl start nginx.service
# 设置开机自启动
systemctl enable nginx.service
# 停止开机自启动
systemctl disable nginx.service
# 查看服务当前状态
systemctl status nginx.service
# 重新启动服务
systemctl restart nginx.service
# 查看所有已启动的服务
systemctl list-units --type=service

paramiko模块的使用

import paramiko
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='', port=22, username='root', password='')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls')  # 传入要执行的命令
# 获取命令结果
result = stdout.read()
print(result.decode('utf-8'))
# 关闭连接
ssh.close()

centos 7 安装git并配置ssh

# 1.安装git
yum install git
# 2.查看git版本
git version
# 3.配置帐户和密码
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
# 4.配置SSH用于拉取远程仓库
# 本地生成ssh key,生成公钥和私钥
ssh-keygen -t rsa -C "your_email@youremail.com"
# 一路回车,生成的密钥存放路径 /root/.ssh/
# 5.查看公钥
cat /root/.ssh/id_rsa.pub
# 6.配置github
https://github.com/settings/keys
# 新建密钥,名字随便起,刚才的公钥复制进去
# 7.done
posted @ 2023-02-13 21:08  hkwJsxl  阅读(50)  评论(0编辑  收藏  举报