一、配置公钥
打开虚拟机上的 ~/.ssh文件夹
方法1:
ssh-keygen -t rsa -C "你自己的名字" -f "你自己的名字_rsa" # -t 后面rsa是加密方式
ssh-copy-id -i "公钥文件名" 用户名@服务器ip或域
方法2:
ssh-keygen -t rsa -b 4096 -C "随意写" #生成公钥,私钥
eval "$(ssh-agent -s)" #开启ssh代理
ssh-add ~/.ssh/id_rsa #把ssh的key加入代理中
ssh-add -K ~/.ssh/id_rsa # 添加到config文件中,不用再在config文件中手动添加
免密登录时在本机生成密钥对,将公钥推到服务器上
ssh-copy-id -i "公钥文件名" 用户名@服务器ip或域
当配置服务器免密登录时,将本机的公钥提到服务器上,服务器的.ssh文件夹中会有一个authorized_keys
来存放公钥
二、服务器基础操作
hostnamectl # 主机基本信息
hostnamectl -h # 帮助
hostnamectl set-hostname zxh-MAC #修改操作系统名字
fdisk -l #查看挂载盘大小
df -h #查看硬盘使用情况
free -m #内存查看
# 常用快捷键
ctrl + s #暂时挂机,睡眠,暂停屏幕输出
ctrl + q #退出睡眠,恢复屏幕输出
ctrl+c #结束正在运行的程序【ping、telnet等】 ctrl+d 结束输入或退出shell
ctrl+l #清屏,等同于Clear
control a // 行首
control e // 行尾
# vi命令
i #可编辑状态
esc键 #回到命令状态
:wq #保存退出
:q! #不保存退出
# 服务管理命令
systemctl #列出全部服务
q #退出服务列表状态
systemctl start mysqld #启动mysql(stop停止,restart重启,d是守护进程的意思)
systemctl start httpd #启动xampp(disable开机禁用,enable取消禁用)
systemctl start nginx #启动nginx
systemctl start sshd #不启动sshd是无法从远程访问服务器的
# 命令行下载
yum install #下包(ubuntu下是apt apt-get)
# curl、wget
wget http://www.baidu.com #下载百度首页
curl http://www.baidu.com -o index.html #(-o index.html,指定下载到本地后文件名字,不加就是把下载的内容呈现出来,并不会下载)
yum install perl openssh git #安装git
# 安全
# 修改 /etc/ssh/sshd_config文件
# port 范围0 ~ 65536,0~1024一般被系统占用,最好不要使
PermitEmptyPosswords no # 是否允许空密码
AllowUsers # 设置用户
PermitRootLogin no # 关闭root用户登录
sudo chmod 777 + 文件夹 #使文件夹可写,可读
#配置banner
cd /etc/ssh
vi sshd.config
# /banner #查找banner
# 修改为 /etc/ssh-issue
# 然后编辑这个文件
systemctl restart sshd
三、文件操作
#1.从服务器复制文件到本地:
scp root@192.168.1.100:/data/test.txt /home/myfile/
# root@192.168.1.100 root是目标服务器(有你需要拷贝文件的服务器)的用户名,192.168.1.100是IP地址,后面紧跟的 “:” 不要忘记,/data/test.txt 是目标服务器中你要拷贝文件的地址,接一个空格,后面的 /home/myfile/ 是本地接收文件的地址。
#2.从服务器复制文件夹到本地:
scp -r root@192.168.1.100:/data/ /home/myfile/
#只需在前面加 -r 即可,就可以拷贝整个文件夹。
#3.从本地复制文件到服务器:
scp -i zxhnext_rsa /filename root@192.168.1.1:/
scp /home/myfile/test.txt root@192.168.1.100:/data/
#4.从本地复制文件夹到服务器:
scp -r /home/myfile/ root@192.168.1.100:/data/
四、# 进程,线程,协程
- 多进程就是可以打开多个软件(进程比线程消耗资源多,切换进程和线程也会浪费cpu,操作系统在进程,线程的调度过程中浪费了时间)
- 一个操作可以启动多个进程,一个进程可以启动多个线程
- 普通进程被终止时他的子进程也被终止
- 守护进程不占用终端资源(比如向屏幕输出,比如nginx)
ps aux | grep nginx # 查看nginx进程 master为主进程,一般pid小的为主进程
kill + pid #终止守护进程
kill -9 pid # 强制退出命令
pkill + 进程名称 # 同上 kill原理是通过系统发给某个进程退出的命令,有的程序在便携时候会忽略这个命令,这是使用9号命令强制退出
- 进程的目的就是担当分配系统资源(CPU时间、内存)的实体,程序跑起来进程就跟着出现了
- 进程状态。S为睡眠进程,Z为僵尸进程(程序退出了但是还在进程里)或孤儿进程,父进程退出了,子进程还在(父子关系依赖失效导致)
- 网络相关,读写硬盘的都是io密集型
计算密集型就是cpu密集型,比如解码视频,转换为一帧一帧等等
五、centos添加,删除用户组
usermod 选项 用户名 #修改已经存在的用户
userdel -r 用户名 #删除用户表示自家目录一起删除
groupadd 选项 组名 #添加新组
groupmod 选项 组名 #修改已经存在的组
groupdel 组名 #删除已经存在的特定组。
adduser test # 添加用户 test
passwd test # 修改test密码
userdel test # 删除用户test
userdel -r test # 删除用户以及用户目录
groupadd sudo # 新建一个sudo用户组
useradd -G sudo test # 创建一个新用户test,同时加入suso附加组中
useradd -d /var/ftp/pub -M ftpadmin # 创建一个新用户ftpadmin,指定目录是/var/ftp/pub,不创建自家目录(-M)
usermod -G sudo zh888 # 表示将zh888添加到附加组sudo组中去,zh888是已经新建好存在的用户
userdel -r zhh888 # 表示删除zh888和/home中的目录一起删除
groupdel sudo # 表示删除sudo组
passwd passwd 选项 用户名 # 用户名账号名//禁止用户账户口令
passwd -l 用户名 # 表示查看用户账户口令状态
passwd -S 用户名 # 表示恢复用户账号
passwd -u 用户名 # 表示删除用户账户口令
六、设置网络
ifup + 网卡名 #启动网卡
ifdown + 网卡名 #禁用网卡
ss -anp | grep 80 // 查看端口并过滤80端口
netstat -anp | grep 80 // 查看端口并过滤80端口
在Virtual Box中安装好CentOS 7的minimal后,第一件事就是设置网络访问。
首先需要用 nmtui 命令进入 Network Manager,如下:
选择 Edit a connection 来配置你的网络连接:
选择Edit进入DHCP配置:
选择IPv4 CONFIGURATION为Automatic,并且勾选Automatically connect选项(按空格键)。
最后返回命令行,输入:
service network restart
来重新网络服务,此时就可以正常连接网络了。如果是在Virtual Box中,注意Virtual Box的网络连接模式需要设置为NAT。
有了网络连接后,在CentOS 7 minimal中,默认net-tools是没有预先安装的。现在有了网络连接后,就可以使用
yum install net-tools
来安装网络工具,安装完毕之后,诸如ifconfig等命令就都能用了。
七、linux基础操作demo
使用 mkdir 命令创建目录
mkdir $HOME/testFolder
使用 cd 命令切换目录
cd $HOME/testFolder
使用 cd ../ 命令切换到上一级目录
cd ../
使用 mv 命令移动目录
mv $HOME/testFolder /var/tmp
使用 rm -rf #命令删除目录
rm -rf /var/tmp/testFolder
使用 ls 命令查看 [/etc] 目录下所有文件和文件夹
ls /etc
/etc 目录默认是 *nix 系统的软件配置文件存放位置
文件操作
使用 touch 命令创建文件
touch ~/testFile
执行 ls 命令, 可以看到刚才新建的 testFile 文件
ls ~
使用 cp 命令复制文件
cp ~/testFile ~/testNewFile
使用 rm 命令删除文件, 输入 y 后回车确认删除
rm ~/testFile
使用 cat 命令查看 .bash_history 文件内容
cat ~/.bash_history
过滤, 管道与重定向
过滤出 /etc/passwd 文件中包含 root 的记录
grep 'root' /etc/passwd
递归地过滤出 /var/log/ 目录中包含 linux 的记录
grep -r 'linux' /var/log/
管道
简单来说, Linux 中管道的作用是将上一个命令的输出作为下一个命令的输入, 像 pipe 一样将各个命令串联起来执行, 管道的操作符是 |
比如, 我们可以将 cat 和 grep 两个命令用管道组合在一起
cat /etc/passwd | grep 'root'
过滤出 /etc 目录中名字包含 ssh 的目录(不包括子目录)
ls /etc | grep 'ssh'
重定向
可以使用 > 或 < 将命令的输出重定向到一个文件中
echo 'Hello World' > ~/test.txt
运维常用命令
ping 命令
对 cloud.tencent.com 发送 4 个 ping 包, 检查与其是否联通
ping -c 4 cloud.tencent.com
netstat 命令
netstat 命令用于显示各种网络相关信息,如网络连接, 路由表, 接口状态等等
列出所有处于监听状态的tcp端口
netstat -lt
查看所有的端口信息, 包括 PID 和进程名称
netstat -tulpn
ps 命令
过滤得到当前系统中的 ssh 进程信息
ps aux | grep 'ssh'
八、防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
网友评论