▲就业班和全程班的小伙伴看这里:(学习老王视频的作业第1-2节)
1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
Linux发行版=Linux内核+GNU工具软件。目前主要有三大流派及其他发行版
一、三大流派及其发行版
1、slackware:
SUSE Linux Enterprise Server (SLES); OpenSuse。其中OpenSuse 类似于CentOS
2、Debian:
三大发行版中唯一以社区形式运作,不以商业公司形式运作。是一个致力于创建自由操作系统的合作组织。主要包括:
ubuntu:是一个以桌面应用为主的linux操作系统。
mint:Linux Mint 是一款基于 Ubuntu 与 Debian 开发的 Linux 操作系统发行版,非常适合个人日常办公或开发电脑使用。
3、Redhat:
RHEL:RedHat Enterprise Linux,是Redhat自己的发行的企业版,是Redhat的一个重要节点。每18个月发 行一个新版本
CentOS:是一个基于Redhat linux 提供的可自由使用源代码的企业级linux发行版本。兼容RHEL的格式
中标麒麟:中标软件
Fedora:每6个月发行一个新版本,可视为Redhat的技术测试版,被认为可用的技术最终会加入到RedHat Enterprise Linux中
二、其他发行版
ArchLinux:轻量简洁
Gentoo:极致性能,不提供传统意义的安装程序
LFS:Linux From scratch 。类似于一本自制Linux的说明书,根据LFS可以自制Linux系统
Android: kernel+busybox(工具集)+java虚拟机
2、安装Centos7.6操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图。
安装说明:以前使用VMware,Hyper-V 均安装过Centos系统。所以对安装过程并不陌生。安装Xshell6.0并且可以通过ssh方式登录Centost系统。
3、配置环境变量,实现执行history的时候可以看到执行命令的时间。
(1)临时生效:定义变量 HISTTIMEFORMAT="%F %T "
(2)永久生效,写入文件。
# vim .bashrc
HISTTIMEFORMAT="%F %T "
:wq
# . .bashrc
4、总结Linux哲学思想。
1)一切都是一个文件(包括硬件)
2)小型,单一用途的程序
3)链接程序,共同完成复杂的任务
4)避免令人困惑的用户界面
5)配置数据存储在文本中
5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令
(一)screen命令:
1)]创建新screen会话 screen –S [SESSION]
2)加入screen会话 screen –x [SESSION]
3)退出并关闭screen会话 exit
4)剥离当前screen会话 Ctrl+a+d
5)显示所有已经打开的会话 screen -ls
6)恢复某screen会话 screen -r [SESSION]
【举例】
场景一:有重要的数据需要备份,为防止备份过程中ssh连接意外中断,可使用screen方式来实现备份的连续性。
# screen //新建一个screen窗口
# ping 192.168.37.7 //在screen窗口内运行测试命令。
关闭xshell连接,并使用ssh方式重新登录
# ps aux //查看ping 进程仍在运行
# screen -r //恢复screen会话
# exit
场景二:A、B 两个用户同时用root身份登录同一台Linux服务器。用户A需要B的协助。
A用户 :
# screen -S NeedHelp-A
B用户 :
# screen -ls
# screen -x NeedHelp-A
# Ctrl+a+d //B用户临时有任务需要处理,暂时剥离会话
# screen -x NeedHelp-A
# exit
(二)echo命令:
1)功能:显示字符
2)语法:echo [-neE][字符串]
3)说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号
4)选项:
Ø -E (默认)不支持 \ 解释功能
Ø -n 不自动换行
Ø -e 启用 \ 字符的解释功能
5)显示变量
echo "$VAR_NAME” 变量会替换,弱引用
echo '$VAR_NAME’ 变量不会替换,强引用
6)启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
\a 发出警告声 | \b 退格键 | \c 最后不加上换行符号
\e escape,相当于\033 | \n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行 | \t 插入tab
\\ 插入\字符 | \0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
7)命令行扩展:$( ) 或 ``:把一个命令的输出打印给另一个命令的参数
#echo "This system's name is $(hostname) "
结果:This system's name is server1.example.com
#echo "i am `whoami` "
结果:i am root
8)括号扩展:{ }
打印重复字符串的简化形式
echo file{1,3,5} 结果为:file1 file3 file5
【举例】:
① echo -e '\033[43;31;5mmagedu\e[0m'
② echo -e '[\e[32m OK \e[0m]'
③ echo {1..10}
④ echo {000..20..2}
(三)date 显示和设置系统时间
date +%s
date -d @1509536033
hwclock,clock: 显示硬件时钟
-s, --hctosys 以硬件时钟为准,校正系统时钟
-w, --systohc 以系统时钟为准,校正硬件时钟
u 时区:/etc/localtime
u 显示日历:cal –y
【举例】:
# ntpdate 172.16.10.1 ------与时间同步服务器同步时间
# date -d “-2 day”+%F -------查看前天是几号
# date -s “13:14:15 2019-03-02” ------------------自定义设置系统时间
(四)history命令:
1)history [-c] [-d offset] [n]
2)history -anrw [filename]
3)history -ps arg [arg...]
-c: 清空命令历史 | -d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史 | -a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表 | -w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
HISTSIZE:命令历史记录的条数,HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT=“%F %T “ 显示时间
HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2开头的历史
变量:HISTCONTROL
Ø ignoredups 默认,忽略重复的命令,连续且相同为“重复”
Ø ignorespace 忽略所有以空白开头的命令
Øignoreboth 相当于ignoredups, ignorespace的组合
Ø erasedups 删除重复命令
Ø export 变量名=”值”。存放在/etc/profile 或 ~/.bash_profile
(五)bash的主要快捷键:
Ctrl + l 清屏,相当于clear命令
Ctrl + s 阻止屏幕输出,锁定 |Ctrl + q 允许屏幕输出
Ctrl + c 终止命令
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾