# 基本命令

# 端口占用

# netstat -tunlp | grep 端口号
$ lsof -i:8000
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nodejs  26993 root   10u  IPv4 37999514      0t0  TCP *:8000 (LISTEN)


# netstat -tunlp | grep 端口号
# -t (tcp) 仅显示tcp相关选项
# -u (udp)仅显示udp相关选项
# -n 拒绝显示别名,能显示数字的全部转化为数字
# -l 仅列出在Listen(监听)的服务状态
# -p 显示建立相关链接的程序名
$ netstat -tunlp | grep 8000
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      26993/nodejs 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 压缩&解压缩

  • tar
    # 压缩
    tar czvf filename.tar dirname
    # 解压缩
    tar zxvf filename.tar
    
    1
    2
    3
    4
  • gz
    # 压缩
    tar zcvf filename.tar.gz dirname
    tar zcvf filename.tar.gz dirname1 dirname2 dirname3.....
    # 解压缩
    tar zxvf filename.tar.gz
    
    1
    2
    3
    4
    5
  • bz2
    # 压缩
    tar jcvf filename.tar.bz2 dirname
    # 解压缩
    tar jxvf filename.tar.bz2
    
    1
    2
    3
    4
  • bz
    # 压缩
    tar jcvf filename.tar.bz dirname
    # 解压缩
    tar jxvf filename.tar.bz
    
    1
    2
    3
    4
  • z
    # 压缩
    tar zcvf filename.tar.z dirname
    # 解压缩
    tar zxvf filename.tar.z
    
    1
    2
    3
    4
  • zip
    # 压缩
    zip filename.zip dirname
    # 解压缩
    unzip filename.zip
    
    1
    2
    3
    4

# vim编辑器

:w          # 保存文件但不退出vi
:w file     # 将修改另外保存到file中,不退出vi
:w!         # 强制保存,不推出vi
:wq         # 保存文件并退出vi
:wq!        # 强制保存文件,并退出vi
q:          # 不保存文件,退出vi
:q!         # 不保存文件,强制退出vi
:e!         # 放弃所有修改,从上次保存文件开始再编辑
1
2
3
4
5
6
7
8

# 用户相关

useradd -d /usr/username -m username       # 增加用户
passwd username                            # 为用户增加密码
groupadd groupname                         # 新建工作组
usermod -G groupname username              # 将用户添加进工作组
userdel username                           # 删除用户
1
2
3
4
5

# chown

chown -R userName /test/            # 将根目录下的test文件夹所有者改为userName 
chown -R john:build /tmp/src        # 将目录 /tmp/src 中所有文件的所有者和组更改为用户 john 和组 build
chown -R tom. /foldName             # 将目录 /foldName 中所有文件的所有者和组更改为用户 tom 和组 tom
1
2
3

# ls -h

查看文件大小

# ll -ht

查看文件详情,文件大小带单位。

# ifconfig eth0 192.168.64.222 netmask 255.255.255.0

配置ip

# route

route -n                            # 查看网关
route add default gw 192.168.5.1    # 配置网关
1
2

# 查看网关

netstat -rn  
1

# 复制文件夹

cp -rf apache-tomcat-7.0.68 /nginx-tomcat/
# -f   强制覆盖同名文件
# -r   按递归方式保留原目录结构复制文件
1
2
3

# 文件重命名

mv  oldFileName  newFileName     
1

# 将文件下载到本地

sz fileName
1

# touch [选项]... 文件...

# touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
-a   或--time=atime或--time=access或--time=use  只更改存取时间。
-c   或--no-create  不建立任何文档。
-d  使用指定的日期时间,而非现在的时间。
-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m   或--time=mtime或--time=modify  只更改变动时间。
-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t  使用指定的日期时间,而非现在的时间。
1
2
3
4
5
6
7
8

# sed

# 批量替换多个文件中的字符串
# sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录 `
sed -i "s/hello/111/g"  `grep hello -rl leichu.html`
1
2
3

# find

# 在目录中搜索含有固定字符串文件
find . -name '*.log' |xargs grep mathjax    # 在当前目录的所有.log文件中查找mathjax字符。
1
2

# io命令

iostat -dmx 2
iotop
1
2

# 日志文件切割

split -l 10000 app.log -d -a 4 mongo2es_log_
1

# 日志过滤显示

# tail -f 文件名
tail -f catalina.out

# 实时查看tomcat的控制台日志中,含有“发送邮件”关键字的记录
tail -f catalina.out | grep --line-buffer "发送邮件"

# grep筛选多个关键字

## 1. 满足任意一个条件:
tail -f catalina.out | grep --line-buffer -E "发送邮件|接收到"

## 2. 同时满足多个条件:
tail -f catalina.out | grep --line-buffer "发送邮件"  | grep --line-buffer "异常报警"

# 注:–line-buffer : 每输出一行,就刷新一次

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
更新时间: 2021-05-05 20:24:13