ubuntu服务器安装

ubuntu服务器安装

安装

一直下一步(为踩坑做准备工作)

配置网络

ubuntu16.04 静态IP

公司网没有配DHCP,安装直接略过网络,装后没有网。

ifconfig中只有lo

ip addr

看网卡名称,我的是eth0

修改/etc/network/interfaces,增加

source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
auto eth1
iface eth1 inet dhcp

重启网路

systemctl restart networking.service

修改IP时此命令有时不管用,reboot

ubuntu18.04 静态IP

修改/etc/netplan/*.yaml文件,文件名称不统一

network:
  version: 2
  ethernets:
    ens160:
      addresses: [192.168.1.38/24]
      gateway4: 192.168.1.254
      dhcp4: no
      nameservers:
        addresses: [192.168.1.254]

使其生效
sudo netplan apply

ubuntu20.04 静态IP

与18.04 通用

# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      addresses:
      - 192.168.1.39/24
      gateway4: 192.168.1.254
      nameservers:
        addresses:
        - 192.168.1.254
        search:
        - local
  version: 2

ubuntu18.04 DNS配置

从ubuntu18.04开始,系统运行了仅给自己用的DNS解析服务。

# cat /etc/resolv.conf 
nameserver 127.0.0.53
options edns0
# netstat -anptl | grep 127.0.0.53
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      16953/systemd-resol
# ls -al /proc/16953/exe
lrwxrwxrwx 1 systemd-resolve systemd-resolve 0 Mar 30 10:10 /proc/16953/exe -> /lib/systemd/systemd-resolved
# systemctl list-units | grep systemd-resolved
systemd-resolved.service                                                                         loaded active running   Network Name Resolution

可以看到,DNS解析工作由systemd-resolved.service接管了
网上找到这个鬼服务的配置文件在这个位置/etc/systemd/resolved.conf盘它

[Resolve]
DNS=192.168.1.254 114.114.114.114

重新启动服务:

$ sudo systemctl daemon-reload
$ sudo systemctl restart systemd-networkd
$ sudo systemctl restart systemd-resolved

感觉重启的东西太多了,网上就这样写的,就这样做呗。管用。

修改网卡名称

1 修改grub

sudo vi /etc/default/grub
在”GRUB_CMDLINE_LINUX”中添加参数net.ifnames=0 biosdevname=0

2 更新grub

执行命令
update-grub
若提示没有此命令,请先输入安装命令

apt-get install grub2-common

3 修改network

sudo vi /etc/network/interfaces
将“enp0s3”全部改为“eth0”

4 重启系统

中文乱码菱形块

  • 查看当前系统支持的字符集
# locale -a
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
  • 查看当前系统使用的字符编码
~$ locale
# locale
LANG=en_US.UTF8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF8"
LC_NUMERIC="en_US.UTF8"
LC_TIME="en_US.UTF8"
LC_COLLATE="en_US.UTF8"
LC_MONETARY="en_US.UTF8"
LC_MESSAGES="en_US.UTF8"
LC_PAPER="en_US.UTF8"
LC_NAME="en_US.UTF8"
LC_ADDRESS="en_US.UTF8"
LC_TELEPHONE="en_US.UTF8"
LC_MEASUREMENT="en_US.UTF8"
LC_IDENTIFICATION="en_US.UTF8"
LC_ALL=
  • 拉取中文编码
sudo locale-gen zh_CN.UTF-8
Generating locales (this might take a while)...
zh_CN.UTF-8... done
Generation complete.
  • 查看locale文件

cat /etc/default/locale

#  File generated by update-locale
LANG="LANG=zh_CN.UTF-8"
# LANGUAGE="en_US:en"
  • sudo dpkg-reconfigure locales
    sudo dpkg-reconfigure locales
    选中 zh_CN开头的所有文件(空格选中)
    ok后下一界面,选中zh_CN.UTF-8

接下来重新打开会话就能正常使用中文了,不用重启系统。

  • 支持中文vim设置
    修改vim /etc/vim/vimrc
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

顺便改写一下自己的vim配置,一下做参考

set autoindent " 自动缩进
set tabstop=4 " tab键所占的列数
set shiftwidth=4 " tab键宽度
set expandtab " tab转空格
set hlsearch
set laststatus=2
set nu " 显示行号
syntax enable " 打开语法高亮
syntax on " 开启文件类型侦测

colorscheme koehler " 色彩主题 /usr/share/vim/vim74/colors

" set softtabstop=4 " tab键实际占有的列数
" set ts=4 " tab键表示的空格数

时区设置(未测试)

建议用以下命令来做系统时区时间的设置:

sudo dpkg-reconfigure tzdata

不建议修改/etc/timezone文件

rc-local.service

ubuntu 20.04 上没有/etc/rc-local,需要配置系统服务才可生效

修改/lib/systemd/system/rc-local.service文件
添加以下内容:

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

完整文件内容:

#  SPDX-License-Identifier: LGPL-2.1+
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

创建rc.local文件

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# <添加开机启动的脚本>

exit 0

给文件赋可执行权限

chmod a+x rc.local

建议所有命令后面都添加&符号,使其后台运行。
以免阻塞命令或者死循环命令导致系统无法开机。

创建软连接

ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

使其生效

检验

reboot重启后
使用命令查看service是否正常启用

root@ubuntu:~# systemctl list-units --type=service | grep rc-local.service
rc-local.service                     loaded active exited  /etc/rc.local Compatibility

修改apt源

阿里镜像源 https://developer.aliyun.com/mirror/ubuntu/
清华大学镜像源 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

cd /etc/apt/
sudo cp sources.list sources.list.bk
# 修改sources.list内容
sudo apt-get update

阿里的镜像似乎更靠谱…

换阿里源的骚操作

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo apt update
sudo apt upgrade -y

部分需要简单修改一下

sudo sed -i 's/us.archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list

openssh

安装openssh-server

sudo apt-get install -y openssh-server

设置root登录

sudo vim /etc/ssh/sshd_config修改sshd配置文件

 # PermitRootLogin prohibit-password
 PermitRootLogin yes

重启sshd服务
# systemctl restart ssh.service
或者
# service ssh restart

给root设置密码

# passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

搞定。

添加子用户

sudo adduser <子用户名称>

添加sodu权限

方法一

root权限下
visudo
在这一行的下面添加 你操作的用户名 ALL=(ALL) ALL按照上面一行的格式对齐写。

vim /etc/sudoers

进入编辑模式,找到这一 行:“root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL”(这里的xxx是你的用户名),然后保存退出。

方法二 (未验证)
sudo usermod -aG sudo <username>

免密证书登录岂不是更爽

生成公钥(文件名制定为TestServer)
ssh-keygen -t rsa -C "yjkhtddx@sina.com" -f TestServer

~.ssh/config中添加

Host 192.168.1.110
	HostName 192.168.1.110
	User  ubuntu
	Port 22
	IdentityFile ~/.ssh/id_rsa

服务器上安装公钥
ssh-copy-id -i <公钥路径> <服务器用户名>@<服务器IP>
比如
ssh-copy-id -i /mnt/c/Users/fanyujing/.ssh/id_rsa.pub ubuntu@192.168.1.100

或者想办法吧id_rsa.pub内容占到服务器对应的用户目录下的~.ssh/authorized_keys

比如
cat id_rsa.pub >>~/.ssh/authorized_keys

echo “公钥内容” >>~/.ssh/authorized_keys

禁用密码登录

PasswordAuthentication yes 修改为 PasswordAuthentication no

解注(不解应该也行,应该是默认的)

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

重启sshd服务
# systemctl restart ssh.service
或者
# service ssh restart

添加用户并设置管理员权限

sudo adduser <新用户名> 添加用户
sudo adduser <新用户名> sudo 设置管理员权限

修改密码

passwd <用户名>

编译环境

C/C++ 基础

sudo apt-get install -y build-essential

# apt-cache depends build-essential
build-essential
 |依赖: libc6-dev
  依赖: <libc-dev>
    libc6-dev
  依赖: gcc
  依赖: g++
  依赖: make
    make-guile
  依赖: dpkg-dev

gdb

sudo apt-get install -y gdb

# apt-cache depends gdb
gdb
  依赖: libbabeltrace-ctf1
  依赖: libbabeltrace1
  依赖: libc6
  依赖: libexpat1
  依赖: liblzma5
  依赖: libncurses5
  依赖: libpython3.5
  依赖: libreadline6
  依赖: libtinfo5
  依赖: zlib1g
  冲突: gdb
  推荐: <libc-dbg>
    libc6-dbg
  推荐: libcc1-0
  推荐: gdbserver
  建议: gdb-doc
  替换: gdb
  替换: gdb-doc

cmake

sudo apt-get install -y cmake

# apt-cache depends cmake
cmake
  预依赖: dpkg
    dpkg:i386
  依赖: cmake-data
  依赖: procps
    procps:i386
  依赖: libarchive13
  依赖: libc6
  依赖: libcurl3
  依赖: libexpat1
  依赖: libgcc1
  依赖: libjsoncpp1
  依赖: libstdc++6
  依赖: zlib1g
  推荐: gcc
  推荐: make
    make-guile
  建议: codeblocks
  建议: eclipse
  建议: ninja-build

LLVM/Clang

sudo apt-get install clang
sudo apt-get install clang++

版本控制工具

git

sudo apt-get install -y git
git config --global credential.helper store
git config --global pager.branch false
git config --global user.email "yjkhtddx@sina.com"
git config --global user.name "Derek Liu"

subversion

sudo apt install subversion

命令行工具

zsh

sudo apt-get install -y zsh
chsh -s /bin/zsh
sudo vim /etc/passwd

把root的/bin/bash改成/bin/zsh
把账户的/bin/bash改成/bin/zsh

查看当前可用的shell

cat /etc/shells

查看当前的shell
echo $SHELL

oh-my-zsh

sh -c “$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)”

服务器

nginx

sudo apt-get install nginx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值