Open lovecn opened 9 years ago
GitHub上有趣的资源 http://www.jianshu.com/collection/e2a2a0073e2d
你好,你的一句 “”管道两侧的命令是同时执行的,并不是先执行前面一个,执行完毕后把输出交给后面的命令,所以ps的结果包含 grep "a.php"这条命令,这个命令本身就包含了a.php这个字符串“” 这个我有点疑问哈,管道符前一个命令的输出当做管道符后一个命令的输入,这句话没错吧。 既然这样的话,又 怎么会同时执行?同时执行的话 管道符后面的命令如何获取前一个命令的输出?
linux管道符
!/bin/bash
else php /script/path/a.php & fi 管道两侧的命令是同时执行的,并不是先执行前面一个,执行完毕后把输出交给后面的命令,所以ps的结果包含 grep "a.php"这条命令,这个命令本身就包含了a.php这个字符串
所以即使没有a.php这个进程,你通过grep依然可以执行成功,进一步说,ps之后grep任何普通字符串都可以成功
xelz@ubuntu: ~ [12:01:40] $ ps -ef | grep any_thing_you_want ; echo $? xelz 30076 29945 0 12:04 pts/0 00:00:00 grep --color=auto any_thing_you_want 0 解决办法
你可以再grep一次,过滤掉 grep命令本身
ps -ef f | grep 'a.php' | grep -v grep
$ useradd bob $ mkdir -p /home/bob $ chown -R bob.bob /home/bob
$ gpasswd -a bob sudo // 给用户有 sudo 的权限 $ passwd bob 设置一个密码,这个是作为当用户想要 sudo 去执行 root 执行的时候使用的
本地 ssh-keygen 生成一串密钥
本地 $ ssh-keygen /Users/bob/.ssh/some-app-server_id_rsa 本地 $ ssh-copy-id -i .ssh/some-app-server_rsa bob@remote-server-address
配置ssh 客户端,方便以后连接服务器。
本地 $ vim ~/.ssh/config Host some-app-server Hostname remote-server-address User bob Port 19422 IdentityFile ~/.ssh/some-app-server_id_rsa
以后连接服务器就可以直接 $ ssh some-app-server 就可以用你的权限登录进去了。
配置 ssh 服务端
$ vi /etc/ssh/sshd_config PasswordAuthentication no //禁止使用基于口令认证的方式登陆 PubkeyAuthentication yes //允许使用基于密钥认证的方式登陆 Port 19422 // 把 ssh 端口改成 19422 这个别固定,你可以随便用,本地要连接服务器,本地的端口得保持一致。 PermitRootLogin no // 不允许 root 远程登录
重户服务器 $ reboot 使配置生效