• Linux系统命令(不定时更新)


    1. su

    编辑bash时,遇到过此类问题:

    #!/bin/bash
    sudo echo 'abc' > /etc/test
    

    尽管使用了sudo权限,但脚本执行时仍然会报无权限写入/etc/目录。原因在于sudo的权限只提供给了command_1: sudo echo abc ,而真正需要使用的是 command_2: > /etc/test 。故需要做如下调整:

    su [-root] -c "echo 'abc' > /etc/test"
    

    su 用于让用户在登录期间变成另外一个用户。后边不带 username 使用时,su 默认会变成超级用户。可选的选项 - (对,就单独一个 - ,完整写法是 -l--login ),可以用于提供一个类似于用户直接登录的环境,用户可能期望是这样的。

    1.1. su命令中passwd的自动输入

    su本身会去调passwd这个程序,而passwd会检测“必须从终端上得倒输入”,所以任何重定向都是不起作用的,但是……有一个东东有用,就是expect,它通过伪终端和 spawn 出来的程序通信,而伪终端是 passwd 会认的(不然网络登陆就不行了),简单的脚本如下:

    #!/usr/bin/expect -f
    
    spawn su -l
    expect "Password:*"
    sleep 1
    send "your password
    "
    expect "root]#"
    interact
    exit
    

    当然这种方式的主要用途不是提供给别人用哈,不然密码的随意暴露也太危险了,所以它是一种当前使用非常广泛、用于批处理自动化测试的脚本语言。类似于上面脚本,你在自己机器上当然也可以为了省事而这样做。

    expect同样支持scp的密码自动填入:

    #!/usr/bin/expect
    
    set password 123
    spawn scp ./south_db.sql root@135.252.234.118:~
    expect -nocase "password: "
    send "$password
    "
    expect eof
    

    可惜su并不支持“无密码公钥认证”,否则可以采用类似scp的公钥认证方式,从而避免 expect 明文记录密码

    2. sshpass

    远程连接某台主机: sshpass -p your_password ssh [-p nPort] root@192.168.11.11

    从密码文件读取文件内容作为密码去远程连接主机: sshpass -f xxx.txt ssh root@192.168.11.11

    向scp程序传送默认密码: sshpass -p 'passwd' scp root@host_ip:/home/test/t ./tmp/

    3. netstat/ss

    netstat 命令已被弃用,而 ss 命令代替了显示更详细的网络统计信息。

    netstat/ss -tnlp

    • -t 启用TCP端口列表
    • -u 启用UDP端口列表
    • -l 仅输出监听套接字
    • -n 显示端口号
    • -p 显示进程/程序名称

    3.1. 实时观察TCP和UDP开放端口

    要实时监视TCP和UDP端口,可以使用所示的watch实用程序运行netstat或ss工具。

    watch ss -tulpn

    4. locate/mlocate

    5. top/htop

    6. lftp

    7. kill/killall

  • 相关阅读:
    Linux Kernel Makefiles Kbuild en
    Android 源码结构分析
    Linux Charger IC 驱动移植总结
    Battery Charging Specification Revision 1.2 中文版本
    OpenCV 3.4.2 Windows系统下的环境搭建(附带opencv_contrib-3.4.2)
    OpenCV 经纬法将鱼眼图像展开
    shell 循环结构
    OpenCV之Mat类使用总结
    shell 条件结构之 if 语句使用总结
    OpenCV Error: Unspecified Error(The Function is not implemented)
  • 原文地址:https://www.cnblogs.com/brt2/p/13055853.html
Copyright © 2020-2023  润新知