硬件由CPU,内存控制器,视频控制器,键盘控制器,光盘控制器,硬盘控制器。
软件由系统软件,支持软件,应用软件构成。
什么是操作系统
操作系统是控制和管理计算机系统内各种硬件和软件资源,有效的组织多道程序运行的系统软件,是用户与计算机之间的接口。
操作系统的功能
1.存储管理
2.进程和处理机管理
3.文件管理
4.设备管理
5.用户接口
操作系统的类型
1.批处理系统
2.分时系统
3.网络操作系统
4.分布式操作系统
linux系统的特点
1.与Unix兼容
2.自由软件,源码公开
3.性能高,安全性强
4.便于定制和再开发
5.互操作性高
6.全面的多任务和真正的32位操作系统
man查看帮助命令{
命令有长格式和短格式
长格式和短格式 不能合并
短格式和短格式 可以合并只保留前面一个减号
短格式和长格式 不能合并
}
echo在终端输出字符串或者是变量提取或的值
date输出和设置当前时间{
date “+%Y - %m - %d”
date “+%Y-%m-%d %H:%M:%S”
+%j今天是今年的第几天
}
reboot重启
su root 切换账户
poweroff关闭系统
wget 在终端中下载网络文件{
-b后台下载
-p下载到指定目录
-t最大尝试次数
-c断点续传
-p下载页面所有资源 包括图片视频等
-r
}
pwd列出当前目录
ps查看系统的进程{
a(显示所有进程包括其他用户的)u(用户以及其他的详细信息)x(显示没有控制终端的进程)
user进程所有者
pid进程的id号
%cpu cpu的使用率
%mem 内存的使用率
vsz虚拟内存的使用率
rss占用的固定内存量
tty所在的终端
stat进程状态(出现r进程正在运行或在运行队列中等待 s进程处于休眠中 d不可中断 z僵死状态不提供服务还占用资源 t停止运行)
start被启动的时间
time实际使用cpu的时间
command命令名称参数
}
top动态的监视进程活动和系统负载等信息{
top-22:20:20当前时间 up41min上线时间 2usere终端的数量是两个在运行 load average 负债情况 0.17 0.18 0.15 五分钟 十分钟 十五分钟 系统的负载状态 1满载 5繁忙 9非常繁忙
tasks 进程总数 2running正在运行 471sleeping正在休眠 0stopped停止0zombie 僵死
%cpu用户占用资源百分百
kib mem物理内存总量
kib swap虚拟内存总量
pid进程编号 user用户 pr 进程的优先级数字越小优先级越高 ni virtual res shr cpu内存之间的交互值 s进程状态
}
pidof差某个指定服务进程的pid地址
kill关进程 后面跟进程号码 killall进程的服务名称
systemctl restart 进程 重启
reload服务名称 重启 只加载pid不变
使用touch命令可以创建一个txt文件,使用vim可以编辑创建的txt文件,输入i打开编辑模式,按esc退出编辑模式,输入:wq!退出打开的txt文件,使用diff -c可以比较两个txt文件内容的不同之处。
wc指令可以统计指定文本的字数行数字节数,-l显示行数 -w单词数 -c字节数。
cat命令可以查看较少的纯文本文件,more可以查看内容较多的纯文本文件。
stat查看文件具体存储信息和时间等信息。
tr用于替换文本文件中的字符。
head-n后面的数字是多少就显示多少行。
tail-n跟数字从最后一行开始显示。
cut按列提取文本字符-d: -f1 文件。
mkdir命令可以创建一个空白目录。
cp复制文件或者目录,如果目标文件是目录会把原文件复制到该目录,如果目标也是普通文件会询问是否覆盖他,如果目标文件不存在直接复制 。
-p保留原始文件的属性
-d若对象为链接文件则保留该链接文件的属性
-r递归持续复制用于目录
-i若目标文件存在询问是否覆盖
-a相当于pdr三个参数一起用
mv可以剪切文件或重命名。
dd按照指定大小和个数的数据块来复制文件或转换文件.
-if输入的文件名称
-of输出的文件名
-bs设置每个‘块’的大小
-count设置要复制块的次数
file查看文件文本目录设备等所有在linux系统里的东西。
rm删除文件或目录。
-rf清除系统
-r删目录
tar 对文件进行打包压缩或解压。
-c压缩。
-x 解压。
-z 用Gzip压缩或解压所。
-j 用bzip2 压缩或解压。
-v 显示压缩或解压的过程。
-f 目标文件名。
grep 在文本中执行关键词搜索。
b 将可执行文件当作文本文件来搜索。
-c 仅显示找到的行数。
-i 忽略大小写。
-n显示行号。
-v反向选择–仅列出没有"关键词"的行 。
find 用于按照指定条件来查找文件。
find 查找路径 寻找条件 操作。
重定向
默认都输出到屏幕上
标准输出重定向,> 清空写入,>> 追加写入。
错误输出重定向,2> 清空写入,2>> 追加写入。
标准/错误输出重定向,&> 清空写入,&>> 追加写入。
把文件导入到命令中,文件内容 --> 命令。
管道命令符
把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入。
更改root密码
通配符
*后面是空值 或者无限的
?单个字符(不包含空字符)
转义字符
“”保留其中的变量属性 不进行转义处理。
\使反斜杠后面的一个变量变成单纯的字符串。
‘’消除功能 转义其中所以变量为字符串。
$$显示当前程序进程的id号。
命令别名
alias命令:为命令创建别名。格式:alias 别名=“命令”。
unalias命令:取消命令别名。格式:unalias 别名=“命令”。
type命令
用于判断用户输入的命令是内部命令还是外部命令。
格式:type 命令名称。
echo是内部命令,touch、mkdir是外部命令。
PATH变量
由多个执行命令的路径值组成的变量,每个路径之间用冒号间隔。当用户输入的是外部命令,就需要通过PATH变量去查找外部命令的所在位置。
export命令
用于设置全局变量。格式:export 变量名。
把变量W设置为全局变量。
将目录定义为变量,再将变量提升为全局变量。
Linux系统中最重要的10个环境变量
HOME
LANG
PS1
Vim编辑器
用于编辑文本文件内容,是vi编辑器的升级版,与Vi相比,Vim编辑器有代码着色。
Vim编辑器有3中模式:
1.命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
2.输入模式:正常的文本录入。
3.末行模式:保存或退出文档,以及设置编辑环境。
命令模式下的快捷键
dd删除或者剪切从光标处所在开始的整行。
数字+dd删除或者剪切从光标处所在开始下面x行包括光标。
yy复制从光标处所在开始的整行。
数字+yy复制从光标处所在开始下面x行。
p 粘贴到光标后一行。
u 撤销上一步的操作。
n 显示搜索命令定位到的下一个字符串。
N 显示搜索命令定位到的上一个字符串。
末行模式
:w保存。
:q退出。
:set nu显示行数。
:set nonu不显示行数。
:命令 执行该命令。
:整数 跳转到该行。
: s/a/b 将光标所在行第一个a替换成b。
: s/a/b/g 将光标所在行的所有a替换成b。
:%s/a/b/g 将全文中所有a替换成b。
更改用户名
yum仓库
将大量的包打包在一起,自动解决依赖关系。
[] 唯一标识符,用于区分其他仓库。
name 名称描述。
baseurl 挂载地址。
enabled 设置语言是否可用 ,1可以,0不可以。
gpgcheck=1校验 0不校验。
gpgkey是公钥地址,当gpgcheck是0时,不用写。
编写Shell脚本
Shell脚本名称随意,但一般为表示是脚本文件后缀为.sh。
格式
第1行,脚本声明,告诉系统用什么shell解释器执行该脚本。
第2行,脚本注释。
第3行和第四行,脚本正文,常见命令配合流程控制语句等组成有一定功能的脚本程序。
bash脚本文件所在位置/脚本文件名,以运行脚本。
用户参数
$0,当前Shell脚本程序的名称。
$#,总共有几个参数。
$*,所有位置的参数值。
$?,显示上一次命令的执行返回值。
$1、$2、$3…,分别对应着第N个位置的参数值。
条件测试语句
格式 [ 条件表达式 ] 两边都要加上空格,条件测试语句不能配合管道符。
文件测试所用的参数:
-d 测试文件是否是目录类型。
-e 测试文件是否存在。
-f 判断是否为一般文件。
-r 测试当前用户是否有读取权限。
-w 测试当前用户是否有写入权限。
-x 测试当前用户是否有执行权限。
ls -l显示第一列中的 r、w、x分别是读取写入和执行权限。
逻辑测试语句参数(返回0则成功,返回1则失败)
逻辑与 &&:当前面的命令执行成功后才会执行后面的命令。
逻辑或 ||:当前面的命令执行失败后才会执行后面的命令。
逻辑非 !:条件测试中的判断结果取反。
可用的整数比较运算符:
-eq 是否等于。
-ne 是否不等于。
-gt 是否大于。
-lt 是否小于。
-le 是否小于或等于。
-ge 是否大于或等于。
常见的字符串比较运算符:
= 比较字符串内容是否相同。
!= 比较字符串内容是否不同。
-z 判断字符串内容是否为空,0没用,1反之。
试判断虚拟机内存是否大于1G。
if语句
单分支:if…then…fi。
双分支:if…then…else…fi。
查看在home目录里是否有wula目录,如果没有就创建。
比较外部参数与20的大小。
/dev/null:被称作Linux黑洞的文件,把输出重定向到这个文件等同于删除数据,让用户的屏幕窗口保持简洁。
ping -i 定义每个数据包的发送间隔。
ping -c 规定尝试次数。
ping -w 超时时间。
for循环
格式 for变量名in取值列表 for用户名in列表文件
do do
命令序列 创建用户并设置密码
done done
for循环语句允许脚本一次性读取多个信息,然后逐一对信息进行处理。
编写Shell脚本,查看txt文档中的ip地址能否成功
编写Shell脚本,查看txt文档中的用户是否存在,不存在则创建用户并设置密码