三月 15, 2018

Linux 常用指令

文件操作

名称 示例
删除文件  rm -f /var/log/httpd/access.log
删除文件夹 rm -rf /var/log/httpd/access

压缩文件:

tar -zcvf archive_name.tar.gz directory_to_compress

解压缩:

 tar -zxvf archive_name.tar.gz

解决Linux关闭SSH,终端后运行程序终止问题

 每次SSH到服务器上,然后运行了一个自己写的服务端程序,比如 ./myserver.sh ,然后关闭ssh或者终端之后,发现服务不能访问。

ssh登录后会新建一个会话,一个登陆shell发起的会话,一般由一个会话首进程、一个前台进程组、一个后台进程组组成。通常来说,会话首进程是一个登录shell,比如bash。进程组是一个或多个进程的集合,进程组属于一个会话。一般来说,一个进程组中的其它进程的父进程是进程组组长进程的ID,如果,这个进程组组长终止掉之后,这个进程组中其它进程会变成孤儿进程,这个进程组也就成了孤儿进程组。对于后台进程组来说,后台进程组中的进程可以向终端设备写,但是当一个后台进程组中的进程尝试读终端设备的时候,会收到一个SIGTTIN信号,然后停止。当一个进程组成为孤儿进程组的时候,Bash无法知晓其PID,那么就无法将其放入前台,当其试图读终端设备的时候,read()调用将失败,并将errno置为EIO。

总结下就是,ssh登录后,bash都是其子进程,一旦会话终止,该会话期的所有相关的进程都会被杀死。包括后台进程。&是没有用的。

那么怎么解决这个问题呢?使用nohup命令。nohup命令会忽略SIGTTIN信号,从而可以在会话结束之后还可以继续运行。

nohup ./myserver.sh &

后面的&可以加也可以不用加,区别就是是否是后台。和挂断没有关系。
具体的使用方法在 http://zjking.blog.51cto.com/976858/1117828 这篇博客中有提到。

想查看TCP或者UDP端口使用情况

netstat -anp

如果有些进程看不见,如只显示”-”,可以尝试

sudo netstat -anp

如果想看某个端口的信息,使用lsof命令,如:

sudo lsof -i :631

netstat -tln 命令是用来查看linux的端口使用情况

yii 可能遇到Permissiondenied问题

这个问题基本就是权限不足导致的问题,运行以下指令,赋予yii的跟目录的权限就能解决

sudo chmod -R o+rw /Library/WebServer/Documents/basic/

git导出干净的代码

使用 git archive 可以导出干净的代码,具体可以看 git
help archive,简单使用如下:

bash
git archive --format zip --output "./output.zip" master -0

1 Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注