We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
linux管道符
cd /script/path STAT=ps -ef f | grep "a.php" if [ $? -eq 0 ];then : else php /script/path/a.php & fi 管道两侧的命令是同时执行的,并不是先执行前面一个,执行完毕后把输出交给后面的命令,所以ps的结果包含 grep "a.php"这条命令,这个命令本身就包含了a.php这个字符串
ps -ef f | grep "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 使配置生效
The text was updated successfully, but these errors were encountered:
GitHub上有趣的资源 http://www.jianshu.com/collection/e2a2a0073e2d
Sorry, something went wrong.
你好,你的一句 “”管道两侧的命令是同时执行的,并不是先执行前面一个,执行完毕后把输出交给后面的命令,所以ps的结果包含 grep "a.php"这条命令,这个命令本身就包含了a.php这个字符串“” 这个我有点疑问哈,管道符前一个命令的输出当做管道符后一个命令的输入,这句话没错吧。 既然这样的话,又 怎么会同时执行?同时执行的话 管道符后面的命令如何获取前一个命令的输出?
No branches or pull requests
linux管道符
!/bin/bash
cd /script/path
STAT=
ps -ef f | grep "a.php"
if [ $? -eq 0 ];then
:
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 使配置生效
The text was updated successfully, but these errors were encountered: