1.Ubuntu 16.04初始化流程

设置 Root 账户密码

sudo passwd root

设置允许远程登录 Root

首先检查Open SSH 是否安装

apt-cache policy openssh-client openssh-server
vim /etc/ssh/sshd_config

# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password     //注释此行
PermitRootLogin yes                             //加入此行
StrictModes yes

重启服务
service ssh restart

修改国内 APT 数据源

查看Linux版本

lsb_release -a

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04 LTS
Release:	16.04
Codename:	focal

注意: Codename 为 focal,该名称为我们 Ubuntu 系统的名称,修改数据源需要用到该名称

编辑数据源

vi /etc/apt/sources.list

删除全部内容并修改为

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiversec

更新数据源

apt-get update

2.一键部署

如果你觉得这样操作还有些麻烦,在下给您提供了一键部署的功能,请参考博文:
三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署

3.Ubuntu 教程

这个教程个人建议作为字典来用,常用命令记牢,其它的命令需要使用的时候再来查询

3.1.根目录结构

目录说明
bin存放二进制可执行文件(ls,cat,mkdir等)
boot存放用于系统引导时使用的各种文件
dev用于存放设备文件
etc存放系统配置文件 (装软件的配置文件也放这里 eg:Mysql配置文件)
home存放所有用户文件的根目录
lib存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt系统管理员安装临时文件系统的安装点
opt额外安装的可选应用程序包所放置的位置
proc虚拟文件系统,存放当前内存的映射
root超级用户目录
sbin存放二进制可执行文件,只有root才能访问
tmp用于存放各种临时文件
usr用于存放系统应用程序,(比较重要的目录/usr/local 本地管理员软件安装目录)
var用于存放运行时需要改变数据的文件(存放数据库的目录)

3.2.常用命令

3.2.1.文件操作相关

命令说明语法参数参数说明
ls显示文件和目录列表ls [-alrtAFR] [name…]
-l列出文件的详细信息
-a列出当前目录所有文件,包含隐藏文件
mkdir创建目录mkdir [-p] dirName
-p父目录不存在情况下先生成父目录
cd切换目录cd [dirName]
touch生成一个空文件
echo生成一个带内容文件echo abcd > 1.txt,echo 1234 >> 1.txt
cat显示文本文件内容cat [-AbeEnstTuv] [–help] [–version] fileName
cp复制文件或目录cp [options] source dest
rm删除文件rm [options] name…
-f强制删除文件或目录
-r同时删除该目录下的所有文件
mv移动文件或目录mv [options] source dest
find在文件系统中查找指定的文件
-name文件名
grep在指定的文本文件中查找指定的字符串
tree用于以树状图列出目录的内容
pwd显示当前工作目录
ln建立软链接相当于快捷方式
more分页显示文本文件内容
head显示文件开头内容
tail显示文件结尾内容
-f跟踪输出

3.2.2.系统管理

控制台进程:每个应用程序至少需要一个线程

主线程:同步执行

工作线程:异步执行

当内存溢出后,可以将多出的一部分放入磁盘 (这部分称为交换空间),系统性能大幅下降,云服务器没有交换空间的

命令说明
stat显示指定文件的相关信息,比ls命令显示内容更多
who显示在线登录用户
hostname显示主机名称
uname显示系统信息
top显示当前系统中耗费资源最多的进程
ps显示瞬间的进程状态
du显示指定的文件(目录)已使用的磁盘空间的总量
df显示文件系统磁盘空间的使用情况
free显示当前内存和交换空间的使用情况
ifconfig显示网络接口信息
ping测试网络的连通性
netstat显示网络状态信息
clear清屏
kill杀死一个进程

3.2.3.压缩与解压缩

tar
命令语法参数参数说明
tartar [-cxzjvf] 压缩打包文档的名称 欲打包目录
-c建立一个归档文件的参数指令
-x解开一个归档文件的参数指令
-z是否需要用 gzip 压缩
-j是否需要用 bzip2 压缩
-v压缩的过程中显示文件
-f使用档名,在 f 之后要立即接档名
-tf查看归档文件里面的文件
  • 压缩文件夹:tar -zcvf test.tar.gz test\
  • 解压文件夹:tar -zxvf test.tar.gz
gzip
命令语法参数参数说明
gzipgzip [选项] 压缩(解压缩)的文件名
-d解压缩
-l对每个压缩文件,显示压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字
-v对每一个压缩和解压的文件,显示文件名和压缩比
-num用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6

说明:压缩文件后缀为 gz(压缩算法)

bzip2
命令语法参数参数说明
bzip2bzip2 [-cdz]
-d解压缩
-z压缩参数
-num用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6

说明:压缩文件后缀为 bz2(压缩算法)

3.2.4.APT软件包管理

安装软件包
apt-get install packagename
删除软件包
apt-get remove packagename
apt-get autoremove packagename  (删除软件的依赖)
更新软件包列表
apt-get update
升级有可用更新的系统(慎用)
apt-get upgrade
搜索
apt-cache search package
获取包信息
apt-cache show package
删除包及配置文件
apt-get remove package --purge
了解使用依赖
apt-cache depends package
查看被哪些包依赖
apt-cache rdepends package
安装相关的编译环境
apt-get build-dep package
下载源代码
apt-get source package
清理无用的包
apt-get clean && apt-get autoclean
检查是否有损坏的依赖
apt-get check

3.3.编辑器

3.3.1.Vi

linux 自带的命令行编辑器,建议使用vim替代

3.3.2.Vim

运行模式

编辑模式:等待编辑命令输入

插入模式:编辑模式下,输入 i 进入插入模式,插入文本信息

命令模式:在编辑模式下,输入 : 进行命令模式

命令

:q 直接退出vi

:wq 保存后退出vi ,并可以新建文件

:q! 强制退出

:w file 将当前内容保存成某个文件

:set number 在编辑文件显示行号

:set nonumber 在编辑文件不显示行号

3.3.3.nano

nano 是一个字符终端的文本编辑器,有点像 DOS 下的 editor 程序。它比 vi/vim 要简单得多,比较适合 Linux 初学者使用。某些 Linux 发行版的默认编辑器就是 nano。

命令
  • 保存:ctrl + o
  • 搜索:ctrl + w
  • 上一页:ctrl + y
  • 下一页:ctrl + v
  • 退出:ctrl + x

3.4.用户和组管理

Linux 操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。在实际生产操作中,我们基本上都是使用超级管理员账户操作 Linux 系统,也就是 Root 用户,Linux 系统默认是关闭 Root 账户的,我们需要为 Root 用户设置一个初始密码以方便我们使用

3.4.1.用户说明

普通用户

普通用户在系统上的任务是进行普通操作

超级管理员

管理员在系统上的任务是对普通用户和整个系统进行管理。对系统具有绝对的控制权,能够对系统进行一切操作。用 root 表示,root 用户在系统中拥有最高权限,默认下 Ubuntu 用户的 root 用户是不能登录的。

切换到root用户

su
安装时创建的系统用户

此用户创建时被添加到 admin 组中,在 Ubuntu 中,admin 组中的用户默认是可以使用 sudo 命令来执行只有管理员才能执行的命令的。如果不使用 sudo 就是一个普通用户

3.4.2.组说明

标准组

当创建一个用户时可以选定一个标准组,如果一个用户同时属于多个组时,登录后所属的组为主组,其他的为附加组。

私有组

当创建一个用户时没有指定属于哪个组,Linux 就会建立一个与用户同名的私有组,此私有组只含有该用户。

3.4.3.账户系统文件

/etc/passwd

每一行代表一个账号,众多账号是系统正常运行所必须的,例如 bin,nobody 每行定义一个用户账户,此文件对所有用户可读。每行账户包含如下信息:

root:x:0:0:root:/root:/bin/bash
  • 用户名: 就是账号,用来对应 UID,root UID 是 0。
  • 口令: 密码,早期 UNIX 系统密码存在此字段,由于此文件所有用户都可以读取,密码容易泄露,后来这个字段数据就存放到 /etc/shadow 中,这里只能看到 X。
  • 用户标示号(UID): 系统内唯一,root 用户的 UID 为 0,普通用户从 1000 开始,1-999 是系统的标准账户,500-65536 是可登陆账号。
  • 组标示号(GID): 与 /etc/group 相关用来规定组名和 GID 相对应。
  • 注释: 注释账号
  • 宿主目录(主文件夹): 用户登录系统后所进入的目录 root 在 /root/itcast
  • 命令解释器(shell): 指定该用户使用的 shell ,默认的是 /bin/bash
/etc/shadow

为了增加系统的安全性,用户口令通常用 shadow passwords 保护。只有 root 可读。每行包含如下信息:

root:$6$Reu571.V$Ci/kd.OTzaSGU.TagZ5KjYx2MLzQv2IkZ24E1.yeTT3Pp4o/yniTjus/rRaJ92Z18MVy6suf1W5uxxurqssel.:17465:0:99999:7:::
  • 账号名称: 需要和 /etc/passwd 一致。

  • 密码:

    经过加密,虽然加密,但不表示不会被破解,该文件默认权限如下:

    • -rw------- 1 root root 1560 Oct 26 17:20 passwd-
    • 只有root能都读写
  • 最近修改密码日期: 从1970-1-1起,到用户最后一次更改口令的天数

  • 密码最小时间间隔: 从1970-1-1起,到用户可以更改口令的天数

  • 密码最大时间间隔: 从1970-1-1起,必须更改的口令天数

  • 密码到期警告时间: 在口令过期之前几天通知

  • 密码到期后账号宽限时间

  • 密码到期禁用账户时间: 在用户口令过期后到禁用账户的天数

  • 保留

/etc/group

用户组的配置文件

root:x:0:
  • 用户组名称
  • 用户组密码: 给用户组管理员使用,通常不用
  • GID: 用户组的ID
  • 此用户支持的账号名称: 一个账号可以加入多个用户组,例如想要 itcast 加入 root 这个用户组,将该账号填入该字段即可 root❌0:root, icast 将用户进行分组是 Linux 对用户进行管理及控制访问权限的一种手段。一个中可以有多个用户,一个用户可以同时属于多个组。该文件对所有用户可读。
/etc/gshadow

该文件用户定义用户组口令,组管理员等信息只有root用户可读。

root:\*::
  • 用户组名
  • 密码列
  • 用户组管理员的账号
  • 用户组所属账号

3.4.4.账户管理常用命令

1.增加用户
useradd 用户名
useradd -u (UID号)
useradd -p (口令)
useradd -g (分组)
useradd -s (SHELL)
useradd -d (用户目录)

如:useradd lusifer

增加用户名为 lusifer 的账户

2.修改用户
usermod -u (新UID)
usermod -d (用户目录)
usermod -g (组名)
usermod -s (SHELL)
usermod -p (新口令)
usermod -l (新登录名)
usermod -L (锁定用户账号密码)
usermod -U (解锁用户账号)

如:usermod -u 1024 -g group2 -G root lusifer

将 lusifer 用户 uid 修改为 1024,默认组改为系统中已经存在的 group2,并且加入到系统管理员组

3.删除用户
userdel 用户名 (删除用户账号)
userdel -r 删除账号时同时删除目录

如:userdel -r lusifer

删除用户名为 lusifer 的账户并同时删除 lusifer 的用户目录

4.组账户维护
groupadd 组账户名 (创建新组)
groupadd -g 指定组GID
groupmod -g 更改组的GID
groupmod -n 更改组账户名
groupdel 组账户名 (删除指定组账户)
5.口令维护
passwd 用户账户名 (设置用户口令)
passwd -l 用户账户名 (锁定用户账户)
passwd -u 用户账户名 (解锁用户账户)
passwd -d 用户账户名 (删除账户口令)
gpasswd -a 用户账户名 组账户名 (将指定用户添加到指定组)
gpasswd -d 用户账户名 组账户名 (将用户从指定组中删除)
gpasswd -A 用户账户名 组账户名 (将用户指定为组的管理员)
6.用户和组状态
su 用户名(切换用户账户)
id 用户名(显示用户的UID,GID)
whoami (显示当前用户名称)
groups (显示用户所属组)

3.5.文件权限管理

说明

文档大小:默认是 bytes

文档所属:就是文档属于哪个用户和用户组。文件所属用户和组是可以更改的

连接数:指有多少个文件指向同一个索引节点

3.5.1.文档类型

  • d 表示目录
  • l 表示软连接
  • 表示文件
  • c 表示串行端口字符设备文件
  • b 表示可供存储的块设备文件
  • 余下的字符 3 个字符为一组。r 只读,w 可写,x 可执行,- 表示无此权限

3.5.2.文件和目录的权限分析

ls –al使用 ls 不带参数只显示文件名称,通过ls –al` 可以显示文件或者目录的权限信息。

ls -l 文件名 显示信息包括:文件类型 (d 目录,- 普通文件,l 链接文件),文件权限,文件的用户,文件的所属组,文件的大小,文件的创建时间,文件的名称

-rw-r--r-- 1 hello tom 675 Oct 26 17:20 .profile
  • -:普通文件
  • rw-:说明用户 tom 有读写权限,没有运行权限
  • r--:表示用户组 tom 只有读权限,没有写和运行的权限
  • r--:其他用户只有读权限,没有写权限和运行的权限
-rw-r–r--1lusiferlusifer675Oct 26 17:20.profile
文档类型及权限连接数文档所属用户文档所属组文档大小文档最后被修改日期文档名称
-rw-r–r–
文档类型文档所有者权限(user)文档所属用户组权限(group)其他用户权限(other)

3.5.3.更改文件权限

chown

是 change owner 的意思,主要作用就是改变文件或者目录所有者,所有者包含用户和用户组

chown [-R] 用户名称 文件或者目录
chown [-R] 用户名称 用户组名称 文件或目录

-R:进行递归式的权限更改,将目录下的所有文件、子目录更新为指定用户组权限

chmod

改变访问权限

chmod [who] [+ | - | =] [mode] 文件名
who

表示操作对象可以是以下字母的一个或者组合

  • u:用户 user
  • g:用户组 group
  • o:表示其他用户
  • a:表示所有用户是系统默认的
操作符号
  • +:表示添加某个权限
  • -:表示取消某个权限
  • =:赋予给定的权限,取消文档以前的所有权限
数字设定法

数字设定法中数字表示的含义

  • 0 表示没有任何权限
  • 1 表示有可执行权限 = x
  • 2 表示有可写权限 = w
  • 4 表示有可读权限 = r

也可以用数字来表示权限如 chmod 755 file_name

r w xr – xr - x
4 2 14 - 14 - 1
usergroupothers

若要 rwx 属性则 4+2+1=7

若要 rw- 属性则 4+2=6

若要 r-x 属性则 4+1=5

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐