当前位置: 首页 > article >正文

Linux和gcc/g++常用命令总结

目录

Linux命令总结

文件操作相关命令

ls

cd

pwd

cp

mv

rm

cat

mkdir

rmdir

touch

文本处理操作命令

grep

awk

sed

进程管理操作相关命令

ps

top

htop

kill

pkill

killall

chmod

chown

网络操作相关命令

ping

ifconfig

netstat

ss

lsof

curl

wget

ssh

端口操作相关命令

nmap

系统信息查看相关命令

uname

df

du

free

查看CPU和内存使用相关命令

top

htop

ps

vmstat

free

gcc/g++编译器选项总结

编译链接选项

调优选项

警告和错误选项

其他选项


Linux命令总结

文件操作相关命令

ls

1. ls:列出目录中的文件和目录

常用选项:

-a        显示包括隐藏文件在内的所有文件;

-l        以长格式显示文件信息,包括文件权限、所有者、大小等;

-t        按修改时间排序

示例:ls -al列出当前目录下所有文件的详细信息,包括隐藏文件

cd

  2. cd :切换目录

常用选项:

..        返回上一级目录;

~        返回当前用户的主目录

示例:cd /home/user切换到 /home/user目录;cd ..返回上一级目录。

pwd

  3. pwd:显示当前工作目录

cp

  4. cp :复制文件或目录

常用选项:

-r        复制目录时递归复制子目录

示例:cp file1.txt file2.txt复制/拷贝 file1.txt为 file2.txt;cp -r dir1 dir2复制/拷贝目录 dir1到 dir2。

mv

  5. mv :移动或重命名文件或目录

示例:mv file1.txt /home/user 将 file1.txt 移动到 /home/user目录;mv oldname.txt newname.txt将文件 oldname.txt重命名为 newname.txt

rm

  6.rm :删除文件或目录

常用选项:

-r        递归删除目录及其内容

示例:rm file.txt删除文件 file.txt;rm -r dir删除目录 dir及其内容

cat

  7. cat :查看文件内容

示例:cat file.txt 显示 file.txt的内容

mkdir

  8.mkdir:创建目录

示例:mkdir dir 创建一个名为 dir的目录

rmdir

  9. rmdir :删除空白目录

示例:rmdir dir删除空白的 dir目录

touch

  10. touch :创建空文件或更新文件的访问和修改时间

示例:touch file.txt创建一个名为 file.txt的空文件

文本处理操作命令

grep

grep:在文件中搜索特定的字符串

awk

awk:强大的文本处理工具

sed

sed:流编辑器,用于文本的替换、插入、删除等操作

进程管理操作相关命令

ps

  1.ps:显示当前系统中的进程信息

常用选项:

aux        显示所有进程,包括其他用户的进程;

-eo pid,ppid,%cpu,%mem,cmd        指定显示的列,如进程 ID、父进程 ID、CPU 使用率、内存使用率和命令等。

示例:ps aux显示系统中所有进程的信息;ps -eo pid,ppid,%cpu,%mem,cmd指定显示特定的列。

top

  2.top:动态显示系统中进程的资源使用情况,包括 CPU 和内存使用情况等

常用选项:

-d        后跟时间间隔,以秒为单位指定两次屏幕刷新之间的间隔时间

示例:top -d 2每 2 秒刷新一次屏幕,动态显示进程信息

htop

  3. htop:类似于 top,但提供了更直观的界面和更多的功能

常用选项:

可以通过方向键和各种快捷键来操作,如 F5以树形视图显示进程,F6按内存使用排序等

示例:直接输入 htop 启动该命令

kill

4. kill :终止进程

常用选项:

-9(信号)        强制终止进程

示例:kill 1234终止进程 ID 为 1234 的进程;kill -9 1234强制终止进程 ID 为 1234 的进程

pkill

  5. pkill:通过进程名或其他属性终止进程

示例:pkill firefox终止所有名为 firefox 的进程

killall

  6. killall:通过进程名终止所有匹配的进程

示例:killall firefox终止所有名为 firefox 的进程

chmod

  7.  chmod:更改文件或目录的权限

chown

    8.chown:更改文件或目录的所有者

网络操作相关命令

ping

  1. ping :测试网络连通性

示例:ping google.com测试与 google.com 的网络连通性

ifconfig

  2. ifconfig :配置和显示网络接口信息

示例:ifconfig 查看当前网络接口的配置信息

netstat

  3. netstat :显示网络连接、路由表等信息,可以查看端口的使用情况

常用选项:

-an        显示所有监听的和非监听的端口;

-tuln        显示监听的 TCP 和 UDP 端口

示例:netstat -an显示所有网络连接和端口信息;netstat -tuln显示监听的 TCP 和 UDP 端口。

ss

  4. ss :类似于 netstat,用于查看套接字统计信息,可以更快速地显示端口的使用情况

常用选项:

-antlp         显示所有监听的 TCP 端口及其对应的进程信息;

-anu         显示所有监听的 UDP 端口

示例:ss -antlp 显示所有监听的 TCP 端口及其对应的进程信息;ss -anu 显示所有监听的 UDP 端口

lsof

  5. sof :列出当前系统打开的文件和端口等信息

常用选项:

-i          后跟端口号,显示指定端口的使用情况。

示例:lsof -i :80 显示 80 端口的使用情况及对应进程信息

curl

  6. curl :用于从服务器传输数据或向服务器发送数据,常用于测试和操作网络请求

示例:curl google.com获取 google.com 的网页内容;curl -X POST -d "key=value" google.com向 google.com 发送 POST 请求并携带数据

wget

  7. wget :从网络上下载文件

示例:wget google.com下载 google.com 的网页内容;wget -O output.html google.com将下载的内容保存为 output.html文件

ssh

8.  ssh:用于远程登录到另一台计算机

端口操作相关命令

nmap

nmap 命令

功能:网络探测工具,可用于扫描端口开放情况等

常用选项:

-p         后跟端口号或端口范围,指定扫描的端口;

-sS         进行 TCP SYN 扫描

示例:nmap -p 1-1000 192.168.1.1 扫描 192.168.1.1 主机的 1 到 1000 端口开放情况

系统信息查看相关命令

uname

 1. uname:显示系统信息

常用选项:

-a       显示所有系统信息,包括内核版本、主机名等;

-r        仅显示内核版本号。

示例:uname -a 显示所有系统信息;uname -r显示内核版本号

df

  2. df:显示文件系统的磁盘使用情况

常用选项:

-h        以人类可读的格式显示磁盘空间,如自动根据大小选择合适的单位

示例:df -h显示文件系统的磁盘使用情况,包括每个文件系统的总空间、已用空间、可用空间等。

du

  3. du:显示文件或目录的磁盘使用情况

常用选项:

-h        以人类可读的格式显示磁盘空间;

-s        仅显示总计。

示例:du -h /home/user显示 /home/user目录及其子目录的磁盘使用情况;du -sh /home/user仅显示 /home/user目录的总计磁盘使用情况

free

  4. free:用于显示系统中空闲、已用和交换的内存量,可以方便地查看内存的使用情

常用选项:

-m        以 MB 为单位显示内存信息;

-h         以人类可读的格式显示内存信息,如自动根据大小选择合适的单位;

-s        指定更新时间间隔,持续显示内存信息。

示例:free -m表示以 MB 为单位显示内存信息;free -h以人类可读的格式显示内存信息;free -s 2 表示每 2 秒更新一次内存信息

查看CPU和内存使用相关命令

top

top命令

功能:提供了动态的实时系统进程信息,可以查看 CPU 和内存的使用情况以及其他相关信息,如进程的用户、运行时间、命令等

常用选项:

-d        后跟时间间隔,以秒为单位指定两次屏幕刷新之间的间隔时间。

示例:top -d 2,表示每 2 秒刷新一次屏幕

htop

htop命令

功能:是一个更高级的进程浏览器,它提供了比 top更直观的界面和更多的功能,可以方便地查看 CPU 和内存的使用情况,以及各个进程的信息

常用选项:

可以通过方向键和各种快捷键来操作,如 F5以树形视图显示进程,F6按内存使用排序等。

示例:直接输入 htop即可启动该命令

ps

ps命令

功能:用于报告当前系统中的进程状态,结合不同的选项可以查看进程的 CPU 和内存使用情况

常用选项:

aux        显示所有进程的信息,包括其他用户的进程。

eo pid,ppid,%cpu,%mem,cmd        指定显示的列,包括进程 ID、父进程 ID、CPU 使用率、内存使用率和命令等。

示例:ps aux | less,表示分页显示所有进程的信息;ps -eo pid,ppid,%cpu,%mem,cmd,指定显示特定的列

vmstat

vmstat命令

功能:报告虚拟内存的统计信息,包括进程、内存、分页、块设备、陷阱和 CPU 活动等信息,可以间接反映出 CPU 和内存的使用情况

常用选项:

1        表示每秒更新一次。

-s        以更易读的格式显示统计信息。

示例:vmstat 1,表示每秒更新一次虚拟内存统计信息;vmstat -s,以更易读的格式显示统计信息

free

free命令

功能:用于显示系统中空闲、已用和交换的内存量,可以方便地查看内存的使用情况。

常用选项:

-m         以 MB 为单位显示内存信息。

-h        以人类可读的格式显示内存信息,如自动根据大小选择合适的单位。

-s        指定更新时间间隔,持续显示内存信息。

示例:free -m,表示以 MB 为单位显示内存信息;free -h,以人类可读的格式显示内存信息;free -s 2,表示每 2 秒更新一次内存信息

gcc/g++编译器选项总结

编译链接选项

-c只编译,不链接。

示例:g++ -c main.cpp 将 main.cpp 编译成目标文件 main.o。

-o 指定输出文件名

示例:g++ -o myprogram main.cpp将编译链接后的可执行文件命名为 myprogram。

-I添加头文件搜索路径。(i大写)

示例:g++ -I /usr/local/include main.cpp指定在 /usr/local/include目录下搜索头文件

-L添加库文件搜索路径

示例:g++ -L /usr/local/lib main.cpp -lmylibc指定在 /usr/local/lib目录下搜索库文件 mylibc。

-l链接库文件。(L小写)

示例:g++ main.cpp -lmylib 链接库文件 mylib。

-shared生成共享库(动态库)

示例:g++ -shared -fPIC mylib.cpp -o libmylib.so 生成共享库 libmylib.so。

  -static 生成静态库

示例:g++ -static mylib.cpp -o libmylib.a生成静态库 libmylib.a。

调优选项

-O1启用基本的优化

示例:g++ -O1 main.cpp -o myprogram对生成的代码进行基本的优化

-O2更高一级的优化,在 -O1的基础上增加更多的优化

示例:g++ -O2 main.cpp -o myprogram对生成的代码进行更高级的优化

-O3 最高级别的优化,会在编译时进行更充分的优化,但可能会增加编译时间
示例:g++ -O3 main.cpp -o myprogram对生成的代码进行最高级别的优化

-Os优化代码大小,在优化代码执行效率的同时,尽可能减小生成的二进制文件大小
示例:g++ -Os main.cpp -o myprogram优化代码大小

-g 生成调试信息,便于使用调试器(如 GDB)进行调试
示例:g++ -g main.cpp -o myprogram在生成的可执行文件中包含调试信息

警告和错误选项

 -Wall启用所有常见的警告
示例:g++ -Wall main.cpp -o myprogram启用所有常见的警告

-Wextra启用额外的警告,比 -Wall更严格
示例:g++ -Wextra main.cpp -o myprogram启用额外的警告

-Werror将所有警告视为错误,如果出现警告,编译将失败
示例:g++ -Werror main.cpp -o myprogram将所有警告视为错误

其他选项

-std=c++11指定使用 C++11 标准
示例:g++ -std=c++11 main.cpp -o myprogram指定使用 C++11 标准进行编译。

-fPIC生成位置无关代码,通常用于生成共享库
示例:g++ -fPIC mylib.cpp -shared -o libmylib.so生成位置无关代码生成共享库

-pg添加性能分析代码,用于性能分析工具(如 gprof)。
示例:g++ -pg main.cpp -o myprogram添加性能分析代码

-v 显示编译器版本信息和编译过程的详细信息
示例:g++ -v显示编译器版本信息

相关文章:

Linux和gcc/g++常用命令总结

目录 Linux命令总结 文件操作相关命令 ls cd pwd cp mv rm cat mkdir rmdir touch 文本处理操作命令 grep awk sed 进程管理操作相关命令 ps top htop kill pkill killall chmod chown 网络操作相关命令 ping ifconfig netstat ss lsof curl …...

Sqoop从入门到使用

安装和配置 修改文件配置:修改文件名将(sqoop-env-template.sh改为sqoop-env.sh) 编辑sqoop-env.sh内部文本,修改调用文件位置 将sqoop-env.sh,配置到全局变量中,方便调用。 查看正常运用 第一类&#xff1…...

2024华为OD机试真题-磁盘容量排序算法(C++)-E卷B卷-100分

2024华为OD机试题库-(E卷+C卷+D卷)-(JAVA、Python、C++) 目录 题目描述 输入描述 输出描述 用例1 用例2 考点 题目解析 代码 c++ 题目描述 磁盘的容量单位常用的有 M,G,T 这三个等级,它们之间的换算关系为: 1T = 1024G 1G = 1024M 现在给定 n 块磁盘的容量,…...

【数据结构】堆(挑战从零基础到进阶)

我们从概念开始一步步来学习堆,下面我们来从零基础来解剖该种数据结构。先提前透明:实现堆其实就是基于数组来实现一个完全二叉树而已 ! 目录 堆的概念 堆的性质 堆的物理逻辑&思维逻辑 堆的节点对应关系 堆的核心操作 &#xff08…...

阿里 DataWorks:数据治理、安全中心、数据质量核心功能梳理

文章目录 阿里 DataWorks:云原生数据治理与安全一体化实践指南一、数据治理中心1.1 数据治理体系1.2 产品架构全图1.3 概要使用路径1.4 治理现状评估数据治理健康分评估模型 1.5 检查项 & 治理项(1) 检查项(2) 治理项 1.6 治理工具箱1.7 治理结果查看 二、安全中…...

DeepSeek精品课分享 清北

AI淘金潮上热搜!有人已经靠DeepSeek日入过万了! 北大清华等高校也相继出品DeepSeek高质量精品课程,在网上传疯。帮助学者高效学习AI从入门到精通! 完整版资料已经帮大家整理好了,免费领! 资料链接: htt…...

获取当前页面的 url 参数

一、使用 URLSearchParams(现代浏览器支持) URLSearchParams 是 JavaScript 提供的一个内置对象,用于处理 URL 的查询字符串,它提供了一系列方便的方法来获取、设置和删除查询参数。 // 获取当前页面的 URL 参数 const queryStr…...

解锁健康密码,开启养生之旅

在这个生活节奏飞快、压力如影随形的时代,健康养生不再是一句空泛的口号,而是我们对高品质生活的热切追求。它就像一把神奇的钥匙,能够打开通往活力与幸福的大门。 日常习惯与养生息息相关。晨起后,空腹喝一杯温水,如…...

Mybatis集合嵌套查询,三级嵌套

三个表:房间 玩家 玩家信息 知识点:Mybatis中级联有关联(association)、集合(collection)、鉴别器(discriminator)三种。其中,association对应一对一关系、collectio…...

Python的Pandas和matplotlib库:让数据可视化贼简单

在数据爆炸的时代,数据可视化已成为数据分析的关键环节。Python 作为强大的编程语言,拥有众多用于数据可视化的库,而 pandas 库在其中扮演着重要角色。它不仅能高效处理和分析数据,还具备强大的数据可视化功能,让我们轻…...

数据结构基础之《(19)—矩阵处理》

一、zigzag打印矩阵 Z字形打印矩阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 打印顺序:1,2,7,13,8,3,4,9,14... 核心技巧:找到coding上的宏观调度 左上角有A、B两个点,A往右一步一步走,B往下一步一步走 写一个…...

IDEA与Maven使用-学习记录(持续补充...)

1. 下载与安装 以ideaIU-2021.3.1为例,安装步骤: 以管理员身份启动ideaIU-2021.3.1修改安装路径为:D:\Program Files\JetBrains\IntelliJ IDEA 2021.3.1勾选【创建桌面快捷方式】(可选)、【打开文件夹作为项目】&…...

【运维笔记】docker 中 MySQL从5.7版本升级到8.0版本 - 平滑升级

在Docker环境中,将MySQL从5.7版本升级到8.0版本时,数据确实需要迁移。虽然不能直接通过docker-compose命令简单地进行版本升级并保留所有数据,但可以通过一系列步骤来实现平滑升级和数据迁移。以下是详细的迁移步骤: 一、准备阶段…...

nuxt2 打包优化使用“compression-webpack-plugin”插件

在使用 Nuxt.js 构建项目时,为了提高性能,通常会考虑对静态资源进行压缩。compression-webpack-plugin 是一个常用的 Webpack 插件,用于在生产环境中对文件进行 Gzip 压缩。这对于减少网络传输时间和提高页面加载速度非常有帮助。下面是如何在…...

fastapi+mysql实现增删改查

说明: 我计划用python的fastapi框架,实现操作MySQL数据库的表,实现增删改查的操作,并且在postman里面测试 step1: 安装数据库依赖 pip install fastapi uvicorn pymysqlstep2:C:\Users\Administrator\PycharmProjects\FastAPIPro…...

ArcGIS Pro:轻松制作地震动画,洞察灾害动态

在当今的信息展示领域,动画因其直观、生动的特点,逐渐成为各类汇报、研究展示中的重要元素。 尤其是在地理信息领域,通过动画来展示动态的地理现象,能够让观众更清晰地理解数据背后所蕴含的信息。 地震作为一种突发性的自然灾害…...

Redis系列之慢查询分析与调优

Redis 慢查询分析与优化:提升性能的实战指南 Redis 作为一款高性能的内存数据库,因其快速的数据读写能力和灵活的数据结构,被广泛应用于缓存、消息队列、排行榜等多种业务场景。然而,随着业务规模的扩大和数据量的增加&#xff0…...

Linux下磁盘读写流

用户空间请求 系统调用:应用程序通过系统调用(如 read() 或 write())请求对文件或设备进行读写操作。 文件描述符:操作通过文件描述符进行,该描述符在应用程序打开文件时获得。 VFS(虚拟文件系统&#xff…...

MAVEN手动配置(阿里云)全教程

介于网上各种各样的MAVEN配置过程中方法大致相同却细节参差不齐,我总结了我遇见的一些问题,来完全的解决MAVEN手动配置的全过程,以及分享解决小毛病的经验。 所需材料: MAVEN3.9.9(下载适合自己的版本即可&#xff09…...

贪心算法一

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是贪心算法,并且掌握贪心算法。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! >…...

计算机毕业设计Python+DeepSeek-R1大模型微博的话题博文及用户画像分析系统 微博舆情可视化(源码+ 文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

Android Framework 常见面试题

以下是常见的 Android Framework 面试题,涵盖基础到高级知识点,帮助准备面试: 一、基础问题 Android 系统架构分层 描述 Android 系统的四层架构(Linux Kernel、Native、Framework、Application)及各层职责。 Zygote …...

绕过某书frida反调试检测 获取某宝支付参数

前言 在移动应用安全测试和研究过程中,我们经常需要使用Frida等工具对应用进行动态分析。然而,很多应用都实现了反调试和反注入机制,用来检测并阻止此类分析工具的使用。本文将分享如何使用Frida绕过某流行阅读应用(以下简称"某书",本次任务目的原本是需要找出…...

Secret Cow Code S

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝 既然选择了远方,当不负青春,砥砺前行! 题目描述 奶牛们正在实验秘密代码,并设计了一种方法用于生成无限长度的字符…...

MyBatis - XML CRUD 其他查询

1. XML 配置文件 使用 MyBatis 操作数据库的方式有两种: 注解 (在注解中定义 SQL 语句)XML 配置文件 (在 XML 文件中定义 SQL 语句) 在上一篇博客中, 已经讲解了如何使用注解操作数据库, 本篇文章来讲解如何使用 XML 进行 MyBatis 开发. 使用 XML 的步骤, 和使用注解的步骤…...

牛客python蓝桥杯11-32(自用)

11 import os import sysdef huiwen(str):length len(str)# if length 0:# return -1result []for i in range(length-1): # 0 - length-2for j in range(i2,length1):# 取出从索引 i 到 j-1 的子串s str[i:j]# 正序倒序if s s[::-1]:result.append(len(s))if result…...

rabbitmq版本升级并部署高可用

RabbitMQ版本升级 先检查是否已经安装rabbitmq rpm -qa|grep rabbitmq|wc -l //如果结果是0,表示没有安装 rpm -e --nodeps $(rpm -qa|grep rabbitmq) //如安装了,则进行卸载 先检查是否已经安装erlang rpm -qa|grep erlang|wc -l //如果结果…...

Spring AI 1.0.0-M6 快速开始(一)

Spring AI 1.0.0-M6 入门一、存储库二、依赖管理完整maven 入门 Spring 是JAVA中我们经常使用的框架之一,Spring AI不断的发展迭代目前已经到M6版本据说上半年会出一个稳定版本。 本节提供了如何开始使用Spring AI的M6。 一、存储库 1.0 M6 -添加Spring存储库 需…...

数据集路径出错.yaml‘ images not found , missing path

方法一:删除settings.yaml 方法二:dataset_name.yaml改用绝对路径,如最后一张图 错误分析: dataset_name.yaml中的path的路径仅支持绝对路径,写相对路径就会搜索不到,使用settings.json中的路径&#xff0…...

win32汇编环境,对话框中使用树形视图示例二

;运行效果 ;win32汇编环境,对话框中使用树形视图示例二 ;得到树形视图控件Treeview的全路径字符串,这里的方法是由子项向父项挨个找的算法找齐路径 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>>&g…...