当前位置:   article > 正文

基本实用的linux命令_liblber库

liblber库

1,在dir目录中查找file文件: find  dir  -name file

find ./ -mtime +7

-time 以day为单位
-min 以分钟为单位

m表示modify,+7表示超过7天未更新,-7表示7天之内更新过

2,在dir目录中搜索含有str字符串的文件: grep  -nr  str  dir

3,其他常用的工具:过滤 grep,用指定分隔符取某个字段值 awk,删除替换字符串 sed

4,cat xxx | while read f;do echo $f;done 的替换用法:xargs,

     echo '11@22@33@44@55@66@77@88@99@00' | xargs -d '@' -n 3 echo 

     -i选项的用法: -i mv {} {}.bak  

5.1,远程获取文件/文件夹(-r):scp  -P  22345  admin@192.168.5.79:/dir1/file   /dir2

5.2,远程上传文件/文件夹(-r):scp  -P  22345  ./file  admin@192.168.5.89:/dir1     (注:-P 指定端口)

5.3,传输文件,接收端:nc  -l  port  > xxx.txt        发送端:cat xxx.txt  | nc remote_ip port

6,查看appname的进程ID情况:ps  auxf | grep "appname"   然后杀死该进程:kill  -9  PID (注:若涉硬件层调用,可能卡死);查看所有信号值:kill -l

7,查看系统cpu实时占用情况:mpstat  -P  ALL 1        cpu详细信息  cat  /proc/cpuinfo           

8,查看系统内存使用情况:free -[m|h]         详细点的: cat  /proc/meminfo

9,获取系统识别的磁盘:fdisk  -l        查看各分区的挂在目录及剩余容量:df  -h

10,挂载某个分区到某个目录节点:mount  /dev/sdb1  ./sf-u      验证 df  -h     卸载 umount  /dev/sdb1或者 umount  ./sf-u

11,测试ip联通性: ping  ip   ,(icmp)提示"主机不可达",去的路上挂了! ;提示"超时",来的路上挂了!(找不到回去的路由)

11.1,判断端口是否对外开放(能否完成三次握手):telnet  [ip]  [port]  或者 nc -zv [ip] [port]

12,查看ip经过的路由节点:win7,tracert  ip            linux,traceroute  ip

13,查看ip对应的mac地址:arp  -a   设置静态的 ip-mac 对:arp  -s  ip_addr  mac_addr(解决arp攻击的方法之一)

14,抓指定网口的ping(icmp)包: tcpdump  -i  eth0  -nnv icmp

14.1,抓本机发本机的包:tcpdump -iany dst host [本机ip地址] and dst port [本机端口]

15,抓指定ip的arp广播包:tcpdump  -i  eth0  arp  | grep "200\.200\.155\.154"

16,抓指定ip/port的数据包:tcpdump -i eth0 host 200.200.155.154 and port not 47191 -n -c 1000

17,抓包到文件,方便wareshark分析:tcpdump -i eth0 host 200.200.155.154 and port not 47191 -n -c 1000 -nnv -s0 -w  ./sf.cap

17.1,抓本机某个ip发出去的所有udp报文:tcpdump -iany -nnv udp and src host [local ip]

18,为指定网口添加ip地址:ip  addr  add  192.168.5.19/24  dev  eth0 ,查看所有ip(含临时): ip a

19,查看路由:ip  route       然后添加静态路由:ip  route  add  200.200.0.0/16  via  200.200.91.254 (若是默认路由,网段改成 default 即可)

20,网口的一些操作及信息查看:ethtool  -i/p/d/S  eth0,ethtool  eth0,ifconfig  eth0,ifconfig  down/up  eth0

21,可靠shell脚本:调试脚本 bash  -x  ./test.sh

set -x -e -u -o pipefail   解释:
-x : 在执行每一个命令之前把经过变量展开之后的命令打印出来(常用于调试)
-e : 遇到一个命令失败(返回码非零)时,立即退出;如果某个命令允许失败,则使用 some_cmd || true 做特殊处理
-u : 试图使用未定义的变量时,立即退出;如某个变量允许为空,可以使用 ${MAP_EMPTY_VAR:-} 做特殊处理 
-o pipefail 只要管道中的一个子命令失败,整个管道命令就失败并立即退出

22,查看tcp/udp所有端口对应的服务情况:netstat -tunp ; 查看监听端口 -anptu

22.1,查看具体的socket信息:ss -anp,显示含(ESTAB "sshd",pid=79085,fd=3)信息;

22.2,查看具体的fd信息:lsof -np PID ; (lsof 是 lists openfiles的缩写,linux一切皆文件,很强大的一个命令,

展示内容:COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAME

23,查看当前目录下的文件占用空间:du -h -d 1  或者 某个目录下总的使用空间 du -sh

24,解压tar包,tar   -zxvf   xxx.tar.gz    ; 新建压缩包 tar   -zcvf   target.tar.gz   src_dir

25,查看系统内存占用排行:ps auxf | sort -r -n -k 6  ;其中sort -r 表示由大到小,-n表示按数字,-k 6 表示以第六列数字排序

#以下是《程序员的修养》的实践。背景: 在编译环境编译 hydra,然后拷贝到设备使之运行。在设备上 ./hydra 报找不到符号,./hydra: symbol lookup error: /lib/libldap_r-2.4.so.2: undefined symbol: ber_sockbuf_io_udp 的错误的解决方法。

26,查看 hydra 应用程序所引用的库文件:ldd -r ./hydra

...libldap_r-2.4.so.2 => /lib/libldap_r-2.4.so.2 (0x00007f28df88a000)

undefined symbol: ber_sockbuf_io_udp    (/lib/libldap_r-2.4.so.2)

27,验证某个库文件是否包含某个符号:cat /lib/libldap_r-2.4.so.2 | grep "ber_sockbuf_io_udp"

Binary file (standard input) matches

28,验证某个库文件的符号是否是导入符号(符号只是引用并未定义)或者导出符号(符号已定义实现):readelf -s /lib/libldap_r-2.4.so.2 ;从下面的输出 UND 字符串,可以判断 /lib/libldap_r-2.4.so.2 库没有该函数的实现,是导入符号而已。

.......20: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  UND ber_sockbuf_io_udp

29,查找应用程序引用的库中,某个符号(函数或全局变量)是在哪个库中定义的:(注意在编译环境查找)

ldd -r /usr/bin/hydra | awk '{print $3}' | while read f;do echo $f; readelf -s $f | grep ber_sockbuf_io_udp;done

...

/lib64/libldap_r-2.4.so.2
    xx: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  UND ber_sockbuf_io_udp

...

/lib64/liblber-2.4.so.2
    xx: 000000000020e460    48 OBJECT  GLOBAL DEFAULT   23 ber_sockbuf_io_udp

...

可以确定,ber_sockbuf_io_udp 符号是在 liblber-2.4.so.2 库中定义的。所以把 liblber-2.4.so.2 库从编译环境拷贝到设备上,删除设备原来的 liblber-2.4.so.2 库,ln -s 一下新库。设备 ./hydra 运行找不到符号的问题得以解决

30,查看linux进程系统调用:strace -p 进程ID号,可以看看nginx的惊群问题epoll系统调用情况

暂时能想到的就这么多,后续的常用linux命令有待补充...

31,对某个文件或者目录加锁,使root用户都无法使用chmod修改其属性:加锁,chattr +i  文件/目录。解锁,chattr -i 文件/目录。查看某文件底层属性:lsattr 文件/目录。注意 attr 应该是 attribute 属性的缩写。

32,查宕机能手,objdump -SDtx some.ko some.S    执行后,some.S 是对应 ko 文件的汇编文件

33,vim 替换文本字符串命令:

         :s /vivian/sky/ 替换当前行第一个 vivian 为 sky  
        :s/vivian/sky/g 替换当前行所有 vivian 为 sky
  :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
   :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
  n 为数字,若 n 为 .,表示从当前行开始到最后一行

34,定位内存泄露,top + htop ;  mtrace 定位内存泄露;原理,hook  __malloc_hook 替换原生的 malloc和free函数。

35,查看进程虚拟内存 vm_area_struct 区域信息, pmap -p PID  或者  cat  /proc/PID/maps
后一个命令的各列含义依次为: 
开始-结束   访问权限   偏移   主设备号:次设备号   inode节点号   映射的文件名称  

36,添加用户 useradd jsf  及密码 passwd jsf ;   添加samba用户 samba -a jsf
37,误删除了 /lib/x86_64-linux-gnu/libc.so.6 解决办法:
首先不要退出远程链接,因为一旦退出了在启动就需要libc库了
LD_PRELOAD=/lib/x86_64-linux-gnu/libc-2.15.so
ln -s /lib/x86_64-linux-gnu/libc-2.15.so /lib/x86_64-linux-gnu/libc.so.6
原理,《CS.APP》里面有解释;库打桩 机制:编译打桩,链接打桩,运行打桩;这里是运行打桩

 开发过程中常用的目前这些,后续随着工作内容的丰富继续补充...

38,每秒执行一次命令:watch , 比如查看 udp 的收发包统计情况: watch netstat -su

39,指定命令执行时间:timeout,抓5s钟的http包: timeout 5 tcpdump -iany -nnv -s0 -w http.pcap

40,查看某个进程的线程详情:top -b -d 1 -n 1 -Hp  PID ,该命令结果可以重定向到问题件

41,查看总的磁盘 io 命令:iostat   查看进程磁盘 io 命令:pidstat -d 1

42,删除隐藏的文件:针对 df -h 没空间,du -h -d 1 又没占用多少的问题,lsof | grep deleted

找到对应的进程 pid 已经占用的隐性的大文件,尝试重启 pid 。

43,date 命令,时间戳转成可阅读时间 date -d @ts ;  或者加上 '+%Y-%m-%d %H:%M:%S'
                          查看当前时间戳 date +%s
                          查看当前可阅读时间 date +"%Y-%m-%d %H:%M:%S";
                          将可阅读时间转成时间戳 
date -d "2024-03-05 15:00:04" +%s

plus,测试网络被我搞环路了好几天,今天测试同事终于查明原因,通知我说,是我的设备搞得鬼。刚开始我还死不承认,后来用网线直连打开ESXI,看到其中一个系统的两个网口,分明配置了"透明口",这是谁配置的? 我想一定是某个新同事搞得,为了证实这点,特地看了下操作日志,无奈环路的这段时间就是我的ip在登入。。。有时候自己不经意做的事,等注意到这是自己做的,往往会大吃一惊。呵呵,50 rmb 作为惩罚。。。

网瘫祸首:交换机网口短接,虚拟机网口配置透明,arp代理。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/389407
推荐阅读
相关标签
  

闽ICP备14008679号