Ubuntu 里的一些配置流程
1. 开启 ssh 登录
1.1 安装 ssh
sudo apt upgrade
sudo apt install openssh-client
sudo apt install openssh-server如果安装失败,尝试 sudo apt install ssh
1.2 配置 ssh 文件
使用 sudo vim /etc/ssh/sshd_config 打开配置文件,找到并修改以下三项
# 取消注释并将端口改为 22
Port 22
# 允许密码登录
PasswordAuthentication yes
# 默认为 prohibit-password, root账户默认都是使用 RSA 登录,如果想要使用密码,就改成 yes
PermitRootLogin yes1.3 重启 ssh 服务
sudo service ssh restart1.4 链接 ssh 服务
ssh -p <port> <username>@<ip>2. 端口
2.1 查询端口占用
# 查看所有端口
sudo netstat -tuln
# 指定某个端口
sudo netstat -tuln | grep <port>
## 使用netstat的替代品ss,功能更强
# 查看所有端口
sudo ss -tuln
# 指定某个端口
sudo ss -tuln | grep <port>3. 命令
3.1 wc
# 展示文件的行数、单词数和字节数
wc <file>
# 展示文件的行数
wc -l <file>
# 展示文件的单词数
wc -w <file>
# 展示文件的字节数
wc -c <file>
# 展示文件的字符数
wc -m <file>3.2 curl
curl(client url)是常用的命令行工具,用来请求 Web 服务器。
测试访问url
最基本的用法就是 curl <url>,常用于测试一台服务器是否可以访问某个 url
curl http://www.baidu.com得到响应
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>新闻</a> <a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>地图</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>视频</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>贴吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>登录</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登录</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">更多产品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>©2017 Baidu <a href=http://www.baidu.com/duty/>使用百度前必读</a> <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a> 京ICP证030173号 <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>保存网页
curl -o <filename>.html <url>
curl -o baidu.html http://www.baidu.com
# 还可以用linux的重定向来保存
curl http://www.baidu.com >> baidu.html测试网页返回值
往往用于在脚本中测试网站是否正常访问 curl -o /dev/null -s -w %{http_code} <url>
-s 静默模式,不显示进度或错误信息
-o /dev/null 将响应体输出到 /dev/null(即丢弃响应体)
-w "%{http_code}":只输出 HTTP 状态码
curl -o /dev/null -s -w %{http_code} www.baidu.com
# 使用 --max-time 和 --connect-timeout 来指定如果 url 无法访问,及时返回信息
curl -o /dev/null -s -w %{http_code} --max-time "2" --connect-timeout "2" www.baidu.com发送请求
参数列表
-X 指定用于请求的HTTP方法,如GET、POST、PUT等
-H 设置header
-F 设置form data,设置上传文件时要用@<filepath>,@标明是文件# 举个例子
curl -X POST \
-H "token:jl6jhkq9pg17g9ii6hlqg6segg" \
-F "title=test1" \
-F "product=1" \
-F "files=@/mnt/svn_Repositories/htpasswd" \
http://localhost:8086/api.php/v1/feedbacks参数列表
-d发送POST数据体
curl -d 'login=emma&password=123' -X POST https://google.com/login
# win下只能用双引号,所以特殊部分需要转义
curl -X POST -H "token:<token>" -d "{\"page\":1,\"pageSize\": 10}" <url>-k跳过SSL检测,常用于访问本地启的服务,没有配置 SSL 证书
3.3 htpasswd
htpasswd 是一个用于创建和更新存储用户名和密码的平面文件(通常用于 HTTP 认证)的命令行工具。它通常与 Apache HTTP 服务器一起使用,用于管理基本身份验证的用户和密码。
# 基本用法
htpasswd [option] <file> <account>
# 常用option
-c 创建一个新的密码文件,如果文件存在,则被覆盖
-b 允许在命令行中直接提供密码
-D 删除指定用户
-v 验证用户密码示例
# 创建一个密码文件,并添加user0账户,随后在命令行中交互输入密码
htpasswd -c /tmp/htpasswd user0
# 创建一个密码文件,并添加user0账户,使用-b参数指定了密码,无需命令行交互
htpasswd -b -c /tmp/htpasswd user0 password1
# 创建/编辑(有则编辑,无则创建)user1用户,并在参数中指定密码
htpasswd -b /tmp/htpasswd user1 pswd2
# 删除用户user1
htpasswd -D /tmp/htpasswd user1
# 验证user1密码是否正确,并在参数中直接指定想要验证的密码
htpasswd -b -v /tmp/htpasswd user1 pswd23.4 ncdu
磁盘使用情况分析工具,使用 sudo apt install ncdu 安装依赖包
# 直接用就行,会扫描完成后按照从大到小列出磁盘使用情况
ncdu3.5 nohup后台运行
使用nohup(no hang up)命令可以让进行忽略挂起信号,即使关闭终端也不会结束。
nohup your-command > output.log 2>&1 &- your-command 要运行的命令
- > output.log 将标准输出写入 output.log
- 2>&1 表示将标准错误也重定向到标准输出写入
- & 表示在后台运行
后续可以使用 ps aux | grep "your-command" 来搜索在后台运行进程的PID号,如果不想要了就kill掉
3.6 passwd
passwd 命令用于修改用户密码。
passwd系统
4.1 fstab
/etc/fstab 文件是 Linux 系统中用于定义和管理文件系统的挂载信息的配置文件。它的作用是告诉系统在启动时,应该如何自动挂载各种文件系统。挂载是 Linux 操作系统中一种将存储设备与目录树关联的操作。通过挂载,存储设备中的文件可以通过目录访问。 使用 sudo mount -a 重新挂载文件
# 比如将windows中的一个共享文件夹挂载到linux下,username和password为windows本地账户信息,windows貌似必须用本地账户才可以
//10.0.0.167/SvnRepositories /mnt/svn_Repositories cifs username=songchenxuan,password=Zentao123,uid=33,gid=33,rw 0 04.2 netplan网络设置
在 etc/netplan 中创建配置文件,比如 50-cloud-init.yaml,如果 ubuntu 是联网安装的默认应该就有,如果没有,可以手动创建。
network:
version: 2
renderer: networkd
ethernets:
enp142s0:
dhcp4: no
addresses: [192.168.12.33/24]
routes:
- to: default
via: 192.168.12.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]4.3 设置服务开机自启
开机自启
sudo systemctl enable <service>开机不自启
sudo systemctl disable <service>查看服务状态
sudo systemctl status <service>4.4 硬盘扩容
查看分区与挂载
df -h一般返回如下:/dev/mapper/ 开头的一般就是自己的盘
Filesystem Size Used Avail Use% Mounted on
tmpfs 13G 15M 13G 1% /run
efivarfs 128K 89K 35K 72% /sys/firmware/efi/efivars
/dev/mapper/ubuntu--vg-ubuntu--lv 295G 94G 189G 34% /
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/nvme0n1p2 2.0G 103M 1.7G 6% /boot
/dev/nvme0n1p1 1.1G 6.2M 1.1G 1% /boot/efi
tmpfs 13G 20K 13G 1% /run/user/1000还可以用 lsblk 命令查看分区情况
lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 931.5G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot/efi
├─nvme0n1p2 259:2 0 2G 0 part /boot
└─nvme0n1p3 259:3 0 928.5G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 300G 0 lvm /可见我们系统在 nvme0n1p3 这个分区上。
扩容
使用 lsblk -f 查看分区类型,如果是 ext4 格式的,可以用 resize2fs 命令进行扩容。
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
├─nvme0n1p1 vfat FAT32 2E68-B64B 1G 1% /boot/efi
├─nvme0n1p2 ext4 1.0 c515f5bc-df8f-4e86-9273-a7899fd67160 1.7G 5% /boot
└─nvme0n1p3 LVM2_member LVM2 001 plooly-Nchf-p24n-8Z3v-6oK0-AIh0-YemFdA
└─ubuntu--vg-ubuntu--lv ext4 1.0 3e30d937-799b-4bf2-a677-cd9064823be8 188.3G 32% /# 扩展逻辑卷到目标大小
lvextend -L 300G /dev/ubuntu-vg/ubuntu-lv
# 扩展文件系统
resize2fs /dev/ubuntu-vg/ubuntu-lv4.5 虚拟内存扩容(swap)
内存不够用时的一种方案,或者下策
临时增加虚拟内存
# 例:新增 8GB(两种创建方式二选一)
sudo fallocate -l 8G /swapfile
# 若 fallocate 失败(部分文件系统不支持),改用 dd
# sudo dd if=/dev/zero of=/swapfile bs=1G count=8
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile永久扩容(重启后仍生效)
# 将新 swapfile 写入 /etc/fstab(若已有旧行,先注释或删除旧条目)
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab重新扩容
# 查看使用情况
swapon --show
# 关闭现在在用的交换内存文件
sudo swapoff /swapfile
# 删了重新建
sudo rm /swapfile