智慧印刷工坊

智慧印刷工坊

今天推送8个常用Linux命令,日积月累,每天记录,用时即查

admin 99 107

Linux模块的安装和卸载

lsmod显示模块信息

modprobe-c显示模块的依赖信息

modprobemodule_name卸载模块


```

[root@test~]Letsyouuse'mymod'inMODULES,insteadof'really_long_module_name'

aliasmymodreally_long_module_name

```

如果模块直接编译进内核,也可以通过启动管理器(GRUB,LILO或Syslinux)的内核行加入参数:

=parametercontents

column格式化输出

可以让一些命令的输出看起来更舒服些.例如blkid,mount,cat/etc/fstab.

[root@test~]blkid|column-t

-s参数指定可以指定分隔符.默认是空格

Usage:

column[options][file]

Options:

-c,--columnswidthwidthofoutputinnumberofcharacters

-t,--tablecreateatable

-s,--separatorstringpossibletabledelimiters

-o,--output-separatorstring

tableoutputcolumnseparator,defaultistwospaces

-x,--fillrowsfillrowsbeforecolumns

-h,--helpdisplaythishelpandexit

-V,--versionoutputversioninformationandexit

通过pid查看进程的环境变量信息

使用strings,可以格式化打印

$strings/proc/1158/environ

LANG=en_

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

NOTIFY_SOCKET=/run/systemd/notify

SSH_USE_STRONG_RNG=0

通过pid查看进程对应可执行文件的绝对路径

readlink/proc/[pid]/exe

通过pid查看进程的当前工作目录

pwdx[pid]

lsof一切皆文件

-p[PID]只显示该进程打开的所有文件.不带参数显示所有已打开的文件

-d对FD有效,用于筛选文件列表.^txt显示除txt其他所有类型的文件.1显示所有fd为1的文件.可以使用,逗号

连接多个选择

-a表示两个参数都必须满足(AND)。如果没有-a标志,缺省的情况是显示匹配任何一个参数(OR)的文件

-n阻止网络地址转换

-P阻止端口号到端口名的转换

-iprotocol:@ip:portprotocol包括tcp和udp.显示符合该地址的文件列表-uss为用户名或者用户ID,选择该用户下的文件

lsof[name]


name是mountpoint或者文件系统对应的设备文件,则显示在该文件系统上打开的所有文件列表

name是文件夹(非mountpoint),则显示所有将该文件夹作为正常文件打开的列表.例如cwd,rtd.如果+d打印所有

在该目录下已打开的文件,但不递归查找子目录.+D则允许递归查找

谁在使用/var/log/messages

[root@test~]lsof+D/var/log/

COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME

abrt-watc712root4rREG202,25559752093357/var/log/messages

rsyslogd714root3wREG202,25559752093357/var/log/messages

rsyslogd714root6wREG202,269851722094508/var/log/secure

rsyslogd714root7wREG202,273/var/log/cron

tuned732root3wREG202,277082093361/var/log/tuned/

[root@test~]#

```

列出root这个用户打开的所有文件

lsof-uroot

dd测试磁盘或者文件读写

高危命令,of一定要指向正确的文件,不要指/,/dev/vda,/dev/vda1等系统重要设备.

该命令要在测试环境验证充分.

if表示从哪个设备/文件读

of表示写到哪个设备/文件

bs表示一次读写多少字节.也可以使用1K,1M这样带单位的

count表示最多读写多少次.总的读写量为bs*count

/dev/zero可以无限读取\0

ddif=/dev/zeroof=/tmp/=1Mcount=10

rpm安装/更新/卸载软件包

查询系统已安装的所有软件包

rpm-qa

查询某个文件所属的软件包名.文件必须是绝对路径

rpm-qf/etc/ssh/sshd_config

rpm-qf`whichstrace`

查询包所含有的文件

rpm-qlstrace

查询包里的配置文件

rpm-qcopenssh-server

查询软件包里的脚本信息

rpm-q--scriptsopenssh-server

查询当前包的changelog.常用于查看已解决的CVE列表

rpm-q--changelogopenssh-server

查询包所能提供的CAPABILITY

rpm-q--providesglibc

查询哪些包依赖某个CAPABILITY

rpm-q--whatrequires[CAPABILITY]

查询包所依赖的CAPABILITY

rpm-q-Rglibc

查询包所有提供的CAPABILITY

rpm-q--whatprovides[CAPABILITY]

校验当前包与原始状态的差别.

5–MD5校验和

S–文件长度

L–符号链接

T–文件修改日期

D–设备

U–用户

G–用户组

M–模式(包含许可和文件类型)

?–不可读文件

如下标志文件的md5,文件长度,修改日志有变化

$rpm-Vopenssh-server

/etc/ssh/sshd_config

安装本地包-vh获得一个详细的安装进程--nodeps忽略依赖关系

卸载包

升级包