热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

命令_20个常用Linux命令

本文由编程笔记#小编为大家整理,主要介绍了20个常用Linux命令相关的知识,希望对你有一定的参考价值。(给
本文由编程笔记#小编为大家整理,主要介绍了20 个常用 Linux 命令相关的知识,希望对你有一定的参考价值。


(给Linux爱好者加星标,提升Linux技能



来源:我是程序员小贱(本文来自作者投稿)




今天总结几个非常常用的Linux命令,其中有几个在面试中很可能问相关命令的原理,比如后台运行命令。希望对大家有所帮助,最好自己去尝试在Linux操作系统中实践一下。





1 查看目录以及权限



在windows中,使用dir查看当前目录中文件。在Linux中使用ls(list)查看当前目录文件。


windows中的dir,如下图所示


20 个常用 Linux 命令



在Linux中,通常使用ls -l列出,其中可以查看文件属性,所属用户组等较为详细的信息。下面详细解释从左到右每一列是什么意思




20 个常用 Linux 命令



ls -l





第一列第一个字段:文件类型,后面9个字符是模式,其中分为三组,每一组三个字段。第一组为所属用户权限。第二组为所属组的权限。第三组为其他用户所属权限。其中r(read)代表可读,w(write)代表可写,e(execute)代表可执行。在后面的9个字符中,如果是字母说明有相应的权限,如果为"-"代表没有权限。举一个例子

-rw-r-r--:此为普通文件,对于所属用户为可读可写不能执行,对于所属组仅仅可读,对于其他用户仅为读。


第二列 硬链接数目



硬链接允许作用之一是允许一个文件拥有多个有效路径名,从而防止误删。但是只能在同一文件系统中的文件之间进行连接,不能对目录进行创建。


第三列是所属用户,第四列为所属组,第五列为文件大小,第六列为文件被修改的时间,最后为文件名。其中使用chown改变所属用户,chgrp改变所属组。



2 nohup(no hang up不要挂起的意思)



这也是常用后台启动程序的常用方法,如果在交互命令行中运行程序,我们很容易就终止它。在交互环境下,我们的输出一般都会直接输出到当前界面,在后台启动的时候通常会定向到文件,那通常情况是下面这个命令。


nohup command >X.file 2 >&1 &



其中1表示标准输出。2表示文件标准错误输出。2>1&即将两者合并,但是合并到哪里,就是X.file.



3 查看进程



有的时候我们需要查看进程是否已经启动或者尝试终止进程。经常使用的命令为ps -ef---列出当前正在运行的程序,那如何定位我们想要查看的进程A,这个时候使用grep,即ps -ef| grep A.



4 awk



如果文件是csv(a.csv),按照","分割,需求为打印第一列和第二列


awk -F "," '{print 2}' a.csv



获取第三列最大值


awk 'BEGIN{max=0}{if(20 个常用 Linux 命令3}END{print max}'



5 tar解压缩



解压缩命令


常用参数



-c:创建的tar文件
-x:解开tar文件
-t:列出tar文件中包含的文件信息
-r:附加新的文件到tar文件中


常用命令组合


tar -xvf /home/a.tar  //打开tar打包文件
tar -zxvf /home/a.tar.gz //解压以gzip压缩的文件
tar -jxvf /home/a.tar.bz2 //解压以bzip压缩的文件
tar -cvf /home/a.tar /home 打包/home下所有文件



6 scp



通过scp命令在多台服务器中的相互复制 传输文件。为了省下输入密码,可以设置免密登录。


常用组合:


例子1:将A服务器中/home/a.txt 复制到B服务器的/home中

scp -r /home/a.txt root@B_ip:/home



7 林哥的死亡命令 rm -rf



翻车现场请看次条。



8 watch



这个命令是动态查看命令执行的结果。比如如果需要每隔一秒高亮显示网络连接数的变化情况。则 watch -n 1 -d netstat -ant


例子:每隔一秒高亮显示http连接数的变化情况


watch -n 1 -d 'pstree | grep http'


例子:十秒一次输出系统的平均负载


watch -n 10 'cat /proc/loadavg'



9 df



查看磁盘大小


df -h



20 个常用 Linux 命令



10 tcpdump



和它类似的工具在windows中是wireshark,其采用底层库winpcap/libpcap实现。采用了bpf过滤机制。下面我们看看提供的不同参数的含义。
























































参数名 含义
-n 使用IP地址表示主机。使用数字表示端口
-i 指定要监听的端口。如果为"-i any"表示住区所有网卡数据包
-v 输出诸如ip数据包中的TTL更加详细的信息
-t 不打印时间戳
-e 显示以太网帧头部信息
-c 仅仅抓取指定数量的数据包
-x 按照十六进制显示数据包内容
-X 不仅仅输出-x结果还输出十六进制对应的ASCII字符
-s 设置抓包时的抓包长度
-w 将输出结果定向到某个文件,一般为pcap后缀
-r 从文件读取数据包并显示数字表示端口












































-i
指定要监听的端口。如果为"-i any"表示住区所有网卡数据包
-v 输出诸如ip数据包中的TTL更加详细的信息
-t 不打印时间戳
-e 显示以太网帧头部信息
-c 仅仅抓取指定数量的数据包
-x 按照十六进制显示数据包内容
-X 不仅仅输出-x结果还输出十六进制对应的ASCII字符
-s 设置抓包时的抓包长度
-w 将输出结果定向到某个文件,一般为pcap后缀
-r 从文件读取数据包并显示


知道了相关参数,下面看几个案例




















































执行任务 执行命令
捕获特定网口数据包 tcpdump -i eth0
捕获特定个数(1000)的包 tcpdump -c 1000 -i eth0
将捕获的包保存到文件 tcpdump -w a.pcap -i eth0
读取pcap格式的包 tcpdump -r a.pcap
增加捕获包的时间戳 tcpdump -n -ttt -i eth0
指定捕获包的协议类型 tcpdump -i eth0 arp
捕获指定端口 tcpdump -i eth0 post 22
捕获特定目标ip+port的包 tcpdump -i eth0 dst address and port 22
捕获DNS请求和响应 tcpdump -i eth0 -s0 port 53
匹配Http请求头 tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"




































将捕获的包保存到文件 tcpdump -w a.pcap -i eth0
读取pcap格式的包 tcpdump -r a.pcap
增加捕获包的时间戳 tcpdump -n -ttt -i eth0
指定捕获包的协议类型 tcpdump -i eth0 arp
捕获指定端口 tcpdump -i eth0 post 22
捕获特定目标ip+port的包 tcpdump -i eth0 dst address and port 22
捕获DNS请求和响应 tcpdump -i eth0 -s0 port 53
匹配Http请求头 tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"



11 lsof



列出当前系统打开的文件描述符工具。可以得知感兴趣的描述符是被哪些进程使用


同样,我们看看相关参数
























参数 描述
-i 显示sokcet文件描述符
-c 显示指定的命令打开的所有文件描述符
-t 仅显示打开了目标文件描述符的进程pid


老规矩,上几个例子
































执行任务 命令
列出所有的网络链接 lsof -i
列出所有udp的网络链接 lsof -i udp
列出谁在使用某个端口 lsof -i :3306
列出谁在使用特定的tcp端口 lsof -i tcp:80
根据文件描述范围列出文件信息 lsof -d 2-3



12 nc



nc-->“瑞士军刀”。不知大家在渗透过程中,拿了shell有没有使用nc搞点事儿。它用来快速构建网络链接。常用来调试客户端程序。












































参数 描述
-i 设置数据包传送的时间间隔
-l 以服务器方式运行。默认为客户端运行
-k 重复接受并处理某个端口上的所有链接
-p 以客户端运行时强制其使用指定端口
-C 将CR和LF两个字符作为结束符
-u 使用udp协议。默认tcp协议
-X nc客户端余代理服务器通信时默认为socks5协议。
-z 扫描目标机器某个范围服务是否开启


小贱上案例
























执行任务 执行命令
扫描机器A端口号在30-40的服务 nc -z A 30-40
连接服务器A 端口号为5000 nc -C A 5000
传送文件 MachineA:nc -v -n ip port

E:a.exe



13 netstat



netstat是一个网络信息统计工具。它可以得到网卡接口上全部了解,路由表信息,网卡接口信息等。通常在网络编程中我们用它来显示TCP连接以及状态信息。












































参数 描述
-n 使用IP地址表示主机
-a 显示结果中包含监听的socket
-t 仅显示TCP连接
-r 显示路由信息
-i 显示网卡接口数据流量
-c 每隔1s输出一次
-o 显示socket定时器的信息
-p 显示socket所属的进程的PID和名字


下面列举几个常用例子












































执行任务 执行命令
列出所有连接 netstat -a
只列出TCP或者UDP netstat -at/netstat -au
列出监听中的连接 netstat -tnl
获取进程名、进程号以及用户 ID nestat  -nlpt
打印统计信息 netstat -s
netstat持续输出 netstat -ct
打印active状态的连接 netstat -atnp | grep ESTA
查看服务是否运行(npt) netstat -aple| grep ntp



14 vmstat

vmstat能够实时输出系统的进程信息,内存使用,cpu使用等资源的使用情况
































参数 描述
-f 显示系统自启动以来执行的fork次数
-s 显示内存相关统计信息
-d 显示磁盘相关统计信息
-p 显示指定磁盘分区统计信息
count 采样次数。


看一下vmstat都有哪些输出字段。




20 个常用 Linux 命令









在这里插入图片描述




































字段名 描述
procs r表示等待运行的而进程数目。b表示处于不可中断睡眠状态的进程数目
memory swpd:使用的虚拟内存量。free:空闲内存量。buff:用作缓冲区的内存量。cache:用作缓存的内存量。
swap si:从磁盘换入的内存量(/s)。so:交换到磁盘的内存量(/s)。
io bi:从块设备接收的块(blocks/s)。bo:发送到块设备的块(blocks/s)。
system in:每秒中断的次数,包括时钟。cs:每秒上下文切换的次数。


这里注意哈,如果查看磁盘的更加详细信息,有另外iostat所得到的信心就更加详细哟



15 mpstat

能够实时监测多处理器系统中各个cpu的使用情况。这个命令的执行需要安装sysstat,在centos中执行yum install systat就好了。











在这里插入图片描述






然后我们看看各个字段什么意思。
















































字段 描述
cpu 表示当前条信息属于哪个cpu的数据
%usr 进程运行在用户空间所占cpu运行时间的比例
%nice nice值为负的进程运行在用户空间的时间占cpu总运行时间的比例
%iowait cpu等待磁盘操作的时间占cpu总运行时间的比例
%irq cpu用于处理硬件中断时间占cpu总运行时间的比例
%soft cpu用于处理软件中断的时间占cpu用运行时间的比例
%steal 一对虚拟cpu。当超级管理员在处理某个虚拟cpu时,另一个等待它处理完才能运行。这段等待时间表示为steal时间占总运行时间的比例
%guest 运行虚拟cpu时间占cpu总运行时间的比例
%idle 系统空闲时间占cpu总运行时间的比例



16 split



将文件分割为数个。


split -5 a.txt//将a.txt每5行分割为一个文件



17 wc -c +filename



统计文件中单词的个数。



18 more/less



一页一页显示,通过空白键显示下一页/上一页



19 head/tail



查看某文件前几行或者后几行



20 diff




diff -c file1 file2 //显示两个文件的差异







推荐阅读  
点击标题可跳转












看完本文有收获?请分享给更多人

关注「Linux 爱好者」加星标,提升Linux技能

好文章,我在看❤️


推荐阅读
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 在Python编程中,经常需要处理文件下载的任务。本文将介绍三种常用的下载方法:使用urllib、urllib2以及requests库进行HTTP请求下载,同时也会提及如何通过ftplib从FTP服务器下载文件。 ... [详细]
  • Redis 是一个高性能的开源键值存储系统,支持多种数据结构。本文将详细介绍 Redis 中的六种底层数据结构及其在对象系统中的应用,包括字符串对象、列表对象、哈希对象、集合对象和有序集合对象。通过12张图解,帮助读者全面理解 Redis 的数据结构和对象系统。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 在尝试通过自定义端口部署Spring Cloud Eureka时遇到了连接失败的问题。本文详细描述了问题的现象,并提供了有效的解决方案,以帮助遇到类似情况的开发者。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • IO流——字符流 BufferedReader / BufferedWriter 进行文件读写
    目录节点流、处理流读文件:BufferedReader的使用写文件:BufferedWriter的使用节点流处理流节点流和处理流的区别和联系字符流Buf ... [详细]
  • Kubernetes 1.9.0 Alpha.1 发布公告 [Kubernetes 最新动态]
    近日,Kubernetes 社区发布了两个新版本:1.8.0 RC.1 和 1.9.0 Alpha.1。这是 k8s 1.9.0 的首次发布,自 v1.8.0 Alpha.3 以来进行了大量更新,共提交了 279 次。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
author-avatar
懿切瀡纟彖_639
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有