一 linux各发行版及其联系与区别
1. slackware:SUSE Linux Enterprise Server (SLES) , OpenSuse桌面
2. debian: ubuntu,deepin(深度),mint
3. redhat
3.1 RHEL: RedHat Enterprise Linux, 每18个月发行一个新版本
2018年IBM收购红帽公司
3.2 CentOS:Community Enterprise Operating System 兼容RHEL的格式
2020年12月8日IBM宣布支持到2029年的CentOS 8,提前到2年内终结,那就是2022年12月,CentOS将正式死亡。CentOS精神永存
随后以CentOS创始人之一Gregory Kurtzer为首,计划以创建Rocky Linux(Rocky为已经逝世的另外一个CentOS创始人)取代CentOS。Rocky Linux与RHEL兼容目前已经创建了Github Rocky Linux项目组织(github.com/rocky-linux/rocky)和官网(rockylinux.org)。
3.3 中标麒麟:中标软件
3.4 Fedora:每6个月发行一个新版本
4. Alpine: 一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musllibc和busybox 以减小系统的体积和运行时资源消耗,但功能上比busybox又完善的多,只有5M左右大小
ArchLinux:轻量简洁,遵循K.I.S.S.原则( keep it simple and stupid ),Manjaro
Gentoo:极致性能,不提供传统意义的安装程序,下载源代码在本机上编译安装软件
LFS:Linux From scratch 自制Linux,只是一个说明书
Android:kernel+busybox(工具集)+java虚拟机
二 CentOS 7.9、Ubuntu安装过程记录
镜像文件,一般用阿里云,网易云,搜狐,清华大学这几个站点,以下为详细:
CentOS
https://wiki.centos.org/Download
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
https://mirrors.tuna.tsinghua.edu.cn/centos/
centos官网下载: https://vault.centos.org
Ubuntu
http://cdimage.ubuntu.com/releases/ Server版
https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/releases/
http://releases.ubuntu.com/ Desktop版
http://mirrors.aliyun.com/ubuntu-releases/
https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/
CentOS 7.9下载
镜像里面的内容解释:
Everything 最大化安装
Minimal 最小化安装
1810 内核编译的次数
torrent 种子,下载的块
network 网络安装
sha256sum.txt 校验码
CentOS 7.9安装
CentOS 8.5
Ubuntu 18.04.6下载(如下是清华大学镜像站)
Ubuntun 18.04.6安装
1. 学习阶段网络设置
最后continue,启动Ubuntu系统
3.配置环境变量,实现执行history的时候可以看到执行命令的时间
默认情况
持久保存变量可以使用export 变量名="值"的形成保存在/etc/profile或者/.bash_profile中
export HISTTIMEFORMAT = "%F %T " T后加空格,显示更清晰
HISTTIMEFORMAT="%F %T `whoami` " 显示时间和用户
如下
4. Linux的哲学思想总结
① 一切皆文件(包括硬件)
②小型,单一用途的程序
③链接,多个功能单一的程序组合执行复杂的任务
④命令行操作,更直接稳定。避免图形界面引起的困扰和问题
⑤配置数据存储在文本中(修改配置就是修改对应程序的配置文件)
5. Linux常用命令使用
1. tty 查看当前虚拟终端
[16:39:06 root@centos8 ~][#tty
/dev/pts/0
2. hostname 主机名设置
hostname NAME 临时生效
hostnamectl set-hostname NAME 持久生效
注意:主机名不支持下划线,但是支持横线,使用字母、横线、数字组合;有些软件有特殊要求
范例
3. type 区别指定的命令是内部或者外部命令
范例
4. which whereis 查看路径
which 找PATH变量中指定的路径,返回第一个
whereis 用来定位命令的二进制程序、源代码文件和man手册页等相关文件的路径。速度快,内部维护的数据库来查,有延迟不准确
范例
5. alias 别名
alias name=”NAME“
unalias [-a] name
持久保存别名
当前用户有效 ~/,bashrc
所有用户有效 /etc/bashrc
与原有命令重名,则原命令被覆盖,执行\COMMAND
6. lscpu 查看cpu信息
cat /proc/cpuinfo
7. free 查看内存信息
cat /proc/meminfo
8. 查看硬盘和分区情况
lsblk
9. arch 查看系统架构
arch
10. uname 显示系统相关信息,比如主机名、内核版本号、硬件架构等
11. date 显示和设置系统时间
clock 硬件时钟
cal 显示日历 cal 9 1752
12. 关机 halt/poweroff 重启 reboot
13. 用户登录信息查看命令
who 系统当前所有的登录会话
whoami who am i 显示当前登录有效用户
w 系统当前所有的登录会话及所作的操作
14. nano 文本编辑工具
15. screen、Tmux会话管理工具
screen
查看当前会话
tmux 终端复用器,启用 tmux,退出exit
快捷键众多,前置键ctrl + b
新建会话 tmux new -s
分离会话 tmux detach或者ctrl b,d
查看会话 tmux ls或者tmux list-session
杀死会话 tmux kill-session -t
如 tmux kill-session -t 0
16. echo 将输入的字符串送往标准输出
语法 echo [neE] 字符串
选项
-E (默认)不支持\的解释功能
-n 不自动换行
-e 启用\的解释功能
显示变量
echo "$VAR_NAME" 用变量值替换,弱引用
echo '$VAR_NAME' 变量不会替换,强引用
范例
17. 获取帮助
whatis 使用数据库来显示命令的简短描述
内部命令查看
help COMMAND
外部命令查看
COMMAND --help / -h
man
man命令会列出一份完整的说明。 其内容包括命令语法、各选项的意义及相关命令 。更为强大的是,不仅可以查看Linux中命令的使用帮助,还可以查看软件服务配置文件、系统调用、库函数等帮助信息。
6.Linux发行版的系统目录名称命名规则以及用途
命令规则
大小写敏感
.开头的为隐藏文件
路径分隔符/(斜线),对比与windows上的\(反斜线)
文件名最长255各字节
颜色划分,蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
b: block device,随机访问
c: character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
bin: 保证系统拥有完整功能而提供的应用程序
sbin:
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share
/var: variable data files
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置