Hack The Box - Linux Fundamentals Module 详细讲解中文教程

目录

Linux系统结构........................................................................................................... 1

1.1Linux系统组成............................................................................................... 1

1.2Linux系统架构............................................................................................... 2

1.3Linux系统的文件系统..................................................................................... 2

Linux Shell.................................................................................................................. 2

2.1Shell概述....................................................................................................... 2

2.2Shell提示说明................................................................................................ 3

2.3Linux系统的帮助文档..................................................................................... 3

系统管理................................................................................................................... 3

3.1获取当前Linux系统信息的一些命令.............................................................. 3

3.2Linux系统用户管理的一些命令....................................................................... 4

3.3Linux系统包管理的一些命令.......................................................................... 4

3.4Linux系统服务和进程管理.............................................................................. 4

3.5Linux系统上的web services............................................................................ 5

Linux系统上文件/目录的基本操作.............................................................................. 5

4.1一些文件/目录的基本操作命令...................................................................... 5

4.2文件描述符和重定向..................................................................................... 6

4.3文件/目录的权限管理.................................................................................... 6

4.4SUID和GUID.................................................................................................. 7

Linux系统结构

1.1Linux系统组成

Bootloader(加载引导程序):系统启动时需要加载运行的一段程序

OS Kernel(操作系统内核):操作系统的最重要的组成部分

Daemons(守护进程):Linux系统后台运行的服务

OS Shell(交互接口):用户与操作系统进行交互

Graphics server(图形化子系统):允许运行图形化程序

Window Manger(窗口管理):图形化桌面程序。例如:KDE,GNOME

Utilites(系统程序):执行特定功能的应用或者一段程序

1.2Linux系统架构

Hardware(硬件):操作系统的外连设备,例如,内存,硬盘,cpu

Kernel(内核):操作系统的核心

Shell(交互接口):用户与操作系统进行交互的一个命令行接口

System Utility(系统程序):通过程序用户可以使用操作系统的所有功能

1.3Linux系统的文件系统

Linux 操作系统的文件结构是树结构,如下图所示:

Linux file system

/                           系统根目录

├─/bin              包含一般基本的程序     

├─/boot           linux执行所需要的一些引导文件

├─/dev             操作系统可操作的一些设备文件

├─/etc              操作系统的一些配置文件,系统上安装的程序的配置信息

├─/home         当前系统上的用户

├─/lib               系统的一些库文件

├─/media        可移除的外部设备。例如usb驱动

├─/mnt            一般文件系统的临时挂载点

├─/opt             可选文件,一般第三方工具目录

├─/root            root用户的home目录

├─/sbin            包含系统管理员使用的工具

├─/tmp            临时目录,系统下次重启就会自动清空

├─/usr              包含可执行文件,库文件,一些主要的文件等

└─/var             包含一些可变的数据文件,例如日志文件,程序的关联文件等

Linux Shell

2.1Shell概述

Shell是Linux系统的一个用户与系统进行交互的命令行工具,在操作系统和用户之间提供了一种基本的输入与输出通信,进行交互,用户可以通过shell对linux系统进行操作,Linux系统最普遍的shell工具是bash,还有些其他shell

2.2Shell提示说明

例如,像下面这样的,我们可以获取很多信息通过下面语句

<username>@<hostname><current working directory>$

<username>:当前登录的用户

<hostname>:当前主机名

<current working directory>:当前工作目录

Tip:”~”表示当前登录用户的home目录

2.3Linux系统的帮助文档

当我们用一个软件时,不知道它的用法,那么此时我们可以是用linux的man这个工具来查看我们将要用的这个工具的使用方法,就像下面这样用

<username>@<hostname><current working directory>$man <tool>

例如我们要用curl这个工具,就可以这样使用man

<username>@<hostname><current working directory>$man curl

这样我们就会打开一个curl这个工具的一个帮助文档,然后就可以查看这个工具是怎样用的了

Tip:curl是一个命令行工具类似于web浏览器一样的功能,可以访问一个网址,然后获取返回的网页源代码

我们还可以使用其他方法也可以获取工具的帮助信息,例如:

<username>@<hostname><current working directory>$curl –help

<username>@<hostname><current working directory>$curl –h

<username>@<hostname><current working directory>$apropos <keyword>

系统管理

3.1获取当前Linux系统信息的一些命令

whoami        显示当前登录的用户

id                  显示当前用户的身份权限,所属用户,组等信息

hostname     设置或者打印当前系统主机名

uname          打印当前操作系统的信息

pwd              显示当前的工作目录

ifconfig         查看网络接口信息,设置网络配置参数

ip                  显示当前IP地址

netstat          显示当前网络状态

ss                  统计当前主机上的socket套接字,例如,当前哪些服务正在监听

ps                  显示进程状态

who              显示当前登录的

env               打印或者设置环境变量

3.2Linux系统用户管理的一些命令

sudo              以管理员身份执行当前命令

su                  切换用户

useradd        创建一个新用户,或者更新用户信息

userdel         删除用户和相关文件

usermod       修改用户

addgroup      添加一个组

delgroup       删除一个组

passwd         修改用户密码

3.3Linux系统包管理的一些命令

dpkg             Debian系统的包管理工具,用来安装,删除,管理package安装包

apt                提供更高级的命令行交互用来管理package安装包

aptitude        类似apt的包管理工具

snap              snap包管理工具

gem              ruby的包管理工具

pip                python的包管理工具

git                 git版本控制系统管理工具,github

Tip: 软件源文件目录”/etc/apt/source.list”

3.4Linux系统服务和进程管理

一般的服务包括在系统启动时运行的和用户自己安装的服务,通常我们所说的服务就是全部的服务,在后台运行的不和用户进行交互的服务我么叫做daemons守护进程,通常服务名最后一个字母为’d’,例如:sshd,system

systemctl      对当前系统服务进行管理

ps                  对当前系统进程进行管理

journalctl      查看系统日志

kill                关闭进程

Ctrl+Z           暂停当前进程在后台

jobs               显示后台进程

bg                 继续运行后台暂停的进程

&                  在一条命令后加上,可以一直运行这个进程

fg <ID>         显示后台进程到前台

;                    顺序执行命令,如果命令前一个命令执行失败,后续命令继续执行

&&                顺序执行命令,如果前一个命令执行失败,后续命令不执行

|                          顺序执行命令,前一个命令的输出作为后一个命令的输入,前命令失败,后命令继续执行

3.5Linux系统上的web services

一般的web services 有IIS,Nginx,Apache这些,Apahce服务器可以让我们运行一些动态的网页,一般我们使用的动态脚本语言是php,perl,ruby等,其他的脚本语言像python,javascript,lua和.net都能够使用。

curl               命令行下的web浏览器,支持http/https/ftp/sftp/ftps/scp这些协议

wget             命令行下直接从ftp或者http服务器下载文件

python3 –m http.server           python3内置的一个简单的http服务器(port 8000)

Linux系统上文件/目录的基本操作

4.1一些文件/目录的基本操作命令

pwd              显示当前工作目录

ls                   列出当前目录下的内容

cd                 进入指定目录

touch            创建一个空文件

mkdir            创建一个目录

tree                     以树结构显示

.                    表示当前目录

mv                移动文件

cp                 复制文件

nano             文本编辑器

vim               文本编辑器

which            查看指定文件或者工具目录

find               查看指定文件或者工具目录

locate           查看指定文件或者工具目录,优先搜索系统目录

grep              查找匹配字符串

wc                 统计字母,字节,行数

more            打开文件

less               打开文件

head             打印文件前10行

tail                打印文件后10行

sort               以字母或者数字顺序对输出进行排序

cat                打印文件内容

cut                以指定字符做分隔符,分隔文件内容

tr                  指定一个字符替换原来字符

column         格式化以列的形式显示内容

awk ‘{print $1,$NF}’         指定显示一行的首单词和尾单词

sed                替换内容,通过指定pattern表达式

4.2文件描述符和重定向

STDIN-0        0表示文件描述符标准输入 

STDOUT-1    1表示文件描述符标准输出

STDERR-2     2表示当标准输出发生错误时的文件描述符

2>/dev/null  表示把标准输出的错误重定向到”null device”这样就只输出正确结果

>                   标准输出重定向

<                   标准输入重定向

>>                 标准输出追加到文件

<<                 追加到标准输入

EOF               linux系统文件

4.3文件/目录的权限管理

Linux系统中一个文件一般有(r)read读,(w)write写,(x)execute执行三种权限,这三种权限所有者一般是owner,group,other三种,如下图所示

- rwx rw- r--   1 root root 1641 May  4 23:42 /etc/passwd

- --- --- ---   |  |    |    |   |__________|

|  |   |   |    |  |    |    |        |_ Date

|  |   |   |    |  |    |    |__________ File Size

|  |   |   |    |  |    |_______________ Group

|  |   |   |    |  |____________________ User

|  |   |   |    |_______________________ Number of hard links

|  |   |   |_ Permission of others (read)

|  |   |_____ Permissions of the group (read, write)

|  |_________ Permissions of the owner (read, write, execute)

|____________ File type (- = File, d = Directory, l = Link, ... )

Tip:”chmod” 用来修改文件权限

u       表示owner

g       表示group

o       表示other

a       表示all

+       表示添加权限

-       表示删除权限

例如:chmod a+r file,表示给访问这个文件的所有用户都添加read权限

我们也可以用八进制数来修改文件权限,例如:chmod 754 file

这个八进制数是怎么计算出来的,我们可以看下如下过程:

Binary Notation:               4 2 1  |  4 2 1  |  4 2 1

----------------------------------------------------------

Binary Representation:          1 1 1  |  1 0 1  |  1 0 0

----------------------------------------------------------

Octal Value:                    7    |    5   |    4

----------------------------------------------------------

Permission Representation:      r w x   |  r - x  |  r - -

Tip:”chown <user>:<group> <file/directory>”用来修改文件或目录的用户和组

4.4SUID和GUID

一般用户可以直接通过他们所属的用户和组拥有的权限,来操作文件或者目录,我们也可以通过设置SUID和GUID来设置文件的权限,例如,通过设置SUID或GUID,用户可以操作拥有其他用户权限的文件或者目录,管理员通常会给特定的程序设置这个权限来方便其他用户以管理员权限执行这个程序。如果设置了这个权限,原来的’x’将会变成’s’,就像这样- r-w-x变成- r-w-s,非常方便

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

renu08

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值