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_HOMENODE_ENVLANG 等。

设置临时环境变量

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

posted @ 2025-11-21 09:03  yangykaifa  阅读(12)  评论(0)    收藏  举报