nohub守护进程
nohup node xxx.ja >> output.log 2>&1 &
查看进程命令
ps
ps -e //当前运行的所有进程
ps aux|grep 进程名/端口号
网络相关
查看端口使用情况
netstat
netstat -tln // 查看已经使用的端口
netstat -tlnap // 查看已经使用的端口和对应的程序
netstat -tnlp|grep 80
lsof -i :22 // 显示22端口的使用情况
ss -lnp | grep 22
lsof -nP -iTCP:端口号 -sTCP:LISTEN //显示端口使用情况
查看端口被哪个进程占用
fuser -n tcp 80
查看IP 归属地
## 查看本地ip归属地
curl -4 ipinfo.io
## 查看HTTP代理的IP 归属地
curl -x http://user:pwd@proxy:port -4 ipinfo.io
查看文件尾部的内容
tail -f filename // 监视filename文件的尾部内容(默认10行,增加参数 -n 10),刷新显示在屏幕上
计算文件md5 或者哈希值
# md5 -s shenfh
# MD5 ("shenfh") = 596aa2d0eee531c3bfd6208e2ae1ecba
##
# shasum Podfile
# 5e9b682f9159fc2b23d78d3377a1f7ad83412ce1 Podfile
实时查看文件日志
tail -f fileName
查看当前文件下最大的200个文件
find ./ -type f -print0 | xargs -0 du -h | sort -rh | head -n 200
获取内存大小
free -m
free -m |grep "Mem" | awk '{print $2}'
free -h // 可以看到具体单位
free -hs 3 // 3s统计一次
查案内存使用情况
- CPU占用最多的前10个进程:
ps auxw|head -1;ps auxw|sort -rn -k3|head -10
- 内存消耗最多的前10个进程
ps auxw|head -1;ps auxw|sort -rn -k4|head -10
- 虚拟内存使用最多的前10个进程
ps auxw|head -1;ps auxw|sort -rn -k5|head -10
进程参数说明
%MEM
进程的内存占用率VSZ
进程所使用的虚存的大小RSS
进程使用实际内存的大小TTY
与进程关联的终端(tty)- 串行端口终端(/dev/ttySn)
- 伪终端(/dev/pty/)
- 控制终端(/dev/tty)
- 控制台终端(/dev/ttyn, /dev/console)
- 虚拟终端(/dev/pts/n)
STAT
检查的状态:进程状态使用字符表示的,如R(running正在运行或准备运行)、S(sleeping睡眠)、I(idle空闲)、Z (僵死)、D(不可中断的睡眠,通常是I/O)、P(等待交换页)、W(换出,表示当前页面不在内存)、N(低优先级任务)T(terminate终止).
查看磁盘使用情况
df -h
du -sh /路径
查看文件和文件夹大小
du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序
du -sk filename 查看指定文件大小
文件查找
find /路径 -name 关键字
eg:
find dev/ -name '*.c++'
find ./ -name "*.cpp" | xargs grep 'aaa.c' //在文件中查找关键字。
查看登录用户
w
查看登录日志
last
查看所有帐号的登录日志
lastlog
修改用户密码
sudo passwd 用户名
关机/重启
shutdown -h now
shutdown -r now //重启
压缩文件
tar zcvf 压缩后文件.tar.gz 需要压缩的文件夹/
解压缩
tar zxvf 压缩文件.tar.gz
添加新用户
adduser xxx
useradd xxx
- useradd不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,这个用户是不能登录的,需要使用passwd命令修改密码。
- adduser会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。
删除用户
userdel test
userdel -r test //删除用户,同事删除/home目录下的test目录
文件权限常用命令
ls -l 结果说明:
drwxr-xr-x 4 shenfh staff 136 7 28 16:39 platforms
drwxr-xr-x
表示文件权限.第一个字符有3种情况:-
表示普通文件,d
代表目录,l
代表连接文件,b
代表设备文件。 后面的9个字符每3个为一组,分别代表文件所有者
、文件所有者所在用户组
、其它用户
对文件拥有的权限。每组中3个字符分别代表读
、写
、执行
的权限,若没有其中的任何一个权限则用-
表示。执行的权限有两个字符可选x
代表可执行,s
代表套接口文件。4
代表目录下的文件个数(包含隐藏文件)shenfh
表示文件所有者staff
表示文件所有者所在的组136
表示文件的大小,单位为字节- ` 7 28 16:39` 表示文件修改时间
platforms
表示文件名
更改文件所有者chown
命令
chown
命令可以修改文件所有者和用户组。
- 基本语法
chown [-R] 所有者 文件或目录
chown [-R] 所有者:用户组名称 文件或目录
-
说明 -R 表示目录下的所有子目录或文件同时修改。
-
eg
sudo chown shenfh testfile //修改文件拥有者为 shenfh
更改文件所属用户组命令chgrp
- 基本语法
sudo chgrp [-R] 用户组名称 文件或目录
更改文件读写权限命令chmod
linux文件的三种身份和四种权限,三种身份分别为:
u
:文件的拥有者g
:文件所属的群组o
:其他用户
对于每个身份,又有四种权限,分别为:
r
:读取文件的权限(read), value = 4w
:写入文件的权限(write) , value = 2x
:执行的权限(execute), value = 1-
s
:特殊权限 - 基本语法
chmod [-cfvR] [--help] [--version] mode 文件或目录
chmod 777 文件或目录(rwx = 4 + 2 +1 = 7)
- 参数说明:
- ` -c` 若该档案权限确实已经更改,才显示其更改动作.
-f
若该档案权限无法被更改也不要显示错误讯息-v
显示权限变更的详细资料-R
表示目录下的所有子目录或文件同时修改mode
格式为[ugoa][[+-=][rwx]
.a
表示对ugo
三种身份同事做权限需改。+
表示增加权限、-
表示取消权限、=
表示唯一设定权限.
- eg
chmod a=rwx file 对文件的三种身份同时添加读写和可执行权限,意义和 chmod 777 file 等效
文件链接命令
- 基本语法
ln -s [源文件] [目标文件]
- 参数说明
- ` -b`:删除/覆盖目标文件之前的备份;
-d
或-F
:建立目录的硬连接;-f
或——force
:强行建立文件或目录的连接,不论文件或目录是否存在;-i
或——interactive
:覆盖既有文件之前先询问用户;-n
或--no-dereference
:把符号连接的目的目录视为一般文件;-s
或——symbolic
:对源文件建立符号连接,而非硬连接;-S
:将备份的档案都加上 SUFFIX 的字尾;-v
或——verbose
:显示指令执行过程;
- 示例
ln -s /Applications/MacDown.app/Contents/SharedSupport/bin/macdown /usr/local/bin/macdown
- 注意
- 删除文件的软链接的时候不要加上
-rf
参数,否则删除的是真正的文件,而不是链接文件。 - 删除文件链接的时候文件后面不要带上
/
。
时区相关
更改时区
tzselect
- 根据tzselect 选择时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改时区 或者直接修改/etc/localtime
文件里面的时区date -R
查看时间是否变化
linux 时间同步
时间服务器
ntpdate ntp1.aliyun.com
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
配置定时更新时间
crontab -e
每天12 点更新时间
0 12 * * * /usr/sbin/ntpdate ntp1.aliyun.com
crontab -l 查看
清理journal 垃圾日志
#只保留近一周的日志
journalctl --vacuum-time=1w
#只保留500MB的日志
journalctl --vacuum-size=500M
服务器相关
Create connect ssh-key
# create ssh with comment `ssh-key`
ssh-keygen -t rsa -b 4096 -C "ssh-key"
ssh 连接
# use private key
ssh -i ~/.ssh/ssh_private root@10.10.125.100
# use password
ssl -l root -p 22 10.10.125.100
复制公钥的服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.10.125.100 -p 22
上传或者下载文件
# 下载文件
scp -i ~/.ssh/xxx root@xx.xx.xx.xx:/data/back/back.sql ./
# 上传文件
scp -i ~/.ssh/xxx /data/back/back.sql root@xx.xx.xx.xx:/data/back
ufw
related
add new rule
sudo ufw allow 8822/tcp
sudo ufw reload
show rules
ufw status numbered
tatus: active
To Action From
-- ------ ----
[ 1] 3302/tcp ALLOW IN Anywhere
[ 2] 3302/tcp (v6) ALLOW IN Anywhere (v6)
delete rule
ufw delete [rule number]