Linux学习记录
前言
这部分主要是Linux指令的学习和记录,都是些常用的或者不太便于记忆的指令。其他常用的如果没有记录到里面那就是已经记在我脑子里了…
基础指令(重点)
1、ls指令
含义:ls (list)
用法1:#ls
含义:列出当前工作目录下的所有文件/文件夹的名称
用法2:#ls 路径
含义:列出指定路径下的所有文件/文件夹的名称
关于路径(重要):
路径可以分为两种:相对路径、绝对路径。
相对路径:相对首先得有一个参照物(一般就是当前的工作路径);
相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录下】、“…/”【上一级目录下】。
绝对路径:绝对路径不需要参照物,直接从根“/”开始寻找对应路径;
用法3:#ls 选项 路径
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
#ls -l 路径
#ls -la 路径
选项解释:
-l:表示list,表示以详细列表的形式进行展示
开头为-的为文件
为d的是文件夹(目录)
为c的是字符型设备
为b的是块设备
为l的是链接文件,真正的路径在其他地方
-a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)
上述列表中的第一列字符表示文档的类型,其中“-”表示改行对应的文档类型为文件,“d”表示文档类型为文件夹。
在Linux中隐藏文档一般都是以“.”开头。
用法4:#ls -lh 路径
含义:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示
在ls 选项 之后可以加上 --sort=size/time 以按大小或修改时间进行排序
2、pwd指令
用法:#pwd (print working directory,打印当前工作目录)
3、cd指令
命令:#cd (change directory,改变目录)
作用:用于切换当前的工作目录的
语法:#cd 路径
补充:
在Linux中有一个特殊的符号“~”,表示当前用户的家目录。
切换的方式:#cd ~
4、mkdir指令
指令:mkdir (make directory,创建目录)
语法1:#mkdir 路径 【路径,可以是文件夹名称也可以是包含名称的一个完整路径】
注意:ls列出的结果颜色说明,其中蓝色的名称表示文件夹,黑色的表示文件,绿色的其权限为拥有所有权限。
语法2:#mkdir -p 路径
含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错
语法3:#mkdir 路径1 路径2 路径3 …. 【表示一次性创建多个目录】
5、touch指令
指令:touch
作用:创建文件
语法:#touch 文件路径 【路径可以是直接的文件名也可以是路径】
6、cp指令
指令:cp (copy,复制)
作用:复制文件/文件夹到指定的位置
语法:#cp 被复制的文档路径 文档被复制到的路径
注意:Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。
注意:当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】,否则目录将被忽略
7、mv指令
指令:mv (move,移动,剪切)
作用:移动文档到新的位置
语法:#mv 需要移动的文档路径 需要保存的位置路径
确认:移动之后原始的文件还在不在原来的位置?原始文件是不在原始位置的
补充:在Linux中重命名的命令也是mv,语法和移动语法一样。
8、rm指令
指令:rm (remove,移除、删除)
作用:移除/删除文档
语法:#rm 选项 需要移除的文档路径
选项:
-f:force,强制删除,不提示是否删除
-r:表示递归
在删除的时候如果不带选项,会提示是否删除,如果需要确认则输入“y/yes”,否则输入“n/no”按下回车。
注意:如果在删除的时候不想频繁的确认,则可以在指令中添加选项“-f”,表示force(强制)。
注意:删除一个目录的时候需要做递归删除,并且一般也不需要进行删除确认询问,所以移除目录的时候一般需要使用-rf选项。
其中称之为通配符,意思表示任意的字符,Linux,则表示只要文件以Linux开头,后续字符则不管。
9、vim指令
指令:vim (vim是一款文本编辑器)
语法:#vim 文件的路径
作用:打开一个文件(可以不存在,也可以存在)
命令模式下,set nu可以显示行号
删除光标所在行可以连按两个d:dd
按下o可以在下一行插入空行
按y可以复制当前行
按p可以粘贴到当前光标所在位置
10、输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
>:覆盖输出,会覆盖掉原先的文件内容
>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:#正常执行的指令 > / >> 文件的路径
注意:文件可以不存在,不存在则新建
11、cat指令
作用1:cat有直接打开一个文件的功能。
语法1:#cat 文件的路径
作用2:cat还可以对文件进行合并
语法2:#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
例如,合并3个文件,并存到一个文件中【配合输出重定向使用】:cat file1 file2 file3 > ./result/refile
12、watch指令
作用:watch -n 秒数num 其他指令
每当其他指令结果变化时,隔秒数num后输出一次指令结果
13、uniq指令
作用:去除结果中的重复部分(行)
14、sort指令
-u:剔除其中的重复项
作用:默认按照字符串比较的方式对结果进行排序
二、进阶指令(重点)
1、df指令
作用:查看磁盘的空间
语法:#df -h -h表示以可读性较高的形式展示大小
2、free指令
作用:查看内存使用情况
语法:#free -m -m表示以mb为单位查看
剩余的真实可以用的内存为1665mb。
Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
3、head指令
作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。
语法:#head -n 文件路径 【n表示数字】
4、tail指令
作用1:查看一个文件的未n行,如果n不指定默认显示后10行
语法:#tail -n 文件的路径 n同样表示数字
作用2:可以通过tail指令来查看一个文件的动态变化内容【变化的内容不能是用户手动增加的】
语法:#tail -f 文件路径
该命令一般用于查看系统的日志比较多。
5、less指令
作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多
语法:#less 需要查看的文件路径
在退出的只需要按下q键即可。
6、wc指令
作用:统计文件内容信息(包含行数、单词数、字节数)
语法:#wc -lwc 需要统计的文件路径
-l:表示lines,行数
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes,字节数
7、date指令
作用:表示操作时间日期(读取、设置)
语法1:#date 输出的形式:2018年 3月 24日 星期六 15:54:28
语法2:#date +%F (等价于#date “+%Y-%m-%d” ) 输出形式:2018-03-24
语法3:#date “+%F %T” 引号表示让“年月日与时分秒”成为一个不可分割的整体
等价操作#date “+%Y-%m-%d %H:%M:%S”
输出的形式:2018-03-24 16:01:00
语法4:获取之前或者之后的某个时间(备份)
#date -d “-1 day” “+%Y-%m-%d %H:%M:%S”
符号的可选值:+(之后) 或者 - (之前)
单位的可选值:day(天)、month(月份)、year(年)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
8、cal指令
作用:用来操作日历的
语法1:#cal 等价于 #cal -1 直接输出当前月份的日历
语法2:#cal -3 表示输出上一个月+本月+下个月的日历
语法3:#cal -y 年份 表示输出某一个年份的日历
9、clear/ctrl + L指令
作用:清除终端中已经存在的命令和结果(信息)。
语法:clear 或者快捷键:ctrl + L
需要注意的是,该命令并不是真的清除了之前的信息,而是把之前的信息的隐藏到了最上面,通过滚动条继续查看以前的信息。
10、管道(重要)
管道符:|
作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。
语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
①过滤案例(100%使用):需要通过管道查询出根目录下包含“y”字母的文档名称。
#ls / | grep y
针对上面这个命令说明:
①以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入;
②grep指令:主要用于过滤
②特殊用法案例:通过管道的操作方法来实现less的等价效果(了解)
之前通过less查看一个文件,可以#less 路径
现在通过管道还可以这么:#cat 路径|less
③扩展处理:请使用学过的命令,来统计某个目录下的文档的总个数?
答:#ls / | wc -l
④输出结果到文件:
在最后加上 > 文件名
在最后加上 >> 文件名 可以附加输出到文件中
Linux的基本指令(2)
一、高级指令
1、hostname指令
作用:操作服务器的主机名(读取、设置)
语法1:#hostname 含义:表示输出完整的主机名
语法2:#hostname -f 含义:表示输出当前主机名中的FQDN(全限定域名)
2、id指令
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。
语法1:#id 默认显示当前执行该命令的用户的基本信息
语法2:#id 用户名 显示指定用户的基本信息
验证上述信息是否正确?
验证用户信息:通过文件/etc/passwd
验证用户组信息:通过文件/etc/group
3、whoami指令
作用:“我是谁?”显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。
语法:#whoami
4、ps -ef指令(重点)
指令:ps
作用:主要是查看服务器的进程信息
选项含义:
-e:等价于“-A”,表示列出全部的进程
-f:显示全部的列(显示全字段)
执行结果:
列的含义:
UID:该进程执行的用户id;
PID:进程id;
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程(parent process ID);
C:Cpu的占用率,其形式是百分数;
STIME:进行的启动时间;
TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
TIME:进程的执行时间;
CMD:该进程的名称或者对应的路径;
案例:(100%使用的命令)在ps的结果中过滤出想要查看的进程状态
#ps -ef|grep “进程名称”
或者:
#ps -aux 显示的项都相同,但是列有不同
5、top指令
作用:查看服务器的进程占的资源(100%使用)
语法:
进入命令:#top (动态显示)
退出命令:按下q键
输出的结果:
表头含义:
PID:进程id;
USER:该进程对应的用户;
PR:优先级;
VIRT:虚拟内存;
RES:常驻内存;
SHR:共享内存;
计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
S:表示进程的状态status(sleeping,其中S表示睡眠,R表示运行);
%CPU:表示CPU的占用百分比;
%MEM:表示内存的占用百分比;
TIME+:执行的时间;
COMMAND:进程的名称或者路径;
在运行top的时候,可以按下方便的快捷键:
M:表示将结果按照内存(MEM)从高到低进行降序排列;
P:表示将结果按照CPU使用率从高到低进行降序排列;
1:当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否展示显示各个cpu的详细信息;
6、du -sh指令
作用:查看目录的真实大小
语法:#du -sh 目录路径
选项含义:
-s:summaries,只显示汇总的大小
-h:表示以高可读性的形式进行显示
案例:统计“/root/yunweihenniux”目录的实际大小
案例:统计“/etc”目录实际大小
7、find指令
作用:用于查找文件(其参数有55个之多)
语法:#find 路径范围 选项 选项的值
选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索
文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹
案例:使用find来搜索httpd.conf
#find / -name httpd.conf
案例:搜索etc目录下所有的conf后缀文件
#find /etc -name *.conf
案例:使用find来搜索/etc/sane.d/目录下所有的文件
#find /etc/sane.d/ -type f
案例:使用find来搜索/etc/目录下所有的文件夹
#find /etc -type d
8、service指令(重点)
作用:用于控制一些软件的服务启动/停止/重启
语法:#service 服务名 start/stop/restart
例如:需要启动本机安装的Apache(网站服务器软件),其服务名httpd
#service httpd start
通过ps命令来检查httpd服务是否启动:
9、kill指令(重点)
作用:表示杀死进程 (当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
语法:#kill 进程PID (语法需要配合ps一起使用)
案例:需要kill掉Apache的进程
与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall
语法:#killall 进程名称
10、ifconfig指令(重点)
作用:用于操作网卡相关的指令。
简单语法:#ifconfig (获取网卡信息)
Eth0表示Linux中的一个网卡,eth0是其名称。Lo(loop,本地回还网卡,其ip地址一般都是127.0.0.1)也是一个网卡名称。
注意:inet addr就是网卡的ip地址。
11、reboot指令
作用:重新启动计算机
语法1:#reboot 重启
语法2:#reboot -w 模拟重启,但是不重启(只写关机与开机的日志信息)
12、shutdown指令
作用:关机 (慎用)
语法1:#shutdown -h now “关机提示” 或者 #shutdown -h 15:25 “关机提示”
案例:设置Linux系统关机时间在12:00
如果想要取消关机计划的话,则可以按照以下方式去尝试:
①针对于centos7.x之前的版本:ctrl+c
②针对于centos7.x(包含)之后的版本:#shutdown -c
除了shutdown关机以外,还有以下几个关机命令:
#init 0
#halt
#poweroff
13、uptime指令
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
语法:#uptime
14、uname指令
作用:获取计算机操作系统相关信息
语法1:#uname 获取操作系统的类型
语法2:#uname -a all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)
15、netstat -tnlp指令
(常用:netstat -pantu。列出tcp和udp的套接字进程)
作用:查看网络连接状态
语法:#netstat -tnlp
选项说明:
-t:表示只列出tcp协议的连接;
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
-l:表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接;
-p:表示显示发起连接的进程pid和进程名称;
16、man指令
作用:manual,手册(包含了Linux中全部命令手册,英文)
语法:#man 命令 (退出按下q键)
案例:通过man命令查询cp指令的用法
#man cp
17、macchange -m 新mac地址(00:11:11:11:11:11) 网卡名称(eth0)
作用:在本次登陆系统这段时间内更改mac地址
18、moute
用于挂载iso文件
19、find 起始路径:
-name ‘目标名称’
-exec 其他命令,其中可以使用{}的形式代表find的查找结果
如果使用了exec,最后需要以’;'的形式结束
20、shell 脚本
if:
、[ ]表示条件测试。注意这里的空格很重要。要注意在’[‘后面和’]'前面都必须要有空格
、在shell中,then和fi是分开的语句。如果要在同一行里面输入,则需要用分号将他们隔开。
、注意if判断中对于变量的处理,需要加引号,以免一些不必要的错误。没有加双引号会在一些含空格等的字符串变量判断的时候产生错误。比如[ -n “$var” ]如果var为空会出错
、判断是不支持浮点值的
、如果只单独使用>或者<号,系统会认为是输出或者输入重定向,虽然结果显示正确,但是其实是错误的,因此要对这些符号进行转意
、在默认中,运行if语句中的命令所产生的错误信息仍然出现在脚本的输出结果中
、使用-z或者-n来检查长度的时候,没有定义的变量也为0
、空变量和没有初始化的变量可能会对shell脚本测试产生灾难性的影响,因此在不确定变量的内容的时候,在测试号前使用-n或者-z测试一下
、? 变量包含了之前执行命令的退出状态(最近完成的前台进程)(可以用于检测退出状态)
其他指令:
1.egrep:
egrep -v 反向过滤 -i 忽略大小写
可以过滤指定路径下的所有文件中出现指定字符串的行,并且连着文件路径一起打印:
egrep Linux * #查找当前目录下包含字符串“Linux”的文件
testfile:hello Linux! #以下五行为testfile 中包含Linux字符的行
testfile:Linux is a free Unix-type operating system.
testfile:This is a Linux testfile!
testfile:Linux
testfile:Linux
testfile1:helLinux! #以下两行为testfile1中含Linux字符的行
testfile1:This a Linux testfile!
2. lsof(list open files)
lsof [options] filename
可以显示出打开该给定文件的进程
lsof -i 端口号:可以显示监听该端口号的活动所打开的文件
lsof abc.txt 显示开启文件abc.txt的进程
lsof -c abc 显示出以字母 abc 开头进程现在打开的文件
lsof -p 1234 列出进程号为1234的进程所打开的文件
lsof -g gname/gid 显示归属gname或gid的进程情况
lsof -u uname/uid 显示归属uname或uid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不止一个)
port --> 端口号 (可以不止一个)
3. chmod(change mode)
更改某文件或目录限权
chmod <u|g|o><+|-|=><r|w|x> file/dir
chmod 777 -R 目录或文件
-R:表示将该目录及以下的所有目标都进行此操作
-v:表示显示详细操作
-f:即使该文件权限无法被更改也不要显示错误信息
-c:只有当确实更改当前文件权限时才显示其更改动作
777表示更改的权限 -rwx(u:该文件的拥有者)rwx(g:与该文件拥有者属于同一个group者)rwx(o:此外的人)
4.chown(change owner)
设置文件所有者和文件相关组命令
-R 递归处理
-f 忽略错误
-h 修复符号链接
-v 显示详细信息
chown [-options] user[:group] file/dir
(这里补充几个点:/etc/group 是群组信息,/etc/shadow 是存放加密密码,最前面分隔是username;/etc/passwd 表示【用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell】;/etc/group 存放组信息)
4.1.chgrp(change group)
chgrp [-options] group file/dir
直接改变文件或者文件夹的所属组
5.ss -tnlp(socket statistics)
查看套接字状态
-h, --help 帮助信息
-V, --version 程序版本信息
-n, --numeric 不解析服务名称
-r, --resolve 解析主机名
-a, --all 显示所有套接字(sockets)
-l, --listening 显示监听状态的套接字(sockets)
-o, --options 显示计时器信息
-e, --extended 显示详细的套接字(sockets)信息
-m, --memory 显示套接字(socket)的内存使用情况
-p, --processes 显示使用套接字(socket)的进程
-i, --info 显示 TCP内部信息
-s, --summary 显示套接字(socket)使用概况
-4, --ipv4 仅显示IPv4的套接字(sockets)
-6, --ipv6 仅显示IPv6的套接字(sockets)
-0, --packet 显示 PACKET 套接字(socket)
-t, --tcp 仅显示 TCP套接字(sockets)
-u, --udp 仅显示 UCP套接字(sockets)
-d, --dccp 仅显示 DCCP套接字(sockets)
-w, --raw 仅显示 RAW套接字(sockets)
-x, --unix 仅显示 Unix套接字(sockets)
-f, --family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY可选,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 将原始TCP套接字(sockets)信息转储到文件
-F, --filter=FILE 从文件中都去过滤器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
常用:
查看本地打开的socket:
ss -l
查看tcp连接:
ss -at
查看udp连接:
ss -au
显示每个进程具体打开的socket
ss -pl
6.kill -l (PID)
-l:1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。
7.df -h
查看磁盘空间
8.xxd -b/xxd -r -ps [fileName]
xxd -b [fileName] 是用来将该文件中的内容当作字符串处理,并转化为二进制的形式输出:“ABC”->“656667”->“01000001 01000010 01000011”
其中回车代表的是10,也就是0a
xxd -r -ps [filename] 是用来将file中的内容看作已经处理好的十六进制数,反向得到字符的方式:“3133”->“00110001 00110011”->“49 51”->“13”
9.cut -d ‘分隔符’ -f 第几部分(从1开始)
可以将每一行结果按照分隔符分割字符串,并显示被分割后的某一部分
10. useradd username 创建用户username
passwd username 给已经创建的用户设置密码
userdel username 删除用户
su username 进入用户shell
useradd:
关于useradd 的某些参数:
-u UID :指定UID,这个UID必须是大于等于500,并没有其他用户占用的UID
-g GID/GROUPNAME:指定默认组,可以是GID或者GROUPNAME,同样也必须真实存在
-G GROUPS:指定额外组
-c COMMENT:指定用户的注释信息
-d PATH:指定用户的家目录
11. passwd username
-l 锁定口令(禁用账号)
-u 口令解锁
-d 置为空口令
-f 强迫用户下次登录时修改口令
12. groupdel 用户组名
删除用户组
13. groupmod 选项 用户组
-g 新GID 可以更改组ID
-n 新GNAME 可以更改组名
14.rpm
使用rpm命令可以查询所有套件的文件列表
-a 查询所有套件
-q 在有问题时先询问
-l 查询所有套件的文件列表
重要文件目录:
/etc/passwd存放用户信息,由6个冒号组成7个信息
1.用户名
2.密码(x表示加密密码)
3.UID(用户标识)
4.GID(组标识)
5.用户全名或本地账号
6.家目录
7.登录之后使用的终端命令
/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。
对于/etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文件中。
实现文件包含的漏洞利用,主要是让一些带有通识符的文件包含代码src=./…/…/* 想要包含的文件被替换,这需要一个get或者request的接收头。
通常也是用两种方式来实现这种文件包含漏洞。一种是本地包含,即使用:?page=(相对或者绝对)路径
另一种是远程文件包含:?page=另一个网站上的文件(http://web_service/user/c.php)
而上传的文件也可以使用.jpg等一些图像文件,这些文件会被执行但是菜刀不能识别它们,所以经常使用这种文件去生成一个本地文件webshell而不是直接加入木马。
想要使用远程文件包含,首先需要对应服务器支持这一行为:allow_url_fopen =1 ;
其次,构成代码中需要有include(_once)(‘包含的文件’);或者,require(_once)(‘包含的文件’); 这种文件包含的代码,这需要:allow_url_include=1;
(所有静态资源,服务器都不会执行)
3)一些常见的敏感信息路径:
Linux/Unix系统:
/etc/passwd // 账户信息
/etc/shadow // 账户密码文件
/usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置
/usr/local/app/php5/lib/php.ini // PHP相关配置
/etc/httpd/conf/httpd.conf // Apache配置文件
/etc/my.conf // mysql 配置文件
启动apache命令:(其他类似)
systemctl start apache2
也可以重启restart
检测当前apache状态:
systemctl status apache2
kali下的apache默认目录:
默认目录是/var/www/html下。修改方法: 打开/etc/httpd/conf/httpd.conf文件,找到下面这行 DocumentRoot “/var/www/html” 可以改成你想要的目录。 ----------------------------------------------------------- apache的默认重要配置信息如下: 配置文件:/etc/httpd/conf/http.conf 服务器的根目录:/var/www/html 访问日志文件:/var/log/httpd/access_log 错误日志文件:/var/log/httpd/error_log 运行apache的用户:apache 运行apache的组:apache端口:80模块存放路径:/usr/lib/httpd/modules
Linux日志:
常见类型:
auth:用户认证时产生,如login、su命令时
console:针对系统控制台的消息
cron:系统定期执行计划任务时产生的日志
daemon:守护进程产生的日志
kern:系统内核消息
mark:产生时间戳
在 /etc/rsyslog.conf里面可以看到日志的配置
/var/log/message 中记录了Linux常见的系统和服务错误信息
lastlog中有最后一次用户成功登录的时间、登录IP等信息(命令lastlog查看)
last可以查看会话的在线状态,用户登录的情况,日期,重启的时间,但是没法看到是谁重启的
lastb查看登录失败的日志
/var/log/secure 记录的主要是用户登录认证(kali好像没有)
当目标服务器主机上的~/.rhosts有++,或者/etc/hosts.equiv中有+时,这表明了可以允许任何计算机远程登录此主机,且不需要口令。登录时使用rlogin登录
telnet服务开启/停止:/etc/init.d/xinetd start/stop,客户端连接时 open IP,退出本次连接:exit,退出telnet:quit
ftp:有着控制连接端口和数据连接端口两个端口,控制连接端口一般是21,用于传输如口令、用户标识、文件操作命令等控制信息;数据连接端口一般是20,用于实际传输文件
主动模式下客户端开启1024以上端口P1来请求服务端的21端口,之后又将P1+1端口告诉服务器用于数据传输,并且服务器从20端口连接P1+1端口。这两个连接都是服务端请求连接到客户端
被动模式下的控制连接请求和数据连接请求都是由客户端发起的,不会因为客户端的防火墙被阻塞
SMTP使用25端口进行通信,SMTP进行发送,但是回复时使用POP3或者IMAP协议进行
HTTP:无状态协议,不保存连接建立时的状态,故引入Cookie的概念
whois服务:IP查询服务,其服务端运行在后台监听43端口(可以使用在线的whois服务)