基础

简介

所有的linux发行版都是基于不同版本的内核(Kernel)进行开发的。

家族图谱如下。

vm安装centos

  • 处理器分配
    根据宿主机,比如我是1个cpu,8个核心,你就可以分配1个cpu,4个核心,根据具体需要。

  • 分区
    boot(引导): 1G。
    swap(交换): 与分配的内存大小保持一致。
    \(根分区):吃光剩下的。

  • Kdump选项 :在生产环境要打开

  • 网络连接的三种方式

  • 克隆
    直接复制文件:D:\VMware\Virtual Machines\study_centos7.6
    使用vm的克隆功能

  • 快照:存档

  • 迁移和删除
    可以直接对文件夹操作

  • vmtool
    可以让linux和windows共享文件夹
    配置在: 设置->选项->共享文件夹
    linux查看位置: 主文件夹->计算机->其他位置->mnt->hgfs文件夹下

目录结构(重要)

在linux中,一切皆文件

目录 作用
/bin 存放基本命令
/sbin s(super user),存放系统管理员使用的系统管理程序
/home 存放普通用户的主目录,一个用户一个子目录
/root 系统管理员的主目录
/lib 系统开机所需要的最基本的动态链接共享库
/lost+found 一般为空,系统非法关机后,存放一些文件
/etc 所有系统管理所需要的配置文件和子目录,如安装mysql数据库 my.conf
/usr 用户很多应用程序和文件都放置在这个目录下,类似windows下的program files目录
``/boot` 存放启动linux时使用的一些核心文件,包括链接文件和镜像
/proc 虚拟目录,系统内存的映射,访问该目录获取系统信息
/srv service,存放服务启动之后需要提取的数据
/sys 安装了2.6内核中新增的文件系统 sysfs
/tmp 用来存放临时文件
/dev 类似windows设备管理器,把所有硬件用文件形式存储
/media linux会自动识别一些设备(u盘,光驱),识别后,会把识别的设备挂挂载到此目录下
/mnt 让用户临时挂在别的文件系统的,可以将外部存储挂在在/mnt/下(与windows文件共享)
/opt 给主机额外安装软件所存放的目录,如安装ORACLE数据库就可以放进该目录下,默认为空
/usr/local 另一个给主机额外安装软件目录,一般是通过源码方式安装的程序
/var 存放不断扩充着的文件,习惯将经常被修改的目录放在此目录下。包括各种日志文件
/selinux [security-enhanced linux] SELinux是一种安全子系统,能控制程序只能访问特定文件,有三种工作模式,可以自行设置

远程连接linux

  • 查看linux的ip地址

  • 测试windows下是否能ping通

  • xbash配置

vi vim使用

vim是vi的增强版本

三种常用模式:
正常模式:用vim打开一个文档就进入了,可以使用上下左右,删除字符和删除整行来处理内容,也可使用复制粘贴。
插入模式:按下i进入编辑模式
命令行模式:提供相关命令,完成读取,存盘,替换,离开vim,显示行号等动作。

1
2
3
4
vim Hello.java

# 按i进入编辑模式,向Hello.java文件写入内容
# 按ESC 然后 :wq 保存文件并退出

vim快捷键速查

关机重启,用户登录注销

关机重启

在关机前先执行sync命令,保证数据不丢失。

1
2
3
4
5
6
shutdown -h now  # 立刻关机
shutdown -h 1 # 1分钟后关机
shutdown -r now # 现在重新启动计算机
halt # 关机同上
reboot # 现在重新启动计算机
sync # 同步内存数据到磁盘

用户登录注销

1
2
su -u tom   # 切换用户
logout # 注销当前用户(只在命令行生效)

用户管理

单用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 添加用户
useradd 用户名 #添加用户
useradd -d 指定目录 新的用户名 #添加用户并指定目录

# 给指定用户添加密码
passwd 用户名

# 删除用户
userdel tom # 删除用户tom,但保留/home/tom
userdel -r tom # 删除用户tom和/home/tom文件夹

# 查询用户信息
id tom # uid=1000(tom) gid=1000(tom) 组=1000(tom)
id aaa # id: aaa: no such user

# 切换用户
su - 切换用户名
exit/logout # 切换回原来用户

# 查看当前用户/登录用户
whoami / who an i # 只会返回第一次登录的账号

用户组

操作

对具有相同特性的用户分组进行统一管理

1
2
3
4
5
6
7
8
9
10
11
12
# 新增组
groupadd 组名

# 删除组
groupdel 组名

# 增加用户时直接加上组(组要存在)
# 默认创建用户的话,会同时生成一个同名的组
useradd -g 用户组 用户名

# 修改用户的组
usermod -g 用户组 用户名
用户和组相关文件
  • /etc/passwd文件: 用户(user)的配置文件,记录用户各种信息
1
2
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
tom:x:1000:1000:tom:/home/tom:/bin/bash
  • /etc/shadow文件 口令的配置文件
1
2
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
jack:$6$GJiaszA/:19976:0:99999:7:::
  • /etc/group文件 组(group)的配置文件,记录linux包含的组的信息
1
2
3
组名:口令:组标识号:组内用户列表
wudang:x:1004:
mojiao:x:1005:

实用指令

指定运行级别

1
init [0123456]

运行级别:
0:关机
1:单用户[可找回丢失密码]
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用的运行级别是3和5

指定默认运行级别

1
2
3
4
5
6
7
8
multi-user.target # analogous to runlevel 3
graphical.target # analogous to runlevel 5

# 获取默认运行级别
systemctl get-default

# 设置默认运行级别
systemctl set-default TARGET.target

帮助指令

  • man 获得帮助信息
1
2
man [命令或配置文件]
man ls
  • help 获得shell内置命令的帮助信息
1
help cd

文件目录类