Ubuntu - 教程
1.SSH连接
ssh root@192.168.1.1 #默认连接22端口 好比默认后面加了 -p 22
修改SSH登录端口
vim /etc/ssh/sshd_config
修改:Port 50222
重启ssh服务
systemctl restart ssh (注意Ubuntu ssh centos sshd)
ssh root@192.168.1.1 -p 50222
2.关于fail2ban
什么是fail2ban:你的VPS好比一座大楼,fail2ban好比楼下保安,他监控/varlog/auth.log日志,如果输入密码错误5次,则1小时不让他进来
wget --no-check-certificate https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh && bash fail2ban.sh 2>&1 | tee fail2ban.log
核心点:fial2ban针对日志文件,对IP进行登录限制
3.systemctl检查系统服务命令
systemctl list-unit-files #查看服务开机启动状态
systemctl disable service_name #关闭指定服务的自动启动
systemctl enable service_name #开启指定服务的自动启动
3.1如何注册为系统服务
在/etc/systemd/system/下创建某xxx.service
示例:
vim /etc/systemd/system/hello-demo.service
[Unit]
Description=Hello Systemctl Demo Service
[Service]
Type=oneshot
ExecStart=/bin/echo "hello systemctl"
[Install]
WantedBy=multi-user.target
重新加载systemd的配置
systemctl daemon-reload
systemctl start|stop|restart|status|edit|cat|enable|disable hello-demo
例如
systemctl start hello-demo
journalctl -u hello-demo #查看hello-demo服务的日志
journalctl -u hello-demo -f #实时查看hello-demo服务日志
journalctl -u hello-demo -n 50 -f #实时查看hello-demo最近50条日志
3.2 如何删除系统服务
systemctl stop hello-demo #停止服务(如果正在运行)
systemctl disable hello-demo #禁止开机自启动
rm /etc/systemd/system/hello-demo.service #删除服务文件
systemctl daemon-reload #重新加载配置
上面的服务类型是Type=oneshot
所以都不需要stop 只需要删除文件 重新加载配置即可
除了/etc/systemd/system/下自建服务,还可以在/usr/lib/systemd/system/ 和/lib/systemd/system/
4.系统防火墙
ufw enable #启动防火墙
ufw status #查看防火墙状态
ufw disable #禁用防火墙
ufw allow 22/tcp #开放22端口
ufw delete allow 22/tcp #关闭端口
5.关机重启命令
reboot #重启
shutdown -h now #现在关机
shutdown -h +5 #5分钟之后关机
systemctl poweroff #现在关机 也是关机最终执行的
关机命令最终使用了
systemctl poweroff
6.修改Hostname和Hosts映射
6.1 主机名修改
hostname #查看主机名
hostnamectl set-hostname xxxx #设置主机名 然后重连ssh可以看到主机名改了
还有一种方式
vim /etc/hostname #编辑主机名文件
hostname -F /etc/hostname #强制重新加载 然后重连ssh
6.2 修改hsots映射
Hosts映射解释:是一个本地,优先于DNS的域名解析机制,例如你访问www.taobao.com,域名解析机制会先查浏览器的,然后查本地hosts文件 检查www.taobao.com是否有对应IP 如果有,就访问对应的IP,如果没有再去外部的DNS解析
Linux中也是一样道理 文件在/etc/hosts
cat /etc/hosts #查看
7.添加修改用户并给与sudo权限
7.1添加用户
注意两个文件 /etc/passwd (用户文件) /etc/shadow (用户密码文件)
adduser hrui #会自动创建家目录 useradd不推荐(比较老)
然后设置密码 注意 root创建之后 root可以设置密码

passwd hrui
查看用户是否添加成功
cat /etc/passwd | grep hrui
或者
grep hrui | /etc/passwd
7.2 删除用户
deluser hrui #保留家目录
deluser --remove-home hrui #删除用户 并删除用户家目录
7.3 给与用户sudo权限
usermod -aG sudo hrui
7.4 给与用户全部权限
visudo
hrui ALL=(ALL:ALL) ALL #给与该用户全部权限 ctrl+o保存 ctrl+x退出
7.5 禁止用户登录
usermod -s /usr/sbin/nologin hrui

7.6 恢复登录
usermod -s /bin/bash hrui
8.软件管理apt软件包管理器
安装
apt install xxxx #例如apt install net-tools
删除
apt remove xxxx #例如 apt remove net-tools
关于 /etc/apt/sources.list 该文件用来定义去哪里下载东西
9.文件相关
9.1 目录切换和查看
pwd #查看当前所在目录
cd / #到目录
cd xxx #到当前目录所在的xxx文件夹
cd ~ #进入家目录 等同于 cd ~/
ls 或者 ls -a 或者 ll 自己感受 .开始的文件是隐藏文件或者隐藏文件夹
9.2 文件、文件夹的创建 删除、移动和复制
touch xxx #创建某个文件
mkdir xxx #创建文件夹 mkdir /xx/xxx/xxxx
rmdir xxx #xxx必须是空的文件夹
rm xxx #文件可以直接删除
rm -rf xxx #递归删除xxx文件夹及里面所有内容
mkdir -p /xxx/xxxx/xxxxx #创建多层 即使xxxx不存在也会创建
cp /file /file2/a #如果是文件 可以直接复制 如果是文件夹 -r 递归复制
cp -r /file /file2/a #复制跟目录下的文件(或者文件夹)到根目录下的file2里的a里面
移动
mv file1 file2 #将file1重命名file2
mv file1 /xxx/xxxx/xxxx/ #移动到xxxx下名字不变 如果xxxx不存在 直接改名为xxxx
9.3 文件查看
cat xxx #全部在控制台打印
head xxx #控制台打印文件前10行
head -n 20 xxx #显示文件前20行
more xxx #可以一页一页翻 空格下一页 b上一页 q退出
less xxx #支持键盘上下键翻页
tail xxx #显示文件最后前10行
tail -n 20 -f xxx #实时刷新展示文件末尾20行 查看日志文件常用
10 echo输出
echo "hello world" > xxx #每次都会先清空 再输入
echo "hello world">>xxx #追加
11.用户权限管理
- - - - - - - - - - #第一个代表文件类型 后面分别是 文件拥有这(3个) 文件拥有者群组(3个) 不是该用户也不在该群组(3)
user/owner:文件拥有者
group:文件归属于某个群组的人
others:不是该群组也不是文件拥有者
id root #查看用户 uid=0(root) gid=0(root) 组=0(root)
创建用户时默认创建了和用户明相同的用户组
11.1 文件类型 第一个"-"
d #目录文件
b #块特殊文件
c #字符特殊文件
l #符号链接
f #命名管道
s #套接字文件
11.2 权限类型
r = 4 (读)
w = 2 (写)
x = 1 (执行)
--------------------------------------------
11.3 修改文件(文件夹)权限
u 表示拥有者 g 表示拥有者相同组 o 表示即不是拥有者 也不在相同组
chmod u+x /xxx #给文件拥有者添加执行权限 d--x------
chmod +x /xxx #给u g o 都添加执行权限 d--x--x--x
chmod g+r /xxx #给同一组的用户添加读权限 d---r-----
chmod u+r,g+w /xxxx #给文件所有者添加读权限 相同组添加写权限 dr---w----
chmod 777 xxx #一个7等于rwx 也就是4+2+1 因此 777代表u g o 都有读写执行权限 drwxrwxrwx
修改文件权限的另一种写法 上面的写法是在本身的权限中添加新的权限
例如 文件原先权限是drwx---rw-
chmod g+r xxx #那么权限变成 drwxr--rw- 在原有权限基础上进行添加
而如下是清空所有权限 再加赋予的权限 例如原先权限是drwx---rw-
chmod g=wx xxx #那么权限变成drwx-wxrw-
chmod g=wx,o=x xxx #那么权限变成drwx-wx-rwx
11.4 改变文件属主
chown user1:group1 xxx #将文件所有者改为user1 组改为group1 root或者原归属者操作
chown user2 xxx #改变文件归属为user2 #root或者文件原归属者操作
chown :group3 xxx #改变文件归属组 #root或者文件原归属者操作
chmod和chown -R 递归
12.find文件查找
find / -name "hello" #从根目录开始找名字是hello的文件或者文件夹
find / -name "hello" -type f #从根目录开始找名字是hello的文件
find / -name "hello" -type d #从根目录开始找名字hello的文件夹
find / -name "hello" -type l #从根目录开始找名字hello的符号链接
13.软链接
ln -s /etc/letsencrypt/live/xxxx/privkey.pem /etc/xxx/cert.key
意思是将/etc/letsencrypt/live/xxxx/privkey.pem的内容和/etc/xxx/cert.key同步
/etc/xxx/cert.key好比是/etc/letsencrypt/live/xxxx/privkey.pem的快捷方式
这里注意 不要提前创建/etc/xxx/cert.key文件 软链接时候会自动创建
14.环境变量
14.1 什么是环境变量
环境变量是操作系统中存放的,系统运行时的配置信息.------->是键值对形式
例如 PATH=/usr/bin:/usr/local/bin
在 Linux 下,环境变量常用于:
指定命令的搜索路径,例如
PATH决定你在终端输入python时去哪找这个可执行文件。保存系统或用户信息,如
HOME表示当前用户的主目录,USER表示用户名。配置程序行为,比如
JAVA_HOME、NODE_ENV、LANG等。
设置临时环境变量
xxx=xxx的方式 好比一个"局部变量,存在于当前的bash会话的内存中"

env #查看当前登录用户的所有环境变量 这里不会展示上面以 xxx=xxx的局部变量
echo $xxx #查看某个具体环境变量的值
export ph=123 #临时的环境变量 可以通过 env |grep ph 查看
unset ph #这个只是暂时删除 env里面的这个变量 新开一个终端,不受影响,彻底删除需要删除配置文件里的
14.2 个人环境变量和系统环境变量
系统环境变量:vim /etc/profile(推荐) 或者 /etc/bash.bashrc
个人环境变量:~/.bashrc(推荐) 或者 ~/.profile

浙公网安备 33010602011771号