后端开发人员必备的linux常用命令清单与实例,这是我在公司给团队小伙伴一次技术小分享。内容深入浅出,简单明了,放出来给大家分享。新手司机可以收藏、学习,老司机可以批评指正。
(
本文持续更新中^_^
)
系统信息监控/查看
ps
是Process Status
的缩写,ps
命令用来列出系统中当前运行的那些进程的快照。-
-a
显示同一终端下的所有程序 -
-A
显示所有进程 -
-e
等于“-A
” -
-f
显示程序间的关系,pid
&ppid
-
-H
显示树状结构 -
-u
指定(当前)用户的所有进程 示例
ps -ef
ps -aux
-
top
性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器top - 14:06:23 up 70 days, 16:44, 2 users, load average: 1.25, 1.32, 1.35 Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie Cpu(s): 5.9%us, 3.4%sy, 0.0%ni, 90.4%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 32949016k total, 14411180k used, 18537836k free, 169884k buffers Swap: 32764556k total, 0k used, 32764556k free, 3612636k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 28894 root 22 0 1501m 405m 10m S 52.2 1.3 2534:16 java
netstat
查看访问网络连接状态-
-a
或–all
显示所有连线中的Socket
-
-n
或–numeric
直接使用IP地址,而不通过域名服务器 -
-p
或–programs
显示正在使用Socket
的程序识别码和程序名称 -
-t
或–tcp
显示TCP
传输协议的连线状况 -
-u
或–udp
显示UDP
传输协议的连线状况 示例
netstat -apn | grep 8080
netstat -apnt | grep 8080
-
编辑器
vi
编辑器常用命令- 编辑
a
查看
/word
- 查找上一个
n
- 查找下一个
N
替换
- xxx
- 撤回、重做
u
、ctrl
+r
复制
- 从光标当前位置开始 v
- 从光标当前行开始 V
粘贴
p
删除
- 字符
x
、X
- 单词
diw
、daw
- 行
dd
- 字符
添加行
- 上一行
O
- 下一行
o
- 上一行
- 翻页
ctrl
+d
,ctrl
+u
- 显示行号
:set nu
- 显示当前行信息
ctrl + g
行
- 首
0
- 尾
$
- 第一行
gg
- 最后一行
G
- 首
句
- 首
(
- 尾
)
- 首
段
- 首
{
- 尾
}
- 首
屏幕
- 上滚
ctrl
+v
- 下滚
ctrl
+e
- 上半屏
ctrl
+u
- 下半屏
ctrl
+d
- 上滚整屏
ctrl
+b
- 下滚整屏
ctrl
+f
- 上滚
保存退出
-
w
保存 -
q
退出 -
q!
不保存,强制退出
-
- 编辑
磁盘文件有关
df
检查linux
服务器的文件系统的磁盘空间占用情况-
-T
文件系统类型 -
-h
方便阅读方式显示,1K=1024 -
-H
等于“-h
”,但是计算式,1K
=1000
,而不是1K
=1024
-
-l
只显示本地文件系统列表 -
-k
区块为1024
字节 -
-a
全部文件系统列表 示例
-
df -hl
查看当前目录下所有目录、文件的大小
-
-
du
查看文件和目录磁盘使用的空间-
-a
显示当前目录以及子目录下所有的文件大小 -
-h
自动转换单位M
,GB
-
-s
统计总大小 示例
du -a
-
du -sh
当前目录大小
-
find
查找文件,配合正则使用更佳-
-name
名字 -
-size
大小 -
-type
类型 示例
-
find /home/server -name server.xml
查找/home/server
下名字为server.xml
的文件 -
find . -type d | sort
查找当前所有目录并排序 -
find . -size +1000c -print
查找当前目录大于1K的文件
-
-
tail
从指定点开始将文件写到标准输出示例
tail -20f app.log
tar
打包工具-
-c
新建压缩文件,与x
逆操作 -
-v
显示操作过程 -
-f
指定压缩文件 -
-x
解压缩文件 与c
反向操作 -
-z
支持gzip解压文件 示例
-
tar -xvf name.tar.gz
解包 -
tar -cvf name.tar.gz /dir
打包,未压缩 -
tar -zxvf name.tar.gz
解包,gzip解压缩 -
tar -zcvf name.tar.gz /dir
打包,gzip压缩
-
-
grep
文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行信息打印出来。-
-A
前多少行,不包括当前行 -
-B
后多少行,不包括当前行 -
-C
前后多少行,不包括当前行 -
-c
统计行数 -
-i
忽略大小写 示例
-
grep -C 10 keywords fileName.log
在文件fileName.log
查找关键词keywords
前后10行
-
-
wc
是Word Count
缩写,统计指定文件中的字节数、字数、行数,并将统计结果显示输出-
-c
统计字节数 -
-l
统计行数 -
-m
统计字符数。这个标志不能与 -c 标志一起使用 -
-w
统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串 -
-L
打印最长行的长度 示例
wc -m
-
xargs
替换工具,读取输入数据重新格式化后输出。简单的理解就是通过指定的分隔符(默认空格
)切割(split
)字符串,然后把处理后的多列数据作为参数,作为下一个指令的参数
传入。-
-a
即--arg-file=FILE
从指定文件读取内容 -
-d
即--delimiter=CHARACTER
指定分隔符,默认空格 -
-n
多行显示,指定一行显示的列数 示例
-
echo '--help' | xargs cat
即cat --help
-
jps | awk '{print $1}' | xargs kill -9
关闭所有Java
进程
-
-
用户相关操作
-
su
– 或su - root
切换到root
用户 -
exit
退回到上一个用户 -
whoami
查看当前用户 useradd
添加用户,所有用户在配置文件:/etc/passwd
-
-g
组别编号,缺省时表当前用户组 -
-u
用户编号 -
-d
家目录,默认在/home
示例
-
useradd -g 666 -u 666 -d /home/Aron Aron
新建Aron
用户
-
-
user modify
修改用户-
-g
组编号 -
-u
用户编号 -
-d
家目录 -
-l
新名字 示例
-
usermod -g 666 -u 666 -d /home/Aron -l Aron2 Aron
注意修改家目录时需要手动创建
-
-
userdel
删除用户-
-r
删除用户同时删除其家目录 示例
userdel Aron
-
userdel -r Aron
删除用户同时删除其家目录
-
设置用户密码
示例
passwd Aron
chmod
即change mode
,改变文件模式。- 语法
chmod [-cfvR] [--help] [--version] mode file...
,其中,mode
是权限设定字串,格式为[ugoa...][[+-=][rwxX]...][,...]
,说明:ugoa
中的u
为当前用户,g
当前用户组,o
其他用户组,a
所有用户 -
-c
若该文件权限确实已经更改,才显示其更改动作 -
-f
若该文件权限无法被更改也不要显示错误讯息 -
-v
显示权限变更的详细资料 -
-R
对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) 示例
-
chmod ugo+r file1.txt
将文件file1.txt
设置为所有人可读 -
chmod u+r,g+w,o+r file1.txt
将文件file1.txt
设置为当前用户可读,同组可写,其他组可读 -
chmod -R a+rw /home/server
将目录/home/server
以递归形式设置为所有人可读写
-
- 语法
chgrp
即change group
改变用户组,语法chgrp [-R] newGroup fileOrDirector
-
-R
递归方式查找子目录 示例
chgrp Aron app.java
chgrp -R Aron /data
-
chown
即change owner
改变拥有者- 只改拥有者,语法
chown [-R] newUser fileOrDirector
- 修改拥有者,同时修改用户组,语法
chown [-R] newUser:newGroup fileOrDirector
示例
chown Aron app.java
chown Aron:AronGroup app.java
- 只改拥有者,语法