Linux常用命令


关闭空闲pts

(AWD或被入侵时关闭其他登录用户连接)

fuser -k /dev/pts/2

设置全局代理

# Debian
vim /etc/environment
http_proxy="[http://127.0.0.1:8087](http://127.0.0.1:8087)"
https_proxy="[http://127.0.0.1:8087](http://127.0.0.1:8087)"
source /etc/environment

查找SUID文件

find / -perm -u=s -type -f 2>/dev/null
find / -perm /4000 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;

查找SGID文件

find / -perm /2000 2>/dev/null

查找SUID或SGID文件

find / -perm /6000 2>/dev/null

查找包含指定内容属于指定用户组的文件

find / -group adm 2>/dev/null | xargs grep "password"

帮助指令

manls

  • -a:在所有的man帮助手册中搜索;
  • -f:等价于whatis指令,显示给定关键字的简短描述信息;
  • -P:指定内容时使用分页程序;
  • -M:指定man手册搜索的路径

locate命令

快速定位系统中包含指定关键字的文件

-c, --count -- 只输出找到的数量
-q -- 安静模式,不会显示任何错误讯息
-r, --regexp REGEXP -- 使用基本正则表达式
—regex -- 使用扩展正则表达式
-i, --ignore-case -- 忽略大小写

如:locate passwd

which命令

在环境变量指定的路径中查找,返回第一个值

如:which bash

whereis命令

只用于程序名搜索

-b,只搜索二进制文件
-m,man说明文件
-s,源码文件

如:whereis bash

chattr命令

于修改文件系统中文件或目录的扩展属性。这些扩展属性可以用来提高文件或目录的安全性或稳定性。

+:添加扩展属性。
-:删除扩展属性。
i:设置文件为不可修改(immutable)状态,即无法对文件进行删除、更改、重命名等操作。
a:设置文件为只追加(append-only)状态,即只能在文件末尾添加内容,不能修改或删除文件中已有内容。
R:递归地应用于目录及其内容。
S:同步文件内容到磁盘。
常用属性:
# 添加/删除保护属性
chattr +i flag.txt
chattr -i flag.txt

lsof命令

查看谁正在使用某个文件

  • losf -i [端口],查看端口22现在的运行情况
  • lsof -p 12,列出进程ID为12的进程打开了哪些文件
  • lsof -a -u root -d txt,查看所属root用户进程所打开的文件类型为txt的文件
  • lsof -i -P | grep LISTEN |grep java,查看java程序在那些端口开启了监听

开机启动

/etc/profile
/root/.bash_profile
/etc/bashrc
/root/.bashrc
/etc/profile.d/*.sh
/etc/profile.d/lang.sh
/etc/sysconfig/i18n
/etc/rc.local(/etc/rc.d/rc.local)(部分操作系统需要自行创建)
/etc/rc.d/

1、编辑/etc/rc.d/rc.local文件
2、在文件末尾添加你的启动脚本:/path/to/your/script.sh
3、确保rc.local文件可执行
4、启动rc.local服务:sudo systemctl enable rc-local

chkconfig命令

1.将(脚本)启动文件移动到 /etc/init.d/或者/etc/rc.d/init.d/目录下。(前者是后者的软连接)

2.启动文件前面务必添加如下三行代码,否侧会提示chkconfig不支持

#!/bin/sh                          告诉系统使用的shell,所以的shell脚本都是这样
#chkconfig: 35 20 80               分别代表运行级别,启动优先权,关闭优先权,此行代码必须
#description: http server          自己随便发挥!!!,此行代码必须
/bin/echo $(/bin/date +%F_%T) >> /tmp/test.log

3.增加脚本的可执行权限

chmod +x /etc/rc.d/init.d/test.sh

4.添加脚本到开机自动启动项目中。添加到chkconfig,开机自启动。

chkconfig --add [test.sh](http://test.sh/)
chkconfig [test.sh](http://test.sh/) on

5.关闭开机启动

chkconfig test.sh off

6.从chkconfig管理中删除test.sh

chkconfig --del test.sh

自定义服务

1.写服务文件:如nginx.service、redis.service、supervisord.service

[Unit]:服务的说明
Description:描述服务
After:描述服务类别

[Service]服务运行参数的设置
Type=forking            是后台运行的形式
ExecStart               为服务的具体运行命令
ExecReload              为服务的重启命令
ExecStop                为服务的停止命令
PrivateTmp=True         表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径

[Install]               服务安装的相关设置,可设置为多用户
WantedBy=multi-user.target

2.文件以754的权限保存在目录下:目录路径:/usr/lib/systemd/system。

3.设置开机自启动(任意目录下执行)。如果执行启动命令报错,则执行:systemctl daemon-reload

设置开机自启动

systemctl enable nginx.service
systemctl enable supervisord

停止开机自启动

systemctl disable nginx.service

验证一下是否为开机启动

systemctl is-enabled nginx

启动nginx服务

systemctl start nginx.service

停止nginx服务

systemctl start nginx.service

查看nginx服务当前状态

systemctl status nginx.service

查看所有已启动的服务

systemctl list-units --type=service

awk命令

# 打印第二列
cat file | awk '{print $2}'

sed命令

# 打印第二行第二列
cat file | sed -n "2, 1p" | awk '{print $2}'

后台执行

# 使用&
./test.sh &
# 结束终端命令将会终止
nohup ./test.sh &
# 结束终端命令不会终止

screen

screen -S windowname
python3 xxx.py
screen -r windowname

退出:Ctrl+A D

结束:Ctrl+A K

screen+rc.local开机启动

#!/bin/sh -e

nowDate=$(date +%F)
cmd="python3 /root/FireEyeGoldCrystal.py -m -mT 240 >>/root/log/$nowDate.log"
screen -dmS "fegc"
screen -x -S "fegc" -p 0 -X stuff "$cmd"
screen -x -S "fegc" -p 0 -X stuff '\n'
exit 0

添加路由

//添加到网络的路由
# route add –net IP netmask MASK eth0
# route add –net IP netmask MASK gw IP
# route add –net IP/24 eth2
//添加默认网关
# route add default gw IP
//删除路由
# route del –host 192.168.168.110 dev eth0

声明:Hack All Sec的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Linux常用命令


Hacker perspective for security