Linux知识点汇总-不断更新

一、Linux概述

1、什么是Linux?

Linux是一个基于POSIX和Unix多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

2、Unix和Linux有什么区别?

区别LinuxUnix
开源性开源操作系统,免费试用需要付费授权使用
跨平台性良好的跨平台性能,可运行在多种硬件平台上跨平台性能较弱,大多需与硬件配套使用
可视化界面除命令行操作,还有窗体管理系统命令行下的系统
硬件环境对硬件的要求较低对硬件的要求较高
用户群体个人和企业均可使用安全性要求高的大型企业使用,如银行、电信部门

3、什么是 Linux 内核?

Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。

系统内存管理、应用程序管理、硬件设备管理、文件系统管理

4、Linux的基本组件是什么?

内核,shell和GUI,系统实用程序和应用程序。

5、Linux 的体系结构
在这里插入图片描述
Linux体系结构分为两部分:
用户空间(User Space) :用户空间又包括用户的应用程序(User Applications)、C 库(C Library) 。
内核空间(Kernel Space) :内核空间又包括系统调用接口(System Call Interface)、内核(Kernel)、平台架构相关的代码(Architecture-Dependent Kernel Code)

现代CPU实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同。
Linux 从 CPU 的角度出发,为保护内核的安全,把系统分成了两部分。用户空间和内核空间是程序执行的两种不同的状态
可以通过两种方式完成用户空间到内核空间的转移:1)系统调用;2)硬件中断。

6、什么是shell?什么是bash

Unix shell:一种壳层与命令行界面,是Unix操作系统下传统的用户和计算机的交互界面。普通意义上的shell就是可以接受用户输入命令的程序。它之所以被称作shell是因为它隐藏了操作系统低层的细节。Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言

bash是运行Linux的大多数系统的默认shell。

7、BASH和DOS之间的基本区别是什么?

BASH和DOS控制台之间的主要区别在于3个方面:

a、BASH命令区分大小写,而DOS命令则不区分;
b、在BASH下,/ character是目录分隔符,\作为转义字符。在DOS下,/用作命令参数分隔符,\是目录分隔符
c、DOS遵循命名文件中的约定,即8个字符的文件名后跟一个点,扩展名为3个字符。BASH没有遵循这样的惯例。

8、基础概念

交换空间:Linux使用的一定空间,用于临时保存一些并发运行的程序。当RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。

root帐户:系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装Linux时都是默认帐户。

LILO:Linux的引导加载程序。它主要用于将Linux操作系统加载到主内存中,以便它可以开始运行。

命令行界面CLI:command-line interface,在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。

图形用户界面GUI:Graphical User Interface,采用图形方式显示的计算机操作用户界面。

对比命令行界面CLI图像用户界面GUI
不支持鼠标支持鼠标
需要用户记忆操作的命令支持鼠标,键盘
节约计算机系统的资源,操作速度快优点很多

二、磁盘、目录、文件

1、文件系统

在 Linux 操作系统中,所有被操作系统管理的资源都被看作是一个文件
在这里插入图片描述
2、目录结构在这里插入图片描述
3、什么是索引结点inode ?

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区Sector"。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘一次性连续读取多个扇区,即一次性读取一个"块block"。文件存取的最小单位是多个扇区组成的"块"。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block

文件数据都储存在"块"中,储存文件元信息的区域叫做"索引节点"inode

4、什么是硬链接和软链接?

实际场景下,基本是使用软链接

区别硬链接软链接
定义指向文件inode节点的指针创建一个新的 inode 节点
跨区硬链接不可以在不同文件系统的文件间建立链接,不可以跨分区软件链没有任何文件系统的限制,可以跨分区
链接删除删除硬链接文件,不会删除原文件删除软链接文件,会把原文件删除
文件移动文件可以随意移动链接文件包含有原文件的路径信息,当原文件从一个目录下移到其他目录中,找不到链接文件
空间占据空间小分配额外的空间建立新的索引节点和保存原文件的路径

5、独立磁盘冗余阵列RAID是什么?

RAID 全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。RAID 通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统只会把它当做一个硬盘。

三、安全

1、什么叫 CC 攻击?什么叫 DDOS 攻击?

攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。

CC 攻击主要用来攻击页面,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。

分布式拒绝服务攻击DDOS 指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击

预防攻击:用硬件防火墙做流量清洗,将攻击流量引入黑洞

2、什么是网站数据库注入?

编写代码时没有对用户输入数据的合法性进行判断。
应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL 注入。
SQL注入从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,如果管理员没查看日志的习惯,可能被入侵很长时间都不会发觉。

SQL注入用 nginx_waf 做过滤与预防

四、shell

一个 Shell 脚本是一个文本文件,包含一个或多个命令。

1、默认登陆shell

在 Linux 操作系统,"/bin/bash" 是默认登录 Shell,是在创建用户时分配的。
使用 chsh 命令可以改变默认的 Shell 。

## chsh <用户名> -s <新shell>
## chsh ThinkWon -s /bin/sh

2、在 Shell 脚本中,如何写入注释?

##写入注释

#!/bin/bash
## This is a command
echo “I am logged in as $USER

3、可以在 Shell 脚本中使用哪些类型的变量?

系统定义变量用户定义变量
系统系统自己创建系统用户来生成和定义
大写字母组成,可以通过 set 命令查看通过命令 “echo $<变量名>” 查看

4、Shell脚本中 $? 标记的用途是什么?

检查前一命令是否执行成功,在 if 条件中使用 $? 可以来检查前一命令的结束状态

结束状态是 0 ,说明前一个命令执行成功;
结束状态不是0,说明前一个命令执行失败。

5、如何取消变量或取消变量赋值?

unset 命令用于取消变量或取消变量赋值。

## unset <变量名>

6、Shell 脚本中 if 语法?

if [ 条件 ]
then
命令1
命令2
…..
else
if [ 条件 ]
then
命令1
命令2
….
else
命令1
命令2
…..
fi
fi

7、在 Shell 脚本中如何比较两个数字?

在 if-then 中使用测试命令( -gt 等)来比较两个数字。

#!/bin/bash
x=10
y=20
if [ $x -gt $y ]
then
echo “x is greater than y”
else
echo “y is greater than x”
fi

8、Shell 脚本中 case 语句的语法?

case 变量 in
值1)
命令1
命令2
…..
最后命令
!!
值2)
命令1
命令2
……
最后命令
;;
esac

9、Shell 脚本中 for 循环语法?

for 变量 in 循环列表
do
命令...
done

10、Shell 脚本中 while 循环语法?

如同 for 循环,while 循环只要条件成立就重复它的命令块。

不同于 for循环,while 循环会不断迭代,直到它的条件不为真。

while [ 条件 ]
do
命令…
done

11、do-while 语句的基本格式?

do
{
命令
} while (条件)

12、break和continue命令的作用?

break 命令:退出执行中的循环。我们可以在 while 和 until 循环中使用 break 命令跳出循环。

continue 命令:只跳出当前循环的迭代,而不是整个循环。

13、#!/bin/bash 的作用?

#!/bin/bash 是 Shell 脚本的第一行,称为释伴行。命令通过 /bin/bash 来执行

这里 # 符号叫做 hash ,而 ! 叫做 bang。

14、脚本可执行?

使用 chmod 命令来使脚本可执行。例子如下:chmod a+x myscript.sh

15、如何调试 Shell脚本?

1、使用 -x 参数:sh -x myscript.sh
2、使用 -nv 参数:sh -nv myscript.sh

16、如何执行算术运算?

1、使用 expr 命令:expr 5 + 2
2、用$[ 表达式 ]test=$[16 + 4] ;

五、文件管理命令

1、cat 命令

cat 命令用于连接文件并打印到标准输出设备上。

1.一次显示整个文件: cat filename

2.创建一个文件: cat > filename 只能创建新文件,不能编辑已有文件。

3.将几个文件合并为一个文件: cat file1 file2 > file

-b 输出非空行号
-n 输出所有行号

实例:
(1)把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

cat -n log2012.log log2013.log

(2)把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里

cat -b log2012.log log2013.log  log.log

2、chmod 命令

控制文件或目录的访问权限。

-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log

第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是 d,表示是一个目录。从第二个字符开始到第十个 9 个字符,3 个字符一组,分别表示了 3 组用户对文件或者目录的权限。权限字符用横线代表空许可,r 代表只读,w 代表写,x 代表可执行。

常用参数:

-c 当发生改变时,报告处理信息
-R 处理指定目录以及其子目录下所有文件

权限范围:

u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

权限代号:

r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
s :特殊权限

实例:
(1)增加文件 t.log 所有用户可执行权限

chmod a+x t.log

(2)撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息

chmod u=r t.log -c

(3)给 file 的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

chmod  u=rwx g=rx o=x t.log -c

3、chown 命令

将指定文件的拥有者改为指定的用户或组。

(1)改变拥有者和群组 并显示改变信息

chown -c mail:mail log2012.log

(2)改变文件群组

chown -c :mail t.log

4、cp 命令

将源文件复制至目标文件,或将多个源文件复制至目标目录
注意:如果不加 -i 参数,则不会提示,而是直接覆盖!

-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样

(1)复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。

cp -ai a.txt test

(2)为 a.txt 建议一个链接(快捷方式)

cp -s a.txt link_a.txt

5、find 命令

用于在文件树中查找文件,并作出相应的处理

6、head 命令

显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行

head filename -n 行数(行数为负数表示从最后向前数)

6、less命令

可以随意浏览文件,在查看之前不会加载整个文件

-i  忽略搜索时的大小写
-N  显示每行的行号
-o  <文件名> 将less 输出的内容在指定文件中保存起来
-s  显示连续空行为一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
-x <数字> 将“tab”键显示为规定的数字空格
b  向后翻一页
d  向后翻半页
h  显示帮助界面
Q  退出less 命令
u  向前滚动半页
y  向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]:   向上翻动一页

1)查看多个文件

less file1 file2

7、ln命令

为文件在另外一个位置建立一个同步的链接,

1、ln命令会保持每一处链接文件的同步性;
2、ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件, 它会在你选定的位置上生成一个和源文件大小相同的文件。
3、ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

-b 删除,覆盖以前建立的链接
-s 软链接(符号链接)
-v 显示详细处理过程

(1)文件创建软链接

ln -sv source.log link.log

(2)文件创建硬链接

ln -v source.log link.log

8、locate命令

locate 通过搜寻系统内建文档数据库达到快速找到档案,使用如 *、? 等进行正则匹配查找

9、more 命令

以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。
(1)显示文件中从第3行起的内容

more +3 text.txt

10、mv 命令

移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命名该文件)

1)将文件 test.log 重命名为 test1.txt

mv test.log test1.txt

(2)将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中

mv log1.txt log2.txt log3.txt /test

11、rm 命令

删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

rm [选项] 文件…

(1)删除任何 .log 文件,删除前逐一询问确认:

rm -i *.log

(2)删除 test 子目录及子目录中所有档案删除,并且不用一一确认:

rm -rf test

12、tail 命令

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

-f 循环读取(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)

13、touch命令

修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
ls -l 可以显示档案的时间记录

$ touch testfile                #修改文件时间属性为当前系统时间  
$ ls -l testfile                #查看文件的时间属性  
#修改后文件的时间属性为当前系统时间  
-rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile  

14、vim 命令在这里插入图片描述
文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

打开文件并跳到第 10 行:vim +10 filename.txt
打开文件跳到第一个匹配的行:vim +/search-term filename.txt
以只读模式打开文件:vim -R /etc/passwd

15、whereis 命令

能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。

16、which 命令
在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。

which     查看可执行文件的位置。
whereis   查看文件的位置。
locate    配合数据库查看文件位置。
find      实际搜寻硬盘查询文件名称。

六、文件编辑命令

各种Linux命令

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值