linux
内核版本
网址: https://www.kernel.org/
发行版本
使用 Centos,免费且稳定
安装虚拟机
VirtualBox
网址: https://www.virtualbox.org/wiki/Downloads
mac 系统选择 OS X hosts
点击会下载 VirtualBox 的 dmg 文件
点击打开, 根据提示来进行下载
安装 CenterOS
网址: https://www.centos.org/download/
国内镜像参考: https://zhuanlan.zhihu.com/p/273218413
安装: http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
我的安装地址是: http://mirrors.aliyun.com/centos/7/isos/x86_64/
安装的是 CentOS-7-x86_64-DVD-2009.iso
新建虚拟机
点击新建,按照默认的设置一步步确定即可
加载下载的安装镜像
点击设置 -> 点击存储 -> 选择控制器(没有盘片) -> 点击右侧的分配光驱 -> 选择一个虚拟光驱文件(点击选择刚刚下载的 centos iso 文件) -> 左边的盘片发生变化,变成我们选择的虚拟光驱文件 -> 点击 ok
启动虚拟机
点击启动 -> 打开系统偏好设置(根据提示操作即可, 勾选 VirtualBox)
点击启动的时候遇到一个问题(其实是在安装的时候有一个系统偏好设置询问,当时我选择了拒绝):
Kernel driver not installed (rc=-1908) Make sure the kernel module
解决办法:
- 打开系统偏好设置>安全性与隐私
- 会有一行 Oracle 的权限授权,点击允许
- 重启 mac
- 虚拟机可以正常启动
- 选择语言, 中文简体
- 开全屏, 退出按 Ctrl + F, 菜单隐藏了, 显示按 Ctrl + home
启动虚拟机后
- 点击分区, 安装默认的自动分区(一定要保证现有数据的安全), 点击安装
- 软件选择 -> GNOME 桌面(图形桌面) -> 安装(我没有这一步)
- 开始安装(下面进度条显示安装)
- 设置 root 密码: xuan
- 完成配置, 点击重启
- 登录(root -> xuan)
- 发现我没有安装图形桌面
如果安装了图形界面
- 选择语言, 输入法, 时区
- 设置用户(可以使用 root), 或者设置自己的, 那这样就有两个用户
- 那这样就登录完成了
问题: 图形界面有点小
解决: 应用程序 -> 系统工具 -> 设置 -> 设备 -> Display -> 可以调大分辨率 -> 保留更改
问题: 终端字体有点小
解决: 应用程序 -> 终端 -> 编辑 -> 首选项 -> 字体 -> 设置字体 -> 选择(也可以去修改颜色等等)
第一次启动
如果安装了图形界面, 想切换到终端, 可以点击应用程序 -> 终端 -> init 3
如果觉得终端界面小, 可以点击下方的电脑图标, 选择 screen 来进行放大
进行登录
如果登录后闪烁的光标前为 $, 则说明登录的是一个普通用户
如果登录后闪烁的光标前为 #, 则说明登录的是一个 root 用户
可以使用 exit 退出登录
终端的使用
- 图形终端
- 命令后终端
- 远程终端(SSH, VNC)
常用的目录结构介绍
终端执行 ls / : 会显示根目录下的文件夹字符
/ 根目录
/root root 用户的家目录
/home/username 普通用户的家目录
/etc 配置文件目录
/bin 命令目录
/sbin 管理命令目录
/usr/bin /usr/sbin 系统预装的其他命令
关机
通常 linux 作为服务器端的是不需要关机的, 但是如果需要关机可以执行 init 0
万能的帮助命令
man
help
info
使用网络资源(搜索引擎和官方文档)
man
man ls: 获取某条命令的帮助
man man: 获取 man 的帮助
man 1 passwd: 获取某条命令第一页的帮助
help
shell 自带的命令为内部命令, 否则为外部命令
内部命令:
help cd
外部命令:
ls --help
info
初识 pwd 和 ls 命令
在 linux 中, 一切皆文件
- 文件查看
- 目录文件的创建和删除
- 通配符
- 文件操作
- 文件内容查看
文件查看(都可以使用 man 命令来查看对应的帮助信息)
pwd: 显示当前的目录名称
cd: 更改当前的操作路径
ls: 查看当前目录的文件
su - root: 切换到 root 用户
clear: 清空终端
ls 命令
man ls: 获取帮助信息
ls / /root: 获取 / 和 /root 文件夹列表
ls -l: 长格式显示文件(会显示很多文件信息), 前面以 - 开头的为文件, 以 d 开头的为文件夹
ls -l -a: 会显示所有文件,包括隐藏文件(以 . 开头的则为隐藏文件)
ls -l -r: 以逆向的顺序进行排序
ls -l -r -t(合并: ls -lrt): 以时间逆向的顺序进行排序
ls -R(所以 linux 命令是区分大小写的): 递归显示, 当一个文件夹中还有其他文件的时候会进行显示
cd 命令
使用 help cd 查看帮助命令
更改当前的操作目录
linux 中有目录补全功能, 当我们输入了大部分路径的时候, 按 Q 边上的 Tab 键会进行补全
cd -: 回到之前的目录
cd …/: 进入上级目录
cd /path: 绝对路径
cd …/(cd ./): 相对路径
创建或删除目录
touch: 创建文件
mkdir: 创建目录
man mkdir: 获取帮助信息
mkdir /a: 绝对路径
mkdir a: 相对路径
mkdir -p /a/b/c/d/e: 创建多级目录
rmdir: 删除目录(只能删除空白的目录, 如果目录下有空白的文件夹也不能删除成功)
rm -r: 删除目录(可以删除有内容的目录, 但是每一个目录都会确认一遍)
ctrl + c: 可以结束当前正在执行的命令
rm -r -f(rm -rf): 删除目录(可以删除有内容的目录, 不会进行提示, 有一定危险性)
复制和移动目录
cp(copy 的缩写): 复制文件
cp -r: 复制目录
cp -v: 显示复制路径
cp -p: 保留原有的时间
cp -a: 保留原有的文件信息
mv: 移动或改名
eg:
- mv 01 02, 则 01 文件夹就改名为 02 了
- mv 01 02, 如果 02 是已经存在的文件夹, 就会把 01 移动到 02 文件夹下
- 如果要移动又要改名, 则 mv 01 02/03, 则会把 01 移动到 02 文件夹下并改名为 03
*: 通配符 mv * 01: 把所有文件都移动到 01 中
ls file*: 匹配 filea fileb filecc 等文件
ls file?: 匹配 filea fileb
通配符可以帮助我们操作有一定规律的文件或者目录
如何在 linux 下进行文本查看
cat: 文本内容显示到终端
head( head -5 查看前面 5 行): 查看文件开头
tail( tail -5 查看结尾 5 行): 查看文件结尾
常用参数 -f 文件内容更新后, 显示信息同步更新, 可以使用 ctrl + c 退出
wc: 统计文本内容信息
打包压缩和解压缩
linux 的备份命令
压缩
tar cf /test /etc: 把 etc 文件夹打包到 test 文件夹
ls -l test: 查看打包出来的文件信息
ls -lh test: 文件打包出来的文件以 M 显示, 如果到 G 则以 G 显示
也可以使用 gzip 和 bzip2 进行压缩, 只是 tar 已经把这两个命令集成进去了
如果要使用 gzip, 可 tar czf /test /etc(压缩的速度更快)
如果要使用 bzip2, 可 tar cjf /test /etc(压缩的比例更大)
解压缩
tar xf test: 解压缩
tar xf test -C 01: 解压缩并把文件放在 01 目录下
如果要使用 gzip, 可 tar zxf test
如果要使用 bzip2, 可 tar jxf test
Vim
多模式文本编辑器
多模式产生的原因
四种模式
1. 正常模式
敲 vi 进入编辑器, 如 vi 01.js 打开 01.js
输入文本, 敲 esc 退回到正常模式
2. 插入模式
敲 i, 在当前光标的位置进入输入模式 / 敲 a, 在当前光标的位置后面进入输入模式 / 敲 A, 在当前光标的位置行最后面进入输入模式 / 敲 o, 在当前光标的位置行下一行进入输入模式, 原来的行会依次向下移动 / 敲 O, 在当前光标的位置行上一行进入输入模式
3. 命令模式
hjkl(上下左右箭头也 ok): 左下右上
yy: 复制整行, p 粘贴
3yy: 复制多行, 从当前光标行到下面共三行, 左下脚会有提示信息, p 粘贴
y$: 复制当前光标位置到这行结尾
dd: 剪切一整行, p 粘贴
5dd: 剪切 5 行
d$: 剪切光标到这行结尾, p 粘贴
u: 进行撤销, 每按一次 u 键之前的操作就会撤销一次
ctrl + r: 把撤销指令进行重做
x: 删除某个字符
移动到指定字符, 按 r 键, 再输入新的字符: 替换某个字符
:set 设置 vim 编辑器, 但是只有在本次编辑中有效, 下次打开就失效了, 那可以在 /etc/vimrc 来修改 vim 编辑器的配置文件, 在最后一行进行添加, 如果想显示数字, 则在最后一行加上 set nu 即可
:set nu 显示行数, :set nonu 不显示行数
3g: 移动到第三行
^: 移动到开头
$: 移动到结尾
:w 保存模式
:q 退出
:w /test : 保存模式, 会把文件保存到 test 目录下
:wq 保存并退出
按 esc 然后按 :q! 不保存退出
:! 执行某条命令 : 用于需要在当前状态但是需要查看或者执行某条命令, 比如 ipconfig, 那执行 :! ipconfig 来查找 ip 地址
/x : 查找 x 字符, 如果有多个字符, 可以按 n 来查找下一个字符, 按 shift + n 来查找上一个字符
😒 : 针对光标所在的这一行进行替换, 比如 😒/x/X 把当前行的 x 替换成 X
:%s : 全部替换, 比如 :%s/x/X/g 把 x 替换成 X
:set nohlsearch : 取消查找的高亮显示
3,5s/x/X : 把 3 到 5 行之前的 x 替换成 X
4. 可视模式
v : 字符可视模式, 移动光标对字符
shift v : 行可视模式, 移动光标对行
ctrl v : 块可视模式
d: 删除
用户和用户组管理及密码管理
用户管理常用命令
useradd: 新建用户
userdel: 删除用户
passwd: 修改用户密码
usermod: 修改用户属性
chage: 修改用户属性
可以根据 id 用户名来确定是否有某个用户
eg.
useradd xuan
id xuan
ls /home/xuan
ls -a /home/xuan
tail -10 /etc/passwd(tail -10 /etc/shadow) 在这个文件中包含了 xuan, 所以在这个系统中有这个用户
passwd xuan 修改 xuan 用户的密码
passwd 修改自身用户的密码
userdel -r xuan 删除 xuan 用户和它的家目录, 如果不加 -r, 则不会删除家目录
usermod -d /home/yu xuan 把 xuan 的家目录放在 /home/yu 里面
groupadd group1 新建一个 group1 组
usermod -g group1 xuan 修改 xuan 用户的组为 group1
useradd -g group1 yu 新建一个 yu 用户, 同时加入到 group1 中
su - : 切换用户并且把当前的环境进行切换
su 和 sudo 命令的区别和使用方法
su 切换用户
su - username 使用 login shell 方式切换用户
sudo 以其他用户身份执行命令
visudo 设置需要使用 sudo 的用户(组)
在文件中添加 user ALL=/shutdown -c 就可以让 user 用户拥有 /shutdown 的命令
用户和用户组的配置文件
vi /etc/passwd
xuan❌1000:1000::/home/xuan:/bin/bash
用户名:是否需要密码:用户 id(如果改为 0 则拥有 root 用户权限):分组 id::家目录:目录解释器
/etc/shadow
保存用户的用户名密码信息
用户名:加密后的密码信息
/etc/group
保存用户的分组信息
用户名:组 id
文件与目录权限的表示方法
- 查看文件权限 ls -l
-r w ------- 1 root root 1523 sep 28 12:05 anaconda-ks.cfg
类型 权限 所属用户和组 文件名
文件类型
-
- 普通文件
- d 目录文件
- b 块特殊文件
- c 字符特殊文件
- l 符号链接
- f 命名管道
- s 套接字文件
文件权限的表示方法
字符权限表示方法
- r 读
- w 写
- x 执行
数字权限的表示方法
- r = 4
- w = 2
- x = 1
目录权限的表示方法
- x 进入目录
- rx 显示目录内的文件名
- wx 修改目录内的文件名