标签: command-line-interface

命令行安全技巧

命令行和脚本是危险的。使用 rm -rf 犯一个小错误,你就会陷入伤害的世界。在运行导入脚本时将数据库名称中的 prod 与 stage 混淆,并且您已绑定(如果它们在同一台服务器上,这并不好,但会发生)。同样为太晚注意到您 sshed 所在的服务器名称不是您在玩弄一些命令后认为的那样。你必须尊重Hole Hawg

在运行有风险的命令之前,我有一些小习惯——比如对我所在的服务器进行三重检查。这是一篇关于 rm security有趣文章

什么小仪式、工具和技巧可以让你在命令行上保持安全?我的意思是客观的东西,比如“首先运行 ls foo*,查看它的输出,然后用 rm -rf 替换 ls 以避免运行 rm -rf foo * 或类似的东西”,而不是“确保你知道什么是命令会做”。

unix command-line-interface

34
推荐指数
7
解决办法
1万
查看次数

如何从命令行获取文件的所有权?

我每隔一段时间就会遇到一个我需要拥有的文件。我通常cacls用于更改 ntfs 权限,但它似乎没有所有权。在 *nix 下,我会运行类似chown me:me <file>. 是否有相当于的窗口chown

windows windows-xp ntfs command-line-interface access-control-list

34
推荐指数
5
解决办法
16万
查看次数

删除早于 (x) 天的文件?

删除给定文件夹中早于 (n) 天的所有文件的 Windows 命令行选项是什么?

另请注意,这些文件可能有数千个,因此forfiles在这里使用 shellcmd并不是一个好主意..除非您喜欢生成数千个命令 shell。我认为这是一个非常讨厌的黑客,所以让我们看看我们是否可以做得更好!

理想情况下,内置于(或可轻松安装到)Windows Server 2008 中。

windows command-line-interface

34
推荐指数
2
解决办法
5万
查看次数

Ssh,在登录时运行命令,然后保持登录状态?

我用expect试过这个,但没有用:它最后关闭了连接。

我们可以通过 ssh 运行一个脚本来登录远程机器,运行命令,而不是断开连接吗?

所以在一台机器上ssh,cd到某某目录,然后运行一条命令,保持登录状态。

-乔纳森

(希望我用过)

#!/usr/bin/expect -f
set password [lrange $argv 0 0]
spawn ssh root@marlboro "cd /tmp; ls -altr | tail"
expect "?assword:*"
send -- "$password\r"
send -- "\r"
interact
Run Code Online (Sandbox Code Playgroud)

automation linux ssh command-line-interface

34
推荐指数
3
解决办法
4万
查看次数

如何从 Windows 中的命令提示符获取自己的进程 pid

我正在尝试找到一种从命令提示符获取我自己的 PID 的方法(供以后在 bat 脚本中使用)。

到目前为止,我发现的唯一有用的方法是getpids.exe从这里使用:http : //www.scheibli.com/projects/getpids/index.html,但我正在寻找一个“内置”到 Windows 的命令。

我正在寻找一种“防弹”方式。不假设我的进程是唯一的 cmd.exe 或任何东西。

windows command-line-interface

34
推荐指数
6
解决办法
21万
查看次数

强制本地 IP 流量到外部接口

我有一台带有多个接口的机器,我可以根据需要进行配置,例如:

  • eth1:192.168.1.1
  • eth2:192.168.2.2

我想通过另一个接口转发发送到这些本地地址之一的所有流量。例如,对位于 192.168.1.1 的 iperf、ftp、http 服务器的所有请求不应仅在内部路由,而是通过 eth2 转发(外部网络将负责将数据包重新路由到 eth1)。

我尝试并查看了几个命令,例如 iptables、ip route 等……但没有任何效果。

我能得到的最接近的行为是:

ip route change to 192.168.1.1/24 dev eth2
Run Code Online (Sandbox Code Playgroud)

它在 eth2 上发送所有 192.168.1.x,除了仍然在内部路由的 192.168.1.1。然后我可以将所有流量定向到 eth1 上的假 192.168.1.2,然后在内部重新路由到 192.168.1.1 吗?我实际上正在与 iptables 斗争,但这对我来说太难了。

此设置的目标是在不使用两台 PC 的情况下进行接口驱动程序测试。

我正在使用 Linux,但如果您知道如何使用 Windows,我会购买它!

编辑:

外网只是eth1和eth2之间的交叉网线。假设我的机器上有一个 http 服务器。现在我想从同一台机器访问这个服务器,但我想强制 TCP/IP 流量通过这个 eth1/eth2 电缆。我应该如何为此配置我的接口?

networking linux ip command-line-interface iptables

34
推荐指数
3
解决办法
7万
查看次数

防止 xargs 在出错时退出

根据手册页,如果执行行之一以 255 错误退出,则 xargs 将退出:

如果命令的任何调用以 255 的状态退出,xargs 将立即停止而不读取任何进一步的输入。发生这种情况时,会在 stderr 上发出错误消息。

我怎样才能让 xargs这样做?

我有一个大约 1500 行的批处理作业,我想一次运行 50 行。我发现它总是在某条生产线上死亡,并且没有完成工作。不好!

一个更好的问题,描述我正在尝试做的事情的问题是:

我怎样才能运行一个 1500 行的批处理脚本,一次 50 行,这样它就不会在中间退出作业,并将输出捕获到某种日志文件中?

bash command-line-interface batch-processing xargs

34
推荐指数
6
解决办法
3万
查看次数

Unix 管理员离不开的工具

在管理过 Unix 或类 Unix 的服务器之后,您觉得哪些工具(最好是命令行)是必不可少的?

unix command-line-interface

33
推荐指数
15
解决办法
8096
查看次数

强制 SSH 使用特定的 shell

有没有办法强制 SSH 在远程端使用特定的 shell,而不管用户的默认 shell 是什么?

我尝试过类似的解决方案:

ssh host.domain.com /bin/bash -c 'complicated, multi-line command'
Run Code Online (Sandbox Code Playgroud)

但不幸的是,远程端的默认 shell 负责解析“复杂的多行命令”部分,我很难充分地转义它以供 Bash 和 C shell 用户使用。

ssh shell bash command-line-interface

33
推荐指数
4
解决办法
9万
查看次数

从控制台安装的 KVM 来宾。但是如何进入客人的控制台呢?

我正在尝试仅使用命令行(管理程序和来宾)在 KVM(RHEL 6)上安装完全虚拟化的来宾(Fedora 14 x86_64)。它没有错误,也没有明显的结果。我想知道如何进行纯文本安装。

所以,这就是我所做的:

# virt-install \
--name=FE --ram=756 --vcpus=1 \
--file=/var/lib/libvirt/images/FE.img  --network bridge:br0 \
--nographics --os-type=linux  \
--extra-args='console=tty0' -v \
--cdrom=/media/usb/Fedora-14-x86_64-Live-Desktop.iso 


Starting install...
Creating domain...                                                                                                                                                        |    0 B     00:00     
Connected to domain FE
Escape character is ^]
ÿ
Run Code Online (Sandbox Code Playgroud)

怎么办?正如我在谷歌搜索几天后所了解的那样,我应该从文本安装中看到来宾的输出,但没有任何反应。virt-viewer 无法连接到它,建议我通过添加 --help(我做了)来探索所有选项。如果我重新连接 virsh,我会看到:

Domain installation still in progress. You can reconnect to 
the console to complete the installation process.
[root@v ~]
# virsh console FEConnected to domain FE
Escape character is ^]
Run Code Online (Sandbox Code Playgroud)

这表明VM正在运行

# virsh list
 Id Name …
Run Code Online (Sandbox Code Playgroud)

redhat command-line-interface console guest kvm-virtualization

33
推荐指数
3
解决办法
9万
查看次数