Linux常用命令
ps
用于显示当前进程 (process) 的状态
ps -ef
e:显示所有进程;f:全格式。
ps -T -p 15436
查看进程15436创建的所有线程netstat
显示网络状态
netstat -anp | grep 8080
查询占用8080端口的进程号 a:所有连线中的socket;n:直接使用IP地址,而不通过域名服务器;p:显示正在使用Socket的程序识别码和程序名称。
Recv-Q和Send-Q分别表示接收队列和发送队列,一般都是0,如果不是则表示包正在队列中堆积,这种情况是非常少见的。参考:
https://www.runoob.com/linux/linux-comm-netstat.html
top
实时显示 process 的动态 CPU占有率等
参考:
https://mp.weixin.qq.com/s/eNvm8N_tY9T6qpN3UKb1XQ
包管理
apt-get install package-name 安装软件包
apt-cache search package-name 搜索软件源中可安装的软件包
apt-get update 更新软件列表
apt-get upgrade 更新软件
apt-get remove package-name 卸载软件
apt-get remove --purge package-name 卸载并清除配置
apt-cache madison package-name 列出所有版本
apt-get install package=version 安装指定版本
解压&压缩
解压:tar -zxvf eg:tar -zxvf jdk-8u101-linux-x64.tar.gz
压缩:tar -zcvf eg: tar -zcvf test.tar.gz test
解压zip:unzip test.zip
find命令
find ./ -name {fileName} 当前位置根据name查找某个文件
find -maxdepth 查找的最大深度。eg:find . -maxdepth 2 -name "Wuziqi.class"
find -type 查找某一类型的文件,eg:d:目录;l -:符号链接文件;f:普通文件。[默认啥类型的都查找]
grep
ln软链接
创建软链接
环境变量
which
查找某个命令所在的绝对路径,比如:
whereis
查找特定目录下符合条件的文件,比如:
wget
下载命令,用法:wget {url}
光标移动删除
ctrl + k 删除光标后面所有字符
ctrl + u 删除光标前面所有字符
ctrl + y 恢复ctrl+u上次执行时删除的字符
ctrl + a 将光标移动到命令行开头
ctrl + e 将光标移动到命令行结尾处
ctrl + w 向后删除一个单词
option + f 向前移动一个单词
option + b 向后移动一个单词
查看内存占用情况
查看CPU核数
权限控制
lsof
List open files。是一个列出当前系统打开文件的工具,因为在Linux下任何事物都以文件的形式存在,所以lsof打开的文件可以是:普通文件、目录、网络文件系统的文件、字符或设备文件、(函数)共享库、管道、符号链接、网络文件(网络Socket等)还有其他类型的文件等。
查看网络带宽dstat -nt
tcpdump抓包
参考:
https://www.cnblogs.com/Jtianlin/p/4330723.html
查找历史命令
du 查看大小
nc
!号的妙用
行数统计 wc
dmesg
查看core信息,一般有进程挂掉,dmesg会记录此信息。
查看某个进程使用的环境变量
vim /proc/{进程号}/environ
pstree显示线程
以树状图的方式展现进程之间的派生关系,显示效果比较直观。
dig
dig命令主要用来从DNS域名服务器查询主机地址信息。
参考:https://www.cnblogs.com/sparkdev/p/7777871.html
wall 同步信息
scp
远程拷贝命令
tldr(需要安装)
tldr全称Too long, Don’t read,翻译成中文就是[太长不读]。tldr根据二八原则将命令的常用场景给出示例,让人一看就懂。
awk
awk是一个强大的文本分析工具。
xargs
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
比如:
参考:
sort
sort命令用于将文本文件内容加以排序。
uniq
uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
注意: 只能合并相邻的相同数据,比如下面的数据:
uniq后为:
所以一般是先sort排序,之后再用uniq。
eg:
who
查看当前登录客户端的用户都有哪些
这个时候如果需要强制踢人下线则可以使用pkill:
查看二进制文件
nmap查看端口
nmap是一款网络扫描和嗅探工具,可以扫描目标机器有哪些端口是open状态。
参考:
https://www.cnblogs.com/freeweb/p/6903915.html
crontab定时任务
常用命令:
我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
***** 取值范围内的所有数字
/ 每过多少个数字
- 从X到Z
**,**散列数字
比如我们写一个定时任务,每1分钟清空一次test文件夹里面的所有文件。
参考:
https://www.runoob.com/w3cnote/linux-crontab-tasks.html
命令执行挂起终止
Ctrl+C:终止一个正在执行的命令
Ctrl+Z:将一个正在前台执行的命令放到后台,并处于暂停状态
jobs:查看当前有多少在后台运行的命令。
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。fg:将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。
bg:将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。
kill:终止进程
方法1:通过jobs命令查看job号(假设为num),然后执行kill %num
方法2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
前台进程的终止:Ctrl+c
nohup:如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)
参考:
https://www.cnblogs.com/kaituorensheng/p/3980334.html
curl
file显示文件类型
可以通过file命令查询文件位数,64位或者32位
计算器bc
locate
locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
date
file
分析二进制
https://mp.weixin.qq.com/s/Se5hTxB9Li4aq9QAhhMK4g
kill
我们可以编写一个程序实验一下:
运行这个程序,然后依次执行kill -15和kill -9,可以看到-15可以输出”程序马上关闭“,-9不能输出:
PS:kill -15 pid等价于kill pid。
head/tail 只显示结果的n行
printf
cut
watch 循环执行某个命令
uptime 显示系统平均负载
swapon swap使用情况
Last updated
Was this helpful?