Linux下查看文件内容的命令
查看文件内容的命令:
cat 由第一行开始显示内容,并将所有内容输出
tac 从最后一行倒序显示内容,并将所有内容输出
more 根据窗口大小,一页一页的现实文件内容
less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head 只显示头几行
tail 只显示最后几行
nl 类似于cat -n,显示时输出行号
tailf 类似于tail -f
ssh
ssh <-p 端口> 用户名@IP
scp
scp 文件路径 用户名@IP:存放路径
从本地服务器复制到远程服务器:
(1) 复制文件:
命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名
(2) 复制目录:
命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要输入用户密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
tar
tar –xvf file.tar // 解压 tar包
tar -zxvf file.tar.gz // 解压tar.gz
tar -jxvf file.tar.bz2 // 解压 tar.bz2
tar –Zxvf file.tar.Z // 解压tar.Z
tar –cvf jpg.tar *.jpg // 将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg // 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg // 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg // 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
w
w命令–>用来查看登录者的信息及他们的行为。
User:登录用户名
TTY:登录后系统分配的终端号
From:远程主机名,即从哪登录的
login@:何时登录
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。
JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行
与其他命令比较
- 区别于who命令,w命令不仅可以看到登录服务器的用户信息,而且可以看到这些用户做了什么
- who am i命令,显示出自己在系统中的用户名,登录终端,登录时间
- whoami命令,显示自己在系统中的用户名
- logname命令,可以显示自己初次登录到系统中的用户名,主要识别sudo前后情形
- last命令,查看最近1个月用户登录服务器的情况
- tty命令,来查看所连接的设备或终端
netstat
列出所有端口 netstat -a
列出所有 tcp 端口 netstat -at
列出所有 udp 端口 netstat -au
只显示监听端口 netstat -l
只列出所有监听 tcp 端口 netstat -lt
只列出所有监听 udp 端口 netstat -lu
只列出所有监听 UNIX 端口 netstat -lx
查看已建立的网络连接及进程
netstat -antulp | grep EST
查看指定端口被哪个进程占用
lsof -i:端口号
或者 netstat -tunlp | grep 端口号
ps
ps命令能提供一份当前进程的快照。如果想状态可以自动刷新,可以使用top命令。
显示所有运行中的进程:ps aux | less
-A:显示所有进程
a:显示终端中包括其它用户的所有进程
x:显示无控制终端的进程
查看非root运行的进程:ps -U root -u root -N
ps -aux | grep pid或者进程名
ps -aux | grep tomcat
结束进程命令
kill PID
killall <进程名>
kill -9 <PID>
使用ps命令,分析进程
ps aux | grep pid | grep –v grep
可以使用lsof -i:1677
查看指定端口对应的程序
封杀某个IP或者ip段
如:
iptables -I INPUT -s 123.45.6.7 -j DROP #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令
禁止从某个主机ssh远程访问登陆到本机,如
iptable -t filter -A INPUT -s . -p tcp --dport -j DROP
iptables -I INPUT -s 123.45.6.7 -j ACCEPT查看已添加的iptables规则
iptables -L -n -v删除已添加的iptables规则
将所有iptables以序号标记显示,执行:
iptables -L -n --line-numbers
比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8
mysql备份
mysqldump -u 用户名 -p 密码 数据库名 > back.sql
mysqldump --all-databases > bak.sql
还原mysql数据库
mysql -u 用户名 -p 密码 数据库名 < bak.sql
find
在/home目录下查找以.txt结尾的文件名
find /home -name "*.txt"
find /home -iname "*.txt"
忽略大小写当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . ( -name ".txt" -o -name ".pdf" )
或
find . -name ".txt" -o -name ".pdf"
awk
awk -F":" '{print $1}' /etc/passwd
awk -F: '{print $1; print $2}' /etc/passwd
//将每一行的前二个字段,分行输出,进一步理解一行一行处理文本
awk -F: '{print $1,$3,$6}' OFS="\t" /etc/passwd
//输出字段1,3,6,以制表符作为分隔符查看UID为0的帐号:
awk -F: '{if($3==0)print $1}' /etc/passwd
crontab
指定包含待执行任务的crontab文件
sudo crontab -l -u www-data
sudo crontab -r -u www-data
string
列出ls中所有的ASCII文本:
strings /bin/ls
列出ls中所有的ASCII文本:
cat /bin/ls strings
查找ls中包含libc的字符串,不区分大小写:
strings /bin/ls | grep -i libc
查看页面访问排名前十的IP
cat /var/log/apache2/access.log | cut -f1 -d | sort | uniq -c | sort -k -r | head -
查看页面访问排名前十的URL
cat /var/log/apache2/access.log | cut -f4 -d | sort | uniq -c | sort -k -r | head -
文件分析
敏感目录的文件分析
查看tmp目录下的文件: ls –alt /tmp/
查看开机启动项内容:ls -alt /etc/init.d/
查看指定目录下文件时间的排序:ls -alt | head -n 10针对可疑文件可以使用stat进行创建修改时间、访问时间的详细查看,若修改时间距离事件日期接近,有 线性关联,说明可能被篡改或者其他。
新增文件分析
例如要查找24小时内被修改的php文件:
find ./ -mtime 0 -name "*.php"
(最后一次修改发生在距离当前时间n24小时至(n+1)24 小时)
查找72小时内新增的文件find / -ctime -2
PS:-ctime 内容未改变权限改变时候也可以查出
根据确定时间去反推变更的文件
ls -al /tmp | grep "Feb 27"
特殊权限的文件
查找777的权限的文件 find / *.jsp -perm 4777
隐藏的文件(以 "."开头的具有隐藏属性的文件)
在文件分析过程中,手工排查频率较高的命令是 find grep ls 核心目的是为了关联推理出可疑文件。
网友评论