大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
LS的,你的说法是不正确的,你对运行命令的认识不清楚。。。
10年积累的网站设计、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有连江免费网站建设让你可以放心的选择与我们合作。
比如说你想用ls命令查看当前目录,你当然可以直接使用ls,这是因为你的PATH的设置。抛开PATH,你可以使用/bin/ls,你可以试试,但肯定不会是“./bin/ls”的。
至于你说的"./路径/文件名",适用于要执行的文件相对于当前目录的某个位置。因为“.”的意思是当前目录
所以正确的说法是"/路径/文件名",也就是可执行文件的绝对路径,你说的情况算是这里面的一种。。。当然出现PATH之后,会出现执行命令的便捷方法,诸如以上说的ls就是这类情况。在使用者看来,用法不同,但实质是一样的。。
f 是变量: 命令 ` ls /bin` 的执行结果赋值给 f
for 循环 定义 f 变量 in 是 反引号的命令 :ls /bin 列出 bin 目录下的所有文件。
do 开始循环, f 变量有多有个文件,就循环多少次,
第一次 循环如果第一个文件为 www,则$f 为 www , 命令为:ls -l /bin/www
done 结束循环
反引号为执行一个命令: `for f in ` ls /bin` do ls -l /bin/$f done`
指定一台主机作为信任主机,这样从这台主机登录其他机器就不需要密码了。
设置信任主机:
假设有四台机器:192.168.2.1~192.168.2.4,其中192.168.2.1为信任机,那么在192.168.2.1上运行如下命令:
$ssh-keygen -t rsa //此处一路回车,生成秘钥
$scp .ssh/id_rsa.pub 192.168.2.2:~/ //把秘钥拷贝到其他远程机器
$ssh 192.168.2.2 ‘cat id_rsa.pub .ssh/authorized_keys’ //(远程执行命令)在远程机器上生成认证文件
经过这几步,从192.168.2.1 ssh登陆192.168.2.2时,就不会再需要输入密码了。同样的步骤再执行3、4的极其。
文本文件hostlist可以如下
192.168.2.2
192.168.2.3
192.168.2.4
#!/bin/shdoCommand(){
hosts=`sed -n'/^[^#]/p'hostlist`
for host in $hosts
do
echo ""
echo HOST$host
ssh $host "$@"
done
return 0
}
if [ $# -lt 1 ]
then
echo "$0cmd" exit
fi
do Command "$@"
echo "return from doCommand"
执行命令(记得先对doCommand.s
h增加执行权限 chmod u+x doCommand.sh)
./doCommand.sh “ls -al /root/”
这样该脚本就会在每台机器上执行”ls -al /root/”这个命令,并返回结果在信任主机上。
首先 在命令前面有个 '#'的意思是本句话是注释,并不实际执行...
再说你后面语句的意思,for ... in .... ; done是循环结构,ls是查看目录下的文件,su是以另一个身份($i),来运行一个shell,但问题是su 没有-sh选项,也就是说你这句话应该有问题才对.
整体分析是遍历将当前目录下的文件,每个文件执行su -sh XXX(这里XXX是当前目录下的所有文件),功能尚不明确,还请楼主明示.
不需要什么命令,在Linux上面只要是有可执行权限的文件都可以运行(当然前提是这个文件有代码逻辑,能运行的起来)。给一个文件添加可执行权限的命令是这样执行的:chmod a+x 文件名。当给文件赋予了可执行权限后,可以这样运行它:在终端中先用cd命令切换到这个文件所在的目录,再用./文件名的方式运行它(在文件前面加的是一个英文点号和一个英文斜杠),表示在当前目录下运行文件,一定加上这个./。这样文件就运行起来了,不管它是二进制文件,还是.pl、.py、.sh等脚本文件,运行它们都是这样操作的。