第一周、Linux历史及发行版本
Linux历史及发行版本
Linux发行版
1991年Torvalds在GPL框架下发布类Unix的内核,可以运行Unix软件及GNU软件,由于可以免费使用,在网络上迅速的流行开来。完整的Linux操作系统由Linux内核和GNU工具组成,Linux是一款完整的类Unix操作系统。
Linux发行版都是在Linux内核基础上进行二次编译后发布的版本
主要发行版 | 代表操作系统 | 不同点 |
---|---|---|
Slackware | SUSE | 商业版 ,小众专业服务器系统 |
Debian | Ubuntu | Ubuntu更新较快,GUI优异,易于使用 |
Redhat | RHEL | 商业版,更新较慢,注意稳定, |
CentOS | RHEL社区版,企业主要使用 | |
Fedora | Fedora相当于RHEL的测试版,6个月更新 | |
Android | 安卓手机 | kernel+busybox(工具集)+Java虚拟机 |
LFS | 自制系统 | 根据LFS文档自制Linux操作系统 |
安装Centos7.6
centos配置
使用VMware Workstation Pro 15软件安装系统,VMare软安装及创建Centos7.6虚拟机的过程不再描述,centos系统配置如下:
名称 | 大小 | 备注 |
---|---|---|
内存 | 1G | |
硬盘 | 200G | |
/ | 100G | mount /sda1 |
/boot | 1G | mount /sda2 |
swap | 2G | mount /sda3 |
/data | 500G | mount /sda5 |
安装过程
1、点击开启此虚拟机,出现如下画面,点击Install CentOS 7 进入安装程序。
2、本系统默认使用English进行安装,以下界面默认选择English ,点击Continue 继续安装
3、进入如下界面,依次点击相关设置
3.1、点击DATE & TIME ,设置Region为Asia , City 为Shanghai,点击Done确认
3.2、点击SOFTWARE SELECTION ,选择GNOME Desktop
3.3、 点击INSTALLATION DESTINATION ,进入后如下图,选择I will configure partitioning ,确认Done 后进入分区设置
3.4点击+ ,选择Standard Partition
3.5挂载点 Mount Point选择/,Desired Capacity 输入大小100G
3.6挂载点 Mount Point选择/boot,Desired Capacity 输入大小1G
3.7挂载点 Mount Point选择swap,Desired Capacity 输入大小2G
3.8挂载点 Mount Point输入/data,Desired Capacity 输入大小50G
3.9设置完成后如下图,选择Done确认
3.10选择Accept Change ,将分区写入磁盘
4、点击KDUMP,不选中Enable kdump ,点击Done
5、点击NETWORK & HOSTNAME , hostname处修改为Centos7.localdomain,Ethernet 点击为ON
6、其余设置保持默认设置,点击Begin Installation 进行安装
7、安装过程中点击ROOT PASSWORD 设置root密码,点击USER CREATION 新增用户wang及密码,安装完成后点击Reboot 重启系统
8、重启系统后进入界面如图,点击LICENSE INFORMATION
8.1、进入后选中I accept the license agreement,点击Done,返回后点击 FINISH CONFIGURATION 完成系统安装
history命令
系统会保存用户输入的历史命令,保存在~/.bash_history文件中
登录shell时,系统会自动读取~/.bash_history中的命令
登录shell后新执行的命令只会记录在缓存中,用户退出时系统会自动追加至~/.bash_history中
在shell中输入history可以查看历史命令,默认为编号+命令
[root@localhost ~]#history 1 cd /etc/sysconfig/network-scripts/ 2 ls 3 ifconfig 4 vim ifcfg-ens34 5 systemctl restart network 6 ifconfig 7 init 0 8 cd /etc/sysconfig/network-scripts/
history的常用参数
参数 | 涵义 | 举例 |
---|---|---|
-c | 清空历史命令 | history -c |
-d | 清除指定的历史命令 | history -d num/comd |
n | 显示最近的n条 | history 10 |
调用history方法
命令 | 涵义 |
---|---|
↑ | 重复上一条命令 |
!! | 重复上一条命令 |
!-1 | 重复上一条命令 |
Ctrl+p | 重复上一条命令 |
!:0 | 执行前一条命令(去除参数) |
!n | 执行history命令输出对应序号n的命令 |
!-n | 执行history历史中倒数第n个命令 |
history环境变量
环境变量 | 涵义 | 默认 |
---|---|---|
HISTSIZE | 命令历史记录的条数 | 1000 |
HISTFILESIZE | 命令历史文件记录历史的条数 | 1000 |
HISTCONTROL | ignoredups | 忽略重复的命令 |
HISTTIMEFORMAT=“%F %T “ | 显示时间 | |
HISTFILE | 历史命令存放文件 | ~/.bash_history |
HISTCMD | 当前历史命令条数 |
[root@localhost ~]#echo $HISTCMD 539 [root@localhost ~]#echo $HISTCONTROL ignoredups [root@localhost ~]#echo $HISTFILE /root/.bash_history [root@localhost ~]#echo $HISTFILESIZE 1000 [root@localhost ~]#echo $HISTSIZE 1000
修改history环境变量,将HISTTIMEFORMAT=“%F %T “写入在/etc/profile 或 ~/.bash_profile以.sh结尾的文件中,执行history时可以看见执行时间
[root@localhost ~]#nano /etc/profile.d/env.sh [root@localhost ~]#cat /etc/profile.d/env.sh HISTTIMEFORMAT='%F %T ' [root@localhost ~]#. /etc/profile.d/env.sh [root@localhost ~]#history 10 504 2020-04-14 21:18:44 ln -s ../data/mysql /etc/myql.lin 505 2020-04-14 21:18:53 ll -i /etc/myql.lin 506 2020-04-14 21:19:13 rm mysql.lin 507 2020-04-14 21:19:19 rm mysql.link 508 2020-04-14 21:19:24 rm myql.lin 509 2020-04-14 22:16:08 init 0 510 2020-04-15 19:43:58 history 511 2020-04-15 19:44:22 cat /etc/profile.d/env.sh 512 2020-04-15 19:45:34 history -10 513 2020-04-15 19:45:40 history 10 [root@localhost ~]#echo $HISTTIMEFORMAT %F %T
Linux哲学思想
一切都是一个文件(包括硬件) 小型,单一用途的程序 链接程序,共同完成复杂的任务 避免令人困惑的用户界面 配置数据存储在文本中 完成比完善更重要
1、一切都是一个文件:是 Unix/Linux 的基本哲学之一。不仅普通的文件,硬件在 Unix/Linux 中也是以文件的形式存在;通过修改文件进行配置
2、小型,单一用途的程序:程序和可执行文件不要太复杂,这样才能保证了linux内核的高效运行
3、连接程序,共同完成复杂功能:复杂的任务可以通过连接多个简单的程序实现复杂的功能。对于复杂的功能linux通过许多简单程序的组合等方式实现,在保证简单功能的高效性的同时,复杂的程序也必然是高效性的
4、避免令人困惑的用户界面:Linux一般使用CLI界面进行配置系统,Linux底层运行的是内核,其他所有应用都跑在内核上,包括图形桌面(图形界面也会占用大量系统资源),win系统桌面死机就只有重启系统,Linux桌面系统死机可以切换到CLI界面进行处理,一切都是简洁明了为基础为了电脑的性能。
5、配置数据存储在文本中:linux所有的配置都存放在系统配置文件当中,无论什么配置修改都只需修改其配置文件即可。
6、 完成比完善更重要:先完成任务再想办法进行优化
基本命令
echo
echo 功能:显示字符 语法:echo [-neE][字符串] 说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号,可以打印出变量值
参数 | 涵义 |
---|---|
-E | (默认)不支持 \ 解释功能 |
-n | 不自动换行 |
-e | 启用 \ 字符的解释功能(识别颜色) |
[root@localhost ~]#echo -e "my hostname is \e[1;34m`hostname`\e[\0m" my hostname is localhost.localdomain [root@localhost ~]#echo "my hostname is \e[1;34m`hostname`\e[\0m" my hostname is \e[1;34mlocalhost.localdomain\e[\0m [root@localhost ~]#echo `hostname` localhost.localdomain [root@localhost ~]#echo -n `hostname` localhost.localdomain[root@localhost ~]# [root@localhost ~]#echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
screen
创建一个会话,让使用该系统的用户可以其加入该会话
命令 | 涵义 |
---|---|
screen –S [SESSION] | 创建新screen会话 |
screen –x [SESSION] | 加入screen会话 |
exit | 退出并关闭screen会话 |
Ctrl+a,d | 剥离当前screen会话 |
screen -ls | 显示所有已经打开的screen会话 |
screen -r [SESSION] | 恢复某screen会话 |
[root@localhost ~]#screen -S help [root@localhost ~]#screen -ls There is a screen on: 3539.help (Attached) 1 Socket in /var/run/screen/S-root. [root@localhost ~]#screen -x help [detached from 3539.help] Ctrl+a,d 剥离当前会话,screen -x help重新加入
date
显示和设置系统时间 Usage: date [OPTION]... [+FORMAT] or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 设置时间
命令参数
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号; -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号; -u:显示GMT; --help:在线帮助; --version:显示版本信息。
日期格式字符串列表
%H 小时(以00-23来表示)。 %I 小时(以01-12来表示)。 %K 小时(以0-23来表示)。 %l 小时(以0-12来表示)。 %M 分钟(以00-59来表示)。 %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 %T 时间(含时分秒,小时以24小时制来表示)。 %b 月份英文名的缩写。 %B 月份的完整英文名称。 %d 日期(以01-31来表示)。 %D 日期(含年月日)。 %F 显示YY-MM-DD 。 %j 该年中的第几天。 %m 月份(以01-12来表示)。 %W 一年的第几个星期(00..53,星期一为第一天) %X 相当于%HH%MM%SS。 %y 年份(以00-99来表示)。 %Y 年份(以四位数来表示)。 MM 月份(必要) DD 日期(必要) hh 小时(必要) mm 分钟(必要) ss 秒(选择性)
[root@localhost ~]#date 2020-04-15 21:09:22 [root@localhost ~]#date -s "20210415" 2021-04-15 00:00:00 [root@localhost ~]#date -d "2 days" 2021-04-17 00:02:55 [root@localhost ~]#date -d "-2 days" 2021-04-13 00:02:59
clock/hwclock
显示硬件时间 -s, --hctosys 以硬件时钟为准,校正系统时钟 -w, --systohc 以系统时钟为准,校正硬件时钟
[root@localhost ~]#clock Wed 15 Apr 2020 08:41:54 PM EDT -0.585530 seconds [root@localhost ~]#date 041610302021.00 Fri Apr 16 10:30:00 EDT 2021 [root@localhost ~]#date Fri Apr 16 10:30:15 EDT 2021 [root@localhost ~]#clock -s [root@localhost ~]#date Wed Apr 15 20:42:53 EDT 2020 [root@localhost ~]#date +'%F %T' 2020-04-15 20:43:13
ifconfig
查看系统网络信息
[root@localhost ~]#ifconfig ens33 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.13 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 240e:330:35b7:6800:d2fd:f442:f258:9263 prefixlen 64 scopeid 0x0<global> inet6 fe80::ba4f:7148:1a7c:3ba prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4e:42:bf txqueuelen 1000 (Ethernet) RX packets 182 bytes 18044 (17.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 216 bytes 20626 (20.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
export
用于设置或显示环境变量
[root@localhost ~]#export declare -x DISPLAY="localhost:10.0" declare -x HISTCONTROL="ignoredups" declare -x HISTSIZE="1000" declare -x HOME="/root" declare -x HOSTNAME="localhost.localdomain" declare -x LANG="en_US.UTF-8" declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s" declare -x LOGNAME="root" eclare -x MAIL="/var/spool/mail/root" declare -x OLDPWD declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" declare -x PWD="/root" declare -x SELINUX_LEVEL_REQUESTED="" declare -x SELINUX_ROLE_REQUESTED="" declare -x SELINUX_USE_CURRENT_RANGE="" declare -x SHELL="/bin/bash"
定义环境变量
[root@localhost ~]#export NUM=7 [root@localhost ~]#echo $NUM 7 [root@localhost ~]#bash [root@localhost ~]#echo $NUM 7
关机命令
关机:halt, poweroff 重启:reboot -f: 强制,不调用shutdown -p: 切断电源shutdown
shutdown [OPTION]... [TIME] [MESSAGE] -r: reboot -h: halt -c:cancel TIME:无指定,默认相当于+1(CentOS7) now: 立刻,相当于+0 +m: 相对时间表示法,几分钟之后;例如 +3 hh:mm: 绝对时间表示,指明具体时间
[root@localhost ~]#shutdown -r +3 Shutdown scheduled for Wed 2020-04-15 21:09:34 EDT, use 'shutdown -c' to cancel. [root@localhost ~]# Broadcast message from root@localhost.localdomain (Wed 2020-04-15 21:06:34 EDT): The system is going down for reboot at Wed 2020-04-15 21:09:34 EDT! [root@localhost ~]#shutdown -c Broadcast message from root@localhost.localdomain (Wed 2020-04-15 21:06:46 EDT): The system shutdown has been cancelled at Wed 2020-04-15 21:07:46 EDT!
init
命令 | 涵义 |
---|---|
init 0 | 关机 |
init 6 | 重启 |
init 3 | 切换为CLI |
init 5 | 切换为GUI |
init 1 | 切换为救援模式(单机模式) |
[root@localhost ~]#runlevel N 5 [root@localhost ~]#init 3 [root@localhost ~]#runlevel 5 3 [root@localhost ~]#init 1 Broadcast message from root@localhost.localdomain on pts/0 (Wed 2020-04-15 21:10:51 EDT): The system is going down to rescue mode NOW!
hash
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率 hash 显示hash缓存 hash –l 显示hash缓存,可作为输入使用 hash –d name 清除name缓存 hash –r 清除缓存
enable
查看内部命令 help 内部命令列表 enable cmd 启用内部命令 enable –n cmd 禁用内部命令 enable –n 查看所有禁用的内部命令
[root@localhost /data]#enable enable . enable : enable [ enable alias enable bg enable bind enable break enable builtin enable caller enable cd enable command enable compgen [root@localhost /data]#enable -n break [root@localhost /data]#enable enable . enable : enable [ enable alias enable bg enable bind enable builtin enable caller enable cd enable command enable compgen [root@localhost /data]#enable -n enable -n break
alias
定义和显示别名 alias NAME='VALUE'
[root@localhost /data]#alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@localhost /data]#alias e=hostname [root@localhost /data]#e localhost.localdomain
如果想永久有效,要定义在配置文件中 仅对当前用户:~/.bashrc 对所有用户有效:/etc/bashrc 撤消别名:unalias unalias [-a] name [name ...] -a 取消所有别名 如果别名同原命令同名,如果要执行原命令,可使用 \ALIASNAME
- Linux教程【1】-Linux系统简介-UNIX发展历史和发行版本
- 一步一步学习Linux(1):linux的历史及现发行版本
- Linux系统简介---UNIX发展历史及发行版本
- linux中查看内核版本,发行版本,历史命令
- linux核心(kernel)版本与发行(distribution)版本
- 根据需求选择合适的Linux发行版本
- 在Linux系统中安装oralce的过程中,如果Linux发行版本不是oracle的推荐版本
- 那些奇特的 Linux 发行版本
- Linux开源项目2017最期待发行的版本
- 查看Linux内核和发行版本信息
- 为Linux 初学者选择发行版本支招
- linux 发行版本和 及其与linux内核之间的关系
- Linux发展历史及版本
- Linux各个发行版本代号整理
- 项目一任务三:研究Linux的特点,优势及发行版本
- Linux入职基础-4.5_内核的主要版本发展历史
- linux中生成考核用的NTFS文件系统(历史版本)
- 面向多媒体中心的OpenELEC 7.0稳定Linux发行版本发布
- 学习Linux,该选择什么发行版本?
- linux各发行版本的系统资源获取方式调研