最近这些天一直在和服务器打交道,复习了很多linux命令,以下是我最近在项目中用的比较频繁的命令,希望能帮助大家。
1.netstat -ntlp 获取运行的进程名、进程号及用户ID
[root@FrankZhang interview]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 617/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 25272/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1261/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1253/master
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 28906/sshd: root@pt
tcp6 0 0 :::33060 :::* LISTEN 1400/mysqld
tcp6 0 0 :::3306 :::* LISTEN 1400/mysqld
tcp6 0 0 :::111 :::* LISTEN 617/rpcbind
tcp6 0 0 :::8080 :::* LISTEN 3916/interviewpush
tcp6 0 0 ::1:25 :::* LISTEN 1253/master
2.ps aux|grep 如果你知道进程的名称,想看进程的PID
[root@FrankZhang interview]# ps aux|grep nginx
USER PID RSS TTY STAT START TIME COMMAND
root 21129 0.0 0.0 112812 980 pts/1 S+ 21:59 0:00 grep --color=auto nginx
root 25272 0.0 0.0 45952 1124 ? Ss 11:32 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
root 25273 0.0 0.1 46404 2132 ? S 11:32 0:00 nginx: worker process
3.kill系列命令
(1)kill -9 PID 根据进程号强制杀死进程,获得进程号可以通过上面的ps命令来操作
(2)pkill 进程名 根据进程名杀死所有进程。
4.lsof -i:端口号xx 显示xx端口被哪些ip使用
lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
interview 3916 root 10u IPv6 66699833 0t0 TCP *:webcache (LISTEN)
5.chmod +x 文件名 当打包web项目上传到服务器后,没有可执行的权限,需要赋予它权限
chmod +x /home/interview/interviewpush
6.nohup系列命令 在你部署项目的时候肯定不希望关闭终端后项目就停止运行了。那么就需要一个后台挂起的操作
nohup /home/interview/interviewpush -c /home/interview/config.yaml > start.log 2>&1 &
其中:
/home/interview/config.yaml
是我们应用程序的启动命令nohup ... &
表示在后台不挂断的执行上述应用程序的启动命令> start.log
表示将命令的标准输出重定向到 start.log 文件2>&1
表示将标准错误输出也重定向到标准输出中,结合上一条就是把执行命令的输出都定向到 start.log 文件
7.ls ll 命令 可以看当前文件夹里的文件
[root@FrankZhang interview]# ll
total 18476
-rw-r--r-- 1 root root 306 May 10 11:01 config.yaml
-rw-r--r-- 1 root root 221 May 10 11:33 houduan.log
-rwxr-xr-x 1 root root 18900977 May 10 21:29 interviewpush
-rw------- 1 root root 0 May 10 22:24 nohup.out
-rw-r--r-- 1 root root 3789 May 10 21:32 start.log
-rw-r--r-- 1 root root 162 May 10 21:31 start.sh
8.tail -f 文件名 查阅正在改变的日志文件 挂起的web项目,想看日志文件。就可以采取这种方式。
9.systemctl status firewalld 查看防火墙状态
[root@FrankZhang interview]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
May 08 11:03:43 FrankZhang systemd[1]: Starting firewalld - dynamic firewall daemon...
May 08 11:03:43 FrankZhang systemd[1]: Started firewalld - dynamic firewall daemon.
May 08 11:03:44 FrankZhang firewalld[13385]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. P...ling it now.
May 08 16:56:53 FrankZhang systemd[1]: Stopping firewalld - dynamic firewall daemon...
May 08 16:56:54 FrankZhang systemd[1]: Stopped firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.
10.firewall-cmd --list-all 查看所有对外开放的端口。 有些服务器比较安全,很多端口都访问不了。可以通过该命令查看现在外部可以访问的端口。
[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 3306/tcp 80/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
以上是我目前能想出来的最近项目部署过程中用到的基本上所有命令了