最近这些天一直在和服务器打交道,复习了很多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:
11.firewall-cmd --permanent --add-port=xxxx/tcp 增加对外开放的端口。
firewall-cmd --permanent --add-port=6379/tcp
开放后要立即刷新,立即生效
firewall-cmd --reload;