linux命令备忘录

系统管理

  • ipcrm
    用来删除一个或更多的消息队列、信号量集或者共享内存标识。

    • -M 想删除的共享内存的key
    • -m 想删除的共享内存的id
    • -Q 想删除的消息队列的key
    • -q 想删除的消息队列的id
    • -S 想删除的信号量的key
    • -s 想删除的信号量的id
  • openssl
    提供常用密码算法、常用的密钥和证书封装管理功能及SSL协议的工具
    例子:用SHA1算法计算文件file.txt的哈希值,输出到stdout
    openssl dgst -sha1 file.txt

  • chage
    修改用户密码过期信息

    • -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
    • -M:密码保持有效的最大天数。
    • -W:用户密码到期前,提前收到警告信息的天数。 -E:帐号到期的日期。过了这天,此帐号将不可用。
    • -d:上一次更改密码的日期。
    • -I:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
    • -l:列出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
  • lastb
    读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。

ps命令支持三种使用的语法格式并且可以混用
1. UNIX风格,选项可以组合在一起,并且选项前必须有“-”连字符
1. BSD风格,选项可以组合在一起,但是选项前不能有“-”连字符
1. GNU风格的长选项,选项前有两个“-”连字符

  • -e 显示所有进程
  • -u userlist 根据有效用户id或名字过滤进程
  • -U userlist 根据真实用户id或名字过滤进程
  • -C cmdlist 根据进程名字过滤进程
  • -L [PID] 查看线程

watch

watch命令可以实时全屏监控当前命令执行的动态变化结果

  • -n 指定间隔时间
  • -d 高亮变化

lsof

  • a causes list selection options to be ANDed
  • -c C selects the listing of files for processes executing the command that begins with the characters of c. Multiple commands may
    be specified, using multiple -c options. They are joined in a single
    ORed set before participating in AND option selection
  • -u USER显示属于指定用户名或用户id的进程打开的所有文件
  • +d DIR 显示目录下被进程打开的文件,对DIR目录下的目录不进行遍历
  • +D DIR 显示目录下被进程打开的文件,对DIR目录下的目录进行遍历
  • -d FD 指定文件描述符
  • -p PID 指定进程id
  • -i [46][protocol][@hostname|hostaddr][:service|port]
    46 specifies the IP version, IPv4 or IPv6 that applies to the following address. ‘6’
    may be be specified only if the UNIXdialect supports IPv6. If
    neither ‘4’ nor ‘6’ is specified, the following address applies to
    all IP versions. protocol is a protocol name - TCP, UDP hostname is
    an Internet host name. Unless a specific IP version is specified,
    open network files associated with host names of all versions will be
    selected. hostaddr is a numeric Internet IPv4 address in dot form; or
    an IPv6 numeric address in colon form, enclosed in brackets, if the
    UNIX dialect supports IPv6. When an IP version is selected, only
    its numeric addresses may be specified. service is an /etc/services
    name - e.g., smtp or a list of them. port is a port number, or a
    list of them.
    例子:
    -i6 - IPv6 only TCP:25 - TCP and port 25
    @1.2.3.4 - Internet IPv4 host address 1.2.3.4
    @[3ffe:1ebc::1]:1234 - Internet IPv6 host address 3ffe:1ebc::1, port 1234
    UDP:who - UDP who service port
    TCP@lsof.itap:513 - TCP, port 513 and host name lsof.itap
    tcp@foo:1-10,smtp,99 - TCP, ports 1 through 10, service name smtp,
    port 99, host name foo tcp@bar:1-smtp - TCP, ports 1 through smtp,
    host bar :time - either TCP, UDP or UDPLITE time service port

当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。有时可以通过lsof来恢复这些文件。
当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。
在/proc
目录下,其中包含了反映内核和进程树的各种文件。/proc目录挂载的是在内存中所映射的一块区域,所以这些文件和目录并不存在于磁盘中,因此当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息。大多数与
lsof 相关的信息都存储于以进程的 PID 命名的目录中,即 /proc/1234 中包含的是 PID 为 1234
的进程的信息。每个进程目录中存在着各种文件,它们可以使得应用程序简单地了解进程的内存空间、文件描述符列表、指向磁盘上的文件的符号链接和其他系统信息。lsof
程序使用该信息和其他关于内核内部状态的信息来产生其输出。所以lsof
可以显示进程的文件描述符和相关的文件名等信息。也就是我们通过访问进程的文件描述符可以找到该文件的相关信息。
当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容。
假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:
首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下: # lsof |grep
/var/log/messages syslogd 1283 root 2w REG 3,3 5381017 1773647
/var/log/messages (deleted) 从上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为
2。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在 /proc/1283/fd/2
(fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:
head -n 10 /proc/1283/fd/2 Aug 4 13:50:15 holmes86 syslogd 1.4.1: restart. Aug 4 13:50:15 holmes86 kernel: klogd 1.4.1, log source =
/proc/kmsg started. Aug 4 13:50:15 holmes86 kernel: Linux version
2.6.22.1-8 (rooteverestbuilder.linux-ren.org) (gcc version 4.2.0) #1 SMP Wed Jul 18 11:18:32 EDT 2007 Aug 4 13:50:15 holmes86 kernel:
BIOS-provided physical RAM map: Aug 4 13:50:15 holmes86 kernel:
BIOS-e820: 0000000000000000 - 000000000009f000 (usable) Aug 4 13:50:15
holmes86 kernel: BIOS-e820: 000000000009f000 - 00000000000a0000
(reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 0000000000100000
- 000000001f7d3800 (usable) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved) Aug 4 13:50:15 holmes86
kernel: BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved) Aug
4 13:50:15 holmes86 kernel: BIOS-e820: 00000000f0008000 -
00000000f000c000 (reserved) 从上面的信息可以看出,查看 /proc/1283/fd/2
就可以得到所要恢复的数据。如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如: cat
/proc/1283/fd/2 > /var/log/messages
对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用。

netstat

  • 不加任何参数 显示所有打开的socket
  • -r 显示路由表
  • -i 显示网络接口
  • -n 显示数值地址
  • -c 每秒显示一次
  • -p 显示每个socket所属进程的进程id和程序名字
  • -l 只显示处于listening状态的socket
  • -t 只显示tcp
  • -u 只显示udp

xargs

  • -0 表示输入的每一项是以null分隔开的,默认情况下以空白或换行分隔,经常配合-print0使用
  • -t 显示执行的命令
  • -n NUM 每次传给命令的参数个数
  • -i (-I{}) 把{}作为占位符
  • -d DIM 自定义输入的分隔符
    例如:
    echo “nameXnameXnameXname” | xargs -dX
    name name name name

wc

  • -c 显示字节数
  • -m 显示字符数
  • -l 显示行数
  • -L 显示最长行的长度
  • -w 显示单词数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值