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\r"
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\r"
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. locate/mlocate

4. top/htop

5. lftp

6. kill/killall

Linux系统命令详解的更多相关文章

  1. 2.linux系统命令详解

    1 shell shell:命令解释器,根据输入的命令执行相应命令. 1.1 shell家族 察看当前系统下有哪些shell: cat /etc/shells 察看当前系统正在使用的shell ech ...

  2. (转)Linux PS 详解

    原文:https://cn.aliyun.com/jiaocheng/162702.html 摘要:原文地址:http://www.cnblogs.com/wangkangluo1/archive/2 ...

  3. Linux命令详解之—tail命令

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

  4. Linux命令详解之—less命令

    Linux下还有一个与more命令非常类似的命令--less命令,相比于more命令,less命令更加灵活强大一些,今天就给大家介绍下Linux下的less命令. 更多Linux命令详情请看:Linu ...

  5. Linux命令详解之—more命令

    Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...

  6. 【转】linux命令详解:md5sum命令

    [转]linux命令详解:md5sum命令 转自:http://blog.itpub.net/29320885/viewspace-1710218/ 前言 在网络传输.设备之间转存.复制大文件等时,可 ...

  7. Linux命令详解之—cat命令

    cat命令的功能是连接文件或标准输入并打印,今天就为大家介绍下Linux中的cat命令. 更多Linux命令详情请看:Linux命令速查手册 Linux 的cat命令通常用来显示文件内容,也可以用来将 ...

  8. Linux命令详解之—pwd命令

    Linux的pwd命令也是一个非常常用的命令,本文为大家介绍下Linux中pwd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux pwd命令用于显示工作目录. 执行pwd指 ...

  9. Linux命令详解之–cd命令

    cd命令是linux实际使用当中另一个非常重要的命令,本文就为大家介绍下Linux中cd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux cd命令用于切换当前工作目录至 d ...

随机推荐

  1. 《机器学习_07_03_svm_核函数与非线性支持向量机》

    一.简介 前两节分别实现了硬间隔支持向量机与软间隔支持向量机,它们本质上都是线性分类器,只是软间隔对"异常点"更加宽容,它们对形如如下的螺旋数据都没法进行良好分类,因为没法找到一个 ...

  2. 【Java_Eclipse】Eclipse插件如何卸载?

    本博客我们讲一下对于Eclipse的插件卸载 1.Eclipse中:Window——Install  New  SoftWare 2.找到相应插件卸载即可

  3. yum CentOS7安装mysql

    配置阿里云yum源 [root@bogon ~]# cd /etc/yum.repos.d/ [root@bogon yum.repos.d]# mkdir repo_bak [root@bogon ...

  4. 一,初次接触html+css需要注意的小问题

    不足之处请不吝赐教,在评论区帮忙补充 html最基础的,入门学习的是标签,常用的标签有<a>      定义锚.<b>      定义粗体字.<br>      单 ...

  5. [PHP学习教程 - 网络]002.获取网页内容(URL Content)

    引言:获取网页内容是我们实现网页操作的基本之基本,今天这一讲,我们和大家讲一下基本请求网页内容的几种方法. 我们似乎每天都要做这样一件事情,打开一个浏览器,输入网址,回车,一个空白的页面顿时有了东西, ...

  6. ReentrantLock解析及源码分析

    本文结构 Tips:说明一部分概念及阅读源码需要的基础内容 ReentrantLock简介 公平机制:对于公平机制和非公平机制进行介绍,包含对比 实现:Sync源码解析额,公平和非公平模式的加锁.解锁 ...

  7. QueryRunner的添加与查询操作

    Apache-DBUtils实现CRUD操作,commmons-dbutils是Apache组织提供的开源JDBC工具类, 封装了针对于数据库的增删改查操作,Class QueryRunner Tes ...

  8. Apache Hudi在医疗大数据中的应用

    本篇文章主要介绍Hudi在医疗大数据中的应用,主要分为5个部分进行介绍:1. 建设背景,2. 为什么选择Hudi,3. Hudi数据同步,4. 存储类型选择及查询优化,5. 未来发展与思考. 1. 建 ...

  9. 低功耗SRAM主要三部分功耗来源

    随着SOC 技术的迅猛发展,由电池供电的便携式电子产品得到了广泛应用,如智能手机.运动手环.ipad.部分汽车电子等.近年来半导体工艺已进入深亚微米甚至纳米阶段,工艺尺寸不断缩小,但是由于电池技术的缓 ...

  10. EntityFramework数据持久化 Linq介绍

    一.LINQ概述与查询语法 二.LINQ方法语法基础(重点) 三.LINQ聚合操作与元素操作(重点) 四.数据类型转换(重点) 一.LINQ概述与查询语法 1.LINQ(Language Integr ...