文章目录
一、创建ubuntu新用户相关操作
1.1 创建用户:
sudo useradd -d /home/userName -m -s /bin/bash userName && sudo passwd userName
1.2 增加sudo权限
sudo vim /etc/sudoers
// 在/etc/sudoers中root ALL=(ALL:ALL) ALL下增加
userName ALL=(ALL:ALL) ALL
1.3 删除用户
userdel -r userName
1.4 免密登陆
mkdir ~/.ssh && chmod 700 ~/.ssh && vi ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
1.5 ssh登录
sudo ssh -p 22 -i ~/Desktop/xxx.pem ubuntu@IP
如果出现报错说明这个问题是文件的权限太大了,需要给小点:
sudo chmod 600 key.pem
二、设置交换内存相关的命令
2.1查看内存大小
free -m
2.2 设置交换内存大小
sudo dd if=/dev/zero of=/swap bs=1024 count=8377216 //bs=1024 或者1M,count才是大小,此例中是8G
2.3 切换root用户
su root
解除root锁定,为root用户设置密码。
sudo passwd
重新执行
su root
2.4 将文件设置为永久缓存
使用root用户
chmod 600 /swap && mkswap /swap && swapon /swap && echo "/swap swap swap defaults 0 0" >> /etc/fstab
三、卸载软件
3.1 查看已安装的程序
dpkg --list | grep 程序可能的名字
3.2 卸载程序
- 将配置文件一并删除
sudo apt-get --purge remove 程序名
- 不删除配置文件
sudo apt-get remove 程序名
四、查询文件
- 在PATH变量里面,只寻找可执行文件 。
which NAME
- 从linux文件数据库(/var/lib/slocate/slocate.db)寻找,全部匹配符合要求的。 所以有可能找到刚刚删除,或者没有发现新建的文件。
whereis NAME
- 文件名部分匹配,其他同上
locate NAME
- 直接在硬盘上搜寻,功能强大,但耗硬盘,一般不要用
find
五、云硬盘挂载
5.1查看云硬盘情况
sudo fdisk -l
5.2 创建文件格式系统
mkfs -t ext4 /dev/vdb
5.3 创建挂载点
mkdir /data
5.4 将分区挂载
mount /dev/vdb /data
5.5 跨容之后挂载
sudo resize2fs /dev/vdb
六、增加Ubuntu 18.04的最大打开文件限制
$ sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
username soft nofile 65536
username hard nofile 65536
root soft nofile 65536
root hard nofile 65536
$ sudo vim /etc/pam.d/common-session
session required pam_limits.so
$ sudo vim /etc/pam.d/common-session-noninteractive
session required pam_limits.so
$ sudo vim /etc/sysctl.d/60-file-max.conf
fs.file-max = 65536
$ reboot
$ ulimit -a
七、防火墙
7.1 查看防火墙状态
sudo ufw status
7.2 开启防火墙
sudo ufw enable
7.3 关闭防火墙
sudo ufw delete allow 8001/tcp
7.4 开放特定端口
sudo ufw allow 22
7.5 查看特点端口监听状态
sudo netstat -tunlp | grep 22
7.6 关闭特定端口
sudo ufw delete allow 22
7.7 开放规定协议的端口
sudo ufw allow 8001/tcp
7.8 关闭指定协议的端口
sudo ufw delete allow 8001/tcp
7.9 查看哪些端口
ss -tnl
八、service文件编写
8.1 service操作
- 创建
cd /etc/systemd/system/fileName.service
- 启动
sudo systemctl start
- 关闭
sudo systemctl stop
- 重启
sudo systemctl restart
- 查看日志
sudo journalctl --lines=100 --follow --unit
- 删除日志
sudo journalctl --vacuum-size=50M
- 日志保存位置
/var/log/syslog
8.2 例子
[Unit]
Description=testNet
StartLimitInterval=350
StartLimitBurst=10
[Service]
User=ubuntu
ExecStart=/home/ubuntu/nym-mixnode run --id hashquark
KillSignal=SIGINT
Restart=on-failure
RestartSec=5s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
8.3 参数介绍
[Unit]
Description:简短描述
Documentation:文档地址
Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败
Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败
BindsTo:与Requires类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行
Before:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之后启动
After:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动
Conflicts:这里指定的 Unit 不能与当前 Unit 同时运行
Condition...:当前 Unit 运行必须满足的条件,否则不会运行
Assert...:当前 Unit 运行必须满足的条件,否则会报启动失败
[Service]
Type:定义启动时的进程行为。它有以下几种值。
Type=simple:默认值,执行ExecStart指定的命令,启动主进程
Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出
Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行
Type=dbus:当前服务通过D-Bus启动
Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行
Type=idle:若有其他任务执行完毕,当前服务才会运行
ExecStart:启动当前服务的命令
ExecStartPre:启动当前服务之前执行的命令
ExecStartPost:启动当前服务之后执行的命令
ExecReload:重启当前服务时执行的命令
ExecStop:停止当前服务时执行的命令
ExecStopPost:停止当其服务之后执行的命令
RestartSec:自动重启当前服务间隔的秒数
Restart:定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
TimeoutSec:定义 Systemd 停止当前服务之前等待的秒数
Environment:指定环境变量
[Install]
WantedBy:它的值是一个或多个 Target,当前 Unit 激活时(enable)符号链接会放入/etc/systemd/system目录下面以 Target 名 + .wants后缀构成的子目录中
RequiredBy:它的值是一个或多个 Target,当前 Unit 激活时,符号链接会放入/etc/systemd/system目录下面以 Target 名 + .required后缀构成的子目录中
Alias:当前 Unit 可用于启动的别名
Also:当前 Unit 激活(enable)时,会被同时激活的其他 Unit
9 ubuntu服务器上传和下载文件
apt-get install -y lrzsz
- 上传文件
rz
- 下载文件
sz
9、Docker
9.1 Docker 安装
sudo apt update
sudo apt install docker.io
sudo groupadd docker
sudo usermod -aG docker ubuntu
9.2 Docker 更改数据存储位置
sudo vim /etc/docker/daemon.json
# 只修改存储位置
{
"graph": "/data/docker-data"
}
# 需要修改
{
"graph": "/data/docker-data",
"storage-driver": "overlay2",
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"],
"insecure-registries" : ["myregistrydomain.com:5000"],
"dns": ["8.8.8.8", "8.8.4.4"],
"hosts": ["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"]
"bip": "192.168.144.1/24",
"live-restore": truex
}
9.3 Docker修改/var/lib/docker存储位置
- /var/lib/docker通常存储Docker的工作数据:容器、镜像、卷数据、插件数据和网络配置
sudo systemctl stop docker
sudo mv /var/lib/docker /new/path/to/docker
sudo ln -s /new/path/to/docker /var/lib/docker
sudo systemctl start docker
$$ 小命令
1)程序后台运行并记录日志
nohup python3 test.py > test.log 2>&1 &
2)查看文件大小
查看当前目录已经使用总大小及当前目录下一级文件或文件夹各自使用的总空间大小
sudo du -h --max-depth=1
3) 创建history
打开~/.bashrc加入
HISTFILE=~/.history
HISTSIZE=1000000
4)将日志清空
truncate ./log.log --size 0
或者
sudo cat /dev/null > log
5)将DOS格式的文本文件快速转成Unix格式
vim fileName
set ff=unix或set fileformat=unix
wq!
或者
dos2unix fileNeme
6)查看端口是否开通
telnet IP PORT
7)删除/dev/loop
sudo apt autoremove --purge snapd
8)创建软连接
ln -s 存储数据位置 快捷键
9)删除/dev/loop
sudo apt autoremove --purge snapd