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 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

比如:

参考:

https://www.runoob.com/linux/linux-comm-xargs.html

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?