Linux入门知识点总结

Linux知识点

一.命令一般格式

命令名称 [ -选项 ][ 参数 ] 回车

命令名称:描述该命令功能的英文单词或缩写,必不可少(区分大小写)

选项:执行该命令的限定参数或者功能参数,选项往往包含一个或者多个英文字母,字母前面有一个 - (同一命令采用不同的选项,其功能不同)

参数:执行该命令的所必需对象,如文件、目录等。(根据命令不同,参数可以一个也可以多个甚至没有)

回车:任何命令都必须以回车键结束

[ ]:表示语法选项可有可无

-:是必需的,Linux用它来区分选项和参数

注意:命令名称,-选项,参数几项中间必须由空格来区分

二.系统的注销与关闭

(1)传送信息
向用户以广播的形势发送信息,通常会向用户提示系统即将关机的内容,在向用户发送后,系统会每隔一分钟传递一次信息,直到时间到期为止。
例如:shutdown -k 2 Attention : system will install a disk;

(2)延迟时间

shutdow [-krkfc][-t secs]time[warning message]

Time:具体时间,进行关机调度,time设置有三种方法

shutdow 23:59 //23:59进入单用户模式
shutdown +10 //10分钟后进入单用户维护模式
shutdown now //立刻进入单用户模式

(3)系统关机

shutdown [-krhfc][-t secs]time[warning message]

1.shutdown -h now //立刻关闭系统
2.shutdown -r now //立刻重新启动系统

(4)其他关机命令
1.halt //系统正常关机
2.reboot //系统重新启动
3.poweroff //系统关机后还会关闭电源

三.如何使用命令操纵计算机

(一)字符终端

虚拟终端相互切换:
命令行界面:(Fn)Ctrl+Alt+F2/F3/F4/F5/F6
图形界面 :(Fn)Ctrl+Alt+F1

打开伪字符终端:桌面右键,打开终端

who:显示当前在本地系统的所有用户信息
who am i:查看当前终端信息
exit:退出字符终端

(二)登陆信息与目录

(1)登录提示信息的意义

[root@localhost~]#

root:当前用户账号
Localhost:主机名
~ :用户当前所在的目录。如果现在创建一个文件会被保存在这个目录下(主目录)
root用户的主目录为:/root
普通用户主目录:/home/用户名

pwd命令:显示当前所处的工作目录
# :root用户的命令提示符
$ :普通用户的命令提示符

(2)目录

ls(list)命令
【功能】显示目录内容,默认显示当前目录的文件列表,如果所给的参数是文件,则仅列出该文件有关的信息。
【格式】

ls [-选项] [文件或目录路径]

【重要选项】
-a(all):列出目录中所有项,包括以“.”开始的项(以点开头的为隐藏文件)
-l( use a lang listing format ) :以长格式来显示文件的详细信息。每行列出的信息依次是:文件的类型与权限、链接数、文件属主、文件属组、文件大小、建立或者最近修改的时间。
-i ( inode ) :在输出的第一列显示文件的索引节点号。
-d ( directory ):仅列出目录本身的信息,而非列出目录中的文件列表信息。
-b:对文件名中的不可显示字符用八进制字符显示
-c:按文件的修改时间排序
-d:如果参数是目录,只显示其名称而不显示其下的各个文件
-F:在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记“@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
-i:显示文件和目录的inode编号
-R:递归式地显示指定目录的各个子目录中的文件
-S:以文件大小排序
-s:给出每个目录项所用的块数。
-t:以文件修改时间的先后进行排序。
-m:横向显示目录下的文件,文件名之间以逗号分隔。项目以返号分隔,并填满整行行宽。
在这里插入图片描述
pwd:显示当前目录
cd/:切换到根目录
cd ..:到上级目录
cd .:切换到当前目录
cd~:切换到主目录

(三)在线帮助命令以及常用shell命令

(一)man(manual)命令
【功能】显示命令的使用手册
【格式】man 命令名
通常man显示的命令帮助格式包含以下4部分:
1.NAME:命令名称
2.SYNOPSIS:语法大纲;
3.DESCRIPTION:描述说明;
4.OPTIONS:选项

(二)help命令
【功能】:显示内嵌命令相关信息
【格式】:help [-dms] [模式..]
显示内嵌命令的简略信息。如果指定了PATTERN模式,给出所有匹配的PATTERN的命令的详细帮助,否则打印一个帮助的主题列表
【选项】:
-d : 输出每个主题的简短描述
-m: 以仿man手册的格式显示使用方法
-s : 为每一个匹配的PATTERN模式的主题仅显示一个用法的简介
【参数】:PATTERN pattern模式指定一个帮助主题(命令)
【注意】:只能显示内嵌命令的相关信息,外部命令用man和info(Type命令可以区分命令的类型)

(三)常用shell命令
(1)date命令
【功能】显示系统当前日期和时间

(2)who命令
【功能】显示当前已经登录到系统的所有用户名
【格式】who [选项]
【重要选项】
-r:显示系统当前运行级
-q:只显示登录系统的用户名称和在线人数

(3)cal命令
【功能】显示日历
【格式】cal
1.不带参数 :显示本月日历
2.cal 年份的数字:指定显示某一年全年的日历
3.cal 月 年份的数字:显示某一年某一月的日历

(4)usname命令
【功能】可显示当前操作系统的相关信息。
【格式】uname [选项]
【常用选项】
-r或–release :显示操作系统的发行版本号
-m或–machine :显示所用机器类型
-v :显示操作系统的版本
-i :显示所需硬件平台

(5)su命令
【功能】切换当前用户的登录身份
【格式】su [-] [用户名]
-:表示切换时是否带切换用户的环境变量

(6)echo命令
【功能】在终端显示一行文本内容
【格式】echo 文本内容

(7)clear命令
【功能】清除当前终端的屏幕内容
【格式】clear

(四)通配符和特殊符号

1.通配符
在这里插入图片描述
2.特殊符号
在这里插入图片描述

(五)输入输出重定向

1.输出重定向和附加输出重定向
【功能】把命令的标准输出重定向到指定文件中。(目的是保存命令执行的结果)
输出重定向【格式】:命令 > 重定向文件(覆盖原文件)
附加输出重定向【格式】:命令 >> 重定向文件(在指定文件的末尾追加命令结果)

2.输入重定向
【功能】把命令的标准输入重定向到指定文件中
【格式】命令 < 重定向文件

3.错误输出重定向
【功能】把错误输出重新定向到指定文件中
【格式】命令 2 > 重定向文件

(六)管道与重要热键

1.管道
【格式】命令1|命令2|命令3|...|命令n
【功能】将多个简单的命令集合在一起,用以完成较复杂的功能

2.重要热键
(1)tab键
【功能】命令补全、文件补齐
(2)Ctrl+c键
【功能】中断目前程序
(3)Ctrl+d键
【功能】键盘输入结束

四.vi编辑器

(一)进入编辑器:输入vi

(二)工作模式
三种工作模式:
命令模式:键盘接受的任何字符都被当做命令来解释,不会出现在屏幕上
插入模式(编辑模式):输入的任何字母都被当做文件内容显示在屏幕上
底行命令模式:在屏幕底部显示":",等待用户输入命令

(三)三种模式切换
在这里插入图片描述
(四)如何进入插入模式
命令模式下输入:
i :从当前光标位置,开始输入字符
I :光标移动到当前行的行首,开始输入字符
a :从当前的光标的下一个位置,开始输入字符
A :光标移动到当前行的行尾,开始输入字符
o :光标所在行之下新增一行
O :光标所在行之上新增一行

(五)如何删除字符
x :删除光标所在的字符
nx :从光标开始,向右删除n个字符
X :删除光标前面的那个字符
nX :从光标之前的那个字符开始,向左删除n个字符
dd :删除光标所在整行
D :从光标开始删除到行尾

(六)如何查找字符串
命令模式输入:
/字符串 :光标从当前位置开始向文件尾部查找,如果找到,光标停留在该字符串的首字母上;
?字符串 :光标从当前位置开始向文件 头部查找,如果找到,光标停留该字符串的首字母上
n :继续查找满足条件的字符串
N :改变方向查找,继续寻找满足条件的字符串

(七)如何撤销操作
命令模式下输入:
u : 撤销上一步操作
. : 重复上一步操作

(八)如何设置行号
底层命令模式下输入:
:set nu :每一行前面出现行号
:set nonu :不显示行号
:n1,n2 co n3 :将从n1行n2行之间(包括n1,n2行本身)的所有文本复制到第n3行之下
:n1,n2 m m3 :将从n1行-n2行之间(包括n1,n2行本身)的所有文本移动到第n3行之下
: n1,n2 d :删除从n1行-n2行之间(包括n1,n2行本身)的所有文本
:n1,n2 s/字符串1/字符串2/g :将从n1行-n2行之间(包括n1-n2行本身)的所有字符串1,用字符串2替换

(九)如何移动光标
(1)命令模式下:
键盘上下左右四个键或者
H 左移一个字符
J 下移一个字符
K 上移一个字符
L 右移一个字符
gg 到达文件第一行
G 到命令最后一行
数字+G 到达指定数字行
(2)底行命令模式下:
:数字 光标移动到数字那一行
:$ 光标移动到行尾

(十)保存退出
底层命令模式下输入:
w文件路径:保存
wq :保存并退出
q :退出
q! :不保存文件直接退出

(十一)vi编辑器下使用shell命令
底层命令下输入:
:!命令:仅执行shell命令
:r !命令:读取命令的输入并插入

五.文件与目录

(一)文件路径

文件路径:文件在系统中的位置
绝对路径:从/目录开始直到目标文件或目录的路径
相对路径:相对路径是指从当前所在的目录出发,直到目标文件或者目录的路径
表示目录的特殊符号:
~ :表示用户的主目录
. :表示当前目录
.. :表示上一级目录
在这里插入图片描述

(二)Linux的文件

1.文件
广义:一切皆文件
狭义:磁盘文件

Linux中文件是一个字符流序列:
普通文件(文本文件、可执行文件)
目录
磁盘、键盘、打印机、网卡等设备

2.文件的成分
索引节点(i节点)
文件的信息:文件权限、文件主、文件大小、存放位置、建立日期等
文件使用的一个表示福符,同一个文件有相同的inode号
数据:文件的实际内容

3.文件名
(1)文件名最长可多达255个字符,除斜线/和空字符以外,文件名可以包含任意的ACSII字符
(2)避免使用特殊字符:;、|、>、<、"、’、$、!、%、&、*、?、\、(、)、[、]、空格、制表符或者其他的控制字符
(3)习惯上允许使用“_”“.”来区别文件的类型;同类文件应使用同样的后缀或拓展名
(4)文件名区分大小写
(5)以圆点“.”开头的文件名是隐含文件,必须使用ls-a才能在屏幕上显示

4.如何创建、查看、编辑文件?
方法一:vi编辑器的基本用法
【格式】 vi 文件名

方法二:输入输出重定向
【格式】cat > 文件名

方法三:touch命令
【功能】更新一个文件的访问和修改时间,如果没有对应文件则新建该文件
【格式】touch 文件名或者目录路径

5.如何删除文件或目录
rm命令
【功能】删除文件与目录
【格式】rm [选项] 文件名
【选项】
-i :在删除文件或目录前,提示是否删除
-f 文件名 不提示直接删除强制删除
-r 目录名 递归删除目录文件

(三)Linux的目录

1.Linux的目录结构
文件目录:用于标识系统中的文件及物理地址,提供给检索文件使用
文件目录项 包含:文件名、i节点号
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
2.目录操作
(1)mkdir命令
【功能】新建目录
【格式】mkdir【选项】【目录名】
【实例1】同时创建2个目录 :mkdir dir1 dir2
【实例2】递归生成目录dir1、dir2 :mkdir -p dir1/dir2
【实例3】对生成的目录指定权限744:mkdir -m 744 dir1

(2)cd命令
【功能】更改当前目录(执行和读权限)
【格式】cd [目录路径]
【实例1】切换到自己的主目录:cd
【实例2】切换到主目录下:cd ~
【实例3】上移一层目录:cd ..

(3)mkdir命令
【功能】删除空目录
【格式】rmdir [选项][目录路径]

(四)文件类型

1.文件类型
(1)普通文件(-)
常规文件,包括各种长度的字符串
内核对这些数据没有进行结构化,只是有序的字节序列
文本文件:信件、脚本等
数据文件:电子表格、数据库等
可执行的二进制文件:linux系统所提供的各种命令
(2)目录文件(d)
目录文件也称文件夹爱,是一类特殊的文件;
每个目录的第一项:表示目录本身,并以.为文件名
每个目录的第二项:表示该目录的父目录,用…表示
(3)设备文件(c,b)
设备文件除了存放在文件节点中的信息外,他们不包含任何数据。
设备文件通常在/dev目录下:
(1)字符设备:键盘、终端、打印机、和鼠标
(2)块设备:硬盘、光盘等
(4)链接文件(l)
Linux作为一个文件起多个名字的功能,称为链接
(5)其他
套接字
管道
在这里插入图片描述
Linux还用颜色来区分文件:
蓝色:目录文件
绿色:可执行文件
红色:压缩文件
浅蓝色:链接文件
灰色:其他文件

2.如何查看文件类型
(1)【格式】ls -l 文件名
在这里插入图片描述
(2)显示当前目录下的文件信息,并标记出文件类型:
【命令】ls -F

(3)file命令
【功能】确定指定文件类型
【格式】file 文件名 [文件名...]

(4)查找指定类型文件
find命令
【功能】根据指定路径和表达式查找所匹配的文件或目录
【格式】find [路径...][表达式]
【实例1】find /dev -type[f d b c s p l][-ls][|wc -l]
【实例2】find /dev -type d -ls //查/dev目录下的目录文件
【实例3】find /dev -type d -ls |wc -| //查/dev目录下的目录文件有多少个

(五)链接文件

链接文件的创建;
使用ln命令可以创建链接文件(包括软链接文件和硬链接文件)
【格式】ln [选项] [源文件名] [链接文件名]
【选项】:
-i :覆盖文件前征求用户意见
-s :创建符号链接而不是硬链接

硬链接文件有两个限制:
(1)不允许给目录创硬链接
(2)只有在同一个文件系统中的文件之间才能创建链接

(六)文件的复制移动

1.cp命令
【功能】复制文件或目录
【格式】cp [选项] 源文件或目录路径 目标文件或目录路径
【常用选项】
-b :若存在同名文件,覆盖前,先备份原来的文件
-r :以递归的方式复制文件,用于复制目录内的内容(保留源目录结构)
-a :它保留链接文件、文件属性,并递归得复制目录
-d :复制时保留链接
-f :如果目标文件或目录以存在,不询问用户是否删除,直接删除再复制
-i :如果目标文件或目录已存在,询问用户是否删除,再进行复制
-R :递归复制目录,即连同目录下的子目录和文件一起复制
-p :复制时保持源文件的所有者、组权限和时间标志

2.mv命令
【功能】移动或重命名文件或目录
【格式】mv [选项] 源文件或者目录路径 目标文件或者目录路径
【常用选项】
-b :若存在同名文件,覆盖前先备份原来的文件
-f :强制覆盖同名文件

(七)查看文件

1.more命令
【功能】分屏显示文件内容。首先显示一屏后若还有内容,按Enter键再显示下一行,按Space键显示下一屏,按Q退出
【格式】more [选项] 文件路径
【常用选项】
-s :文件中连续的空白行压缩成一个空白行显示
-d :在每屏的底部显示更友好的提示信息
+n :从文件的第n行开始显示
-n :一次显示的行数
-p :不是以卷动的方式显示每一页,而是先清除屏幕后再显示内容

2.cat命令
【功能1】显示文件信息,可与输入输出重定向配合使用
【格式】cat [选项] 文件名
【常用选项】
-n :由1开始对所有输出行进行编号显示
-b :对非空输出行编号
-s :将相连的多个空行用单一空行代替
-e:在每行末尾显示$符号

【功能2】建立小型文件
【格式】
cat > 文件名
.... //输入信息
Ctrl+d //存盘退出

【功能3】合并文件
【格式】cat 文件1 文件2 > 新文件名

3.less命令
【功能】分屏显示文件内容,按Page UP向后翻阅,按Page Doen向前翻阅,按方向键逐行滚动,按Q键退出
【格式】less [选项] [文件名]

4.head命令
【功能】显示指定文件的前n行,默认显示前10行
【格式】head [选项] [文件]
【选项】
-n num:显示文件的前num行,n可以省略,直接"-"后加行数
-c num:显示文件的前num个字符
-q :不显示文件名的首部
-v :显示文件名的首部

5.tail命令
【功能】查看文件的末尾数据
【格式】tail [选项][文件名]
【选项】
+n num :从第num行以后开始显示
+n num:显示文件倒数num行。如果省略num参数,默认值为10
-c num:显示文件的末尾num个字符

(八)文件的查找检索与排序、统计

1.find命令
【功能】从指定路径开始向下搜索满足条件的文件和目录
【格式】find [路径] [表达式] [操作]
【常见表达式】
-name 文件 :按文件名查找,可以使用通配符
-type 文件类型 :按文件类型查找;f为普通文件、d为目录文件、l为链接文件,b为块设备文件,C为子设备文件
-size [+|-] 文件大小 :查找指定大小的文件,c:字节;k:kb;M:Mb ;G:Gb
-user 用户名 :查找文件所有者为指定用户的文件
-group 组名 :查找文件所属组为指定组的文件
-perm 权限值 :按权限查找
-mtime(mmin) :按时间属性进行检索
-atime(amin) +/-n :按时间属性进行检索
-ctime(cmin) :按时间属性进行检索
【常见的操作】
-delete :删除搜索到的文件和目录
-exec 命令名 { }\; :对搜索到的结果执行特定的命令

2.grep命令
【功能】从指定文本文件或者标准输出中查找复合条件的字符串,默认显示其所在行的内容
【格式】grep [选项] 字符串 [文件...]
【常用选项】
-i :忽略大小写区别
-n :在显示复合的字符串之前,标出该行行号
-v :显示不包含指定字符串的行

3.sort命令
【功能】对文件进行排序与合并
【格式】sort [选项]【文件列表】
【实例】
sort file1 file2:对file1和file2两个文件合并起来排序并输出
sort -r file1 :对file1文件按每行第一个字符进行反向排序
sort -r -o outf1 file2 :对file1文件按每行第一个字符进行反向排序,并把排序结果放在outf1中
sort -n file1 :对file1文件按照每行第一个字段进行数值排序
sort -k 3 file1 :对file1文件按每行第3个字段为关键字排序
sort -n -k 3 file1 :对file1文件按每行第3个字段进行数值排序

4.uniq命令
【功能】报告和删除文件的重复行
【格式】uniq [选项] 文件名
【选项】-u :只显示不重复行

5.wc命令
【功能】统计给定文件的行数、字数和字符数
【格式】wc [-lw] [-c] 文件名
输出的列的顺序和数目固定不变,分别是:行数、字数、字节数
【常用选项】
-l或--lines:统计行数
-w或--words :统计字数
-c或--bytes或--chars :统计字节数

六.如何查看修改文件权限

(一)文件的权限

文件的权限:指文件的控制,即哪些用户可以访问文件以及执行什么样的操作

1.用户分类
文件所有者(owner):建立文件或目录的用户
同组用户(group):文件所属组群中的所有用户
其他用户(other):既不是文件所有者又不是同组用户的其他用户

2.访问权限
读入权限:浏览文件/目录中内容的权限
写入权限
文件:修改文件内容的权限
目录:删除、添加、和重命名目录内文件的权限
执行权限:
文件:对可执行文件而言,是允许执行的权限
目录:进入目录的权限

3.访问权限的表示方法
字母表示法

r(读)
w(写)
x(可执行查找)
-(无权限)

在这里插入图片描述
转化为十进制即是字母表示法
在这里插入图片描述

(二)权限管理

1.chmod命令
【功能】修改文件的访问权限(文件属主或者root)
【格式1】chmod 字母模式 文件名
【格式2】chmod 数字模式 文件名
在这里插入图片描述
【格式1样例】新建文件file(权限为100 110 100)
chmod g+x,o-r file //给同组用户增加x权限,其他用户取消r权限
【格式2样例】新建文件file1(权限为110 110 100)
chmod 670 file1 //为同组用户增加x权限,其他用户取消r权限

2.chown命令
【功能】修改文件的所有者,并可一并修改文件所属组群
【格式】chown 文件所有者 [:组群] 文件
【样例1】将文件所有者由root改为zlh: chown zlh f3
【样例2】将f4文件的所有者和所属组群设置为zlh用户和zlh组群:chown zlh : zlh f4
【样例3】将文件f5所属组群修改为zlh:chown : zlh f5

3.chgrp命令
【功能】修改文件的所属组群
【格式】chgrp 组群 文件

七.如何对Linux使用者进行管理

(一)用户相关配置文件

1.passwd文件:
位置:/etc/passwd
作用:保存各个用户的账户信息(密码除外)
文件格式:每行定义一个用户账号,一行中又划分多个字段,定义用户账号的不同属性,各字段间用":"分隔
在这里插入图片描述
(1).所有用户都可以查看该文件的内容
(2).口令密码使用x填充,不使用明文保存

2.shadow文件
位置:/etc/shadow
作用:保存各用户账号的密码等信息
文件格式:每行定义一个用户账号,一行又划分为多个字段,定义用户账号的不同属性,各字段间用":“分隔
在这里插入图片描述
(1)只有root有权限查看shadow文件
(2)密文:若为”*"、"! !"表示账户未设置密码

(二)如何管理用户

1.useradd命令
【功能】新建用户账号
【格式】useradd [选项] 用户名
【选项】
-d home-dir :设置用户的宿主目录,默认为/home/username
-e date :设置账号的过期日期,格式如:2020-10-30
-g group-name :设定用户的所属组名
-s shell-path :设定用户使用的shell,默认/bin/bash
-u uid :设定用户的UID,唯一且大于1000
-D username :用于显示用户所使用的默认值

2.passwd命令
【功能】设置或修改用户的口令,修改口令的属性
【格式】passwd [选项] 用户名
【选项】
-S username :用于查询指定用户的口令状态,仅root可用
-l username:用于锁定指定用户的口令,仅root可用
-u username :用于解锁指定用户的口令,仅root可用
-d username :用于删除指定用户的口令,仅root可用

3.usermod命令
【功能】修改用户的属性,与useradd参数相同
【格式】usermod [选项] 用户名
【选项】
-c 全名 :指定用户全称
-d 主目录 :指定用户的主目录
-e 有效期限 :指定用户账号的有效期
-f 缓冲天数 :指定口令过期后多久将关闭账号
-g 组群ID或组群名 :指定用户所属的主要组群
-G 组群ID或组群名 :指定用户所属的附加组群
-u 用户ID :指定用户的UID

4.id命令
【功能】查看用户的UID GID和用户所属组群的信息
【格式】id [用户名]
【注】如不指定,则显示当前用户的相关信息

5.userdel命令
【功能】删除指定的用户账号
【格式】userdel [-r] 用户名
使用r参数,删除用户的同时删除用户所有相关的文件,包括宿主目录及用户的邮件池等

(三)组群及相关文件

组账户:具有相同特征的用户的集合体。
创建组的目的是可以成批的管理同类的用户,从而简化工作

组(账户):私有组、标准组
1.一个组可以有多个用户,一个用户可属于不同的组
2.当一个用户同时属于多个组时,在passwd文件中记录是用户所属的主组,其他组称为附加组
3.用户要访问附加组文件时,必须先使用newgrp命令使其成为所要访问组的成员

组的相关配置文件
组群账号信息文件:group
位置:/etc/group
作用:保存各用户账户的分组信息
group文件的各个字段:组名:组口令:组GID : 组成员

组群口令信息文件-gshadow
位置:/etc/gshadow
作用:用于定义用户组口令、组管理员等信息
gshadow的各个字段:组名 :组口令:组管理员账号:组成员列表

(四)如何管理组群

1.groupadd命令
【功能】新建组群
【格式】groupadd [选项] 组名
【选项】
-g GID :指定新建组的GID(>1000)

2.groupmod命令
【功能】修改指定组群的属性
【格式】groupmod [选项] 组名
【选项】
-g GID :指定新建组的GID(>=1000)
-n 新组名 员组名 :指定组群的新名字
-G 组群名 用户名 :将用户添加到组群中

3.groupdel命令
【功能】删除指定的组群
【格式】groupdel [选项] 组名
【注】被删组群不是任何用户的主组群
要删除的组账户必须存在并且不能作为私有组被用户账号引用。

4.gpasswd命令
【功能】用于将指定用户添加到指定用户组或组内删除
【格式】gpasswd [选项] 用户名 组名
【选项】
-a username groupname :将指定用户添加到指定用户组中
-d username groupname :从组内删除用户
-A username groupname :设指定用户为指定组的管理员

八.如何安装维护软件

(一)使用RPM安装软件

在这里插入图片描述
1.RPM包的安装
【格式】rpm -ivh <RPM包名>
【选项说明】
i(install):安装
v(vsrify):在安装中显示详细的安装信息
h(horizontal):显示水平进度条"#"

2.RPM包的删除
【格式】rpm -e <RPM包名>

3.RPM包的查询
在这里插入图片描述
4.RPM包的升级
【格式】rpm -Uvh <RPM包名>

5.RPM包的验证
【格式】rpm -V [参数]
参数可以是包名、文件名或者为空

(二)使用yum服务安装软件

使用不了参考:解决yum使用不了问题

1.yum命令
【格式】yum [options] [command] [package...]
其中:
[options]包括:
-y(当安装过程提示选择,全部选yes)
-q(不显示安装过程)

[command]为所要进行的操作
[package...]是操作的对象

2.yum的常用命令
在这里插入图片描述

九.如何处理最耗资源的“耗子进程”

(一)进程管理的基本内容

1.进程

  • 程序的一次执行过程
  • 资源分配和管理的基本单位
    2.进程管理的内容
  • 监视进程:获取当前系统中各个进程的具体状态信息
  • 调整进程运行优先级
  • 守护进程

(二)如何监视和控制进程

1.与进程的有关信息
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
2.进程监视命令
(1)ps命令
【功能】报告进程的相关信息
【格式】ps [选项]
【选项】
-l :以长格式显示进程信息
-e :显示所有进程的信息
-a :显示所有用户进程
-x :显示没有控制终端的进程
-u :显示用户名和启动时间等信息

按PID排序:ps -aus --sort pid

(2)top命令
【功能】以实时方式报告进程的相关信息
【格式】top [选项]
【选项】
-d time :设定刷新进程信息的间隔时间(秒)

报告时可用键盘输入做如下操作
输入P:根据CPU使用多少排序
输入R:反向排序
输入M:按内存的使用量排序
输入T:根据进程的执行时间多少进行排序
删除指定进程:输入大写的K,输入PID,回车
监视指定用户:输入大写的U,输入用户名
查阅帮助:按下大写的H(输入q退出)
退出top环境:输入q

(3)pstree命令
【功能】显示进程家族树的信息
【格式】pstree [选项] [进程PID/用户名]
【选项】
-p :显示每个进程的PID号
-u :指定只显示属于该用户的进程

(4)lsof命令
【功能】列出由某进程所打开的文件
【格式】lsof [选项][文件或目录路径]
【选项】
-p PID :列出由该进程所打开的所有文件
-u 用户名 :列出某用户打开的所有文件

3.控制进程
kill命令
【功能】向特定进程发送每种信号
【格式】kill [选项] [-信号名称/编号][PID列表]
【选项】
-l :列出系统中定义的信号
在这里插入图片描述

(三)进程的优先级

在这里插入图片描述
在这里插入图片描述
说明
1.root用户可以调整自己和其他用户的进程nice值,且范围为-20-19;
2.普通用户只能调整自己的进程nice值,为了避免普通用户抢占系统,nice的调整范围为0~19,而且只能往高调整

1.nice命令
【功能】设定要启动的进程的谦让度
【格式】nice [选项] 命令
【主要选项】
-n 数值 :设定谦让度,数值的范围-20 ~ 19

2.renice命令
【功能】调整已存在进程的nice值
【格式】renice -n 谦让度 进程pid号

(五)守护进程服务

在这里插入图片描述
1.runlevel命令
【功能】用于显示系统当前和上一次的运行级别。如果系统不存在上一次的运行级别,用N来替代
【格式】runlevel

2.init命令
【功能】转换服务的运行级别
【格式】inin[n]
其中格式中n为0~6的级别,转换级别后系统立刻生效。
【案例】
init 3 :切换到第3运行级
init 0 :关机
init 6 :重新启动
init 5 :进入图形界面

十.文件的打包与压缩

(一)tar包

Linux系统下最常用的打包程序是tar,使用tar程序打出来的包称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其他的程序来进行压缩了。
tar可以为文件和目录创建备份。利用tar,用户可以为某一特定文件创建备份,也可以在备份中改变文件,或者向备份中加入新的文件。
利用tar命令可以把一大堆的文件和目录打包成一个文件,这对于备份文件或将几个文件组合成为一个文件进行网络传输是非常有用的。

(二)使用与管理

【命令】: tar [主选项+辅选项][文件或者目录]
【主参数】:
-c:创建新的归档文件。当用户要对文件或目录创建备份时使用。
-x:从归档文件中释放文件。
-r:把要存档的文件追加到归档文件的未尾。例如用户已经作好归档文件,又发现还有一些文件或目录忘记备份了,可以使用该选项将文件或目录追加到归档文件中。
--delete:将文件从归档文件中删除。
-t:列出档案文件的内容,查看已经备份了哪些文件。
-u:仅仅添加比归档文件更新的文件,如原文档中不存在旧的文件,则追加它到文档中,如存在则更新它。
辅选项:
辅助参数:
-f:使用归档文件或设备,这个选项通常是必选的。
-v:详细报告tar处理的文件信息。
-z:用gzip来压缩/解压缩文件,释放归档文件时也必须有该选项才能解压缩。
-C directory:将归档文件释放到directory指定的目录下。
-M:建立多卷的归档文件,以便在几个磁盘中存放。
-b:为磁带机设置的参数。后跟一个数字,用来说明区块的大小。
【案例1】备份/root/abc目录及其子目录下的全部文件,备份文件名为abc.tar:tar cvf abc.tar /root/abc
【案例2】查看abc.tar备份文件的内容,并显示在显示器上:tar tcf abc.tar
【案例3】将打包文件abc.tar解包出来:tar xvf abc.tar
【案例4】将文件/root/abc/d添加到abc.tar包里面去:tar rvf abc.tar /root/abc/d
【案例5】更新原来tar包abc.tar中的文件d:tar uvf abc.tar /root/abc/d

十一.如何利用作业来偷懒

(一)作业、作业的查看和控制

1.作业:
是指用户向系统提交并执行的一个任务
一个作业对应一个或多个进程

2.前台与后台
前台作业:与用户进行交互操作
后台作业:不接受终端的输入,但向终端输出执行结果
前台和后台执行命令的语法格式
command :前台执行
comman & :后台执行
command
Ctrl+z :将目前的工作放到后台暂停,挂起后的程序将不再做任何操作

3.jobs 命令
【功能】查看当前终端中的后台作业
【格式】job [选项][作业好]
【主要选项】
-l :列出详细的作业信息,包括构成作业的进程列表
-s :列出处于停止(暂停)状态的作业
-r :列出处于运行状态的作业

4.fg命令
【功能】让后台作业恢复到前台执行
【格式】fg 作业号

5.bg命令
【功能】让后台作业恢复到后台执行
【格式】bg 作业号

6.终止作业
方法一:恢复到前台运行→Ctrl+C(终止当前程序)
方法二:ps -l (查出作业号)→ kill -9 作业号

(二)一次性作业

1.at命令
【功能】在指定时间(将来)一次性地执行作业
【格式】
at sometime
at > 作业列表
< ctrl >+d

绝对计时法
小时 : 分钟 如23:59
小时 :分钟 月日年(MMDDDYY或MM/DD/YY或DD.MM.YY)

如2020年12月31日23时59分: 23:59 12312020

相对计时法
now+时间间隔:时间单位为minutes(分钟)、hours(时)、day(天)、week(星期)

如:now+2 minutes

直接计时法
today(今天)、tommorrow(明天)、midnight(深夜)、noon(中午)、teamtime(下午4点)

【实例1】设置2分钟之后,删除user主目录下的newdir这个目录
at now +2 minutes
at > rm -rf /home/user/newdir
< ctrl >+d
【实例2】设置在2020年12月31日23:59分重启系统
at 23:59 12312020
at > reboot
< ctrl >+d

2.at命令
【功能】在指定时间(将来)一次性的执行作业
【格式】at [选项][时间]
【主要选项】
-l :显示等待执行的作业
-d 作业号 :删除指定作业
-f 文件名 :从指定文件而非标准输入设备获取将要执行的命令

3.at命令的配置文件
(1)./etc/at.allow :写在这个文件中的使用者才能使用at
(2)./etc/at.deny :写在这个文件中的使用者则不能使用at
(3).如果两个文件都不存在,那么只有root可以使用at
(4).系统可能会保留一个空的/etc/at.deny文件,意思是允许所有人使用at指令的意思

(三)周期性作业

1.运行守护crond服务
systemctl status crond.service //查看crond.service服务的状态
systemctl start crond.service //开启crond.service服务

2.crontab命令
【格式】crontab [-u user] filename
【功能】利用crontab命令去执行一个已经创建好的cron作业列表文件
[-u user]是超级用户为指定的普通用户创建cron作业,没有指定用户则是用户本身
filename是已经编写好的cron作业列表文件,也称crontab文件

3.crontab文件的编写
在这里插入图片描述
【案例】每一分钟将date写入f1文件中
在这里插入图片描述
【案例】某系统管理员每月的日常工作内容如下:
每天上午9点和下午5点把当前在线人数存到num文件中
在这里插入图片描述
4.管理cron作业
【格式】crontab
【选项】
-l :列出用户的作业执行计划
-e :编辑用户的作业执行计划
-r :删除用户的作业执行计划

十二.如何给系统增加一块硬盘

在这里插入图片描述

(一)硬盘分区的基础

IDE硬盘、SCSI硬盘、SATA硬盘

  • 主分区:1-4个
  • 扩展分区:0-1个
  • 逻辑分区:不限制
    在这里插入图片描述
    Linux系统硬盘设备名
    系统第一块IDE接口的硬盘称为/dev/hda,而它的第一个分区则称为/dev/hda1
    系统第二块IDE接口的硬盘称为/dev/hdb,而它的第三个分区则称为/dev/hdb3
    在这里插入图片描述
    sd : SCSI SATA USB
    系统第一块SCSI接口的硬盘称为/dev/sda,而它的第一个分区则称为/dev/sda1
    系统第二块SCSI接口的硬盘称为/dev/sdb,而它的第五个分区则称为/dev/sdb5
    光盘设备名:/dev/cdrom

fdisk命令
【功能】用来进行创建分区、删除分区、查看分区信息等基本操作。
【格式】fdisk [-l] [device]
【案例】
查看现有磁盘设备系统分区情况:fdisk -l
对sdb硬盘创建分区等操作 :fdisk /dev/sdb

(二)文件系统的创建与检查

1.文件系统的创建
格式化实际是指在物理存储设备上重新创建文件系统
文件系统的创建工作主要有两个方面的内容:
(1)以设定的数据块大小来组织存储空间

  • 数据块是分配存储空间的最小单位
  • 数据块单位大小的设置,决定了文件系统所能支持的最大单一文件大小和最大文件系统总容量
  • Linux对ext4文件系统默认取4096字节为数据块大小

(2)建立索引节点(inode)表
文件的成分:
数据:文件的实际内容
索引节点(i节点)

当格式化完毕后,一个文件系统所能使用的索引节点数量实际是固定的。一个文件系统的索引节点的数量基本决定了他能支持创建的文件数量
在这里插入图片描述

mkfs命令
【功能】创建文件系统
【格式】mkfs [选项] 设备文件名
【选项】mkfs 是关于一组命令(mkfs.ext4,mkfs.vfat等)的统一调用入口
因此以下选项只对于特定某种文件系统类型有效,具体可以查阅手册确定。
-b 数据库大小 :指定基本数据块大小,(参数可以是1024、2048和4096、单位为字节)。
-N 索引节点数量 :设定创建的索引节点数量
-c :在格式化之前检查设备是否有坏数据块
-t 文件系统类型:指定所要创建的文件系统类型。
mkfs支持的文件系统类型有ext2,ext3,ext4和vfat等
比如windows7,系统默认或者推荐采用NTFS,但同时也支持FAT32文件系统。

df命令
【功能】用于查看所有当前被挂载的文件系统的信息
【格式】df -[ahlT]
【选项】
a :显示所有文件系统的信息
h :是以最合适的容量单位显示
l :只显示本地文件系统的使用情况
T :输出每个文件系统的类型
df -ht

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
2.文件系统的检查
fsck命令
【功能】检测并修复文件系统中的错误
【格式】fsck[选项][设备文件名/挂载路径/设备标签/UUID]
【选项】
-A :根据/etc/fstab中的内容按顺序检查
-f :强制检查,即使文件系统已被标记为clean
【实例】fsck /dev/sdb1

(三)磁盘文件系统的挂载与卸载

1.虚拟文件系统:虚拟文件相当于一个程序与各种存储设备及其文件系统之间的接口,用户在实际使用各种文件系统时并不需要关心系统的真实特性,而是以统一的接口访问数据
2.挂载:用户在使用储存设备之前,必须将该设备中的文件系统接入到Linux的虚拟文件系统中,这个过程被称为挂载。
在这里插入图片描述
3.挂载点:文件系统所挂载的目录称为挂载点
除了磁盘分区,光盘,U盘等设备的使用也需要进行挂载
在这里插入图片描述
4.使用命令手动挂载与卸载
mount命令
【功能】挂载文件系统
【格式】mount [-t fs -type][-o option]存储设备名 挂载路径
【实例】mount -t ext4 /dev/sdb1 /mnt/new
fs-type:文件系统类型
option:额外指定一些挂载方式
如:
ro 只读方式挂载
re 读写方式挂载
default,auto/noauto,usrquota,grpquota

umount命令
【功能】卸载文件系统
【格式】umount [存储设备名/挂载路径]
【实例】
umount /dev/sdb1
umount /mnt/new

5.系统启动时自动挂载
/ect/fstab文件
Linux将在系统初始化时需要挂载的文件系统的相关信息记录在/etc/fstab文件中
tmpfs :临时文件的储存管理
decpts :用于伪终端管理
sysfs :用于设备管理
proc :用于进程管理

十三.shell编程

(一).shell编程基础

1.shell脚本
shell脚本就是把一系列linux命令,按照一定的组织格式存储在一个文件中,shell可以读取这个文件并按照规则执行其中的命令,这样的文件就被称为 shell脚本文件。shell脚本可以象简单的程序设计一样允许输入/输出、操纵变量(虽然很简单)、控制流程等等。
Shell程序基本语法较为简单,主要由开头部分、注释部分以及语句执行部分组成。

(1)开头
Shell程序必须以下面的行开始(必须放在文件的第一行)。
#!/bin/bash
符号“#!”用来告诉系统它后面的参数是用来执行该文件的程序,即指明系统需要那种Shell解释用户的shell程序。如使用/bin/bash来执行程序。
(2)注释
在进行Shell编程时,以“#”开头的句子表示注释,直到这一行的结束。

2.输入输出重定向
输入重定向,即将文件file的内容作为 command命令的输入。
命令语法: command < file
输出重定向,即将command命令的输出保存到文件file中,如果存在相同的文件,则覆盖file文件中的内容。
命令语法:command > file
追加重定向,即将command命令执行的输出添加到已存在的文件file中。
命令语法: command >> file

3.shell的特殊字符
(1)美元符号
美元符号“$”表示变量替换,即用其后指定的变量的值来代替变量。

(2)双引号(")
由双引号括起来的字符,除$、倒引号(`)和反斜线(\)仍保留其特殊功能外,其余字符均作为普通字符对待。

(3)单引号(’)
由单引号括起来的字符都作为普通字符出现。

(3)倒引号(`)
由倒引号括起来的字符串被Shell解释为命令行,在执行时,Shell会先执行该命令行,并以它的标准输出结果取代整个倒引号部分。
4.shell变量
像高级程序设计语言一样,Shell也提供说明和使用变量的功能。对Shell来讲,所有变量的取值都是一个字符,Shell程序采用$var的形式来引用名为var的变量的值。

Shell变量分三种:系统变量,环境变量和用户定义变量
系统变量:在对参数判断和命令返回值判断会使用
环境变量:用来定制Shell的运行环境,保证Shell命令的正确执行。
用户定义变量:在Shell脚本中用来作为临时的存储空间,他们的值在程序执行的过程中是可变的。
注意:可用set命令查看当时系统中定义的所有变量。

(1)系统变量
$*:所有命令行参数的值
$#:命令行参数的总数
$$:当前进程的进程ID(PID)
$?:最后执行的一条命令的退出状态,返回值为0则成功,非0则失败
$!:在后台运行的最后一个进程的进程ID

(2)环境变量
HOME:用于保存用户主目录的完全路径名。
PATH:用于保存用冒号分隔的目录路径名,Shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。
TERM:终端的类型。
UID:当前用户的识别号,由数字构成。
PWD:当前工作目录的绝对路径名。
PS1:主提示符,在root用户下,默认的主提示符是“#”,在普通用户下,默认的主提示符是“$”。
PS2:Shell提示符下,命令没输完时,出现的辅助提示符“>”
(3)用户变量
在shell 编程语言中无须声明和初始化shell变量,一个未初始化的shell变量,其默认的初始化值为空字符串。
用户定义的shell变量名是由字母或下线符打头的字母、数字和下线符序列,并且大小写字母意义不同。这与C语言中标识符的定义相同。

用户自己的变量: 变量名=变量值
在定义变量时,变量名前不应加符号“$”;在引用变量的内容时,则应在变量名前加符号“$”。
在给变量赋值时,等号两边一定不能留空格,若变量中本身就包含了空格,则整个字符串都要用双引号括起来。
在编写Shell程序时,为了使变量名和命令名相区别,建议所有的变量名都用大写字母来表示。

保证一个变量的只读性: readonly 变量名

5.shell的输入输出命令
命令:read
用read命令由标准输入读取数据,然后赋给指定的变量。其一般格式如下。
read 变量1 [变量2] ……
命令 :echo
echo命令是将其后的参数输出。最好用双引号把所有参数括起来,这样不仅易读并且能使shell对它们进行正确的解释。

(二)Shell的流程控制

1.分支结构–test文件
如果要对程序流程进行分支处理,首先需要对条件进行判断,这时就需要使用test命令。test命令被用来判断表达式并且产生返回值。
有两种格式,一种是使用关键字test,而另一种是使用方括号。格式如下:
test expression
[ expression ]

二者是等效的。同时要注意几点 :
1.若在test中使用Shell变量,最好用双引号将变量括起来
2.在运算符、圆括号、方括号等操作符的前后至少留一个空格
3.如测试命令分两行写,需在按Eeter键之前加反斜杠()
4.用于三种形式的测试:文件测试、字符串测试和数值测试
在这里插入图片描述
在这里插入图片描述
注意:在test处理含有空格的变量时须用引号将变量括起来,否则出错。Shell在处理命令时将会去掉多余的空格,用引号可防止Shell去掉这些空格。
在这里插入图片描述
在这里插入图片描述
2.算术表达式
五种基本的算术运算:+(加)、-(减)、\*(乘)、/(除)和%(取模)。shell只提供整数的运算。格式如下:
:expr n1运算符 n2
例:expr 15 \* 15
注意:在运算符的前后都留有空格,否则expr不对表达式进行计算,而直接输出它们。

3.分支结构——if语句

if结构 格式:

if    判断条件
then  命令行
fi

if/else结构 格式:

if    判断条件
then  命令1
else  命令2
fi

判断条件包括命令语句和测试语句两种方式:
命令语句形式的判断条件

4.分支结构——case语句
对同一变量进行多次的测试,比elif语句更简单、简洁

case string in
exp-1)
  若干个命令行1;;
exp-2)
  若干个命令行2;;
……
*)
  其他命令行;;
esac

Shell通过计算字符串string的值,将其结果依次与运算式exp-1和exp-2等进行比较,直到找到一个匹配的运算式为止。如果找到了匹配项,则执行它下面的命令直到遇到一对分号(;;)为止。
在case运算式中也可以使用Shell的通配符(“*”,“?”,“[ ]”)。通常用“*”作为case命令的最后运算式以便在前面找不到任何相应的匹配项时执行“其他命令行”的命令。

使用case语句时应注意以下几点
(1) 每个正则表达式后面可有一条或多条命令,其最后一条命令必须以两个分号(;;)结束。
(2) 正则表达式中可以使用通配符。
(3) 如果一个正则表达式是由多个模式组成,那么各模式之间应以竖线“|”隔开。表示各模式是“或”关系,即只要给定字符串与其中一个模式相配,就会执行其后的命令表。
(4) 各正则表达式是唯一的,不应重复出现。
(5) case语句以关键字case开头,以关键字esac结束。
(6) case的退出(返回)值是整个结构中最后执行的那个命令的退出值。若没有执行任何命令,则退出值为零。

5.循环结构——for语句
格式:

for variable [in argument-list]
do
   command-list
done

其中的[in argument-list]部分为可选项,由于它的不同又可有三种形式。

[in argument-list]部分三种形式 :
1.[argument-list]为变量值表
变量variable依次取值表中各字符串
2.[argument-list]为文件的表达式
变量的值依次取当前目录(或指定目录)下与文件表达式相匹配的文件名,每取值一次,就进入循环体执行命令表,直到所有匹配的文件名取完为止。
3.[argument-list]为空
[argument-list]也可以用$*来代替,变量依次取位置参数的值,然后执行循环体中的命令表,直至所有位置参数取完为止。

持续更新!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值