很实用且容易忘记的小命令 for Linux(更新中...)

系统相关

# 修改CLI界面显示为英文

/etc/locale.conf

LANG="en_US.UTF-8"

 

# 系统安装日期

方法一:sudo tune2fs -l /dev/sda1 |grep create

方法二:sudo dumpe2fs /dev/mapper/VG0-LV3 |grep "created"

方法三:ls -lact --full-time /etc | tail -1 | awk '{print $6,$7}'

方法四:rpm -qi basesystem  ; 或仅想看具体时间用 rpm -q basesystem --qf '%{installtime:date}\n'

              rpm -q setup --qf '%{installtime:date}\n';

              rpm -qi setup|grep Install|awk '{for(i=3;i<10;i=i+1){printf $i" "};printf "\n"}'  # 这里用到对了循环打印列

 

# 查看centos版本命令

rpm -q centos-release

 

#查看centos版本命令2

 cat /proc/version

 

#  查看操作系统64 or 32 位 

getconf LONG_BIT

 

# 查看时区

# c7   

timedatectl status

 

 

# c6

cat /etc/sysconfig/clock 

 

# 修改时区

# c7

 timedatectl set-timezone Asia/Shanghai

# c6

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  

时区的信息存在/usr/share/zoneinfo/下面,本机的时区信息存在/etc/localtime

 

# 查看硬件时间

概念:Linux时间有两个

系统时间:也叫软件时间(sys), 1970年1月1日到当前时间的秒数

BOIS时间:也叫硬件时间(hc)

 

hwclock --show

# 同步系统时间和硬件时间

hwclock --hctosys

# 本地时间写入硬件时间

 timedatectl set-local-rtc 1

 

# 查看linux服务器公网ip地址

curl ifconfig.me

curl cip.cc

curl myip.ipip.net

curl ipinfo.io

 

#  查看最近一次重启记录

last -x    可显示系统关机、重新开机,以及执行等级的改变等信息。

last |grep "reboot" |head -1

 

 

# centos7解决ssh登录速度慢的问题

vi /etc/ssh/sshd_config      (编辑配置文件)
输入 / ,查找GSSAPIAuthentication 赋值为no
输入 /,查找UseDNS,赋值为 no(该项默认不启用的,要把前面的#删除掉)
最后输入!wq保存文件并退出
重启systemctl restart sshd

# ACL权限设置命令setfacl和getfacl命令

getfacl 命令是用来查看设置ACL(访问控制列表)

setfacl  命令是用来在命令行里设置ACL(访问控制列表)

 

# 查看系统状态常用工具

htop

glances

dstat -cdmnr

pidstat -u -t -p <pid>     # 查看某个PID

  

 # CentOS 7使用systemctl如何补全服务名称

yum install -y bash-completion

PS:安装后记得退出bash重新进入一次后生效

 

# 查询端口对应的进程

ss -lnp|grep <PORT>

-l 查看监听端口

-n 不解析服务名(速度更快)

-p 显示进程ID

 

# 查询进程对应的应用

ps -ef|grep <PID>

-e all processes 

f  ASCII art forest

 

# watch 命令一些小技巧

:: 可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令

watch -n 1 -d  <命令>

 -d 高亮变化的值

-n(默认2秒)

# 每隔一秒高亮显示http链接数的变化情况
watch -n 1 -d 'pstree|grep http'
# 实时查看模拟攻击客户机建立起来的连接数
watch 'netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l'
# 实现一个简单的时钟
watch -n 1 " "

 

pwgen复杂密码随机生成工具 

yum install pwgen

-n 至少包含一个数字
-c 至少包含一个大写字母
-y 至少包含一个特殊字符
-s 完全随机生成密码
-A 密码中不包含大写字母
-0或-- 无数字,密码中不包含数字

 

登录相关

# 用户的登录和注销信息,可以结合管道符过滤使用

journalctl _SYSTEMD_UNIT=systemd-logind.service --since today --until now 

 

远程相关

rdesktop -g workarea -r disk:share=/home/loki/tmp/ X.X.X.X

 

  

网络相关

# ifconfig 命令包

yum -y install net-tools

 

 

硬件信息相关查看

dmidecode 

# 查看几个物理CPU

dmidecode -t processor  |grep "Socket"

dmidecode -s system-serial-number    # 查看DELL 服务ID或主板型号

dmidecode -t memory |grep -E "Size|Locator|Speed"  # 查看内存容量,插槽,速率

 

 

 

 

磁盘相关

 

# 磁盘大小查看当前或下一级子目录的文件夹总大小

sudo du -lh --max-depth=2

 

# 检查磁盘状态

sudo MegaCli64 -PDList -aALL |grep -E "Media Type|Device Id|Port status|Drive Temperature|Firmware state";sudo MegaCli64 -PDList -aALL|grep "Error"

# 获取E和S值

MegaCli64 -PDlist -aall | grep -e '^Enclosure Device ID:' -e '^Slot Number:'

这里获取到的N/A = 控制

 

 

# 查看rebuild 进度

MegaCli64 -PDRbld -showprog -physDrv [:0] -a0  # 这里表示查看第0个盘位的rebuild进度

 

 

# 磁盘快速搜索命令

sudo updatedb  # 建立缓存库

locate <需要搜索的文件名>

 

 

# 查看io进程

命令:iotop

 

 

 

# 查看当前磁盘IO 读写

sar -b 1 10
注:每1秒 显示 1次 显示 10次

 

tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。

rtps: 每秒向磁盘设备的读请求次数

wtps: 每秒向磁盘设备的写请求次数

bread: 每秒从磁盘读的bytes数量

bwrtn: 每秒向磁盘写的bytes数量

 

 

 时间相关

# 查看ntp服务器与上层ntp的状态

ntpstat

 

 

ntpq -p

remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先

refid - 参考上一层ntp主机地址

st - stratum阶层

when - 多少秒前曾经同步过时间

poll - 下次更新在多少秒后

reach - 已经向上层ntp服务器要求更新的次数

delay - 网络延迟

offset - 时间补偿

jitter - 系统时间与bios时间差

  

ntpstat

 

#为234*10(-6)秒。且每隔64秒会主动更新时间。

 

 

扫描相关 

# 扫描常见端口

nmap -PN -T4 -p21,22,23,80,138,139,135,445,1433,3306,3389 192.168.x.0/22 |findstr /ir "for open"

-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。  

-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;

-p <port ranges>: 扫描指定的端口 

 [注:此命令仅在Windows下能使用,linux下请自行替换为grep] findstr /ir "for open"   过滤输出内容, -i 忽略大小写,-r  使用搜索串作为正则表达式。Findstr 将所有元字符解释为正则表达式,除非使用了 /l。 表示匹配多个,从右往左

 

 # 扫描指定文件里面的ip地址,执行端口40000-60000扫描

 nmap -Pn -T5 -p40000-60000 -v -iL C:\Loki_ip.txt |findstr /ir "for open"

iL 指定导入的文本路径(里面是ip地址)

 

# 查看链接数

 ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}'

 

 硬件检测CPU温度相关

 # Linux下查看CPU的温度

yum install -y lm_sensors 

# 检测传感器

sh -c "yes|sensors-detect"     

# 执行sensors查看CPU的温度

sensors 

 

 

内存相关

# 释放cache 

因为系统在操作的过程当中,会把你的操作到的文件资料先保存到buffer中去,因为怕你在操作的过程中因为断电等原因遗失数据,所以在你操作过程中会把文件资料先缓存。

sync

echo  3> /proc/sys/vm/drop_caches

 

echo 0 是不释放缓存

echo 1 是释放页缓存

ehco 2 是释放dentries和inodes缓存

echo 3 是释放 1 和 2 中说道的的所有缓存

 

部署完整性检查工具
yum -y install aide
初始化
# 建议下面操作进入root权限下进行
aide --init 或-i # 初始化,建立第一份样本库
cd /var/lib/aide/ # 进入相关目录
mv aide.db.new.gz aide.db.gz  # 替换旧的样本库
 
更新样本
aide --update 或-u
cd /var/lib/aide/ # 进入相关目录
mv aide.db.new.gz aide.db.gz  # 替换旧的样本库
 
入侵检测
aide --check 或 -C
使用-V 报告的详细程度可以通过-V选项来调控,级别为0-255,-V0 最简略,-V255 最详细
 
# 结果输出到指定文件夹
aide -C --report=file:/tmp/loki.txt
 
定期执行入侵检测,并发送报告
aide -C | /bin/mailx -s "AIDE REPORT $(date +%Y-%m-%d_%H%M%S)"XXX@163.com
 
 

检查系统文件是否被劫持

枚举系统文件夹的文件,按修改事件排序查看7天内被修改过的文件:

find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime +7 | xargs ls -la

 

枚举主机所有服务,查看是否有恶意服务

service --status-all

 

查看某个IP地址实时的链接情况

 while true; do netstat -antp | grep [ip]; done

 

查询log主机登陆日志:

grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'

 

定位有爆破的源IP:

grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c

 

爆破日志的用户名密码:

grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

 

 

 

常用源整理

 #c6

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

#epel
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

 

# C6  20210521  各大厂商大部分官方已经停止源更新,临时解决方案

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo-backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://file.kangle.odata.cc/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://file.kangle.odata.cc/repo/epel-6.repo
yum clean all
yum makecache

# 腾讯C6源还可以用 20211022

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos6_base.repo

wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.cloud.tencent.com/repo/epel-6.repo

 

#c7
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#epel

curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

 

#c8  20210818 更新

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

# epel 

dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*

sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

  

删除相关

xargs搭配用法

# 删除7天以前的旧数据,并排除一些文件指定文件

find /目录名 -type f -mtime +7 | egrep -v 'access.log|error.log|_log.html|404.html' |xargs rm -rf

exec搭配

 #删除/app/logs/目录下的7天前的文件
find /app/logs/ -type f -mtime +7 -exec rm -f {} \;

 

终端颜色相关

#!/bin/bash
#
#下面是字体输出颜色及终端格式控制
#字体色范围:30-37
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
#字背景颜色范围:40-47
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;30m 红底黑字 \033[0m"
echo -e "\033[42;34m 绿底蓝字 \033[0m"
echo -e "\033[43;34m 黄底蓝字 \033[0m"
echo -e "\033[44;30m 蓝底黑字 \033[0m"
echo -e "\033[45;30m 紫底黑字 \033[0m"
echo -e "\033[46;30m 天蓝底黑字 \033[0m"
echo -e "\033[47;34m 白底蓝字 \033[0m"
#控制选项说明
#\033[0m 关闭所有属性
#\033[1m 设置高亮度
#\033[4m 下划线
echo -e "\033[4;31m 下划线红字 \033[0m"
#闪烁
echo -e "\033[5;34m 红字在闪烁 \033[0m"
#反影
echo -e "\033[8m 消隐 \033[0m "
#\033[30m-\033[37m 设置前景色
#\033[40m-\033[47m 设置背景色
#\033[nA光标上移n行
#\033[nB光标下移n行
echo -e "\033[4A 光标上移4行 \033[0m"
#\033[nC光标右移n行
#\033[nD光标左移n行
#\033[y;xH设置光标位置
#\033[2J清屏
#\033[K清除从光标到行尾的内容
echo -e "\033[K 清除光标到行尾的内容 \033[0m"
#\033[s 保存光标位置
#\033[u 恢复光标位置
#\033[?25| 隐藏光标
#\033[?25h 显示光标
echo -e "\033[?25l 隐藏光标 \033[0m"
echo -e "\033[?25h 显示光标 \033[0m"

 

posted @ 2018-11-26 14:32  Cong0ks  阅读(349)  评论(0编辑  收藏  举报