序言:
一、Linux概述
1.1 计算机及操作系统概述
世界上第一台电子计算机是ABC计算机,但这台机器只能求解线性方程组,且不能编程。
世界上第一台通用电子计算机是ENIAC计算机,该机器占地约170平方米,重达30吨,而运算速度仅为每秒5000次加法运算,但这已远远超过正常人的加法运算速度。
目前世界上绝大多数计算机仍然使用的是冯诺依曼体系结构,即由控制器,运算器,存储器,输入设备,输出设备等五大部件组成。
计算机设计的目的便是计算,因此用户需要将待处理的数据输入到计算机中,随后经过计算机处理后,运算结果输出给用户。但是由于早期数据输入和输出方式的低效率,导致计算机的性能优势难以发挥出来。为管理计算机硬件,以及充分发挥计算机硬件设备的性能,操作系统(Operation System)应运而生。而时至今日,操作系统已经历经多次突破性发展,功能日趋完整。
1985年,微软公司开发出视窗效果的Windows操作系统,使得计算机走入普通人的生活成为可能。计算机的普及带动了因特网的发展,web服务需求也日益剧增,而对于大多数提供web服务的厂商来说,他们需要的只是能向用户提供稳定的服务的服务器,可视化的操作界面显得有些多余,这样会使得服务器效率下降,同时由于微软的Windows操作系统并不会对使用者公开操作系统源码,这便有了潜在的安全隐患。因此免费且安全的操作系统便成为web服务提供商长期的追求。
所幸的是,这样的操作系统真的存在。
1.2 Linux发展历程和前景
1970年UNIX操作系统诞生,其高度可移植性与强大的功能,使得很多商业公司开始了UNIX操作系统的开发。
但是后来由于版权的争议,UNIX操作系统的发展受到了很大的限制。
1991年芬兰大学生Linus Torvalds开发出一款类UNIX的操作系统内核,免费公开所有源码,并希望大家可以提出修改建议,共同完善该系统。从此Linux便出现在了历史的舞台上!
目前,windows操作系统占据了个人电脑操作系统的绝大部分市场份额,而linux操作系统则几乎占据了服务器端操作系统的全部市场。
近年来,人们对云计算、大数据、人工智能等技术关注度的持续上升,同时无人驾驶汽车、智能家具等只能装置逐渐走向人们的生活,对于基于Linux系统的服务器的需求必将持续增长。
因此对于计算机相关领域人员来说,熟练掌握Linux操作系统非常有必要!
1.3 Linux特点与优势
相对于Windows操作系统,Linux系统有以下优势:
1,使用完全免费,linux是GNU计划中的一个项目,用户可以自由免费使用linux操作系统。
2,源码完全公开,任何人都可以下载linux的核心源码,并自由修改使用,避免了可能存在的“后门”操作。
3,系统效率高,由于不需要过多的图形化界面供用户体验,Linux操作系统的运行效率非常高效。
.....
总之,基本上都是由于开源而带来的各种好处....
1.4 安装Linux操作系统
介绍了linux的功能和特点,下面就是自己动手安装一个linux操作系统了,不过对于初学者来说,在物理机上安装linux系统不但有些难度,而且没有必要。毕竟初学者有时候还是需要借助Windows操作系统来进行某些问题的解决的,比如遇到问题了可以上网搜索解决方法。
最好的方法是在虚拟的主机环境下安装linux操作系统,推荐选择CentOS系统进行安装,大致步骤有以下几点:
1,下载并安装虚拟机软件,主流的有VMware等,下载安装教程点这里。
2,访问CentOS官网下载所需版本的系统镜像(选择最新版的就行),下载教程点这里
3,在VMware中创建Linux虚拟机,并进行安装,安装虚拟机教程点这里。
4,安装成功后,进入系统,就可以开始Linux操作系统的学习了。
二、Linux基础知识
2.1 shell简介
了解过操作系统之后,就要了解shell了。
shell的本意是外壳,这里指操作系统的最外层。shell是将用户输入的命令通过系统调用,从而使得用户的操作经过操作系统内核处理后,将处理后的内容再返回给用户的软件程序。
要进入shell编程环境下,只需要打开Linux操作系统,并且打开命令行终端即可。
进入了shell之后,就能进行shell命令的使用了。
2.2 简单命令使用
1,echo命令将命令行中的参数显示到标准输出(即屏幕)
echo [-选项] [字符串]
常用选项:
-n输出字符串内容后不输出换行
--help显示帮助信息
-e解释特殊字符的意义
-E不解释特殊字符的意义(默认)
常用特殊字符如下:(需要加双引号)
\a 铃声警报
\b 退格(光标前移一个位置)
\n 新行
\t 插入tab键
\r 光标移动到本行首
\\ 插入\
2,date 命令显示日期
date [-选项] [+日期格式]
常用选项:
-s 日期将日期设置为指定日期
-r 文件名显示文件的最后修改日期
设置输出日期的格式:
%% 输出%
%a 以缩写的英文显示周几
%A 以全称的英文显示周几
%w 以数字形式显示周几(0-6)
%Y 显示年
%m 显示月
%d 显示日
%F 以"年-月-日"的格式显示日期
%H 显示时
%M 显示分
%S 显示秒
%T 以“时:分钟:秒”格式显示时间
3,shutdown 命令控制系统关闭
shutdown [-选项] 时间
常用选项:
-r 重启
-h 关机
-c 取消关机计划
4,cal [ [ [日] 月 ] 年 ] 显示日历
5,clear 清除屏幕上的信息
6,powoff 关闭系统
7,reboot命令重启系统
8,exit退出当前shell环境
2.3 文件类型
linux中的文件名不区分后缀名,区分大小写,最长可为255个字符。其中主要包含下列几类文件:
普通文件:包括文本文件、数据文件、可执行的二进制程序
目录文件:是一种特别文件,利用它可以构成文件系统的分层树状结
设备文件:是一种特别文件,用来标记各个设备驱动器。字符设备、块设备。
符号链接文件:是一种特殊文件,提供对其他文件的参照
2.4 文件操作命令
1,touch命令可以修改指定文件的时间标签或者创建空文件。
touch [选项] 文件名
常用选项:
-a 仅改变指定文件的存取时间
-m 仅修改文件的修改时间
若指定文件不存在,则创建新文件
2,cat命令用来显示指定文件的全部内容
cat [选项] 文件名
常用选项:
-b 从1开始对所有非空输出行编号
-n 从1开始对所有输出行编号
-s 将多个相邻的空行合并成一个空行
3,less命令 用于分页浏览文件内容
less 文件名
空格键 下一页
B键 上一页
PageUp 下一页
PageDown 上一页
Q键退出浏览
4,wc命令统计指定文件的字节数,字数,行数
wc [选项] [文件]…
常用选项
-c 统计字节数
-l 统计行数
-w 统计字数
2.5 目录操作命令
1,mkdir命令用来创建目录
mkdir [选项] 目录名
常用选项:
-m MODE 在创建目录时,指定权限为MODE的权限(8进制表示))
-p 若新建目录指定的父目录不存在,则自动创建
2,rmdir命令删除空目录
rmdir [选项] 目录名
常用选项:
-p递归删除目录,若父目录空,删除,若目录非空,不删除。
3,cd命令改变工作目录
cd [目录名]
目录名缺省:回到用户的家目录
4,pwd显示当前工作目录的绝对路径
2.6 联机帮助命令
1,help命令查看内置命令的帮助信息
help [选项] [模式串]
2,man 查看所有命令和文件的配置信息
man [选项] [文件名]
man 功能使用时:
home 回到第一页
end 回到最后一页
空格键 向下翻页
q 退出man环境
b 向前翻页
/str 向下查找str
?str 向上查找str
2.7 其他命令
1,ls命令列出指定目录的内容
ls [[选项]目录或文件]
常用选项
-a 列出指定目录下所有的目录和文件,包括隐藏文件
-l 以长格式显示文件的详细信息
-R 递归显示指定目录
-S 按文件大小降序排列
【注】-l选项列出的第一个字符,第一个字符表示文件类型:
- 普通文件
d 目录文件
b 块设备文件
c 字符设备文件
l 符号链接文件
2,cp命令将源文件或目录复制到目标文件或目录中,源文件不变。
cp [选项] 源文件或目录 目标文件或目录
常用选项:
-a 该文件或目录全部复制,相当于选项–dpr
-d 复制时保留文件链接
-p 除复制内容外,也复制源文件的修改时间和存取权限
-r 递归复制文件和各子目录
-l 不复制,而是创建指向源文件的符号文件
-v 显示复制过程中的所有操作
参数可以用绝对路径名,或者相对路径名
3,mv命令移动文件或目录,如果源目路径相同,则为重命名。
mv [选项] 源文件或目录 目标文件或目录
常用选项:
-f 强制覆盖,不给出交互性提示
-i 文件覆盖前,给出提示
-v 显示移动过程中的所有操作
如果源文件有多个,目标文件只能为目录
4,rm命令删除文件和目录
rm [选项] 文件列表
常用选项:
-f 强制删除,不给出交互性提示
-r 递归删除该文件下所有文件和目录
-i 交互式删除文件
-d 删除目录,不管是否为空(root用户才可用)
5,ln命令为链接的创建命令
ln[选项] 源文件 目标文件
常用选项:
-s 建立符号链接(默认建立硬链接)
6,alias命令
alias [-选项] [名称[=值] ... ]
参数缺省,则显示当前系统中所有别名。
7,unalias取消别名
unalias[-选项] [name] [name…]
选项:
-a 取消所有别名
注:若在使用中想临时某条命令不使用别名,则可以有以下方式:
1,\command
2,’command’
3,”command”
4,/path/command
8,history命令
history[选项]
常用选项:
-c 清空当前的所有历史记录
-d 删除某条历史记录
-a 将当前终端缓存的命令历史保存到历史文件中
-r 将所有的历史从文件中读出
注:
!number 可以运行第number条历史记录
!! 执行上次执行的命令
Alt+ . 调出上次命令的最后一个参数
9,查询当前在线用户命令
whoami 显示当前用户名
who am/are/is任意字符 显示当前的终端信息
who 显示所有终端的信息
w 显示所有终端的详细信息及所做的操作
10,bc 命令打开计算器运算界面
在计算器运算界面中,输入以下命令:
scale=number 设置小数的位数
quit 退出计算器
附加小知识点:
1,忘记root密码的解决方法
1,重启系统,系统读秒界面时,按任意键进入菜单界面
2,按e进入grub编辑模式
3,光标切换到 kernel…行,按e进入编辑模式
4,在出现的界面中输入single,按b键进入单用户模式
5,进入root用户成功,可重新设置密码
2,命令执行顺序
1,别名
2,内部命令
3,hash列表中的命令路径
4,外部命令
3,自定义登录欢迎界面
登陆后界面存放在:/etc/issue
注销后界面存放在:/etc/motd
想要修改登录欢迎界面,只需要修改这两个文件的内容即可。
在实际工作中,可以用来发布消息,供用户在登录前后查看,具体细节点这里
4,部分常用快捷键
ctrl+l 相当于clear命令,相比于直接打命令,简便多了!
ctrl+c 强制终止当前操作
PS:记得刚接触到linux操作系统时,尝试ping了一下本地主机,然后…停不下来了…
后来百度一下才发现这个神奇的快捷键之后,只要看到不正常的状态,想跳出来,就狂按这个快捷键…
ctrl+d 正常退出当前的shell环境。
alt+r 清除所有内容
alt+数字+字符 重复显示该字符次数为所指定的数字次数
ctrl+shift+t 创建一个终端的标签页(光标要在终端上)
ctrl+shift+w 关闭一个标签页(光标要在终端上)
ctrl+pgUp/pgDn 切换上/下一个标签页
ctrl+z 暂停当前命令的执行
5,文件系统结构图
linux中,各种文件组成树状的文件系统。
1,有且仅有一个根目录
2,每个目录都有父目录,根目录的父目录是自身。
3,每个普通用户都在HOME目录下有一个家目录,root用户的家目录为/root。
问题实战:
练习
1、显示当前时间,格式:2016-06-18 10:20:30
解决:
直观方式:date "+%Y-%m-%d %H:%M:%S"简单方式:date "+%F %T"
拓展:按照指定格式显示时间:2016-06-18 10:20:30
date "+%F %T" -d "20160618 10:20:30"
2、显示两天前是星期几
解决:
date +%A -d "-2 days"拓展:查看2017年6月18日的前一月对应的详细信息:
date -d "20170618 -1 months"
3、设置当前日期为2019-08-07 06:05:10
date -s "2019-08-07 06:05:10"
练习:
1、在本机字符终端登录时,除显示原有信息外,再显示当前登录终端号,主机名和当前时间
解决:
需要修改登录前欢迎界面文件:/etc/issue插入内容的含义:
\l: 插入当前终端名(注意这里是L的小写)
\n: 插入hostname
\d : 插入当前时间
修改文件 添加如下内容:
Current terminator is \1
Hostname is \n
Current time is \d
保存退出,重新登陆即可。
2、root用户设置今天18:30自动关机,并提示其他用户
解决:
shutdown "18:30"存在的问题:所有在线用户都会受到关机的提醒,但是新登录的用户不会收到。