[Ubuntu系统] 工作中常用ubuntu功能命令

1249 0
Honkers 2025-3-6 00:11:38 | 显示全部楼层 |阅读模式

一、创建ubuntu新用户相关操作

1.1 创建用户:

  1. sudo useradd -d /home/userName -m -s /bin/bash userName && sudo passwd userName
复制代码

1.2 增加sudo权限

  1. sudo vim /etc/sudoers
  2. // 在/etc/sudoers中root ALL=(ALL:ALL) ALL下增加
  3. userName ALL=(ALL:ALL) ALL
复制代码

1.3 删除用户

  1. userdel -r userName
复制代码

1.4 免密登陆

  1. mkdir ~/.ssh && chmod 700 ~/.ssh && vi ~/.ssh/authorized_keys
  2. chmod 600 ~/.ssh/authorized_keys
复制代码

1.5 ssh登录

  1. sudo ssh -p 22 -i ~/Desktop/xxx.pem ubuntu@IP
  2. 如果出现报错说明这个问题是文件的权限太大了,需要给小点:
  3. sudo chmod 600 key.pem
复制代码

二、设置交换内存相关的命令

2.1查看内存大小

  1. free -m
复制代码

2.2 设置交换内存大小

  1. sudo fallocate -l 16G /data/swapfile
  2. sudo chmod 600 /data/swapfile
  3. sudo mkswap /data/swapfile
  4. sudo swapon /data/swapfile
复制代码

2.3 切换root用户

  1. su root
复制代码


解除root锁定,为root用户设置密码。

  1. sudo passwd
复制代码

重新执行

  1. su root
复制代码

2.4 将文件设置为永久缓存

使用root用户

  1. chmod 600 /swap && mkswap /swap && swapon /swap && echo "/swap swap swap defaults 0 0" >> /etc/fstab
复制代码

三、卸载软件

3.1 查看已安装的程序

  1. dpkg --list | grep 程序可能的名字
复制代码

3.2 卸载程序

  • 将配置文件一并删除
  1. sudo apt-get --purge remove 程序名
复制代码
  • 不删除配置文件
  1. sudo apt-get remove 程序名
复制代码

四、查询文件

  • 在PATH变量里面,只寻找可执行文件 。
  1. which NAME
复制代码
  • 从linux文件数据库(/var/lib/slocate/slocate.db)寻找,全部匹配符合要求的。 所以有可能找到刚刚删除,或者没有发现新建的文件。
  1. whereis NAME
复制代码
  • 文件名部分匹配,其他同上
  1. locate NAME
复制代码
  • 直接在硬盘上搜寻,功能强大,但耗硬盘,一般不要用
  1. find
复制代码

五、云硬盘挂载

5.1查看云硬盘情况

  1. sudo fdisk -l
复制代码

5.2 创建文件格式系统

  1. mkfs -t ext4 /dev/vdb
复制代码

5.3 创建挂载点

  1. mkdir /data
复制代码

5.4 将分区挂载

  1. mount /dev/vdb /data
复制代码

5.5 跨容之后挂载

  1. sudo resize2fs /dev/vdb
复制代码

六、增加Ubuntu 18.04的最大打开文件限制

  1. $ sudo vim /etc/security/limits.conf
  2. * soft nofile 65536
  3. * hard nofile 65536
  4. username soft nofile 65536
  5. username hard nofile 65536
  6. root soft nofile 65536
  7. root hard nofile 65536
  8. $ sudo vim /etc/pam.d/common-session
  9. session required pam_limits.so
  10. $ sudo vim /etc/pam.d/common-session-noninteractive
  11. session required pam_limits.so
  12. $ sudo vim /etc/sysctl.d/60-file-max.conf
  13. fs.file-max = 65536
  14. $ reboot
  15. $ ulimit -a
复制代码

七、防火墙

7.1 查看防火墙状态

  1. sudo ufw status
复制代码

7.2 开启防火墙

  1. sudo ufw enable
复制代码

7.3 关闭防火墙

  1. sudo ufw delete allow 8001/tcp
复制代码

7.4 开放特定端口

  1. sudo ufw allow 22
复制代码

7.5 查看特点端口监听状态

  1. sudo netstat -tunlp | grep 22
复制代码

7.6 关闭特定端口

  1. sudo ufw delete allow 22
复制代码

7.7 开放规定协议的端口

  1. sudo ufw allow 8001/tcp
复制代码

7.8 关闭指定协议的端口

  1. sudo ufw delete allow 8001/tcp
复制代码

7.9 查看哪些端口

  1. ss -tnl
复制代码

八、service文件编写

8.1 service操作

  • 创建
  1. cd /etc/systemd/system/fileName.service
复制代码
  • 启动
  1. sudo systemctl start
复制代码
  • 关闭
  1. sudo systemctl stop
复制代码
  • 重启
  1. sudo systemctl restart
复制代码
  • 查看日志
  1. sudo journalctl --lines=100 --follow --unit
复制代码
  • 删除日志
  1. sudo journalctl --vacuum-size=50M
复制代码
  • 日志保存位置
    /var/log/syslog

8.2 例子

  1. [Unit]
  2. Description=testNet
  3. StartLimitInterval=350
  4. StartLimitBurst=10
  5. [Service]
  6. User=ubuntu
  7. ExecStart=/home/ubuntu/nym-mixnode run --id hashquark
  8. Environment=ANOTHER_VAR=another_value
  9. KillSignal=SIGINT
  10. Restart=on-failure
  11. RestartSec=5s
  12. LimitNOFILE=65536
  13. StandardOutput=file:/data/logs/xxx.log
  14. StandardError=file:/data/logs/xxxErr.log
  15. [Install]
  16. WantedBy=multi-user.target
复制代码

8.3 参数介绍

  1. [Unit]
  2. Description:简短描述
  3. Documentation:文档地址
  4. Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败
  5. Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败
  6. BindsTo:与Requires类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行
  7. Before:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之后启动
  8. After:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动
  9. Conflicts:这里指定的 Unit 不能与当前 Unit 同时运行
  10. Condition...:当前 Unit 运行必须满足的条件,否则不会运行
  11. Assert...:当前 Unit 运行必须满足的条件,否则会报启动失败
  12. [Service]
  13. Type:定义启动时的进程行为。它有以下几种值。
  14. Type=simple:默认值,执行ExecStart指定的命令,启动主进程
  15. Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出
  16. Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行
  17. Type=dbus:当前服务通过D-Bus启动
  18. Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行
  19. Type=idle:若有其他任务执行完毕,当前服务才会运行
  20. ExecStart:启动当前服务的命令
  21. ExecStartPre:启动当前服务之前执行的命令
  22. ExecStartPost:启动当前服务之后执行的命令
  23. ExecReload:重启当前服务时执行的命令
  24. ExecStop:停止当前服务时执行的命令
  25. ExecStopPost:停止当其服务之后执行的命令
  26. RestartSec:自动重启当前服务间隔的秒数
  27. Restart:定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
  28. TimeoutSec:定义 Systemd 停止当前服务之前等待的秒数
  29. Environment:指定环境变量
  30. [Install]
  31. WantedBy:它的值是一个或多个 Target,当前 Unit 激活时(enable)符号链接会放入/etc/systemd/system目录下面以 Target 名 + .wants后缀构成的子目录中
  32. RequiredBy:它的值是一个或多个 Target,当前 Unit 激活时,符号链接会放入/etc/systemd/system目录下面以 Target 名 + .required后缀构成的子目录中
  33. Alias:当前 Unit 可用于启动的别名
  34. Also:当前 Unit 激活(enable)时,会被同时激活的其他 Unit
复制代码

九、Docker

9.1 Docker 安装

  1. sudo apt update
  2. sudo apt install docker.io
  3. sudo groupadd docker
  4. sudo usermod -aG docker ubuntu
复制代码

9.2 Docker 更改数据存储位置

  1. sudo vim /etc/docker/daemon.json
  2. # 只修改存储位置
  3. {
  4. "data-root": "/data/docker-data"
  5. }
  6. # 需要修改
  7. {
  8. "graph": "/data/docker-data",
  9. "storage-driver": "overlay2",
  10. "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"],
  11. "insecure-registries" : ["myregistrydomain.com:5000"],
  12. "dns": ["8.8.8.8", "8.8.4.4"],
  13. "hosts": ["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"]
  14. "bip": "192.168.144.1/24",
  15. "live-restore": truex
  16. }
复制代码

9.3 Docker修改/var/lib/docker存储位置

  • /var/lib/docker通常存储Docker的工作数据:容器、镜像、卷数据、插件数据和网络配置
  1. sudo systemctl stop docker
  2. sudo mv /var/lib/docker /new/path/to/docker
  3. sudo ln -s /new/path/to/docker /var/lib/docker
  4. sudo systemctl start docker
复制代码

十、清除根目录下的日志

10.1 使用 du 命令查看更详细的目录占用情况

  1. sudo du -sh /*
复制代码

10.2 安全删除/var/log/journal中的日志

  • 将日志文件总大小减少到 100MB
  1. sudo journalctl --vacuum-size=1M
复制代码
  • 删除超过指定时间的日志
  1. sudo journalctl --vacuum-time=1days
复制代码

10.3 清空 /var/log/syslog 的日志文件

  1. sudo truncate -s 0 /var/log/syslog
复制代码

10.4 删除所有未使用的docker镜像、容器、卷和网络

  1. sudo docker system prune -a
复制代码

十一、AI工具

语音转文字

  1. !pip install git+https://github.com/openai/whisper.git
  2. !sudo apt update && sudo apt install ffmpeg
复制代码
  1. !whisper "文件名(需要替换).mp3" --model medium
复制代码

搭建过程详情将我的博客

十二、ubuntu服务器上传和下载文件

  1. apt-get install -y lrzsz
复制代码
  • 上传文件
  1. rz
复制代码
  • 下载文件
  1. sz
复制代码

十三、Screen使用方法

13.1 screen安装

  1. sudo apt update
  2. sudo apt install screen
复制代码

13.2 创建一个指定名称的screen

  1. screen -S my_session
复制代码

13.3 退出但不关闭程序

要退出screen会话但不关闭它,首先按下Ctrl + A,然后按下D,确认后会关闭当前会话。

13.4 查看screen

  1. screen -ls
复制代码

13.5 删除

  1. screen -S my_session -X quit
复制代码

13.5 恢复某一个窗口

  1. screen -r <会话ID>
  2. screen -r
复制代码

$$ 小命令

1)程序后台运行并记录日志

  1. nohup python3 test.py > test.log 2>&1 &
复制代码

2)查看文件大小

查看当前目录已经使用总大小及当前目录下一级文件或文件夹各自使用的总空间大小

  1. sudo du -h --max-depth=1
复制代码

3) 创建history

打开~/.bashrc加入

  1. HISTFILE=~/.history
  2. HISTSIZE=1000000
复制代码

4)将日志清空

  1. truncate ./log.log --size 0
  2. 或者
  3. sudo cat /dev/null > log
复制代码

5)将DOS格式的文本文件快速转成Unix格式

  1. vim fileName
  2. set ff=unix或set fileformat=unix
  3. wq!
  4. 或者
  5. dos2unix fileNeme
复制代码

6)查看端口是否开通

  1. telnet IP PORT
复制代码

7)删除/dev/loop

  1. sudo apt autoremove --purge snapd
复制代码

8)创建软连接

  1. ln -s 存储数据位置 快捷键
复制代码

9)删除/dev/loop

  1. sudo apt autoremove --purge snapd
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行