ubuntu网络相关:

【ubuntu 16.04】

  1. /etc/network/interfaces
    增加

    auto ens33
    iface ens33 inet static
    address 192.168.88.181
    netmask 255.255.255.0
    gateway 192.168.88.2

    注: ens33为网卡名,具体要看自己的机器

  2. 修改/etc/NetworkManager/NetworkManager.conf ,将 managed 设置为 true

  3. 设置 /etc/resolvconf/resolv.conf.d/base,增加

    nameserver xxx
    nameserver xxx

    注: 机器在重启后,真正读取dns 的配置是在 /etc/resolv.conf/etc/resolv.conf 的数据来源于 /etc/resolvconf/resolv.conf.d/base

  4. 重启网络服务/etc/init.d/netXX restart

【ubuntu 18.04/20.04 Server】

ubuntu18.04 server之后,启用了新的网络工具netplan,默认没有 ifconfig等网络工具

  1. 其网络配置文件是放在/etc/netplan/50-cloud-init.yaml, 缺省是用dhcp方式,如果要配置静态地址,则需要修改,:
    network:
    ethernets:
        ens12:
            dhcp4: false
            addresses:
              - 10.10.10.2/24
            gateway4: 10.10.10.1
            nameservers:
              search: [mydomain, otherdomain]
              addresses: [10.10.10.1, 1.1.1.1]
            optional: true
        ens3:
            dhcp4: false
            addresses: [10.229.147.60/15]
            routes:
                - to: 0.0.0.0/0
                  via: 10.230.128.128
                  metric: 202
            optional: true
    version: 2 
    注:ens33为网卡名,可使用ip a命令获得
  2. 使其生效的方法:
    sudo netplan apply
    如果配置有问题会报错,如果没问题,则会新的配置会立即生效。
    以下命令可查看debug信息:
    sudo netplan --debug apply

注意:

  • yaml文件要符合yaml语言的语法格式,空格(不能用tab)缩进表示层级,每一层级要左对齐,空格位数可以随意
  • 对应配置项后要跟冒号,之后要接个空格,否则netplan命令也会报错
  • 该方法只针对ubuntu18.04 Server,对于18.04 desktop它缺省是使用NetworkManger来进行管理,可使用图形界面进行配置,其网络配置文件是保存在:/etc/NetworkManager/system-connections目录下的。
  • ifconfig eth0 192.168.70.234 netmask 255.255.255.0 可临时配置 IP 和掩码
  • route add default gw 192.168.70.1可临时配置网关
  • 查看网络状态
    networkctl status

其他

  • 查看网卡信息:
    ethtool
  • 路由跟踪:
    traceroute

ubuntu 设置开机启动:

添加自定义的脚本:

/etc/init.d/下添加自定义的脚本xxx.sh, 里面为启动的内容,可参考其他的

赋予执行权限:

sudo chmod a+x xxx.sh

将脚本添加到启动脚本:

sudo update-rc.d xxx.sh defaults 90
注: 90是你设置的启动序号,越大级别越低,执行越晚

移除开机自启脚本:

sudo update-rc.d -f xxx.sh remove

不同系统导致的文件格式问题

背景:

有时候别人在windows上开发或编辑的文件放到自己的Linux系统中经常会报以下类似问题

/bin/bash^M: bad interpreter: No such file or directory

主要是文件格式问题导致的

确认

我们用vim打开文件,在底部命令模式下, 执行:set ff查看, 结果发现fileformat=dos就是Windows的文件格式

解决:

  • 方法1: vim 文件, 在底部命令模式下, 执行:set fileformat=unix后执行:x或者:wq保存修改。(亲测 OK)
  • 方法2: 直接执行sed -i “s/\r//“ a.sh来转化, 然后就OK了。

编码UTF-8,GBK都可以通过VS Code或Notpad++等软件转换

软件源

更换国内源:

【中科大】

  1. repository file generator https://mirrors.ustc.edu.cn/repogen/
  2. 具体命令:
    wget https://mirrors.ustc.edu.cn/repogen/conf/ubuntu-http-4-focal -O sources.list
    # or https
    wget https://mirrors.ustc.edu.cn/repogen/conf/ubuntu-https-4-focal -O sources.list
    sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    sudo mv sources.list /etc/apt/sources.list
    sudo apt update

    sources.list 内容说明

  • 关于组件:

    main: 免费,Ubuntu 官方维护的自由软件
    restricted: 不免费,但是正规支持的,一般是设备专有驱动
    universe:免费,社区维护的自由软件
    multiverse:不免费,无正规支持,非自由软件

  • 关于更新:

    security:重要的安全更新
    updates:非安全性更新,即不影响到系统安全的 bug 修补。
    proposed:预更新,小 beta 版,过后会进入[updates]或[security]。
    backports:新软件的反向导出,新软件为老系统编译的版本。

报错

sudo apt update时,[Connecting to archive.ubuntu.com (2001:67c:1360:8001::21)]超时
原因: ubuntu默认走IPV6,但更改的源不支持ipv6.
解决: 打开/etc/gai.conf(地址信息的配置文件),找到#precedence ::ffff:0:0/96 100,将#去掉保存

Ubuntu时间:

查看当前系统时间:

date -R

修改时区:

  • tzselect
    选择Asia,再选择China,最后选择Beijing

  • sudo timedatectl set-timezone "Asia/Shanghai"

配置

  • 配置方式1:复制文件到/etc目录下sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 配置方式2:用户或者系统profile文件中添加export TZ='Asia/Shanghai'

修改或同步时间

同步时间: sudo ntpdate pool.ntp.org

sudo date -s MM/DD/YY //修改日期
sudo date -s hh:mm:ss //修改时间
sudo hwclock --systohc //系统时钟和硬件时钟同步

硬件时间

硬件时间: hwclock
硬件时间写入到系统时间: hwclock -s
将系统时间写入到硬件时间: hwclock -w

Ubuntu 16.04将硬件时间UTC改为CST:
timedatectl set-local-rtc 1 --adjust-system-clock

时间标准:
GMT (格林尼治平时)
UTC (世界标准时间),以原子时秒长为基础,零时区的时间
CST (北京时间),中国标准时间,属东八区,比世界标准时间早8小时,记为UTC+8

用户相关操作

  • 授予和移除 sudo 权限:
    sudo adduser username sudo
    sudo deluser username sudo
  • 修改用户组,所属用户,-R可递归:
    sudo chown username:groupname 目录/文件
  • 新增用户
    sudo adduser username
  • 新增用户,并指定用户家目录 ,useradd只是创建了一个用户名
    sudo useradd -d 家目录 username
  • 修改用户密码
    sudo passwd username
  • 添加root密码
    sudo passwd root
  • 删除用户
    sudo userdel -r username
  • 添加指定gid为1001的groupname用户组
    groupadd -g 1001 groupname
  • 添加uid为1001的用户xxx,并加入到groupname的组中
    useradd -u 1001 -g groupname xxx

查看实时网速带宽:

sudo apt-get install nethogs
sudo nethogs

定时开关机

定时关机

  1. 确保时区,时间准确
    使用timedatectl查看修改
  2. 使用crontab添加定时任务
    编辑 /etc/crontab添加以下配置,周一到周五的23点00分定时关机,保存
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name command to be executed
    00 23   * * 1-5 root    /sbin/shutdown -h now
  3. 重启服务,立即生效
    /etc/init.d/cron restart