LINUX的重要性
- Linux应用广泛:电子商务网站;股票市场;为智能电视提供支持等
- Linux提供了推动云革命的基础技术,用来构建下一代基于容器的微服务应用
- 在云计算中,私有云或公有云环境中的云实例使用Linux作为操作系统
Linux优点
- 开源软件
- 访问可脚本化的命令行接口(CLI)
- 模块化操作系统,轻松替换或删除组件
红帽介绍
- 世界领先的开源软件解决方案供应商,通过社区驱动的方式提供可靠和高性能的云,Linux,存储和虚拟化等技术
- 红帽负责帮助客户和开源社区及其合作伙伴建立联系,提供开源软件解决方案。除了参与linux社区之外,红帽还参与了其它开源社区,如:0penstack,Openshift等
介绍Linux发行版本
- Fedora:一个开发和发布完整,免费,基于Linux的操作系统的社区项目。Fedora项目将所有内容回馈给自由的开源世界,任何人都可以参与其中。
- Fedora优点注重创新,缺点缺乏长期稳定性。每6个月进行一次新的重要更新,更新可能会带来重大变化。Fedora仅为发行版本提供大约一年的支持(两次重要更新),不适合企业使用。
- 红帽企业Linux(RHEL) :红帽提供的企业级商业化发行版本。RHEL经过广泛测试,拥有庞大的合作伙伴生态系统,硬件和软件认证,咨询服务,培训及为期多年的支持和维护保障。
- CentOS:社区驱动型Linux发行版,源自大量开源红帽企业Linux代码库和其它来源。此发行版本免费,易于安装,由一个独立于红帽运营的志愿者用户社区提供人员配备和支持。
BASH SHELL简介
- Linux命令行由名为shell的程序提供;命令行:基于文本的界面,用于向计算机系统输入指令
- RHEL为用户提供的默认shell是:GNU Bourne-Again Shell(Bash)
- Shell提示符:等待用户输入命令时显示的一个字符串($或者#)
- Bash shell:提供脚本语言,支持自动化任务
Shell基础知识
shell提示符下输入的命令由三个基本部分组成
- 运行的命令
- 调整命令行为的选项
- 命令目标的参数
举例:usermod -L user1
登录本地计算机
- 物理控制台
- 虚拟控制台:切换方式ctrl+alt+F1~F6
- RHEL8:默认图形登录界面显示在tty1
- 图形界面登录,图形环境将使用当前未被使用的第一个虚拟控制台登录
- 图形界面登录后,在不注销当前用户的情况下,使用其它用户登录,会占用下一个空闲虚拟控制台
网络登陆
- Linux用户通过网络连接到远程系统获取对远程系统的shell访问权限,通常使用SSH
- SSH命令格式:ssh remoteuser@remotehost
开启终端窗口如下图
设置终端窗口快捷键方法
- 在系统桌面鼠标右键—–点击settings—–点击Devices—–点击keyboard
- 点击下图中的加号
- 如下图输入快捷键名字和命令,然后点击图中红色箭头
- 然后出现如下图,按照英文提示在键盘输入自己需要的快捷键,举例ctrl和t
- 然后出现如下图,点击添加即可
- 终端窗口字体大小调节快捷键:ctrl+shift和加号(扩大字体);ctrl和减号(缩小字体)
基本命令语法
- 分号作为命令分隔符:command1;command2
- 简单命令演示:ls;date;passwd;file;cat;less;head;tail;wc
[root@localhost ~]# ls [root@localhost ~]# date [root@localhost ~]# date --help [root@localhost ~]# file /etc/passwd [root@localhost ~]# cat /etc/passwd [root@localhost ~]# less /etc/passwd [root@localhost ~]# head /etc/passwd [root@localhost ~]# head -n 2 /etc/passwd [root@localhost ~]# tail /etc/passwd [root@localhost ~]# tail -n 2 /etc/passwd [root@localhost ~]# wc /etc/passwd [root@localhost ~]# wc -l /etc/passwd
- TAB键补全
- 反斜杠\(转义字符):忽略紧跟在后面的字符含义,回车进入新行(>符号显示),增强命令可读性
命令历史记录
- history
- !number
- !String
编辑命令行
- ESC键+点:调用上一个命令最后使用的参数
- 快捷键
课堂练习
1) 显示当前的日期和时间 2) 以12小时制显示当前时间 3) 使用wc命令显示/etc/passwd文件行数,字节数 4) 显示/etc/passwd前5行 5) 完成第4题后,结合使用Bash快捷键,显示/etc/passwd后10行 6) 同时显示/etc/passwd文件的前2行和后2行 7) 使用历史记录再次运行第4题
课堂练习参考答案
1) [root@localhost ~]#date 2) [root@localhost ~]#date +%r 3) [root@localhost ~]#wc -l -c /etc/passwd 4) [root@localhost ~]#head -n 5 /etc/passwd 5) [root@localhost ~]#tail 使用ESC+点调用第4题的/etc/passwd 6) [root@localhost ~]#head -n 2 /etc/passwd;tail -n 2 /etc/passwd 7) [root@localhost ~]#history
文件系统层次结构
Linux系统中的所有文件存储在文件系统中,它们被组织到一个颠倒的目录树中,称为文件系统层次结构。
- /目录是根目录;字符/也用于文件名中的目录分隔符
- 目录内容简介
- 绝对路径:指定文件在文件系统结构中的确切位置,从根目录开始
- 相对路径:指定从工作目录到达该文件所需的路径
- 判断绝对路径和相对路径的方法:第一个字符是正斜杠(/)是绝对路径,反之是相对路径
- 导航路径常用命令:pwd;ls(-l,-a,-A,-d,-R);cd;cd -;cd ~;cd ..
- .(点)表示当前目录;..(点点)表示父目录
- touch命令:创建空文件,将文件的时间戳更新为当前日期和时间
- 常用文件管理命令
注意
- mkdir -p 创建目录时为请求目标位置创建缺失的父目录
- rm -f: 强制删除
课堂练习题
1) 用户主目录中创建3个子目录:stu1,stu2,stu3 2) 用户主目录中创建文件名为songX.mp3,snapX.jpg,filmX.avi(X取值1~6) 3) 将songX.mp3文件移动到stu1目录中,将snapX.jpg文件移动到stu2目录中,将filmX.avi文件移动到stu3目录中 4) 用户主目录中,创建3个新的子目录:friend,family,work,将含有数字1和2的文件(所有类型)复制到friend子目录中,将含有数字3和4的文件(所有类型)复制到family子目录中,将含有数字5和6的文件(所有类型)复制到work子目录中 5) 用户主目录中,创建1个名为shida的子目录,将目录work及work目录中的文件复制到shida目录中 6) 删除work目录及work目录中的文件,删除时需要有提示信息
课堂练习参考答案
1) [root@localhost ~]# mkdir stu1 stu2 stu3 2) [root@localhost ~]# touch song1.mp3 song2.mp3 song3.mp3 song4.mp3 song5.mp3 song6.mp3 [root@localhost ~]# touch snap1.jpg snap2.jpg snap3.jpg snap4.jpg snap5.jpg snap6.jpg \回车 > film1.avi film2.avi film3.avi film4.avi film5.avi film6.avi 3) [root@localhost ~]# mv ~/song1.mp3 ~/song2.mp3 ~/song3.mp3 ~/song4.mp3 ~/song5.mp3 ~/song6.mp3 stu1 [root@localhost ~]# cd stu2 [root@localhost stu2]# mv ~/snap1.jpg ~/snap2.jpg ~/snap3.jpg ~/snap4.jpg ~/snap5.jpg ~/snap6.jpg . [root@localhost ~]# mv ~/film1.avi ~/film2.avi ~/film3.avi ~/film4.avi ~/film5.avi ~/film6.avi stu3 4) [root@localhost ~]# mkdir friend family work [root@localhost ~]# cp ~/stu1/song1.mp3 ~/stu1/song2.mp3 ~/stu2/snap1.jpg ~/stu2/snap2.jpg ~/stu3/film1.avi ~/stu3/film2.avi friend [root@localhost ~]# cp ~/stu1/song3.mp3 ~/stu1/song4.mp3 ~/stu2/snap3.jpg ~/stu2/snap4.jpg ~/stu3/film3.avi ~/stu3/film4.avi family [root@localhost ~]# cp ~/stu1/song5.mp3 ~/stu1/song6.mp3 ~/stu2/snap5.jpg ~/stu2/snap6.jpg ~/stu3/film5.avi ~/stu3/film6.avi work 5) [root@localhost ~]# mkdir shida [root@localhost ~]# cp -r work/ shida/ 6) [root@localhost ~]# rm -r work/
硬链接和软链接
- 管理文件间的链接:创建指向同一文件的多个名称。方法:硬链接和软链接
- 硬链接概念:从初始名称到文件系统上的数据,每个文件都以一个硬链接开始。当创建指向文件的新硬链接时,也会创建另一个指向同一数据的名称。新的硬链接与原始文件名的作用完全相同。
- 创建硬链接语法格式:ln 源文件名 新建链接文件名
- 硬链接的局限性: 1.只能用于常规文件,不能用于创建指向目录或者特殊文件 2.只有位于同一文件系统上的两个文件才能创建硬链接
- 软连接(符号链接)概念:软连接是指向现有文件或目录的特殊类型的文件。
- 创建软链接语法格式:ln -s 源文件名 新建链接文件名
- 软链接优势: 1.可以链接位于不同文件系统上的两个文件 2.不限于常规文件,可以指向目录或者特殊文件
软链接注意事项
- 建议使用绝对路径
- 悬挂链接:源文件被删除,软连接仍然指向该文件
- 目录软链接,进入软链接的目录时,使用-P选项可直接进入源目录
硬链接课堂练习
[root@localhost ~]#mkdir test [root@localhost ~]#touch file1 [root@localhost ~]#ln ~/file1 ~/test/hard
软连接课堂练习
[root@localhost ~]#touch file2 [root@localhost ~]#ln -s ~/file2 ~/test/soft1 文件软连接 [root@localhost ~]#ln -s ~/shida ~/test/soft2 目录软连接
模式匹配
使用“扩展”的元字符匹配需要寻找的文件名和路径
波形符扩展:波形符(~)可以匹配当前用户的主目录
- 举例:echo ~root;echo ~user;echo显示波形符字符的值
- 举例:ls ~root;ls ~user
大括号扩展:大括号扩展用于生产任意字符串
- 举例:file{1..3}
- 举例:file{a..b}
- 举例:file{1,2}{a,b}
命令替换:允许命令的输出替换命令行上的命令本身,格式$(命令)
- 举例:echo today is $(date +%A)
课堂练习
1) 用户家目录下的shida子目录中创建名为project的空目录,在新创建的project目录中创建两个空文件:tv_season1_.odf和tv_season2_.odf 2) 用户家目录下创建名为tv_seasonX_Y.ogg文件,X替换为季数,Y替换为该季的集数,共2季,每季6集 3) 用户家目录下为悬疑小说创建名为mystory_chapterX.odf的文件,将X替换为数字1到8 4) 用户家目录下的videos子目录下创建两个子目录:seasnon1和season2 5) 将tv第一季和第二季分别移动到season1和season2目录中 6) 用户家目录下的shida子目录中创建my_bestseller/chapters目录用于整理悬疑小说 7) my_bestseller子目录下创建3个子目录,名字分别为editor,changes,vacation 8) 进入chapters目录,将悬疑小说的所有文件移动到当前目录 9) 将悬疑小说第1章和第2章移动到目录editor 10) 将悬疑小说第3章和第4章移动到目录vacation 11) 将悬疑小说第5章和第6章移动到目录changers 12) 进入project中,将悬疑小说目录chapters和悬疑小说的第7,8章一起复制到project目录中 13) 进入season1目录中,将第1季的第1,2集移动到用户家目录 14) 接着13题,将season2目录中的第2季的第1,2集移动到用户家目录 15) 为子目录shida创建新的软件链,并命名为/boot/soft 16) 使用cd命令进入/boot/soft的时候直接进入到链接的源目录 17) 删除所有新建立的目录和文件
课堂练习参考答案
1) [root@localhost ~]# mkdir -p shida/project [root@localhost ~]# touch shida/project/tv_season{1,2}_.odf 2) [root@localhost ~]# touch tv_season{1,2}_{1..6}.ogg 3) [root@localhost ~]# touch mystory_chapter{1..8}.odf 4) [root@localhost ~]# mkdir -p videos/season{1,2} 5) [root@localhost ~]# mv tv_season1* videos/season1 [root@localhost ~]# cd videos/season2 [root@localhost season2]# mv ~/tv_season2_* . 6) [root@localhost ~]# mkdir -p shida/my_bestseller/chapters 7) [root@localhost my_bestseller]# mkdir editor changes vacation 8) [root@localhost my_bestseller]# cd chapters/ [root@localhost chapters]# mv ~/my* . 9) [root@localhost chapters]# mv mystory_chapter{1,2}* ../editor/ 10) [root@localhost chapters]# mv mystory_chapter{3,4}* ../vacation/ 11) [root@localhost chapters]# mv mystory_chapter{5,6}* ../changes/ 12) [root@localhost chapters]# cd ~/shida/project/ [root@localhost project]# cp -r ~/shida/my_bestseller/chapters . 13) [root@localhost project]# cd ~/videos/season1 [root@localhost season1]# mv tv_season1_{1,2}* ~/ 14) [root@localhost season1]# mv ../season2/tv_season2_{1,2}* ~/ 15) [root@localhost ~]# ln -s ~/shida/ /boot/soft 16) [root@localhost ~]# cd -P /boot/soft