系统常用的命令

常用小命令

更改用户名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
方式一
root用户下
usermod -l newname oldname
可能会报错有进程存在
pkill -u oldname
pkill -9 -u oldname
修改注解栏
usermod -c newname newname
修改组名
groupmod -n newname oldname
修改家目录
usermod -md /home/newname newname

方式二
root用户下
修改/etc/passwd,把老的用户改成新的
修改/etc/group,把老的组名修改
修改/etc/gshadow,把老的修改
修改/etc/shadow,不改无法登录
将/home/oldname改为/home/newname
修改/etc/sudoers,将sudo权限加上

按时间截取日志

1
2
3
4
5
6
7
8
9
10
11
2021-08-25 08:33:10,812 AAA
AAA
AAA
AAA
2021-08-26 08:33:10,812 AAA
AAA
AAAA
BBB
2021-08-27 08:33:10,812 AAA

sed -n '/2021-08-26/,/2021-08-27/'p temp.log

查看文件编码

1
2
3
4
5
vi file
:set
:set ff
:set ff=dos
:set ff=unix

打印关键词前后信息

1
grep -50 "world" fileName

Linux关闭在线用户

1
2
3
4
5
who
# 通知关闭该用户
echo "I will close your connection" > /dev/pts/2
# 关闭用户
fuser -k /dev/pts/2

覆盖文件

1
2
# 加多一个\,可以免输入y和回车
\cp -rf file destFile

查看端口占用并释放

1
2
3
4
5
6
7
8
# windows
netstat -ano|findstr 端口号
taskkill /pid 进程号 -f
# linux
netstat -anop |grep 端口号
kill -9 进程号
# mac
lsof -i:9092

UNICODE编码文件转换

1
2
3
4
5
6
# 需要jdk
# unicode转本地
native2ascii -reverse ApplicationResources_zh.properties ApplicationResources_zh1.properties

# 本地转unicode
native2ascii ApplicationResources_zh1.properties ApplicationResources_zh.properties

Linux后台进程管理

1
2
3
4
5
6
7
8
9
Ctrl+Z: 可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行

Ctrl+D: 表示结束当前输入(即用户不再给当前程序发出指令),那么Linux通常将结束当前程序

jobs: 查看当前有多少在后台运行的命令

fg: 将后台中的命令调至前台继续运行

bg: 将一个在后台暂停的命令,变成继续执行 (在后台执行)

切换CMD字符编码

1
2
3
4
5
6
# 查看现在的编码
chcp
# 切换到utf-8
chcp 65001
# 设置cmd属性
字体=Lucida Console

限制服务器上传下载速度

1
2
3
4
5
6
7
8
9
yum install wondershaper
pip install speedtest-cli

# 限制上传速度2M,下载速度1M
wondershaper eth0 2048 1024
# 测试网速
speedtest-cli
# 解开限制
wondershaper clean eth0

查看文件大小

1
2
df -hT # 查看磁盘分区大小使用情况
du -h --max-depth=1 /root # 查看深度为1的文件大小

清除缓存

1
2
3
#! /bin/sh
sync
echo 1 > /proc/sys/vm/drop_caches

解压缩

1
2
3
4
# 解压
tar -zxvf
# 压缩
tar -zcvf

隐藏文件到图片

1
2
# 准备需要隐藏的文件与图片文件
copy /b 图片文件.jpg+隐藏文件 目标图片文件.jpg

sed&awk&xargs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Mac删除匹配行之后的所有行
ll *.rb|awk '{print $9}'|xargs sed -i '' '/^=======/,$d'
ll *.rb|awk '{print $9}'|xargs sed -i '' '/^<<<<<<</d'

# 将前命令的输出当做本命令的输入
lsof -P|grep ':5000'|awk '{print $2}'|xargs kill -9

# 查找到指定字符串的行,并将其下一行更改为需要的字符串
sed -i '/你找的字符串/ { N; s/\n.*$/\n你要写的字符串/}' 你的文件

# 替换命令
sed 's/目标字符串/替换字符串/' 文件

# 查看某行
awk 'NR==7'

# 新增一列
awk 'BEGIN{a="TIME"}{printf("%s\t",a);for(i=1;i<=NF;i++){printf($i);printf("\t")}printf("%s","\n")}'

# 新增时间列
awk 'BEGIN{a=strftime("%Y-%m-%d %H:%M:%S",systime())}{printf("%s\t",a);for(i=1;i<=NF;i++){printf($i);printf("\t")}printf("%s","\n")}'

# 查看第一列
awk '{print $1}' file

# 查看匹配数据
awk '/匹配字符串/' file

# 联合使用
awk '/匹配字符串/ {print $1}' file